Nos nem tudom hogy hasznos-e de valakinek jól jöhet.
Eloször hozzuk létre a prototípust:
forward OnPlayerExplode(playerid);
És most a funkciót, amit ha használsz meghívódik a Callbackunk:
CreateExplosionEx(Float:x, Float:y, Float:z, type, Float:radius)
{
CreateExplosion(x,y,z,type,radius); //Robbanás létrehozása
for(new g=0; g < MAX_PLAYERS; g++)
{
if(IsPlayerConnected(g))
{
if(IsPlayerInRangeOfPoint(g,radius,x,y,z)) //A Robbanás hatótávolságán belül van-e
{
CallRemoteFunction(\"OnPlayerExplode\",\"i\",g); //A callback meghívása
}
}
}
return 1; //Visszatérés
}
És akkor jöhet az OnPlayerExplode :)
Public OnPlayerExplode(playerid)
{
//Ide valamit ami történjen :D
return 1;
}
Ha könnyíteni akarod a használatát:
#define CreateExplosion CreateExplosionEx
(thx gémsztár)
Dolgozok még rajta hogy hasznosabb legyen ;)
Ez a függvény nem igazán azt a célt szolgálja, mint amit a neve mutat.
Ugyanis név alapján ennek akkor kéne meghívódnia mikor a játékos felrobban.
De ez akkor hívódik meg mikor a játékosnál robbanás történik.
Az egyszeru OnPlayerExplode függvényt elég meghívni elhalálozásnál az alábbi példában látható feltétel felállításával:
public OnPlayerDeath(playerid, killerid, reason)
{
if(!(reason-51)) return OnPlayerExplode(playerid,killerid);
return 1;
}
Ehhez természetesen a szkriptnek tartalmaznia kell az OnPlayerExplode eljárást és egy hozzá tartozó prototípust, ezenkívül ellenorizni kell hogy a killerid valódi játékoshoz tartozik-e.
Ez a függvény nem igazán azt a célt szolgálja, mint amit a neve mutat.
Ugyanis név alapján ennek akkor kéne meghívódnia mikor a játékos felrobban.
De ez akkor hívódik meg mikor a játékosnál robbanás történik.
Az egyszeru OnPlayerExplode függvényt elég meghívni elhalálozásnál az alábbi példában látható feltétel felállításával:
public OnPlayerDeath(playerid, killerid, reason)
{
if(!(reason-51)) return OnPlayerExplode(playerid,killerid);
return 1;
}
Ehhez természetesen a szkriptnek tartalmaznia kell az OnPlayerExplode eljárást és egy hozzá tartozó prototípust, ezenkívül ellenorizni kell hogy a killerid valódi játékoshoz tartozik-e.
Nem rossz, de .. szerintem nem vetted számításba, mi van akkor, ha nem halt meg, csak robbant?
Akkor már egyszerubb lenne valami ilyesmi...
OnPlayerDeath(playerid, killerid, reason, bool:explode)