SeX-PrO-AdReNaLiN |
Дата: Воскресенье, 23.12.2012, 18:55 | Сообщение # 1
|
Авторитет
Сообщений: 1310
Статус: Offline
|
Здесь самые лучшые Анти-Читы
Anti GodMode v1.2
Возможности античита: - Защита от GodMode. При любых ударах и выстрелах в скин игрока у него убавится здоровье, не зависимо от того, есть чит или нет. - Защита от пульсатора. Через несколько выстрелов или ударов игрок всё равно умрёт, кол-во урона, которое нужно нанести зависит от "реального" здоровья игрока. - Защита от NOP SetPlayerHealth. Через несколько выстрелов или ударов игрока кикнет, кол-во урона, которое нужно нанести зависит от "реального" здоровья игрока. Скачать: ------------------------------------------------------------------------------------------------> http://rghost.ru/42433684
Anti-Cheat System
Защита от взлома Rcon Программой Защита от взлома Rcon Защита от пинга Защита от ников Защита от ботов Защита от подмены диалогов Защита от подмены цветов Защита от Fly Защита от Sobeit Защита от Jetpack Защита от Оружия Защита от SpeedHack'a Защита от GodMod'a
Скачать: ------------------------------------------------------------------------------------------------> http://rghost.ru/42401296 паоль: pawno
Анти-тп транспорта к себе
Код #include <a_samp>
new Float:VehPos[MAX_VEHICLES][4]; new bool: BanCar[MAX_VEHICLES]; new TimeUpdate[MAX_PLAYERS];
forward UpdateVehiclePos(vehicleid, type);
bool: UseCar(carid);
public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat) { new Float:Pos[3]; GetVehiclePos(vehicleid, Pos[0], Pos[1], Pos[2]); new Float:Count[2]; Count[0] = Difference(Pos[0],VehPos[vehicleid][0]); Count[1] = Difference(Pos[1],VehPos[vehicleid][1]); switch(GetVehicleModel(vehicleid)) { case 435, 450, 584, 591, 606..608, 610..611: goto UPDATE; } if((Count[0] > 5 || Count[1] > 5) && !UseCar(vehicleid) && !BanCar[vehicleid]) { SetVehiclePos(vehicleid, VehPos[vehicleid][0], VehPos[vehicleid][1], VehPos[vehicleid][2]); SetVehicleZAngle(vehicleid, VehPos[vehicleid][3]); } else { UPDATE: UpdateVehiclePos(vehicleid, 0); } return 1; }
public OnVehicleStreamIn(vehicleid, forplayerid) { UpdateVehiclePos(vehicleid, 0); return 1; }
public OnPlayerStateChange(playerid, newstate, oldstate) { if(newstate == PLAYER_STATE_DRIVER) SetPVarInt(playerid,"VehID",GetPlayerVehicleID(playerid)); if(oldstate == PLAYER_STATE_DRIVER) { if(BanCar[GetPVarInt(playerid,"VehID")]) KillTimer(TimeUpdate[playerid]); TimeUpdate[playerid] = SetTimerEx("UpdateVehiclePos", 10000, false, "ii", GetPVarInt(playerid,"VehID"), 1); BanCar[GetPVarInt(playerid,"VehID")] = true; } return 1; }
public UpdateVehiclePos(vehicleid, type) { if(type == 1) { BanCar[vehicleid] = false; } GetVehiclePos(vehicleid, VehPos[vehicleid][0], VehPos[vehicleid][1], VehPos[vehicleid][2]); GetVehicleZAngle(vehicleid, VehPos[vehicleid][3]); return 1; }
stock Difference(Float:Value1, Float:Value2) { return floatround((Value1 > Value2) ? (Value1 - Value2) : (Value2 - Value1)); }
stock bool: UseCar(carid) { for(new i; i != GetMaxPlayers(); i++) { if(!IsPlayerConnected(i)) continue; if(IsPlayerInVehicle(i, carid)) return true; } return false; }
stock SetVehiclePosition(vehicleid, Float:X, Float:Y, Float:Z) { SetVehiclePos(vehicleid ,X,Y,Z); UpdateVehiclePos(vehicleid, 0); }
Античит от рекконекта ботов
Ко всем new:
Код new ConnectTimed[MAX_PLAYERS]; new IsConnected[MAX_PLAYERS char];
В public OnFilterScriptInit() добавляем:
Код for(new i = 0; i < MAX_PLAYERS; i++) { ConnectTimed[i] = 0; IsConnected{i} = 0; }
В public OnFilterScriptExit() добавляем:
Код for(new i = 0; i < MAX_PLAYERS; i++) { ConnectTimed[i] = 0; IsConnected{i} = 0; }
В public OnPlayerConnect(playerid) добавляем:
Код if((GetTickCount() - ConnectTimed[playerid]) <= 500) return BanEx(playerid,"MainProtectBot"); ConnectTimed[playerid] = GetTickCount(); if(IsConnected{playerid} == 2)return BanEx(playerid,"BotProtect"); IsConnected{playerid} += 1; new ip[2][16]; GetPlayerIp(playerid,ip[0],16); for(new i, m = GetMaxPlayers(), x; i != m; i++) { if(!IsPlayerConnected(i) || i == playerid) continue; GetPlayerIp(i,ip[1],16); if(!strcmp(ip[0],ip[1],true)) x++; if(x > 2) return Kick(i),print("Kick Bot"); }
В public OnPlayerDisconnect(playerid, reason) добавляем:
Код IsConnected{playerid} = 0;
Anti-Cheat AirBreak
ко всем define
Код #define DYS 30 #define DYS_A 140
ко всем new
Код new PosTimer[MAX_PLAYERS];
ко всем forward
Код forward OnPlayerUpdateEx();
в public OnPlayerConnect(playerid)
Код PosTimer[playerid] = SetTimerEx("OnPlayerUpdateEx", 3000, true, "d", playerid);//поставил 3 сек если меньше то античит будет проверять и при проверке может кикнуть даже если зашли в дом
в public OnPlayerDisconnect(playerid)
Код KillTimer(PosTimer[playerid]);
создаём паблик
Код public OnPlayerUpdateEx() { for(new i, g = GetMaxPlayers(); i < g; i++) { new Float:pos[3]; GetPlayerPos(i, pos[0], pos[1], pos[2]); new veh = GetPlayerVehicleID(i); if(GetPlayerSurfingVehicleID(i) == INVALID_VEHICLE_ID && GetPlayerState(i) != PLAYER_STATE_SPAWNED) { if(!GetPVarInt(i, "NoAB")) { switch(GetPlayerAnimationIndex(i)) { case 958, 959, 961, 962, 965, 971, 1126, 1130, 1132, 1134, 1156, 1208: { SetPVarInt(i, "NoAB", 1); continue; } } if(IsPlayerInAnyVehicle(i) || IsPlayerInVehicle(i, veh) && GetPlayerState(i) == 2) { if((floatabs(pos[0] - GetPVarFloat(i, "OldPosX"))) > DYS_A || (floatabs(GetPVarFloat(i, "OldPosX") - pos[0])) > DYS_A || (floatabs(pos[1] - GetPVarFloat(i, "OldPosY"))) > DYS_A || (floatabs(GetPVarFloat(i, "OldPosY") - pos[1])) > DYS_A || (floatabs(pos[2] - GetPVarFloat(i, "OldPosZ"))) > DYS_A/2 || (floatabs(GetPVarFloat(i, "OldPosZ") - pos[2])) > DYS_A/2) { GetPlayerName(i,sendername,sizeof(sendername)); format(logus, 80, "%s был кикнут. Причина: AirBreak/Телепорт",sendername); SendClientMessageToAll(COLOR_LIGHTRED, logus); Kick(i); log("Kick", logus); } } else { if((floatabs(pos[0] - GetPVarFloat(i, "OldPosX"))) > DYS || (floatabs(GetPVarFloat(i, "OldPosX") - pos[0])) > DYS || (floatabs(pos[1] - GetPVarFloat(i, "OldPosY"))) > DYS || (floatabs(GetPVarFloat(i, "OldPosY") - pos[1])) > DYS || (floatabs(pos[2] - GetPVarFloat(i, "OldPosZ"))) > DYS/2 || (floatabs(GetPVarFloat(i, "OldPosZ") - pos[2])) > DYS/2) { GetPlayerName(i,sendername,sizeof(sendername)); format(logus, 80, "%s был кикнут. Причина: AirBreak/Телепорт",sendername); SendClientMessageToAll(COLOR_LIGHTRED, logus); Kick(i); log("Kick", logus); } } } SetPVarInt(i, "NoAB", 0); } SetPVarFloat(i, "OldPosX", pos[0]); SetPVarFloat(i, "OldPosY", pos[1]); SetPVarFloat(i, "OldPosZ", pos[2]); } return true; }
в конец мода
Код stock SetPos(playerid,Float:x,Float:y,Float:z) { SetPVarInt(playerid, "NoAB", 1); SetPVarFloat(playerid, "OldPosX", x); SetPVarFloat(playerid, "OldPosY", y); SetPVarFloat(playerid, "OldPosZ", z); return SetPlayerPos(playerid,x,y,z); } Стандартную позицию заменяем на SetPos
Античит на пикапы. (/sendpic)
1) В начало мода, после инклудов:
enum PickInfo{ Float: PickX, Float: PickY, Float: PickZ}
new PickupInfo[MAX_PICKUPS][PickInfo];
Код CreatePickupAC(model, type, Float:X, Float:Y, Float:Z, virtualworld = 0) { new TempID = CreatePickup(model, type, X, Y, Z, virtualworld); PickupInfo[TempID][PickX] = X; PickupInfo[TempID][PickY] = Y; PickupInfo[TempID][PickZ] = Z; return TempID; } #define CreatePickup CreatePickupAC
2) Теперь в
Код public OnPlayerPickUpPickup(playerid, pickupid)
В самое начало вставляем:
Код if(!IsPlayerInRangeOfPoint(playerid, 7.0, PickupInfo[pickupid][PickX], PickupInfo[pickupid][PickY], PickupInfo[pickupid][PickZ])) return 1;
Защита мода от кражи
в паблик
Код public OnGameModeInit()
Вставляем этот код:
Код new ip[16]; GetServerVarAsString("bind", ip, sizeof (ip)); if ( !strlen(ip) || strcmp(ip, "ваш IP адрес")) { for(;;) { printf("Зачем украл мод? Его нельзя запустить тут!"); GameModeExitFunc(); } }
в строчке
Код if ( !strlen(ip) || strcmp(ip, "ваш IP адрес"))
ставим ваш IP адрес, с которого будет запускаться мод
Если ещё подключить инклуд a_deamx, то можно добиться полной защиты от кражи сервера, т.к. мод не будет расшифровываться, и не будет запускаться на чужом IP
JunkBuster
Скачать: -------------------------------------------------------------------------------------------------> http://rghost.ru/36137585
нужно Его залить в Scriptfiles папку,скачать можно тут : http://rghost.ru/36137630
Include: http://rghost.ru/36137775
Удалите это строку если выдаст ошибку
user N over 99999
Сообщение отредактировал SeX-PrO-AdReNaLiN - Воскресенье, 23.12.2012, 19:01 |
|
|
|