[Ayuda] OnPlayerExitVehicle...
#1

buenas a todos, tengo problemas con OnPlayerExitVehicle, kiero ke cuando el vehiculo este cerrado con SetVehicleParamsEx ke no deje bajar a los pasajero ni conductor del vehiculo, hice esto, pero no me funciona :S.

pawn Код:
CALLBACK: OnPlayerExitVehicle(playerid, vehicleid)
{
    GetVehicleParamsEx(vehicleid, Motor, Luces, Alarma, Puertas, Capo, Maletero, Objetivos);
    if(IsPlayerInAnyVehicle(playerid) && Puertas == Activado && GetPlayerVehicleSeat(playerid) == 1 || GetPlayerVehicleSeat(playerid) == 1 || GetPlayerVehicleSeat(playerid) == 2 || GetPlayerVehicleSeat(playerid) == 3)
    {
        if(PutPlayerInVehicle(playerid, vehicleid, 0) || PutPlayerInVehicle(playerid, vehicleid, 1) || PutPlayerInVehicle(playerid, vehicleid, 2) || PutPlayerInVehicle(playerid, vehicleid, 3))
        SendClientMessage(playerid, -1, ""B"    [ ! ] "G"Йste Vehнculo Se Encuentra "B"Cerrado"G"!.");
        return 1;
    }
    return 1;
}
Si alguien me puede ayudar se lo agradezco .

Desde ya muchas Gracias.
Reply
#2

creo que no se puede impedir que un jugador salga de su vehiculo, lo que se me ocurre es poner un timer que lo vuelva a subir
pawn Код:
public OnPlayerExitVehicle(playerid, vehicleid)
{
    GetVehicleParamsEx(vehicleid, Motor, Luces, Alarma, Puertas, Capo, Maletero, Objetivos);
    if(Puertas == Activado) {
        SetTimerEx("PutPlayerInVehicleEx",1500,false,"iii",playerid,vehicleid,GetPlayerVehicleSeat(playerid));
        SendClientMessage(playerid,-1,"Este vehiculo se encuentra cerrado");
        return 0;
    }
    return 1;
}

forward PutPlayerInVehicleEx(playerid, vehicleid, seat);
public  PutPlayerInVehicleEx(playerid, vehicleid, seat) {
    return PutPlayerInVehicle(playerid, vehicleid, seat);
}
Reply
#3

Quote:
Originally Posted by Daniel-92
Посмотреть сообщение
creo que no se puede impedir que un jugador salga de su vehiculo, lo que se me ocurre es poner un timer que lo vuelva a subir
pawn Код:
public OnPlayerExitVehicle(playerid, vehicleid)
{
    GetVehicleParamsEx(vehicleid, Motor, Luces, Alarma, Puertas, Capo, Maletero, Objetivos);
    if(Puertas == Activado) {
        SetTimerEx("PutPlayerInVehicleEx",1500,false,"iii",playerid,vehicleid,GetPlayerVehicleSeat(playerid));
        SendClientMessage(playerid,-1,"Este vehiculo se encuentra cerrado");
        return 0;
    }
    return 1;
}

forward PutPlayerInVehicleEx(playerid, vehicleid, seat);
public  PutPlayerInVehicleEx(playerid, vehicleid, seat) {
    return PutPlayerInVehicle(playerid, vehicleid, seat);
}
Lo probe y hace lo mismo ke el mio, guarda el asiento ke estaba el player, pero lo deja salir :S

Intente cambien blokeando la tecla enter cuando el player esta en el vehiculo y estan cerradas la puertas, pero lo deja salir igual :S.

pawn Код:
if(pressed(KEY_SECONDARY_ATTACK))
    {
        new vehicleid = GetPlayerVehicleID(playerid);
        GetVehicleParamsEx(vehicleid, Motor, Luces, Alarma, Puertas, Capo, Maletero, Objetivos);
        if(IsPlayerInVehicle(playerid, vehicleid) && Puertas == Activado)
        {
            if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
            {
                SendClientMessage(playerid, -1, ""B"    [ ! ] "G"Йste Vehнculo Se Encuentra "B"Cerrado"G"!.");
                return 1;
            }
        }
    }
yo me pregunto como hacen en algunos Servidores lo blokean
Reply
#4

Haz probado que en vez de retornar 1 (true) retorne 0 (false).

EDITO: no me fije, trata con esto:
pawn Код:
if(pressed(KEY_SECONDARY_ATTACK))
    {
        new vehicleid = GetPlayerVehicleID(playerid);
        GetVehicleParamsEx(vehicleid, Motor, Luces, Alarma, Puertas, Capo, Maletero, Objetivos);
        if(IsPlayerInVehicle(playerid, vehicleid) && Puertas == Activado)
        {
            {
                new sitid = GetPlayerVehicleSeat(playerid), Float:Pos[3];
                GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
                SetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
                PutPlayerInVehicle(playerid, vehicleid, sitid);
                return 1;
            }
        }
    }
Reply
#5

Quote:
Originally Posted by Bu11Sh0t
Посмотреть сообщение
Haz probado que en vez de retornar 1 (true) retorne 0 (false).

EDITO: no me fije, trata con esto:
pawn Код:
if(pressed(KEY_SECONDARY_ATTACK))
    {
        new vehicleid = GetPlayerVehicleID(playerid);
        GetVehicleParamsEx(vehicleid, Motor, Luces, Alarma, Puertas, Capo, Maletero, Objetivos);
        if(IsPlayerInVehicle(playerid, vehicleid) && Puertas == Activado)
        {
            {
                new sitid = GetPlayerVehicleSeat(playerid), Float:Pos[3];
                GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
                SetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
                PutPlayerInVehicle(playerid, vehicleid, sitid);
                return 1;
            }
        }
    }
Hace lo mismo ke los otros :S
Reply
#6

Bybytus, tengo un script que en cuanto llegue al pc lo posteos, pero en el conductor no deja, solamente deja en los otros
Reply
#7

pawn Код:
forward ForcePutPlayerInVehicle(playerid, vehicleid, seat);

public OnPlayerExitVehicle(playerid, vehicleid)
{
    GetVehicleParamsEx(vehicleid, Motor, Luces, Alarma, Puertas, Capo, Maletero, Objetivos);
    if(Puertas == Activado) {
    // Acб tu funciуn de lo que quieras que haga para que el jugador no baje.
    ForcePutPlayerInVehicle(playerid, vehicleid, seat); // Acб forzamos al jugador a volver a entrar el vehнculo.
    }
    return 1;
}

public ForcePutPlayerInVehicle(playerid, vehicleid, seat)
{
    if (!seat)
    {
        new Float:PlayerPos[3]; GetPlayerPos(playerid, PlayerPos[0], PlayerPos[1], PlayerPos[2]);
        SetPlayerPos(playerid, PlayerPos[0], PlayerPos[1], PlayerPos[2]);
    }
    PutPlayerInVehicle(playerid, vehicleid, seat);
}
Reply
#8

Quote:
Originally Posted by TiNcH010
Посмотреть сообщение
pawn Код:
forward ForcePutPlayerInVehicle(playerid, vehicleid, seat);

public OnPlayerExitVehicle(playerid, vehicleid)
{
    GetVehicleParamsEx(vehicleid, Motor, Luces, Alarma, Puertas, Capo, Maletero, Objetivos);
    if(Puertas == Activado) {
    // Acб tu funciуn de lo que quieras que haga para que el jugador no baje.
    ForcePutPlayerInVehicle(playerid, vehicleid, seat); // Acб forzamos al jugador a volver a entrar el vehнculo.
    }
    return 1;
}

public ForcePutPlayerInVehicle(playerid, vehicleid, seat)
{
    if (!seat)
    {
        new Float:PlayerPos[3]; GetPlayerPos(playerid, PlayerPos[0], PlayerPos[1], PlayerPos[2]);
        SetPlayerPos(playerid, PlayerPos[0], PlayerPos[1], PlayerPos[2]);
    }
    PutPlayerInVehicle(playerid, vehicleid, seat);
}
:S, sigue Haciendo l omismo ke los otros, ya, creo ke no se puede en OnPlayerEnterVehicle

pero lo ke no entiendo pro hacen en los servidores rp para hacer ke se blokee, me he fijado en algunos GMs en los comandos /Lock etc y solo tiene una variable ke blokea pero solo lo tiene alli o_O
Reply
#9

Quote:
Originally Posted by bytytus
Посмотреть сообщение
:S, sigue Haciendo l omismo ke los otros, ya, creo ke no se puede en OnPlayerEnterVehicle

pero lo ke no entiendo pro hacen en los servidores rp para hacer ke se blokee, me he fijado en algunos GMs en los comandos /Lock etc y solo tiene una variable ke blokea pero solo lo tiene alli o_O
Lo que te pasй deberнa funcionar correctamente cerrando las puertas y no dejar salir a los ocupantes del vehнculo. Es correcto por que lo testee y funciona perfecto.
Reply
#10

Bueno, entonces el problema no esta en este cуdigo, pasa el cуdigo de /lock
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)