Funciуn Car Jack
#1

Buenas,

He mirado un par de tutoriales de como hacer una funciуn para que congele a un jugador cuando intenta entrar a un vehнculo cuando ya hay alguien dentro (como conductor).

Asн es como me ha quedado:

pawn Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
   for(new i=0; i<MAX_PLAYERS; i++)
   {
       if(ispassenger) return 1;
       {
           if(IsPlayerConnected(i) && IsPlayerInVehicle(i, vehicleid) && GetPlayerState(i) == PLAYER_STATE_DRIVER)
           {
           new Float:x, Float:y, Float:z;
           GetPlayerPos(playerid,x,y,z);
           SetPlayerPos(playerid,x,y,z);
           GameTextForPlayer(playerid,"~r~NO HAGAS CAR JACK",2000,3);
           TogglePlayerControllable(playerid,0);
           SetTimerEx("Congelado",3000,false,"i",playerid);
           }
       }
   }
   return 1;
}

//----------------------------------------
forward Congelado(playerid);
public Congelado(playerid)
{
   TogglePlayerControllable(playerid,1);
   return 1;
}
El problema es que al probarlo dentro del juego, no funciona. El jugador saca al otro y entra sin problemas.

Espero que me puedan ayudar, gracias.
Reply
#2

pawn Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    if( ! ispassenger )
    {
        for(new i; i < MAX_PLAYERS; i++)
        {
            if(IsPlayerConnected(i) && IsPlayerInVehicle(i, vehicleid) && GetPlayerState(i) == PLAYER_STATE_DRIVER)
            {
                new Float:PLY_POS[3];
                GetPlayerPos(playerid, PLY_POS[0], PLY_POS[1], PLY_POS[2]);
                SetPlayerPos(playerid, PLY_POS[0], PLY_POS[1], PLY_POS[2] + 0.5);
                return GameTextForPlayer(playerid,"~R~NO HAGAS CAR JACK", 2000, 3);
            }
        }
    }
    return 1;
}
Reply
#3

Sigue sacando al conductor del vehнculo...
Reply
#4

Quote:
Originally Posted by MrNatrio
Посмотреть сообщение
Sigue sacando al conductor del vehнculo...
Por que es ese evento es llamado cuando se sienta en el asiento. Habrнa que ver si en OnPlayerStateChange "PLAYER_STATE_ENTER_VEHICLE_DRIVER" es cuando abre la puerta o es cuando se sientan tambiйn.

Tambiйn podrнas probar con PutPlayerInVehicle para el que sacaron.
Reply
#5

Entonces asн, pero OnPlayerStateChange es cuando cambia el estado del jugador, ejemplo: estaba a pie y paso a estar como conductor. OnPlayerEnterVehicle es cuando ingresa al vehнculo (sin estar sentado).

pawn Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    if( ! ispassenger )
    {
        for(new i; i < MAX_PLAYERS; i++)
        {
            if(IsPlayerConnected(i) && IsPlayerInVehicle(i, vehicleid) && GetPlayerState(i) == PLAYER_STATE_DRIVER)
            {
                new Float:PLY_POS[3];
                GetPlayerPos(playerid, PLY_POS[0], PLY_POS[1], PLY_POS[2]);
                SetPlayerPos(playerid, PLY_POS[0], PLY_POS[1], PLY_POS[2] + 2.0);
                return GameTextForPlayer(playerid,"~R~NO HAGAS CAR JACK", 2000, 3);
            }
        }
    }
    return 1;
}
Reply
#6

Quote:
Originally Posted by LiMPiTo
Посмотреть сообщение
Entonces asн, pero OnPlayerStateChange es cuando cambia el estado del jugador, ejemplo: estaba a pie y paso a estar como conductor. OnPlayerEnterVehicle es cuando ingresa al vehнculo (sin estar sentado).
Pensй que era al revйs xD Si es llamado cuando habre la puerta entonces con un "ClearAnimations" deberнa bastar.
Reply
#7

Si lo pongo en: OnPlayerStateChange y agrego esta funciуn: PLAYER_STATE_ENTER_VEHICLE_DRIVER, entonces al querer entrar a un vehнculo con alguien dentro, lo saca y el jugador que estaba dentro, se queda encima del vehнculo...
Reply
#8

Intentб con la ъltima manera que te pase, ahн levanta la posiciуn 2.0, se supone que termina con la animaciуn de sacar del vehнculo a la otra persona.
Reply
#9

Quote:
Originally Posted by LiMPiTo
Посмотреть сообщение
Intentб con la ъltima manera que te pase, ahн levanta la posiciуn 2.0, se supone que termina con la animaciуn de sacar del vehнculo a la otra persona.
Es que justamente me pasa esto con la manera que me has dicho... :/
Reply
#10

Entonces no sabrнa que decirte, yo lo tengo de esa manera y me funciona sin problemas (a menos que estй completamente lag, ya que ni siquiera mueve la posiciуn del jugador).

Otra soluciуn es utilizar RemovePlayerFromVehicle para cuando el jugador se suba lo baje por CJ.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)