Hit a wall with some code
#1

This should kick people out of car ID 420 and 438 who don't have the taxi driver job, but it kicks everyone out, irrespective of their job.

Pastebin
Reply
#2

PHP код:
public OnPlayerStateChange(playeridnewstateoldstate)
{
    if(
IsPlayerNPC(playerid))return 1;
    new 
vehicleid GetPlayerVehicleID(playerid);
    if(
newstate == PLAYER_STATE_DRIVER)
    {
        if(
GetVehicleModel(vehicleid) == 420 || GetVehicleModel(vehicleid) == 438 && PlayerData[playerid][pJob] != JOB_TAXI)
        {
            
RemovePlayerFromVehicle(playerid);
            return 
SendErrorMessage(playerid"You must be a Taxi Driver to use this vehicle.");
        }
    }
    return 
1;

Reply
#3

Here is an example (also evading unnecessary checks beforehand):
pawn Код:
// [ DEVELOPMENT GAMEMODE ]

// INCLUDES:

#include <a_samp>
#include <zcmd>

// DEFINES:

// FUNCTIONS:

#define function%0(%1) forward%0(%1); public%0(%1)

// PER-PLAYER VARIABLES:

new bool:pTaxiDriver[MAX_PLAYERS] = false;

// MAIN:

main()
{
    print("Development Mode: vehicle_types.amx");
}

// CALLBACKS:

public OnGameModeInit()
{
    return 1;
}

public OnGameModeExit()
{
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER)
    {
        if(!IsPlayerTaxiDriver(playerid))
        {
            if(IsPlayerInsideTaxi(playerid))
            {
                RemovePlayerFromVehicle(playerid);
                return SendClientMessage(playerid, -1, "This vehicle is reserved for taxi drivers.");
            }
        }
    }
    return 1;
}

// COMMANDS:

CMD:taxidriveron(playerid, params[])
{
    pTaxiDriver[playerid] = true;
    return 1;
}

CMD:taxidriveroff(playerid, params[])
{
    pTaxiDriver[playerid] = false;
    return 1;
}

// FUNCTIONS:

function bool:IsPlayerInsideTaxi(playerid)
{
    new vehicleid = GetPlayerVehicleID(playerid);
    if(GetVehicleModel(vehicleid) == 420 || GetVehicleModel(vehicleid) == 438) return true;
    return false;
}

function bool:IsPlayerTaxiDriver(playerid) return pTaxiDriver[playerid];
Reply
#4

Quote:
Originally Posted by MarvinPWN
Посмотреть сообщение
PHP код:
public OnPlayerStateChange(playeridnewstateoldstate)
{
    if(
IsPlayerNPC(playerid))return 1;
    new 
vehicleid GetPlayerVehicleID(playerid);
    if(
newstate == PLAYER_STATE_DRIVER)
    {
        if(
GetVehicleModel(vehicleid) == 420 || GetVehicleModel(vehicleid) == 438 && PlayerData[playerid][pJob] != JOB_TAXI)
        {
            
RemovePlayerFromVehicle(playerid);
            return 
SendErrorMessage(playerid"You must be a Taxi Driver to use this vehicle.");
        }
    }
    return 
1;

This still kicks you out if you're a taxi driver.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)