Как узнать ID чела по ID авто?
#10

Quote:
Originally Posted by stabker
Посмотреть сообщение
Вот так нужно:
pawn Код:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(newstate == PLAYER_STATE_PASSENGER || newstate == PLAYER_STATE_DRIVER)
    {
        Seat_in_Vehicle[GetPlayerVehicleID(playerid)-1] [GetPlayerVehicleSeat(playerid)] = playerid;
        SetPVarInt(playerid, "InVehicle", GetPlayerVehicleID(playerid)), SetPVarInt(playerid, "VehSeat", GetPlayerVehicleSeat(playerid));
    }
    else if(oldstate == PLAYER_STATE_PASSENGER || oldstate == PLAYER_STATE_DRIVER)
    {
        Seat_in_Vehicle[GetPVarInt(playerid, "InVehicle")-1][GetPVarInt(playerid, "VehSeat")] = INVALID_PLAYER_ID;
        DeletePVar(playerid, "InVehicle"), DeletePVar(playerid, "VehSeat");
    }
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    if(GetPVarInt(playerid, "InVehicle")) Seat_in_Vehicle[GetPVarInt(playerid, "InVehicle")-1][GetPVarInt(playerid, "VehSeat")] = INVALID_PLAYER_ID;
}
Quote:
Originally Posted by eakwarp
Посмотреть сообщение
Пвары медленнее переменных, и предназначены для серверов остро обделенных оперативной памятью. Так что не комильфо.
Это всё не так уж и страшно... Время в основном занимает выделение памяти. Так что в его примере DeletePVar это действительно УГ, т.к. каждый раз SetPVarInt(playerid, "InVehicle", GetPlayerVehicleID(playerid)) будет выделять память, что не есть хорошо... а так сойдёт.

И вообще правильней было бы называть LastVehID, LastSeatID и т.д. И ещё, разве при дисконекте не вызывается OnPlayerStateChange ?
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)