Szerző Téma: OnPlayerExplode  (Megtekintve 1880 alkalommal)

GroX

  • Vendég
OnPlayerExplode
« Dátum: 2010. április 05. - 13:53:42 »
0 Show voters
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 ;)
« Utoljára szerkesztve: 2011. november 22. - 19:48:05 írta APC »

OnPlayerExplode
« Válasz #1 Dátum: 2010. április 05. - 14:42:32 »
0 Show voters
#define CreateExplosion CreateExplosionEx

GroX

  • Vendég
OnPlayerExplode
« Válasz #2 Dátum: 2010. április 05. - 15:10:09 »
0 Show voters
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.

Nem elérhető Epsilon

  • 1854
    • Profil megtekintése
OnPlayerExplode
« Válasz #3 Dátum: 2010. április 12. - 15:22:47 »
0 Show voters
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 elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
OnPlayerExplode
« Válasz #4 Dátum: 2010. április 12. - 16:55:17 »
0 Show voters
Jó kód, de így nincs neki semmi értelme.

OnPlayerExplode
« Válasz #5 Dátum: 2010. április 16. - 16:06:50 »
0 Show voters
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)

Nem elérhető Epsilon

  • 1854
    • Profil megtekintése
OnPlayerExplode
« Válasz #6 Dátum: 2010. május 28. - 14:17:26 »
0 Show voters
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)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal