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:
Esto es para que no explote infinitamente y te ahorres un poco de recursos.