-
Příspěvků
4234 -
Registrován
-
Aktivní
-
Vítězných dnů
67
Content Type
Profiles
Forums
Calendar
Gallery
SA-MP
Příspěvky posted by Ewwe
-
-
No tak trochu. Přišlo mi že mi zabere dost času udělat ten script pro npc.. Ŕádově třeba minutu času který můžu věnovat něčemu jinému. Tak jsem si napsal pidi apku která tu minut scvrkne na 3 vteřiny
-
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); } }
-
pawn syntax je v pořadí
-
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
-
Musíš si udělat proměnou třeba new crazyNick[MAX_PLAYERS]; a kontrolovat jestli je 0 nebo 1 a podle toho zapínat a vypínat
-
stáhni si nový includy na samp 03
-
před 9 minutami, Quiter said:
Myslím tým čiary, prípadne ohraničenie každého parkovacieho miesta + rezervované miesta ale aj tak to vyzerá dobre
Přesně to tam má...
-
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 a 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.
- 1
-
Pořád neuvažuješ dost teoreticky
- 1
- 1
-
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
-
No čistě teoreticky... By to dělalo kyvadlo tak dlouho dokud by se to neusadilo uprostřed. Ale spíš si myslím že by to nabralo takové zrychlení že by to překonalo gravitační sílu a vylétlo to ven
- 1
- 1
-
-
switch(random(3)) { case 0: { pickup1=CreatePickup(19605, 1, -2720.6580, 76.2131, 4.3359, -1); SetPlayerMapIcon(playerid, 2, -2720.6580, 76.2131, 4.3359, 52, 0, MAPICON_LOCAL); } }
-
Uplně nejlíp by udělal kdyby do clienta zabudoval updater a a při připojení na server by si automaticky stáhl klient verzi jakou potřebuje to by byl klid hnedka
-
POužij nějaký ini systém a při připojení kontroluj jestli exisutje soubor se jménem hráč a pokud ano vip = 1 pokud ne tak nic a vip nastavis vytvořením souboru se jménem
-
Můžeš si udělat například makra
-
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ě
-
udělej si jednoduše #define PER_WL 5000// 5000 za každej level
public OnPlayerDeath(plaerid,killerid,reason) { GivePlayerMoney(killerid,GetPlayerWantedLevel(playerid)*PER_WL); SetPlayerWantedLevel(playerid,0); }
-
-
DOF2_CreateFile má jako druhý parametr heslo a mám pocit že používá klasický udb hash v základu ale lze to přepnou na bernstaina záleží kde jsi ten includ stáhl
Ohledně porovnání je tam funkce CheckLogin
-
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.
-
Budeš potřebovat jazyky:
HTML,CSS,PHP,Javascript,SQL
Užitečné weby:
https://www.w3schools.com/php/
Případně bych ti doporučil učit se PHP rovnou na nějakém MVCčku budeš to mít sice složitější a těžší ale jakmile se naučíš s jedním MVC tak v podstatě umíš všechny.
-
9 hours ago, MajorGames4 said:
Ďakujem za opravu :).
Updated => https://pastebin.com/YXGFW4YE
Ten GetVehicleHealth máš pořád špatně. To nemůže fungovat viz http://wiki.sa-mp.com/wiki/GetVehicleHealth
-
K tomu minigunu jednak nemusis pouzivat GetPlayerWeapon ale id zbrane mas ulozene rovnou v reason a druhak by treba mohlo bxt efektivnejsi kontrolovat jakmile hrac udeli damage minigunem ale to uz je na interpretaci
Hľadám sponzora
v Minecraft
Odesláno:
Co bych z toho eventuelně měl ?