[AYUDA] Coordenada Z
#1

bueno tengo entendido que la coordenada Z es la que define la altura de un jugador...
bueno eh visto que en servers de crash and burns, en mapas de gran altura, cuando un vehiculo cae de la plataforma, ese vehiculo explota...
quisiera saber como definir para que cuando un jugador caiga, osea su altura cambie, explote, me imagino q sera con la coordenada Z, intente hacerlo pero no tube exito
Reply
#2

SetPlayerPos(playerid, X, Y, Z+cantidad);
Reply
#3

pawn Код:
new
    Float: fPos[3]
    ;

GetPlayerPos(playerid, fPos[0], fPos[1], fPos[2]);

if (fPos[2] < 10.123)
{
    // Aquн lo que quieres hacer si la altura del jugador es menor a 10.123
}
Reply
#4

aca otra forma de hacerlo:
pawn Код:
public OnPlayerUpdate(playerid)
{
    new Float: Pos[3];
    GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
    if(Pos[2] < altura && IsPlayerInAnyVehicle(playerid))SetVehicleHealth(GetPlayerVehicleID(playerid), 0.0);
    return 1;
}
Nota: Si ya se q no te gusta mi forma "desordenada de scriptear MrDeath" xD
Reply
#5

Quote:
Originally Posted by the_chaoz
Посмотреть сообщение
aca otra forma de hacerlo:
pawn Код:
public OnPlayerUpdate(playerid)
{
    new Float: Pos[3];
    GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
    if(Pos[2] < altura && IsPlayerInAnyVehicle(playerid))SetVehicleHealth(GetPlayerVehicleID(playerid), 0.0);
    return 1;
}
Nota: Si ya se q no te gusta mi forma "desordenada de scriptear MrDeath" xD
Demasiado desordenado.

Ademas de que en OnPlayerUpdate cuando esta demasiado cargado se pueden perder paquetes y hacer cualquier cosa.

Ejecutaria el codigo cuando en realidad esta a una altura mayor, por algun problema de coneccion.
Reply
#6

Quote:
Originally Posted by xenowort
Посмотреть сообщение
Demasiado desordenado.
Es mi forma de scriptear, personal y mia xD yo me tengo q entender ademas era para death metido, xq el es mi opuesto casi en esto

Quote:
Originally Posted by xenowort
Посмотреть сообщение
Ademas de que en OnPlayerUpdate cuando esta demasiado cargado se pueden perder paquetes y hacer cualquier cosa.

Ejecutaria el codigo cuando en realidad esta a una altura mayor, por algun problema de coneccion.
Falso, un codigo tan simple no carga demasiado nada, y aun q se perdiera 1 paquete, eso no afectaria xq si se pierde 1 paquete, se pierde el paquete entero no medio... x ende el codigo funciona, se puede poner un if mas para chequear q se encuentra en un evento o algo asi, pero x lo q creo q el necesita, ese codigo esta bien.
Reply
#7

Quote:
Originally Posted by the_chaoz
Посмотреть сообщение
Es mi forma de scriptear, personal y mia xD yo me tengo q entender ademas era para death metido, xq el es mi opuesto casi en esto



Falso, un codigo tan simple no carga demasiado nada, y aun q se perdiera 1 paquete, eso no afectaria xq si se pierde 1 paquete, se pierde el paquete entero no medio... x ende el codigo funciona, se puede poner un if mas para chequear q se encuentra en un evento o algo asi, pero x lo q creo q el necesita, ese codigo esta bien.
Es muy mala la forma tuya, en los lenguajes de programacion estructurados no se puede usar el if sin llaves.

En realidad es verdadero, el codigo se ejecutaria pero el jugador podria estar pauseado en ese momento y detecte otra cosa. Entende la sincronizacion de SA-MP. xD
Reply
#8

Jaja, yo tambiйn juego en ese servidor y me gusta mucho.

Para hacerlo, consigue las coordenadas del vehiculo, si estб a menos de cierta altura (z), creas una explosiуn o varias alrededor del vehiculo.

pawn Код:
public OnPlayerUpdate(playerid)
{
    new
        Float:x,
        Float:y,
        Float:z,
        Float:health;
       
    GetVehiclePos(GetPlayerVehicleID(playerid), x, y, z);
        GetPlayerHealth(playerid, health);
    if((POSICON_Y > z) && (0.0 < health)) // Cambia POSICION_Y por la altura mнnima antes de explotar.
    {
        CreateExplosion(x, y, z - 1.5, 10.0);
        CreateExplosion(x, y, z, 10.0);
        CreateExplosion(x, y, z + 1.5, 10.0);
    }
    return 1;
}
Reply
#9

Quote:
Originally Posted by xenowort
Посмотреть сообщение
Es muy mala la forma tuya, en los lenguajes de programacion estructurados no se puede usar el if sin llaves.
no es realmente necesario. asi que tengo que decirte que no. es como que me discutas que en vb.net todo if tiene que tener un end if, estarias discutiendo un absurdo.

Quote:
Originally Posted by xenowort
Посмотреть сообщение
En realidad es verdadero, el codigo se ejecutaria pero el jugador podria estar pauseado en ese momento y detecte otra cosa. Entende la sincronizacion de SA-MP. xD
si esta pausado cambia el concepto y no se actualiza el cliente del mismo modo. Ej:
vas en un vehiculo cualquiera acelerando, pauseas. Los jugadores cercanos veran q desaceleras hasta frenar. pero tu al salir de la pausa, estaras en la ultima posicion donde estabas al poner la pausa y no en la que los demas creyeron que estabas.

creeme la entiendo bien. y no me voy a desviar mas del topic. si queres lo discutimos x pm o msn
Reply
#10

gracias por sus respuestas, ahorita no puedo testear, pero bien lo haga edito este mensaje, gracias a todos..
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)