Здравствуйте написал анти чит но когда автомобиле спавняться они сразу взрываются помогите разобраться и когда вызов авто делаю через /veh тоже самое сразу загорается потом как снова авто заспавнилось все нормально не загорается не чего и потом анти чит не выдает ложные срабатывания
PHP код:
static Float: SetVehicleHP[MAX_VEHICLES];
static SetVehicleHPTime[MAX_VEHICLES];
#if !defined AC_HP__IGNORE_TIME
#define AC_HP__IGNORE_TIME 1000
#endif
PHP код:
public OnVehicleSpawn(vehicleid)
{
SetVehicleHPTime[vehicleid] = GetTickCount()+AC_HP__IGNORE_TIME;
SetVehicleHP[vehicleid] = 1000;
SetVehicleHealthAC(vehicleid, SetVehicleHP[vehicleid]);
return 1;
}
PHP код:
public OnVehicleDamageStatusUpdate(vehicleid, playerid)
{
SetVehicleHPTime[vehicleid] = GetTickCount()+AC_HP__IGNORE_TIME;
return 1;
}
PHP код:
if(strcmp(cmd, "/veh", true) == 0)
{
if (PlayerInfo[playerid][pAdmin] < 5)
return SendClientMessage(playerid, COLOR_WHITE, !"Вам не доступна данная функция");
cmd = strtok(cmdtext, idx);
if(!strlen(cmd))
return SendClientMessage(playerid, COLOR_WHITE, !"Введите: /veh [carid] [цвет1] [цвет2]");
new car = strval(cmd);
if(car < 400 || car > 611)
return SendClientMessage(playerid, COLOR_WHITE, !"Номер машины не может быть меньше 400 и больше чем 611!");
cmd = strtok(cmdtext, idx);
if(!strlen(cmd))
return SendClientMessage(playerid, COLOR_WHITE, !"Введите: /veh [carid] [цвет1] [цвет2]");
new color1 = strval(cmd);
if(color1 < 0 || color1 > 126)
return SendClientMessage(playerid, COLOR_WHITE, !"Номер цвета не может быть меньше 0 и больше 126!");
cmd = strtok(cmdtext, idx);
if(!strlen(cmd))
return SendClientMessage(playerid, COLOR_WHITE, !"Введите: /veh [id машины] [цвет1] [цвет2]");
new color2 = strval(cmd);
if(color2 < 0 || color2 > 126)
return SendClientMessage(playerid, COLOR_WHITE, !"Номер цвета не может быть меньше 0 и больше 126!");
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X,Y,Z);
SetVehicleHP[car] = 1000;
SetVehicleHealthAC(v, SetVehicleHP[car]);
CreateVehicle(car, X,Y,Z, 0.0, color1, color2, 60000);
return true;
}
секундный таймер
PHP код:
for(new v = 0, q = GetVehiclePoolSize(); v <= q; v++)
{
new Float: hp1;
GetVehicleHealth(v, hp1);
if(_:SetVehicleHP[v] != _:hp1)
{
if( (SetVehicleHP[v] > hp1) && (GetTickCount() > SetVehicleHPTime[v]) )
{
SetVehicleHP[v] = hp1;
}
else if(SetVehicleHP[v] < hp1)
{
static const admins[] = "<<Warning>> Игрок %s[%d]: Возможно чит на починку авто";
static string[sizeof(admins) + (-2 + 30) + (-2 + 3)];
format(string, sizeof(string), admins, PlayerInfo[i][pName], i);
SendAdminMessage(COLOR_RED, string);
SetVehicleHealthAC(v, SetVehicleHP[v]);
}
else return 1;
}
}
PHP код:
stock SetVehicleHealthAC(vehicleid, Float:health)
{
SetVehicleHPTime[vehicleid] = GetTickCount()+AC_HP__IGNORE_TIME;
SetVehicleHP[vehicleid] = health;
return SetVehicleHealth(vehicleid, health);
}
#if defined _ALS_SetVehicleHealth
#undef SetVehicleHealth
#else
#define _ALS_SetVehicleHealth
#endif
#define SetVehicleHealth SetVehicleHealthAC
stock GetVehicleHealthAC(vehicleid, &Float:health)
{
health = SetVehicleHP[vehicleid];
return 1;
}
#if defined _ALS_GetVehicleHealth
#undef GetVehicleHealth
#else
#define _ALS_GetVehicleHealth
#endif
#define GetVehicleHealth GetVehicleHealthAC