public OnGameModeInit()
{
SetTimer("NOPHacksCheck", 1000, true);
return 1;
}
forward NOPHacksCheck(playerid);
public NOPHacksCheck(playerid)
{
// NOP Vehicle Cheat
new vehicleid = GetPlayerVehicleID(playerid);
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if(IsLeoVehicle(vehicleid) && PlayerInfo[playerid][pFac] != 1 || IsTruckerVehicle(vehicleid) && PlayerInfo[playerid][pJob] != JOB_TRUCKER)
{
new string[128];
format(string, sizeof(string), "AdmWarn: %s(%d) might be Desynced or using NOP hacks. (Driving Restricted Vehicle - Vehicle Model: %d))", RPN(playerid), playerid, GetVehicleModel(vehicleid));
SendAdminMessage(COLOR_DARKRED, 1, string);
RemovePlayerFromVehicle(playerid);
}
}
return 1;
}
forward NOPHacksCheck();
public NOPHacksCheck()
{
static MaxP;
if(!MaxP)
MaxP = GetMaxPlayers();
// NOP Vehicle Cheat
for(new playerid=0; playerid != MaxP; playerid++)
if(IsPlayerConnected(playerid))
{
new vehicleid = GetPlayerVehicleID(playerid);
if(!(0 < vehicleid < MAX_VEHICLES)) continue;
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if(IsLeoVehicle(vehicleid) && PlayerInfo[playerid][pFac] != 1 || IsTruckerVehicle(vehicleid) && PlayerInfo[playerid][pJob] != JOB_TRUCKER)
{
new string[128];
format(string, sizeof(string), "AdmWarn: %s(%d) might be Desynced or using NOP hacks. (Driving Restricted Vehicle - Vehicle Model: %d))", RPN(playerid), playerid, GetVehicleModel(vehicleid));
SendAdminMessage(COLOR_DARKRED, 1, string);
RemovePlayerFromVehicle(playerid);
}
}
}
return 1;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(IsLeoVehicle(vehicleid) && PlayerInfo[playerid][pFac] != 1 || IsTruckerVehicle(vehicleid) && PlayerInfo[playerid][pJob] != JOB_TRUCKER)
{
TogglePlayerControllable(playerid,false);
TogglePlayerControllable(playerid,true);
return 0;
}
return 1;
}
Check OnPlayerEnterVehicle or OnPlayerStateChange and block player
|
if(IsLeoVehicle(vehicleid) && PlayerInfo[playerid][pFac] != 1 || IsTruckerVehicle(vehicleid) && PlayerInfo[playerid][pJob] != JOB_TRUCKER)
{
new string[128];
format(string, sizeof(string), "AdmWarn: %s(%d) might be Desynced or using NOP hacks. (Driving Restricted Vehicle - Vehicle Model: %d))", RPN(playerid), playerid, GetVehicleModel(vehicleid));
SendAdminMessage(COLOR_DARKRED, 1, string);
RemovePlayerFromVehicle(playerid);
print("Debug 2 OnPlayerEnterVehicle");
}