static oldData[MAX_PLAYERS][2];
new newstate = GetPlayerState(playerid); // Получаем состояние игрока
if(newstate == PLAYER_STATE_DRIVER)
{
new newveh = GetPlayerVehicleID(playerid); // Получаем ID транспортного средства в котором сидит игрок
if((oldData[playerid][0] == PLAYER_STATE_DRIVER || oldData[playerid][0] == PLAYER_STATE_PASSENGER) && oldData[playerid][1] != INVALID_VEHICLE_ID && newveh != oldData[playerid][1])
{
SetVehicleVelocity(newveh, 0.0, 0.0, 0.0); // Останавливаем подкинутый автомобиль
new str[100]; // Создаем переменные
GetPlayerName(playerid, str, sizeof(str)); // Получаем ник игрока
format(str, sizeof(str), "Игрок {ffffaa}%s(%d){ffffff} был кикнут за использование читов", str, playerid);
SendClientMessageToAll(0xffffffff, str); // Отправляем всем игрокам сообщение в чат
Kick(playerid); // Кикаем игрока
oldData[playerid] = {PLAYER_STATE_NONE, INVALID_VEHICLE_ID};
return 1;
}
oldData[playerid][1] = newveh; // Устанавливаем "старый" ID транспортного средства
}
else
{
oldData[playerid][1] = INVALID_VEHICLE_ID;
}
oldData[playerid][0] = newstate; // Устанавливаем "старое" состояние игрока
GetPVarInt в public OnPlayerUpdate?
Уже говорилось о том что пивары медленные при записи и считывании. И сувать их в пакетник тем более не оптимальный вариант. НО для того чтобы показать суть, достаточно. Цифры 2 надо заменивать на существующие всем известные константы: PLAYER_STATE_DRIVER |
public OnPlayerUpdate(playerid) {
static oldData[MAX_PLAYES][2];
new newstate = GetPlayerState(playerid); // Получаем состояние игрока
if(newstate == PLAYER_STATE_DRIVER) // Если игрок сидит на водительском месте то...
{
new newveh = GetPlayerVehicleID(playerid); // Получаем ID транспортного средства в котором сидит игрок
if(oldData[playerid][0] == PLAYER_STATE_DRIVER && oldData[playerid][1] != INVALID_VEHICLE_ID && newveh != oldData[playerid][1]) // Если игрок раньше сидел на водительском месте и игрок сменил автомобиль то...
{
new str[100]; // Создаем переменные
GetPlayerName(playerid, str, sizeof(str)); // Получаем ник игрока
format(str, sizeof(str), "Игрок {ffffaa}%s(%d){ffffff} был кикнут за использование читов", str, playerid);
SendClientMessageToAll(0xffffffff, str); // Отправляем всем игрокам сообщение в чат
Kick(playerid); // Кикаем игрока
oldData[playerid] = {PLAYER_STATE_NONE, INVALID_VEHICLE_ID};
return 1;
}
oldData[playerid][1] = newveh; // Устанавливаем "старый" ID транспортного средства
} else {
oldData[playerid][1] = INVALID_VEHICLE_ID;
}
oldData[playerid][0] = newstate; // Устанавливаем "старое" состояние игрока
return 1;
}