Üdv!
(bocs ha van már ilyen téma)
Nem rég rájöttem hogy hogyan lehet egyedi callbacket létrehozni.
Legyen szó pl: OnPlayerChangeSpecialTeam(playerid,newteam)
Ez jelen esetben egy olyan eljárás, amikor a játékos egy \"mesterséges\" változó értékét (csapatváltozó) megváltoztatja.
Ez nyilván egy dinamikus csapat scriptben van benne.
Most én rögtönöztem egy \"filterscript-include\"-t.
(nem teszteltem, lehet hogy nem is mûködik)
Lássuk.
A magyarázat a scriptben van!
#tryinclude <a_samp> //megpróbáljuk elõhívni az a_samp nevezetû include-t.
#tryinclude <zcmd> //ugyan ez, csak most zcmd-vel.
#tryinclude <sscanf2> // lásd feljebb
new csapat[MAX_PLAYERS]; //létrehozzuk a \"mesterséges\" változót \"minden\" játékos számára. (Azért mesterséges, mert nem az alapértelmezett (samp készítõi által létrehozott) csapatváltozót használjuk.
public OnPlayerConnect(playerid) //ha a játékos csatlakozik
{
csapat[playerid] = 0; //beállítjuk a játékos csapatját 0-ra
return 1;
}
forward OnPlayerChangeSpecialTeam(playerid,newteam); //létrehozzuk az eseményt
CMD:csapatvalt(playerid,params[]) //parancs
{
new team; //az új csapat
if(sscanf(params,\"i\", team)) return SendClientMessage(playerid,-1,\"/csapatvalt [új csapat] (0-1-2)\"); //kiírjuk neki hogy hogy kell használni a parancsot
csapat[playerid] = team;
CallLocalFunction(\"OnPlayerChangeSpecialTeam\",\"ii\",playerid,team); //meghívjuk egy vacsorára az eseményt
return 1;
}
Innentõl már használhatjuk az OnPlayerChangeSpecialTeam callbackot, mert az akkor fog bekövetkezni ( :laugh: ), amikor a játékos csapatot vált.
példa:
public OnPlayerChangeSpecialTeam(playerid,newteam)
{
SendClientMessage(playerid,-1,\"Csapatot váltottál!\");
return 1;
}
Köszcsá
« Utoljára szerkesztve: 2012. augusztus 22. - 18:36:26 írta danix99 »
Naplózva