Jump to content

Ewwe

Administrátor
  • Příspěvků

    4234
  • Registrován

  • Aktivní

  • Vítězných dnů

    67

Příspěvky posted by Ewwe

  1. Je to taková blbost pro vygenerování a zkompilování scriptu pro spuštění NPC. Program po zadání jména nahrávky a typu nahrávky vytvoří pwn a amx soubor který umístíte do npcmodes

    Prakticky nic na tom není a některým začátečníkům v C# se to třeba může hodit.

    Zdrojový kód:

    private void button1_Click(object sender, EventArgs e)
    {
    	int type = comboBox1.SelectedIndex;
    	if (type == -1) button1.Text = "Vyber typ...";
    	else if( textBox1.Text.Length == 0 ) button1.Text = "Zadej jméno...";
    	else
    	{
    		if (type == 0) type = 2;
    		else type = 1;
    
    		string code = String.Format("#define RECORDING \"{0}\"", textBox1.Text) + Environment.NewLine;
    		code += String.Format("#define RECORDING_TYPE {0}", type) + Environment.NewLine + Environment.NewLine;
    		code += "#include <a_npc>" + Environment.NewLine;
      		code += "main(){}" + Environment.NewLine;
      		code += "public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING);" + Environment.NewLine;
      		if (type == 1)
      		{
      			code += "public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING);" + Environment.NewLine;
      			code += "public OnNPCExitVehicle() StopRecordingPlayback();" + Environment.NewLine;
      		}
      		else
      		{
      			code += "public OnNPCSpawn() StartRecordingPlayback(RECORDING_TYPE, RECORDING);" + Environment.NewLine;
      		}
      		System.IO.File.WriteAllText(String.Format("{0}.pwn", textBox1.Text), code);
      		ProcessStartInfo startInfo = new ProcessStartInfo();
      		startInfo.FileName = "pawncc.exe";
      		startInfo.Arguments = String.Format("{0}.pwn", textBox1.Text);
      		Process.Start(startInfo);
      	}
     }

     

  2. u tebe v modu je v podstatě jedno jaký datový typ použiješ. V podstatě nebudeš mít tolik dat aby to něco znamenalo. Ale pokud chceš mít tabulky optimalizované tak si pokaždé stačí říct jakých hodnot bude daný sloupec nabývat.

    Bude to 1 a 0 ? Pak TINYINT(1)

    Bude to adminLevel ? pak TINYINT 

    Bude to ID domu který vlastní ? Pak ti stačí SMALLINT

    Stačí se v PMA podívat a v poli s výběrem datového typu pokud ukážeš na některou položku dostateš title s popisem rozmezí min a max hodnoty

     

  3. Obtížnost: 1/5

    Zdarec, akorát jsem řešil problém s chybou 

    symbol "@yH_OnUnoccupiedVehicleUpdate@0" is truncated to 31 characters

    kterou hází y_hook v případě že délka jména callbacku přesáhne určitý počet znaků. V praxi se s tím setkáte jen u hookování callbacků jako je například OnUnoccupiedVehicleUpdate OnPlayerEnterRaceCheckpoint. Existuje jednoduché řešení které YLess implementoval do YSI. Jmenují se HOOK_REPLACEMENTS. V podstatě jde o to že nějakou část jména callbacku zaměníte za náhradu která je kratší. V YSI jsou připravené replacementy například pro Checkpointy  kde místo

    hook OnPlayerEnterRaceCheckpoint

    hooknete

    hook OnPlayerEnterRaceCP

    V případě mé chyby jsem si nad callback OnUnoccupiedVehicleUpdate přidal řádek

    DEFINE_HOOK_REPLACEMENT( Unoccupied , Uncp );

    a pak změnil hook na

    hook OnUncpVehicleUpdate

    a tím je problém vyřešen. 

     

    Doufám , že to někomu pomůže, samozřejmě určitě to nekdo znal ale já se k tomu dostal dnes.

    • Líbí se mi to! (+1) 1
  4. Just now, Lucifer Morningstar said:

    Určite nie, jednak by si neprevŕtal celú zem, pretože máme v strede dosť teplé jadro, asi by ti to nevydržal vrták. Vzhľadom na to, že to jadro je  roztavené a tekuté, by sa tá voda vyparila alebo objekt v ňom roztavil, ak by si vytvoril niečo, čo by to neroztavilo, tak by sa to tam zaseklo a plávalo. Ďalej, gravitácia by to stále priťahovala k stredu, takže určite nie.

    Jasně ale říkal teoreticky tohle prostě vypust :d

  5. 45 minutes ago, Asakura Yoh said:

    Jedna sa o desiatky az stovky bajtov. Absolutne na tom nezalezi, ak si to porovnas napr. s tym, co alokuje java...

    Co ti vlastne prinesie tato optimalizacia a kolko casu bude stat? Ak mas v mode 1000 miest, kde pouzivas new str[512]; ktore optimalizujes, usetris tak 367 KB RAM a optimalizacia takeho modu ta bude stat 1-2 dni casu (ak nie viac). 

    Z toho usudzujem 2 veci:
    Je to teoreticky zaujimave? Ano.
    Oplati sa to? Nie.

     

    Takato optimaliziacia by bola zaujimava, ak by dany mod bezal na 8 bitovom arduine.

    To máš nejspíš pravdu ale když se na to vykašleš uplně tak se to potom odrazí na plynulosti hry... Mám zkušenost kdy měl týpek mód kde používat na jméno 1024 , samozřejmě nebylo to jen to ale jakmile někdo udělal cokoliv ( vyvolal dialog, šlapl na pickup ) automaticky měl cely server lag. Já osobně si myslím že té optimalizaci by se člověk věnovat měl, proč ten kód nepsat rovnou pěkně a optimalně a když ně kvůli serveru tak alespon kvůli sobě 

  6. To zzáleží... Můžeš psát klidně v notepadu ale lepší je si vybrat nějaký editor. Za mě bych ti mohl doporučit Atom.

    Jednoduchou stránku ano ( jednoduchou stránkou je myšleno čisté html a js ) v případě php musíš mít webserver. Ale i to jde lokálně za mě ti opět můžu doporučit WAMP. 

×
×
  • Create New...