[Include] GetVehicleDriver(vehicleid)
#1

Download:
http://solidfiles.com/d/ed99/

v1.1
http://solidfiles.com/d/4a198/

Not for loop.

Test script:
pawn Код:
#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;
}
*/



Example code put in OnGameModeInit Or OnFilterScriptInit

pawn Код:
#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;
}

//------------------------------------------------------------------------------
Reply


Messages In This Thread
GetVehicleDriver(vehicleid) - by smeti - 23.07.2011, 22:43
Respuesta: GetVehicleDriver(vehicleid) - by [DOG]irinel1996 - 24.07.2011, 02:05
Re: GetVehicleDriver(vehicleid) - by =WoR=Varth - 24.07.2011, 02:11
Re: GetVehicleDriver(vehicleid) - by Deskoft - 24.07.2011, 03:12
Re: GetVehicleDriver(vehicleid) - by FireCat - 02.10.2011, 09:52
Re: GetVehicleDriver(vehicleid) - by wups - 02.10.2011, 13:33
Re: GetVehicleDriver(vehicleid) - by Michael@Belgium - 02.10.2011, 14:33

Forum Jump:


Users browsing this thread: 1 Guest(s)