Posto sam uocio u jednoj temi, tocnije ovoj (http://balkan-samp.com/forum/index.php?topic=36317) da pola vas nema pojma o tome cemu sluze callbackovi i slicne stvari, odlucio sam napraviti mali tutorial o njima.
Puno ljudi koriste callbackove za sto se netrebaju koristiti callbackovi (Godfather mod koristi puno callbackova koji jednostavno mogu biti stock-ovi), primjer:
forward SendMessageToAdmins(message[]);
public SendMessageToAdmins(message[])
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerAdmin(i)) continue;
SendClientMessage(i, 0x00FF00AA, message);
}
return 1;
}
To mozete bez problema zamjeniti sa:
stock SendMessageToAdmins(message[])
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerAdmin(i)) continue;
SendClientMessage(i, 0x00FF00AA, message);
}
return 1;
}
Stock-ove nemozete koristiti za timere, callbackovi nemogu returnat neki string, a stock-ovi mogu.
Callbackovi
OnDialogResponse - poziva se tek kada igrac pritisne bilo koji gumb na bilo kojem dialogu koji ste mu vi postavili (ShowPlayerDialog)
OnEnterExitModShop - poziva se kada igrac ude ili izade iz Mod Shopa, tj. iz Loco-Low-a, Wheels Arch Angels-a ili Transfender-a. Mozete lako koristiti za spremanje modova na privatnim(dinamicnim) vozilima.
OnFilterScriptExit - ovaj callback se poziva samo kod filterscripta, kada ona zavrsava, tj. kada ju unloadate. Za to mozete koristiti spremanje nekih varijabli, zavrsavanje timera (KillTimer) i sl.
OnFilterScriptInit - ovaj callback se takoder poziva samo kod filterscripta, kada je ona loadana, kada zapocinje. Za to mozete koristiti kreiranje objekata, timera i slicne stvari.
OnGameModeExit - poziva se kada se mod gasi, znaci kada ga '/rcon gmx', tu mozete koristiti spremanje igracevih accounteva prije restarta, zavrsavanje timera, spremanje nekih globalnih varijabli servera i sl.
OnGameModeInit - poziva se kada se mod pali, tu mozete koristiti loadanje biznisa, kuca, vozila. Kreiranje objekata, kreiranje timera i sl.
OnObjectMoved - poziva se kada se objekt pomakne (MoveObject), tu mozete staviti da se ispise neki text ili sl. NAPOMENA: Ovo nije callback za streamer od Incognita koji vecina vas koristi!
OnPlayerClickMap - poziva se kada igrac klikne desni klik na mapu u GTA pause menu-u. Mozete koristiti za teleportiranje igraca ukoliko je Fun server.
OnPlayerClickPlayer - kada igrac klikne na igraca, ali na statistikama, tj. na TAB-u. Ovo mozete koristiti da prikaze npr. broj od igraca, novce.. Ili kada admin pritisne na njega da mu pokaze statse od njega (/check u GF-u).
OnPlayerCommandText - ovaj callback vjerojatno znate, poziva se kada igrac unese neku komandu, poput '/admins', vjerojatno znate za sto se ovo koristi tako da necu odugovlacit na ovom callbacku.
OnPlayerConnect - poziva se kada se igrac spoji na server (NE KADA SE LOGIRA, nego kada se spoji, puno vas brka ovo..), ovdje mozete postaviti razne timere, neke textove, npr. "%s[ID: %d] se pridruzio serveru." i sl.
OnPlayerDeath - Kada igrac umre, mozete staviti da onaj koji ga je ubio dobije score +1, da onaj koji ga je ubio dobije ban i sl.
OnPlayerDisconnect - Kada igrac izade sa servera (bilo to /quit ili crash ili timeout ili kick/ban), ovo se najcesce koristi za spremanje statsa i zavrsavanje raznih timera.
OnPlayerEnterCheckpoint - Kada igrac ude u checkpoint (SetPlayerCheckpoint), mozete koristiti za timere i sl.
OnPlayerEnterRaceCheckpoint - Kada igrac ude u race checkpoint, ova vrsta checkpointeva se obicno koristi za evente, jer imate sposobnost staviti arrow(strelicu) i vrste race checkpointeva.
OnPlayerEnterVehicle - ovo se poziva kada igrac ulazi u vozilo, ne kada je vec usao, nego kada tek pocinje ulaziti, znaci kada tek pritisne slovo 'F' ili ENTER. Mozete koristiti za timere, ispisivanje textova i sl.
OnPlayerExitVehicle - poziva se kada igrac izade iz vozila.
OnPlayerExitedMenu - kada igrac izade iz menu-a (CreateMenu).
OnPlayerGiveDamage - kada igrac oduzme odredeni health drugom igracu (korisno za anti-cheat).
OnPlayerInteriorChange - kada igrac promjeni interior ID.
OnPlayerKeyStateChange - kada igrac pritisne|otpusti neku od odredenih tipka, ili vise tipka odjednom. Tipke mozete vidjeti ovdje (http://wiki.sa-mp.com/wiki/GetPlayerKeys).
OnPlayerLeaveCheckpoint - kada igrac izade iz obicnog checkpointa.
OnPlayerLeaveRaceCheckpoint - kada igrac izade iz race checkpointa.
OnPlayerObjectMoved - isto ko i OnObjectMoved, samo sto vrijedi za MovePlayerObject.
OnPlayerPickUpPickup - kada igrac dode na pickup (CreatePickup).
OnPlayerPrivmsg - kada igrac posalje PM kroz nativni /pm system (od 0.3 nema nativne /pm komande).
OnPlayerRequestClass - kada igrac mjenja skin kada je umro ili tek kada se je ulogirao.
OnPlayerRequestSpawn - kada se igrac pokusava spawnati, kada mjenja skin, znaci kada klikne 'SPAWN' gumb.
OnPlayerSelectedMenuRow - Kada igrac selektira item u menu-u (CreateMenu).
OnPlayerSpawn - kada se igrac stvori, spawna.
OnPlayerStateChange - kada igrac promjeni svoje stanja, sva stanja mozete vidjeti ovdje (http://wiki.sa-mp.com/wiki/State).
OnPlayerStreamIn - kada se igrac pojavi, stvori za nekog drugog igraca.
OnPlayerStreamOut - kada igrac nestane nekom drugom igracu.
OnPlayerTakeDamage - suprotno od OnPlayerGiveDamage.
OnPlayerText - kada igrac napise na chat nesto, na obican chat (pritiskom na tipku 'T').
OnPlayerUpdate - ovaj callback se pokrece svaki puta kada igrac updatea svoj status sa serverom, ovo je veliki problem kod pocetnika koji ureduju GF mod, jer u GF modu postoji OnPlayerUpdate, i to se koristi za spremanje igracevog racuna, a posto se OnPlayerUpdate poziva za svakog igraca vise od 20 puta u sekundi, server radi puno sporije, jer pawn ima one-thread kompatibilnost, sto znaci da ce server ici po redu kako mu je zadano, i da nemoze obavljati vise toga odjednom (za to postoje pluginovi), stoga, ako koristite obican GF mod, preimenujte OnPlayerUpdate u OnPlayerUpdateEx ili nesto slicno.
OnRconCommand - poziva se kada se napise nesto u RCON konsolu.
OnRconLoginAttempt - poziva se kada se netko pokusa logirati u RCON, moze se koristiti za Ban IP-a ukoliko ima previse pokusaja.
OnUnoccupiedVehicleUpdate - poziva se kada se update-a vozilo koji se ne vozi, tj. koje nije zauzeto.
OnVehicleDamageStatusUpdate - poziva se kada se na vozilu ostete vrata, gume, paneli, svjetla.
OnVehicleDeath - poziva se kada vozilo umre, tj. explodira.
OnVehicleMod - poziva se kada se vozilo modira.
OnVehiclePaintjob - poziva se kada se vozilo modira u drugi paintjob.
OnVehicleRespray - poziva se kada vozilo promjeni boju.
OnVehicleSpawn - poziva se kada se vozilo REspawna.
OnVehicleStreamIn - poziva se kada se vozilo streama(pojavi) za nekog igraca (korisno za lock system).
OnVehicleStreamOut - poziva se kada se vozilo streamouta(nestane) za nekog igraca.
Postoji tu jos callbackova, ali mislim da i nisu bas potrebni za sad (NPC callbackovi).
Nadam se da sam vam barem malo pomogao da shvatite callbackove i stockove, vise o callbackovima mozete vidjeti ovdje (http://wiki.sa-mp.com/wiki/Category:Scripting_Callbacks).
Ukoliko vam nesto nije jasno u ovoj temi, ili imate problema oko nekog stocka, callbacka, slobodno se tu javite.
(c) LuKsA
To je istina , pola ljudi nema pojma i onda se zbune.
Još gore ako ne znaju engleski.
Kako te nije mrzelo da pises sve ovo.Odlicno je bravo ^^
Dobro je, potrudio si se ;)
Pomoci ce mnogima...
voBra ! ;D
Citat: [PG]Vlado_Plavsic aka Plavsa poslato Januar 14, 2012, 15:49:07 POSLE PODNE
Kako te nije mrzelo da pises sve ovo.Odlicno je bravo ^^
Volja za pomaganjem :) Kad ju dobim onda uvijek neki Tut napravim ili tako nesto ako sam u mogucnosti naravno..
Dobar tut ...Svaka cast LuKsA ! ;)
Odlican tutorial,svaka cast,pomoci ce mnogima a medju njima sam i "ja". :D 8)
EDIT:Mislim da ti se vraca zelja za skriptanjem :)
Bas je dobar tut posluzi ce ;D
Citat: ...Neno... poslato Januar 14, 2012, 22:38:31 POSLE PODNE
Odlican tutorial,svaka cast,pomoci ce mnogima a medju njima sam i "ja". :D 8)
EDIT:Mislim da ti se vraca zelja za skriptanjem :)
Radim na nekom projektu :P al nesmijem reci :D Tako da, imam ja zelje, ideja, a i znanja kolko tolko :D
bravo, very good