[TuT] Callbackovi i Stockovi

Započeo LuKsA, Januar 14, 2012, 15:42:54 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 2 gostiju pregledaju ovu temu.

Posto sam uocio u jednoj temi, tocnije ovoj 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.
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.
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.

Ukoliko vam nesto nije jasno u ovoj temi, ili imate problema oko nekog stocka, callbacka, slobodno se tu javite.

(c) LuKsA
Poslednja Izmena: April 17, 2012, 14:34:34 POSLE PODNE od joXy_
Aequam memento rebus in arduis servare mentem.

To je istina , pola ljudi nema pojma i onda se zbune.

Još gore ako ne znaju engleski.
Poslednja Izmena: Januar 14, 2012, 15:45:38 POSLE PODNE od Get busy living or Get busy dying
"I'm a loser and a user so I don't need no accuser" - Billie Joe Armstrong

vlado_plavsic

Kako te nije mrzelo da pises sve ovo.Odlicno je bravo ^^

Dobro je, potrudio si se  ;)

Pomoci ce mnogima...


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..
Aequam memento rebus in arduis servare mentem.



...Neno...

Odlican tutorial,svaka cast,pomoci ce mnogima a medju njima sam i "ja".  :D 8)

EDIT:Mislim da ti se vraca zelja za skriptanjem :)
Poslednja Izmena: Januar 14, 2012, 22:39:49 POSLE PODNE od ...Neno...


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
Aequam memento rebus in arduis servare mentem.


Balkan Underground Ex. Head Administrator
Balkan Underground Ex. Elite Moderator


© Stefan_Misurovic, 2010. - 2014.