SA-MP Forums Archive
Problem al hacer que todos mueran - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: Problem al hacer que todos mueran (/showthread.php?tid=254834)



Problem al hacer que todos mueran - Software - 13.05.2011

Hise un sistema de "BOMBA NUCLEAR" pero el problema es que al detonarla solo me mata ami, quisiera saber como hacer para que todos los player de X zona donde se detono la bomba mueran?? porfavor que me explique ya que no soy muy experto en esto de pawn xd


Respuesta: Problem al hacer que todos mueran - Daniel-92 - 13.05.2011

usa un bucle que verifique a todos los jugadores para comprobar que esten cerca de la bomba y si es asi los matas, para verificar que esten cerca usa IsPlayerInRangeOfPoint


Respuesta: Problem al hacer que todos mueran - admantis - 13.05.2011

pawn Код:
foreach(Player, i) // for(new i=0;i<MAX_PLAYERS;i++)
{
    if (IsPlayerInRangeOfPoint(i, /*distancia*/, bombaX, bombaY, bombaZ))
    {
        SetPlayerHealth(i, 0.00);
        SetPlayerArmour(i, 0.00);
    }
}
Obviamente debes cambiar todo eso con respecto a tu cуdigo.


Respuesta: Problem al hacer que todos mueran - Software - 13.05.2011

Quote:
Originally Posted by Daniel-92
Посмотреть сообщение
usa un bucle que verifique a todos los jugadores para comprobar que esten cerca de la bomba y si es asi los matas, para verificar que esten cerca usa IsPlayerInRangeOfPoint
Pero eso identifica si el PLAYER esta cerca del punto X


Respuesta: Problem al hacer que todos mueran - Software - 13.05.2011

Quote:
Originally Posted by admantis
Посмотреть сообщение
pawn Код:
foreach(Player, i) // for(new i=0;i<MAX_PLAYERS;i++)
{
    if (IsPlayerInRangeOfPoint(i, /*distancia*/, bombaX, bombaY, bombaZ))
    {
        SetPlayerHealth(i, 0.00);
        SetPlayerArmour(i, 0.00);
    }
}
Obviamente debes cambiar todo eso con respecto a tu cуdigo.
no entendi >.<


Respuesta: Problem al hacer que todos mueran - Daniel-92 - 13.05.2011

Quote:
Originally Posted by Software
Посмотреть сообщение
no entendi >.<
debes anexar el codigo que te dio adamantis a tu sistema y cambiar las coordenadas bombaX,bombaY,bombaZ y si no tienes definido el foreach usa el el for que esta como comentario


Re: Respuesta: Problem al hacer que todos mueran - o_O - 13.05.2011

Quote:
Originally Posted by Software
Посмотреть сообщение
no entendi >.<
A ver, el cуdigo que te dieron sigue la siguiente lуgica.

Primero, se explota la bomba, la bomba tiene coordenadas x,y,z.

Segundo, definнs que a todos los jugadores a una distancia d que vos definas, no sй 5 metros, 100 metros, un millуn de kilуmetros, no sй, lo que quieras, les deje la vida en 0.

Entonces, resumiendo necesitбs:

1. Recorrer todos los jugadores
2. Ver para cada uno, si estб cerca ( o sea a una distancia d ) del punto (x,y,z) que es donde estб la bomba.
3. Darles 0 de vida.
4. Listo.


Eso es justamente lo que hace el cуdigo que te dieron.


Respuesta: Re: Respuesta: Problem al hacer que todos mueran - Software - 13.05.2011

Quote:
Originally Posted by o_O
Посмотреть сообщение
A ver, el cуdigo que te dieron sigue la siguiente lуgica.

Primero, se explota la bomba, la bomba tiene coordenadas x,y,z.

Segundo, definнs que a todos los jugadores a una distancia d que vos definas, no sй 5 metros, 100 metros, un millуn de kilуmetros, no sй, lo que quieras, les deje la vida en 0.

Entonces, resumiendo necesitбs:

1. Recorrer todos los jugadores
2. Ver para cada uno, si estб cerca ( o sea a una distancia d ) del punto (x,y,z) que es donde estб la bomba.
3. Darles 0 de vida.
4. Listo.


Eso es justamente lo que hace el cуdigo que te dieron.
mira lo que hice es esto:
pawn Код:
public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == PickBombaNuclear)
{
GangZoneFlashForAll(Zonea51,blanco2);
        SendClientMessageToAll(blanco,"***** ЎUNA BOMBA NUCLEAR EN EL AREA51 SERA DETONADA EN 1 MINUTO! *****");
        SetPlayerCheckpoint(playerid, 214.0679,1824.1951,6.4141, 3.5);
        timer5 = SetTimer("bombanuclear",60000,false);
}
return 1;
}

forward bombanuclear(playerid);
public bombanuclear(playerid)
{
for(new i=0;i<MAX_PLAYERS;i++)
{
    if (IsPlayerInRangeOfPoint(i, 500, 214.0679,1824.1951,6.4141))
    {
        SetPlayerHealth(i, 0.00);
        SetPlayerArmour(i, 0.00);
    }
}
return 1;
}
asi deveria ser??


Respuesta: Problem al hacer que todos mueran - admantis - 13.05.2011

Yo lo veo bien


Respuesta: Re: Respuesta: Problem al hacer que todos mueran - o_O - 13.05.2011

Quote:
Originally Posted by Software
Посмотреть сообщение
mira lo que hice es esto:
pawn Код:
public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == PickBombaNuclear)
{
GangZoneFlashForAll(Zonea51,blanco2);
        SendClientMessageToAll(blanco,"***** ЎUNA BOMBA NUCLEAR EN EL AREA51 SERA DETONADA EN 1 MINUTO! *****");
        SetPlayerCheckpoint(playerid, 214.0679,1824.1951,6.4141, 3.5);
        timer5 = SetTimer("bombanuclear",60000,false);
}
return 1;
}

forward bombanuclear(playerid);
public bombanuclear(playerid)
{
for(new i=0;i<MAX_PLAYERS;i++)
{
    if (IsPlayerInRangeOfPoint(i, 500, 214.0679,1824.1951,6.4141))
    {
        SetPlayerHealth(i, 0.00);
        SetPlayerArmour(i, 0.00);
    }
}
return 1;
}
asi deveria ser??
Impecable.

Agrega tambien a tu funcion de explotar bomba:

pawn Код:
KillTimer(timer5);
Esto es para que no explote infinitamente y te ahorres un poco de recursos.