Balkan SA:MP

San Andreas Multiplayer - www.sa-mp.com => Tutorijali u vezi SA-MPa => Temu započeo: LuKsA poslato Januar 14, 2012, 15:42:54 POSLE PODNE

Naslov: [TuT] Callbackovi i Stockovi
Poruka od: LuKsA poslato Januar 14, 2012, 15:42:54 POSLE PODNE
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
Naslov: Odg: [TUT] Callbackovi i Stockovi
Poruka od: Billie Joe Armstrong poslato Januar 14, 2012, 15:45:25 POSLE PODNE
To je istina , pola ljudi nema pojma i onda se zbune.

Još gore ako ne znaju engleski.
Naslov: Odg: [TUT] Callbackovi i Stockovi
Poruka od: vlado_plavsic poslato Januar 14, 2012, 15:49:07 POSLE PODNE
Kako te nije mrzelo da pises sve ovo.Odlicno je bravo ^^
Naslov: Odg: [TUT] Callbackovi i Stockovi
Poruka od: []Flynâ„¢ poslato Januar 14, 2012, 15:54:40 POSLE PODNE
Dobro je, potrudio si se  ;)

Pomoci ce mnogima...
Naslov: Odg: [TUT] Callbackovi i Stockovi
Poruka od: Impulseâ„¢ poslato Januar 14, 2012, 15:59:05 POSLE PODNE
voBra !   ;D
Naslov: Odg: [TUT] Callbackovi i Stockovi
Poruka od: LuKsA poslato Januar 14, 2012, 16:00:56 POSLE PODNE
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..
Naslov: Odg: [TUT] Callbackovi i Stockovi
Poruka od: Nxidza poslato Januar 14, 2012, 16:01:19 POSLE PODNE
Dobar tut ...Svaka cast LuKsA ! ;)
Naslov: Odg: [TUT] Callbackovi i Stockovi
Poruka od: elemental. poslato Januar 14, 2012, 16:11:56 POSLE PODNE
Citat: Nxidza poslato Januar 14, 2012, 16:01:19 POSLE PODNE
Dobar tut ...Svaka cast LuKsA ! ;)
Naslov: Odg: [TUT] Callbackovi i Stockovi
Poruka od: ...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 :)
Naslov: Odg: [TUT] Callbackovi i Stockovi
Poruka od: ...Nikola... poslato Januar 14, 2012, 22:41:08 POSLE PODNE
Bas je dobar tut posluzi ce  ;D
Naslov: Odg: [TUT] Callbackovi i Stockovi
Poruka od: LuKsA poslato Januar 14, 2012, 23:24:35 POSLE PODNE
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
Naslov: Odg: [TUT] Callbackovi i Stockovi
Poruka od: [UG]Cile poslato Januar 15, 2012, 01:20:11 PRE PODNE
bravo, very good
Naslov: Odg: [TUT] Callbackovi i Stockovi
Poruka od: [BU] Misur poslato Januar 15, 2012, 13:40:38 POSLE PODNE
Citat: [BUL] Cile poslato Januar 15, 2012, 01:20:11 PRE PODNE
bravo, very good