GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => A témát indította: GroX - 2010. április 05. - 13:53:42

Cím: OnPlayerExplode
Írta: GroX - 2010. április 05. - 13:53:42
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 ;)
Cím: OnPlayerExplode
Írta: Gamestar - 2010. április 05. - 14:42:32
#define CreateExplosion CreateExplosionEx
Cím: OnPlayerExplode
Írta: GroX - 2010. április 05. - 15:10:09
Idézetet írta: Gamestar date=1270471352\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"1247\" data-ipsquote-contentclass=\"forums_Topic
#define CreateExplosion CreateExplosionEx
 
:D kitéve.
Cím: OnPlayerExplode
Írta: Epsilon - 2010. április 12. - 15:22:47
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.
Cím: OnPlayerExplode
Írta: kurta999 - 2010. április 12. - 16:55:17
Jó kód, de így nincs neki semmi értelme.
Cím: OnPlayerExplode
Írta: Gamestar - 2010. április 16. - 16:06:50
Idézetet írta: Epsilon date=1271078567\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"1247\" data-ipsquote-contentclass=\"forums_Topic
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)
Cím: OnPlayerExplode
Írta: Epsilon - 2010. május 28. - 14:17:26
Vannak olyan robbanásfajták, ahol a játékos csak \'robban\' nem pedig \'felrobban\'. Én a kódomat a másodikra írtam. (mert nem sok értelme van meghívni a függvényt, ha a játékos épphogy megsérült vagy azt sem)