Dezmont_Mailz
Умник
Вобщем выкладываю полноценный античит на то что я написал вне темы,исправил все свои ошибки в этом античите а так же полностью исправил данный алгоритм своего античита а так же полностью убрал ложные
в начало мода
в OnPlayerConnect
в OnGameModeInit
Меняем на мой
У кого ДМ сервер то просто сделайте первые 3 кординаты на 99.99
В сек. таймер вставляем
в OnPlayerExitVehicle
в OnPlayerStateChange
В конец мода
Всё данный античит отлично ловит а самое главное что ложных нету!!
Проверку на АФК ставим свою
Все функции как
меняем на
Или используем макросы кидаем в начало мода где переменные
в начало мода
PHP:
new Float:TelePos[MAX_PLAYERS][6];
new Float:StarPos[MAX_PLAYERS][3];
new Diastance[MAX_PLAYERS][2];
new AntiBreik[MAX_PLAYERS];
в OnPlayerConnect
PHP:
Diastance[playerid][0] = 0;
Diastance[playerid][1] = 0;
StarPos[playerid][0] = 99.99;
StarPos[playerid][1] = 99.99;
StarPos[playerid][2] = 99.99;
TelePos[playerid][0] = 99.99;
TelePos[playerid][1] = 99.99;
TelePos[playerid][2] = 99.99;
TelePos[playerid][3] = 99.99;
TelePos[playerid][4] = 99.99;
TelePos[playerid][5] = 99.99;
PHP:
AddPlayerClass(74,99.99,99.99,99.99,0.0,-1,-1,-1,-1,-1,-1);
У кого ДМ сервер то просто сделайте первые 3 кординаты на 99.99
В сек. таймер вставляем
PHP:
new carid = GetPlayerVehicleID(i);
if(PlayerInAFK[i] > 0)
{
if(GetPlayerState(i) == PLAYER_STATE_PASSENGER)
{
new Float:pos[3];
GetVehiclePos(carid,pos[0],pos[1],pos[2]);
StarPos[i][0] = pos[0];
StarPos[i][1] = pos[1];
StarPos[i][2] = pos[2];
AirTime(i,2);
}
}
if(GetPlayerState(i) != PLAYER_STATE_SPECTATING && PlayerInAFK[i] < 2)
{
if(IsPlayerInRangeOfPoint(i,10.0,StarPos[i][0],StarPos[i][1],StarPos[i][2]))
{
GetPlayerPos(i,TelePos[i][0],TelePos[i][1],TelePos[i][2]);
GetPlayerPos(i,TelePos[i][3],TelePos[i][4],TelePos[i][5]);
AirTime(i,2);
}
else
{
if(gettime() > AntiBreik[i])
{
if(IsPlayerInVehicle(i, carid))
{
if(GetAirBreak(i,TelePos[i][0],TelePos[i][1],TelePos[i][2]) > 100)
{
KickEx(i, COLOR_LIGHTRED,"Свой текст");
}
if(GetTeleport(i,TelePos[i][3],TelePos[i][4],TelePos[i][5]) > 60 && GVspeed(carid) < 15 && !IsAPlane(carid))
{
KickEx(i, COLOR_LIGHTRED,"Свой текст");
}
else if(GVspeed(carid) >= 15 || IsAPlane(carid))
{
GetPlayerPos(i,TelePos[i][3],TelePos[i][4],TelePos[i][5]);
}
}
else
{
if(GetAirBreak(i,TelePos[i][0],TelePos[i][1],TelePos[i][2]) > 80)
{
KickEx(i, COLOR_LIGHTRED,"Свой текст");
}
if(GetTeleport(i,TelePos[i][3],TelePos[i][4],TelePos[i][5]) > 40 && GPspeed(i) == 0 && !IsAPlane(carid))
{
KickEx(i, COLOR_LIGHTRED,"Свой текст");
}
else if(GPspeed(i) > 0 || IsAPlane(carid))
{
GetPlayerPos(i,TelePos[i][3],TelePos[i][4],TelePos[i][5]);
}
}
}
}
}
GetPlayerPos(i,TelePos[i][0],TelePos[i][1],TelePos[i][2]);
PHP:
AirTime(playerid,2);
GetPlayerPos(playerid,StarPos[playerid][0],StarPos[playerid][1],StarPos[playerid][2]);
PHP:
if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
{
AirTime(playerid,2);
new carid = GetPlayerVehicleID(playerid);
new Float:pos[3];
GetVehiclePos(carid,pos[0],pos[1],pos[2]);
StarPos[playerid][0] = pos[0];
StarPos[playerid][1] = pos[1];
StarPos[playerid][2] = pos[2];
}
В конец мода
PHP:
stock SetVehiclePosEx(playerid,vehicleid,Float:X,Float:Y,Float:Z)
{
for(new i = GetMaxPlayers() - 1; i != -1; i--)
{
if(!IsPlayerConnected(i) || IsPlayerNPC(i) || GetPlayerState(i) != PLAYER_STATE_PASSENGER) continue;
AirTime(i,2);
StarPos[i][0] = X;
StarPos[i][1] = Y;
StarPos[i][2] = Z;
}
AirTime(playerid,2);
StarPos[playerid][0] = X;
StarPos[playerid][1] = Y;
StarPos[playerid][2] = Z;
SetVehiclePos(vehicleid,X,Y,Z);
return 1;
}
stock SetPlayerPosEx(playerid,Float:X,Float:Y,Float:Z)
{
AirTime(playerid,2);
StarPos[playerid][0] = X;
StarPos[playerid][1] = Y;
StarPos[playerid][2] = Z;
SetPlayerPos(playerid,X,Y,Z);
return 1;
}
stock PutPlayerInVehEx(playerid, vehicleid, seatid)
{
PutPlayerInVehicle(playerid, vehicleid, seatid);
AirTime(playerid,2);
new Float:pos[3];
GetVehiclePos(vehicleid,pos[0],pos[1],pos[2]);
StarPos[playerid][0] = pos[0];
StarPos[playerid][1] = pos[1];
StarPos[playerid][2] = pos[2];
return 1;
}
stock GetAirBreak(playerid,Float:DX,Float:DY,Float:DZ)
{
Diastance[playerid][0] = floatround(GetPlayerDistanceFromPoint(playerid,DX,DY,DZ));
return Diastance[playerid][0];
}
stock GetTeleport(playerid,Float:DX,Float:DY,Float:DZ)
{
Diastance[playerid][1] = floatround(GetPlayerDistanceFromPoint(playerid,DX,DY,DZ));
return Diastance[playerid][1];
}
stock KickEx(playerid, color, reason[])
{
SendClientMessage(playerid, color, reason);
SetTimerEx("KickPlayer", GetPlayerPing(playerid) + 100, false, "i", playerid);
return 1;
}
forward KickPlayer(playerid);
public KickPlayer(playerid)
{
Kick(playerid);
return 1;
}
stock IsAPlane(vehicleid)
{
switch(GetVehicleModel(vehicleid))
{
case 592, 577, 511, 512, 593, 520, 553, 476, 519, 460, 513, 548, 417, 487, 488, 497, 563, 447, 469: return 1;
}
return 0;
}
Всё данный античит отлично ловит а самое главное что ложных нету!!
Проверку на АФК ставим свою
Все функции как
PHP:
PutPlayerInVehicle
SetPlayerPos
SetVehiclePos
меняем на
PHP:
PutPlayerInVehEx
SetPlayerPosEx
SetVehiclePosEx
PHP:
#define PutPlayerInVehicle PutPlayerInVehEx
#define SetVehiclePos SetVehiclePosEx
#define SetPlayerPos SetPlayerPosEx
Последнее редактирование:
