#include <a_samp>
#define FILTERSCRIPT
#include <zcmd>
#include <getvehicledriver>
#if defined FILTERSCRIPT
public
OnFilterScriptInit()
{
#else
public
OnGameModeInit()
{
#endif
return 1;
}
// test command
COMMAND:getvehicledriver(playerid, params[])
{
if(isnull(params)) return SendClientMessage(playerid, -1, "Usage: /getvehicledriver [vehicleid 1 - 2000]");
new
str[128],
player1 = GetVehicleDriver(strval(params));
if(player1 != INVALID_PLAYER_ID)
{
new
PlayerN[MAX_PLAYER_NAME];
GetPlayerName(player1, PlayerN, 24);
format(str, sizeof str, "VehicleDriver vehicleid: %d | playerid: %d | PlayerName: %s", GetPlayerVehicleID(player1), player1, PlayerN);
SendClientMessage(playerid, -1, str);
} else {
SendClientMessage(playerid, -1, "No player is the driver as"); // Sorry ****** translate
}
return 1;
}
/*
//old code:
stock
GetVehicleDriver(vehicleid) by.: forum.sa-mp.com user
{
for(new i; i < 500; i++)
{
if(!IsPlayerConnected(i)) continue;
if(GetPlayerState(i) != PLAYER_STATE_DRIVER) continue;
if(GetPlayerVehicleID(i) == vehicleid)
{
return i;
}
}
return -1;
}
*/
#include <a_samp>
/*
GetVehicleDriver function by Zsolesszka aka Phento v1.1
Date 2011.07.23
Example put In OnGameModeInit Or OnFilterScriptInit
*/
static
VehicleDriverPlayerid[MAX_VEHICLES] = { INVALID_PLAYER_ID, ... };
//------------------------------------------------------------------------------
stock
GetVehicleDriver(vehicleid)
{
if(vehicleid < 1 || vehicleid > sizeof(VehicleDriverPlayerid)) return INVALID_PLAYER_ID; // invalid array
if(VehicleDriverPlayerid[vehicleid - 1] != INVALID_PLAYER_ID && IsPlayerInVehicle(VehicleDriverPlayerid[vehicleid - 1], vehicleid) && GetPlayerVehicleSeat(VehicleDriverPlayerid[vehicleid - 1]) == 0)
return VehicleDriverPlayerid[vehicleid - 1]; // return playerid vehicledriver
return VehicleDriverPlayerid[vehicleid - 1] = INVALID_PLAYER_ID;
}
//------------------------------------------------------------------------------
public
OnPlayerStateChange(playerid, newstate, oldstate)
{
// ->
if(newstate == PLAYER_STATE_DRIVER)
{
new
vehicleid = GetPlayerVehicleID(playerid);
if(vehicleid)
{
VehicleDriverPlayerid[vehicleid - 1] = playerid;
}
}
//-<
return 1;
}
//------------------------------------------------------------------------------
GetVehicleDriver(vehicleid)
Returns the ID of the player driving in the vehicle. Returns '-1' if nobody is driving in the vehicle. Код:
stock GetVehicleDriver(vehicleid) { for(new i; i<MAX_PLAYERS; i++) { if (IsPlayerInVehicle(i, vehicleid)) { if(GetPlayerState(i) == 2) { return i; } } } return -1; } |