Private Vehicle
#1

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
Reply
#2

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");
        }
    }
}
Reply
#3

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;
}
Reply
#4

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

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

move it to OnPlayerStateChange
Reply
#6

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;
}
Reply
#7

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;
}
Reply
#8

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
Reply
#9

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
Reply
#10

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.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)