SA-MP Forums Archive
Private Vehicle - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Private Vehicle (/showthread.php?tid=332443)



Private Vehicle - RenSoprano - 08.04.2012

Hello I make my own Vip System and I want to know why my private vehicle didn't work

pawn Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    if(VIPVehicles[playerid] == 1)
    {
        if(PlayerData[playerid][vip] >= 1)
        {
            return 1;
        }
        else if(PlayerData[playerid][vip] == 0)
        {
            RemovePlayerFromVehicle(playerid);
            SendClientMessage(playerid, COLOR_YELLOW, "You are not a VIP");
        }
    }
    return 1;
}
When Player enter in vehicle and he is not Vip didn't eject player


Re: Private Vehicle - Reklez - 08.04.2012

move it OnPlayerKeyStateChange

pawn Код:
if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER) //checks if player is driver or passenger
{
    if(VIPVehicles[playerid] == 1)
    {
        if(PlayerData[playerid][vip] >= 1)
        {
            return 1;
        }
        else if(PlayerData[playerid][vip] == 0)
        {
            RemovePlayerFromVehicle(playerid);
            SendClientMessage(playerid, COLOR_YELLOW, "You are not a VIP");
        }
    }
}



Re: Private Vehicle - RenSoprano - 08.04.2012

Okay I do it but I get this error undefined symbol "newstate"


pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
    {
        if(VIPVehicles[playerid] == 1)
        {
            if(PlayerData[playerid][vip] >= 1)
            {
                return 1;
            }
            else if(PlayerData[playerid][vip] == 0)
            {
                RemovePlayerFromVehicle(playerid);
                SendClientMessage(playerid, COLOR_YELLOW, "You are not a VIP");
            }
        }
    }
    return 1;
}



Re: Private Vehicle - antonio112 - 08.04.2012

You moved it in the wrong callback. Rekklez gave it wrong, It's not "OnPlayerKeyStateChange" ... Move it to "OnPlayerStateChange". Two different callbacks.


Re: Private Vehicle - Reklez - 08.04.2012

lol i'm fuck up between with OnPlayerKeyStateChange and OnPlayerStateChange.

move it to OnPlayerStateChange


Re: Private Vehicle - mineralo - 08.04.2012

try other way
pawn Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    if(VIPVehicles[playerid] == 1)
    {
        if(PlayerData[playerid][vip] >= 1)
        {
            return 1;
        }
        else if(PlayerData[playerid][vip] == 0)
        {
            GetPlayerPos(playerid,Float:LocX,Float:LocY,Float:LocZ);
            SetPlayerPos(playerid,Float:LocX,Float:LocY,Float:LocZ);
            SendClientMessage(playerid, COLOR_YELLOW, "You are not a VIP");
        }
    }
    return 1;
}



Re: Private Vehicle - SkyWings - 08.04.2012

Try this one

Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{

  new newstate[256];

    if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
    {
        if(VIPVehicles[playerid] == 1)
        {
            if(PlayerData[playerid][vip] >= 1)
            {
                return 1;
            }
            else if(PlayerData[playerid][vip] == 0)
            {
                RemovePlayerFromVehicle(playerid);
                SendClientMessage(playerid, COLOR_YELLOW, "You are not a VIP");
            }
        }
    }
    return 1;
}



Re: Private Vehicle - Reklez - 08.04.2012

Quote:
Originally Posted by mineralo
Посмотреть сообщение
try other way
pawn Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    if(VIPVehicles[playerid] == 1)
    {
        if(PlayerData[playerid][vip] >= 1)
        {
            return 1;
        }
        else if(PlayerData[playerid][vip] == 0)
        {
            GetPlayerPos(playerid,Float:LocX,Float:LocY,Float:LocZ);
            SetPlayerPos(playerid,Float:LocX,Float:LocY,Float:LocZ);
            SendClientMessage(playerid, COLOR_YELLOW, "You are not a VIP");
        }
    }
    return 1;
}
This should not work OnPlayerEnterVehicle callled when player enters vehicle.
OnPlayerStateChange called when a player changes state.

Quote:
Originally Posted by SkyWings
Посмотреть сообщение
Try this one

Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{

  new newstate[256];

    if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
    {
        if(VIPVehicles[playerid] == 1)
        {
            if(PlayerData[playerid][vip] >= 1)
            {
                return 1;
            }
            else if(PlayerData[playerid][vip] == 0)
            {
                RemovePlayerFromVehicle(playerid);
                SendClientMessage(playerid, COLOR_YELLOW, "You are not a VIP");
            }
        }
    }
    return 1;
}
What?, that will not solve the problem the solution is to move the code OnPlayerStateChange


Re: Private Vehicle - mineralo - 08.04.2012

Quote:
Originally Posted by Reklez
Посмотреть сообщение
This should not work OnPlayerEnterVehicle callled when player enters vehicle.
OnPlayerStateChange called when a player changes state.
its should work because I use myself, and this make not enter in vehicle but onplayerstatechange work only when player get in vehicle, and better onplayerentervehicle


Re: Private Vehicle - Reklez - 08.04.2012

What do you think if player use a command and spawn a car (example only) that for vip only and the scripter forgot to add the code that will vip can only use it? do you think OnPlayerEnterVehicle will called? No.

OnPlayerStateChange called when player change state. so the code i give will work and called even a player spawns a vip vehicle without permission.