666prototype666 Дата: Понедельник, 10.10.2011, 11:05:05 | Сообщение # 3
Группа: Пользователи
Сообщений: 13
Вот коды античита.... помогите что с ним сделать надо чтобы он не кикал просто так? А то я уже неделю пытаюсь исправить этот баг...и в интернете искал...бесполезно...помогите пожайлуста Code
} while(strfind(inputtext,"%s",true)!=-1) { strdel(inputtext,strfind(inputtext,"%s",true),strfind(inputtext,"%s",true)+2); } return 1; } public cheatergun(playerid) { if(gPlayerLogged[playerid] == 1) { new cheater = 0; new string[128]; new sendername[MAX_PLAYER_NAME]; new ip[256]; new weap2, ammo2, weap3, ammo3, weap4, ammo4, weap5, ammo5, weap6, ammo6, weap7, ammo7, weap8,ammo8, weap9,ammo9,weap10,ammo10,weap11,ammo11; GetPlayerWeaponData(playerid,2,weap2,ammo2); GetPlayerWeaponData(playerid,3,weap3,ammo3); GetPlayerWeaponData(playerid,4,weap4,ammo4); GetPlayerWeaponData(playerid,5,weap5,ammo5); GetPlayerWeaponData(playerid,6,weap6,ammo6); GetPlayerWeaponData(playerid,7,weap7,ammo7); GetPlayerWeaponData(playerid,8,weap8,ammo8); GetPlayerWeaponData(playerid,9,weap9,ammo9); GetPlayerWeaponData(playerid,10,weap10,ammo10); GetPlayerWeaponData(playerid,11,weap11,ammo11); if(GetPlayerWeapon(playerid) == 35) { cheater = 1; } if(GetPlayerWeapon(playerid) == 36) { cheater = 1; } if(GetPlayerWeapon(playerid) == 37) { cheater = 1; } if(GetPlayerWeapon(playerid) == 38) { cheater = 1; } if(PlayerInfo[playerid][pSlot2] != weap2) { //SendClientMessageToAll(COLOR_LIGHTRED, "2"); cheater = 1; } if(weap3 != PlayerInfo[playerid][pSlot3]) { //SendClientMessageToAll(COLOR_LIGHTRED, "3"); cheater = 1; } if(weap4 != PlayerInfo[playerid][pSlot4]) {// SendClientMessageToAll(COLOR_LIGHTRED, "4"); cheater = 1; } if(weap5 != PlayerInfo[playerid][pSlot5]) { // SendClientMessageToAll(COLOR_LIGHTRED, "5"); cheater = 1; } if(weap6 != PlayerInfo[playerid][pSlot6]) { // SendClientMessageToAll(COLOR_LIGHTRED, "6"); cheater = 1; } if(weap7 != PlayerInfo[playerid][pSlot7]) { // SendClientMessageToAll(COLOR_LIGHTRED, "7"); cheater = 1; } /*if(weap8 != PlayerInfo[playerid][pSlot8]) { // SendClientMessageToAll(COLOR_LIGHTRED, "8"); cheater = 1; } if(weap9 != PlayerInfo[playerid][pSlot9]) { SendClientMessageToAll(COLOR_LIGHTRED, "9"); cheater = 1; }*/ /* if(gPlayerLogged[playerid] == 1) { if(cheater == 1 && PyxiTime[playerid] == 0) { if(GetPlayerState(playerid) != 1 && GetPlayerState(playerid) != 2 && GetPlayerState(playerid) != 3) { GetPlayerName(playerid, plname, sizeof(plname)); format(string, 256, "- Кикнут %s | ID %d | Лвл: %d | Disable OnFoot", plname,playerid,PlayerInfo[playerid][pLevel]); ABroadCast(COLOR_LIGHTRED,string,2); Kick(playerid); } } }*/ if(cheater == 1 && PyxiTime[playerid] == 0) { guncheat[playerid] = 1; if(PlayerInfo[playerid][pLevel] <= 1) { PlayerInfo[playerid][pWarns] += 1; if(PlayerInfo[playerid][pWarns] >= 3) { GetPlayerName(playerid, sendername, sizeof(sendername)); GetPlayerIp(playerid,ip,sizeof(ip)); format(string, sizeof(string), "[Античит]: %s был забанен за использования читов [ 3 предупреждения ]", sendername); SendClientMessageToAll(COLOR_LIGHTRED, string); format(string,sizeof(string),"- IP: %s | Warns: %d | Лвл: %d",ip,PlayerInfo[playerid][pWarns],PlayerInfo[playerid][pLevel]); ABroadCast(COLOR_LIGHTRED,string,2); PlayerInfo[playerid][pMember] = 0; PlayerInfo[playerid][pLeader] = 0; PlayerInfo[playerid][pRank] = 0; PlayerInfo[playerid][pLocked] = 1; Kick(playerid); } new sendername2[MAX_PLAYER_NAME]; new ips[256]; GetPlayerName(playerid, sendername2, sizeof(sendername2)); GetPlayerIp(playerid,ips,sizeof(ips)); SendClientMessage(playerid, COLOR_LIGHTRED, "Вы получили Warn за использование читов"); SendClientMessage(playerid, COLOR_LIGHTRED, "Удалите чит программу, чтобы продолжить игру на сервере"); //format(string,sizeof(string),"- [WARN] Ник: %s | IP: %s | Warns: %d | Лвл: %d",sendername2,ips,PlayerInfo[playerid][pWarns],PlayerInfo[playerid][pLevel]); //ABroadCast(COLOR_LIGHTRED,string,1); format(string,sizeof(string),"- [WARN] ID: %d | Warns: %d | Лвл: %d | Ник: %s",playerid,PlayerInfo[playerid][pWarns],PlayerInfo[playerid][pLevel],sendername2); ABroadCast(COLOR_LIGHTRED,string,1); Delgun(playerid); ResetPlayerWeapons(playerid); //PlayerInfo[playerid][pMember] = 0; //PlayerInfo[playerid][pLeader] = 0; //PlayerInfo[playerid][pRank] = 0; PlayerInfo[playerid][pSlot2] = 0; PlayerInfo[playerid][pSlot3] = 0; PlayerInfo[playerid][pSlot4] = 0; PlayerInfo[playerid][pSlot5] = 0; PlayerInfo[playerid][pSlot6] = 0; PlayerInfo[playerid][pSlot7] = 0; PlayerInfo[playerid][pSlot8] = 0; PlayerInfo[playerid][pSlot9] = 0; PlayerInfo[playerid][pSlot10] = 0; PlayerInfo[playerid][pSlot11] = 0; Kick(playerid); } if(PlayerInfo[playerid][pLevel] > 1) { /*if(PlayerInfo[playerid][pWarns] >= 3) { format(string, sizeof(string), "[Античит]: %s был забанен за использования читов [ 3 предупреждения ]", plname); SendClientMessageToAll(COLOR_LIGHTRED, string); PlayerInfo[playerid][pMember] = 0; PlayerInfo[playerid][pLeader] = 0; PlayerInfo[playerid][pRank] = 0; PlayerInfo[playerid][pLocked] = 1; Delgun(playerid); ResetPlayerWeapons(playerid); Delgun(playerid); Kick(playerid); //return 1; }*/ GetPlayerName(playerid, sendername, sizeof(sendername)); GetPlayerIp(playerid,ip,sizeof(ip)); //format(string,sizeof(string),"[Античит]: %s был(а) кикнут(а) за использование читов",plname); //SendClientMessageToAll(COLOR_LIGHTRED, string); SendClientMessage(playerid,COLOR_LIGHTRED,"Удалите чит программу, чтобы продолжить игру на сервере"); format(string,sizeof(string),"- Кикнут ID %d | Warns: %d | Лвл: %d | Чит на оружие",playerid,PlayerInfo[playerid][pWarns],PlayerInfo[playerid][pLevel]); ABroadCast(COLOR_LIGHTRED,string,1); Delgun(playerid); ResetPlayerWeapons(playerid); //PlayerInfo[playerid][pMember] = 0; //PlayerInfo[playerid][pLeader] = 0; //PlayerInfo[playerid][pRank] = 0; PlayerInfo[playerid][pSlot2] = 0; PlayerInfo[playerid][pSlot3] = 0; PlayerInfo[playerid][pSlot4] = 0; PlayerInfo[playerid][pSlot5] = 0; PlayerInfo[playerid][pSlot6] = 0; PlayerInfo[playerid][pSlot7] = 0; PlayerInfo[playerid][pSlot8] = 0; PlayerInfo[playerid][pSlot9] = 0; PlayerInfo[playerid][pSlot10] = 0; PlayerInfo[playerid][pSlot11] = 0; Kick(playerid); } } } } //======================Античит================================================= public CheckCheaters() { new gunname[32]; for(new i = 0; i < MAX_PLAYERS; i++) { if(!GetPVarInt(i, "NoAB")) { new State = GetPlayerState(i); if(State != PLAYER_STATE_PASSENGER) { if(IsPlayerConnected(i)) { if(PyxiTime[i] == 0) { new gun[12], ammo[12], cheater = 0; for(new gn = 0; gn < 12; gn++) { GetPlayerWeaponData(i,gn,gun[gn],ammo[gn]); } cheatergun(i); /* if(PlayerInfo[i][pGun0] == 0 && gun[0] > 0)//Кулак, кастет { GetWeaponNameEx(gun[0],gunname,sizeof(gunname)); cheater = 1; } if(PlayerInfo[i][pGun1] == 0 && gun[1] > 0)//Рукопашное оружие { GetWeaponNameEx(gun[1],gunname,sizeof(gunname)); cheater = 1; }*/ if(PlayerInfo[i][pSlotammo2] != ammo[2])//Пистолеты, патроны { if(PlayerInfo[i][pSlotammo2] > ammo[2] && ammo[2] >= 0 && PlayerInfo[i][pSlot2] != 0 && IsAPistol(GetPlayerWeapon(i))) PlayerInfo[i][pSlotammo2] = ammo[2]; else if(PlayerInfo[i][pSlotammo2] < ammo[2] && IsAPistol(GetPlayerWeapon(i))) { if(PlayerInfo[i][pSlotammo2] < 0) PlayerInfo[i][pSlotammo2] = 0; else { GetWeaponNameEx(gun[2],gunname,sizeof(gunname)); cheater = 2; } } } if(PlayerInfo[i][pSlotammo3] != ammo[3])//Дробовики, патроны { if(PlayerInfo[i][pSlotammo3] > ammo[3] && ammo[3] >= 0 && PlayerInfo[i][pSlot3] != 0 && IsAShotgun(GetPlayerWeapon(i))) PlayerInfo[i][pSlotammo3] = ammo[3]; else if(PlayerInfo[i][pSlotammo3] < ammo[3]) { if(PlayerInfo[i][pSlotammo3] < 0) PlayerInfo[i][pSlotammo3] = 0; else { GetWeaponNameEx(gun[3],gunname,sizeof(gunname)); cheater = 2; } } } if(PlayerInfo[i][pSlotammo4] != ammo[4])//Автоматы, патроны { if(PlayerInfo[i][pSlotammo4] > ammo[4] && ammo[4] >= 0 && PlayerInfo[i][pSlot4] != 0 && IsAShotgun(GetPlayerWeapon(i))) PlayerInfo[i][pSlotammo4] = ammo[4]; else if(PlayerInfo[i][pSlotammo4] < ammo[4]) { if(PlayerInfo[i][pSlotammo4] < 0) PlayerInfo[i][pSlotammo4] = 0; else { GetWeaponNameEx(gun[4],gunname,sizeof(gunname)); cheater = 2; } } } if(PlayerInfo[i][pSlotammo5] != ammo[5])//Штурмовое, патроны { if(PlayerInfo[i][pSlotammo5] > ammo[5] && PlayerInfo[i][pSlot5] != 0 && IsAnAssault(GetPlayerWeapon(i))) PlayerInfo[i][pSlotammo5] = ammo[5]; else if(PlayerInfo[i][pSlotammo5] < ammo[5] && ammo[5] >= 0 ) { if(PlayerInfo[i][pSlotammo5] < 0) PlayerInfo[i][pSlotammo5] = 0; else { GetWeaponNameEx(gun[5],gunname,sizeof(gunname)); cheater = 2; } } } if(PlayerInfo[i][pSlotammo6] != ammo[6])//Винтовки, патроны { if(PlayerInfo[i][pSlotammo6] > ammo[6] && PlayerInfo[i][pSlot6] != 0 && IsARifle(GetPlayerWeapon(i))) PlayerInfo[i][pSlotammo6] = ammo[6]; else if(PlayerInfo[i][pSlotammo6] < ammo[6] && ammo[6] >= 0) { if(PlayerInfo[i][pSlotammo6] < 0) PlayerInfo[i][pSlotammo6] = 0; else { GetWeaponNameEx(gun[6],gunname,sizeof(gunname)); cheater = 2; } } } if(PlayerInfo[i][pSlotammo7] != ammo[7])//Мощное оружие, патроны { if(PlayerInfo[i][pSlotammo7] > ammo[7] && PlayerInfo[i][pSlot7] != 0 && IsAHeavyAssault(GetPlayerWeapon(i))) PlayerInfo[i][pSlotammo7] = ammo[7]; else if(PlayerInfo[i][pSlotammo7] < ammo[7] && ammo[7] >= 0) { if(PlayerInfo[i][pSlotammo7] < 0) PlayerInfo[i][pSlotammo7] = 0; else { GetWeaponNameEx(gun[7],gunname,sizeof(gunname)); cheater = 2; } } } if(PlayerInfo[i][pSlotammo9] != ammo[9])//Вещи, патроны { if(PlayerInfo[i][pSlotammo9] > ammo[9] && PlayerInfo[i][pSlot9] != 0 && IsAStuff1(GetPlayerWeapon(i))) PlayerInfo[i][pSlotammo9] = ammo[9]; else if(PlayerInfo[i][pSlotammo9] < ammo[9] && ammo[9] >= 0) { if(PlayerInfo[i][pSlotammo9] < 0) PlayerInfo[i][pSlotammo9] = 0; else { GetWeaponNameEx(gun[9],gunname,sizeof(gunname)); cheater = 2; } } } new string[128]; new plname[MAX_PLAYER_NAME]; new ip[256]; new weaponid; GetWeaponName(weaponid, gunname, sizeof(gunname)); if(cheater == 2 && PyxiTime[i] == 0) { guncheat[i] =1; GetPlayerName(i, plname, MAX_PLAYER_NAME); GetPlayerIp(i,ip,sizeof(ip)); format(string,sizeof(string),"- Кикнут %s | Патроны на оружие | Лвл: %d | Warns: %d | IP: %s",plname,PlayerInfo[i][pLevel],PlayerInfo[i][pWarns],ip); ABroadCast(COLOR_LIGHTRED,string,1); SetPlayerHealthAC(i, 0); Delgun(i); ResetPlayerWeapons(i); PlayerInfo[i][pSlot2] = 0; PlayerInfo[i][pSlot3] = 0; PlayerInfo[i][pSlot4] = 0; PlayerInfo[i][pSlot5] = 0; PlayerInfo[i][pSlot6] = 0; PlayerInfo[i][pSlot7] = 0; PlayerInfo[i][pSlot8] = 0; PlayerInfo[i][pSlot9] = 0; PlayerInfo[i][pSlot10] = 0; PlayerInfo[i][pSlot11] = 0; Kick(i); return 1; } } } } } } return 1; } stock GetWeaponNameEx(id, name[], len) return format(name,len, "%s", GunNames[id]); stock IsAPistol(gunid) { if(gunid >= 22 && gunid <=24) { return 1; } return 0; } stock IsAMelee(gunid) { if(gunid >= 2 && gunid <= 9 ) { return 1; } return 0; } stock IsAGirlsStuff(gunid) { if(gunid >= 10 && gunid <= 15 || gunid == 46) { return 1; } return 0; } stock IsAGrenade(gunid) { if((gunid >= 16 && gunid <= 18) || gunid == 39) { return 1; } return 0; } stock IsAShotgun(gunid) { if(gunid >= 25 && gunid <= 27) { return 1; } return 0; } stock IsAMachineGun(gunid) { if(gunid == 28 || gunid == 29 || gunid == 32) { return 1; } return 0; } stock IsAnAssault(gunid) { if(gunid == 30 || gunid == 31) { return 1; } return 0; } stock IsARifle(gunid) { if(gunid == 33 || gunid == 34) { return 1; } return 0; } stock IsAHeavyAssault(gunid)//базуки { if(gunid >= 35 && gunid <= 37 ) { return 1; } return 0; } stock IsAStuff1(gunid)//Баллончик { if(gunid >= 41 && gunid <= 43 ) { return 1; } return 0; } stock GiveRichGun(playerid,weaponid,ammo) { PyxiTime[playerid] = 5; if(IsAPistol(weaponid)) { PlayerInfo[playerid][pSlot2] = weaponid; PlayerInfo[playerid][pSlotammo2] += ammo; } else if(IsAShotgun(weaponid)) { PlayerInfo[playerid][pSlot3] = weaponid; PlayerInfo[playerid][pSlotammo3] += ammo; } else if(IsAMachineGun(weaponid)) { PlayerInfo[playerid][pSlot4] = weaponid; PlayerInfo[playerid][pSlotammo4] += ammo; } else if(IsAnAssault(weaponid)) { PlayerInfo[playerid][pSlot5] = weaponid; PlayerInfo[playerid][pSlotammo5] += ammo; } else if(IsARifle(weaponid)) { PlayerInfo[playerid][pSlot6] = weaponid; PlayerInfo[playerid][pSlotammo6] += ammo; } else if(IsAHeavyAssault(weaponid)) { PlayerInfo[playerid][pSlot7] = weaponid; PlayerInfo[playerid][pSlotammo7] += ammo; } else if(IsAHeavyAssault(weaponid)) { PlayerInfo[playerid][pSlot7] = weaponid; PlayerInfo[playerid][pAmmo7] += ammo; } else if(IsAGrenade(weaponid)) { PlayerInfo[playerid][pSlot8] = weaponid; PlayerInfo[playerid][pSlotammo8] += ammo; } else if(IsAStuff1(weaponid)) { PlayerInfo[playerid][pSlot9] = weaponid; PlayerInfo[playerid][pSlotammo9] += ammo; } else if(IsAGirlsStuff(weaponid)) { PlayerInfo[playerid][pSlot10] = weaponid; PlayerInfo[playerid][pSlotammo10] += ammo; } GivePlayerWeapon(playerid,weaponid,ammo); return 1; } stock GetSRVMoney(playerid) { return PlayerInfo[playerid][pCash]; } public Delgun(playerid) { PyxiTime[playerid] = 5; PlayerInfo[playerid][pSlot1] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlot2] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlot3] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlot4] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlot5] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlot6] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlot7] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlot8] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlotammo2] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlotammo3] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlotammo4] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlotammo5] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlotammo6] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlotammo7] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlotammo8] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlotammo9] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlotammo10] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlotammo11] = 0;//Оружие слот 2 ResetPlayerWeapons(playerid); return 1; } // Armour Anticheat public GiveArmour(playerid, Float:armour) { if(logs == 1) { printr("GiveArmour"); } if(IsPlayerConnected(playerid)) { Armour[playerid] = armour; // переменная брони SetPlayerArmour(playerid,armour); } return 1; } stock RemovePlayerFromVehicleRich(playerid) { RemovePlayerFromVehicle(playerid); timer[playerid] = SetTimer("AntiRemovePlayerFromVehicle" , 2800, false); } public AntiRemovePlayerFromVehicle(playerid) { new playeridname[MAX_PLAYER_NAME]; GetPlayerName(playerid,playeridname, sizeof(playeridname)); if (GetPlayerState(playerid) == 2)//В авто { SendClientMessage(playerid,COLOR_LIGHTRED,"Удалите чит программу, чтобы продолжить игру на сервере"); Kick(playerid);// Так как может быть и баг(10% случаев) то просто кикаем, а не баним } } // Money Anticheat public GetMoney() { for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { new money = GetPlayerMoney(i); if(PlayerInfo[i][pCash] > money) // условие: если у игрока денег выданных сервером больше чем игровых. { ResetPlayerMoney(i); GivePlayerMoney(i, PlayerInfo[i][pCash]); } else if(PlayerInfo[i][pCash] < money) // условие: если игровых денег у игрока больше чем выданных сервером. { ResetPlayerMoney(i); GivePlayerMoney(i, PlayerInfo[i][pCash]); } } } return ; }
Сообщение отредактировал 666prototype666 - Понедельник, 10.10.2011, 11:15:21
Сообщение Вот коды античита.... помогите что с ним сделать надо чтобы он не кикал просто так? А то я уже неделю пытаюсь исправить этот баг...и в интернете искал...бесполезно...помогите пожайлуста Code
} while(strfind(inputtext,"%s",true)!=-1) { strdel(inputtext,strfind(inputtext,"%s",true),strfind(inputtext,"%s",true)+2); } return 1; } public cheatergun(playerid) { if(gPlayerLogged[playerid] == 1) { new cheater = 0; new string[128]; new sendername[MAX_PLAYER_NAME]; new ip[256]; new weap2, ammo2, weap3, ammo3, weap4, ammo4, weap5, ammo5, weap6, ammo6, weap7, ammo7, weap8,ammo8, weap9,ammo9,weap10,ammo10,weap11,ammo11; GetPlayerWeaponData(playerid,2,weap2,ammo2); GetPlayerWeaponData(playerid,3,weap3,ammo3); GetPlayerWeaponData(playerid,4,weap4,ammo4); GetPlayerWeaponData(playerid,5,weap5,ammo5); GetPlayerWeaponData(playerid,6,weap6,ammo6); GetPlayerWeaponData(playerid,7,weap7,ammo7); GetPlayerWeaponData(playerid,8,weap8,ammo8); GetPlayerWeaponData(playerid,9,weap9,ammo9); GetPlayerWeaponData(playerid,10,weap10,ammo10); GetPlayerWeaponData(playerid,11,weap11,ammo11); if(GetPlayerWeapon(playerid) == 35) { cheater = 1; } if(GetPlayerWeapon(playerid) == 36) { cheater = 1; } if(GetPlayerWeapon(playerid) == 37) { cheater = 1; } if(GetPlayerWeapon(playerid) == 38) { cheater = 1; } if(PlayerInfo[playerid][pSlot2] != weap2) { //SendClientMessageToAll(COLOR_LIGHTRED, "2"); cheater = 1; } if(weap3 != PlayerInfo[playerid][pSlot3]) { //SendClientMessageToAll(COLOR_LIGHTRED, "3"); cheater = 1; } if(weap4 != PlayerInfo[playerid][pSlot4]) {// SendClientMessageToAll(COLOR_LIGHTRED, "4"); cheater = 1; } if(weap5 != PlayerInfo[playerid][pSlot5]) { // SendClientMessageToAll(COLOR_LIGHTRED, "5"); cheater = 1; } if(weap6 != PlayerInfo[playerid][pSlot6]) { // SendClientMessageToAll(COLOR_LIGHTRED, "6"); cheater = 1; } if(weap7 != PlayerInfo[playerid][pSlot7]) { // SendClientMessageToAll(COLOR_LIGHTRED, "7"); cheater = 1; } /*if(weap8 != PlayerInfo[playerid][pSlot8]) { // SendClientMessageToAll(COLOR_LIGHTRED, "8"); cheater = 1; } if(weap9 != PlayerInfo[playerid][pSlot9]) { SendClientMessageToAll(COLOR_LIGHTRED, "9"); cheater = 1; }*/ /* if(gPlayerLogged[playerid] == 1) { if(cheater == 1 && PyxiTime[playerid] == 0) { if(GetPlayerState(playerid) != 1 && GetPlayerState(playerid) != 2 && GetPlayerState(playerid) != 3) { GetPlayerName(playerid, plname, sizeof(plname)); format(string, 256, "- Кикнут %s | ID %d | Лвл: %d | Disable OnFoot", plname,playerid,PlayerInfo[playerid][pLevel]); ABroadCast(COLOR_LIGHTRED,string,2); Kick(playerid); } } }*/ if(cheater == 1 && PyxiTime[playerid] == 0) { guncheat[playerid] = 1; if(PlayerInfo[playerid][pLevel] <= 1) { PlayerInfo[playerid][pWarns] += 1; if(PlayerInfo[playerid][pWarns] >= 3) { GetPlayerName(playerid, sendername, sizeof(sendername)); GetPlayerIp(playerid,ip,sizeof(ip)); format(string, sizeof(string), "[Античит]: %s был забанен за использования читов [ 3 предупреждения ]", sendername); SendClientMessageToAll(COLOR_LIGHTRED, string); format(string,sizeof(string),"- IP: %s | Warns: %d | Лвл: %d",ip,PlayerInfo[playerid][pWarns],PlayerInfo[playerid][pLevel]); ABroadCast(COLOR_LIGHTRED,string,2); PlayerInfo[playerid][pMember] = 0; PlayerInfo[playerid][pLeader] = 0; PlayerInfo[playerid][pRank] = 0; PlayerInfo[playerid][pLocked] = 1; Kick(playerid); } new sendername2[MAX_PLAYER_NAME]; new ips[256]; GetPlayerName(playerid, sendername2, sizeof(sendername2)); GetPlayerIp(playerid,ips,sizeof(ips)); SendClientMessage(playerid, COLOR_LIGHTRED, "Вы получили Warn за использование читов"); SendClientMessage(playerid, COLOR_LIGHTRED, "Удалите чит программу, чтобы продолжить игру на сервере"); //format(string,sizeof(string),"- [WARN] Ник: %s | IP: %s | Warns: %d | Лвл: %d",sendername2,ips,PlayerInfo[playerid][pWarns],PlayerInfo[playerid][pLevel]); //ABroadCast(COLOR_LIGHTRED,string,1); format(string,sizeof(string),"- [WARN] ID: %d | Warns: %d | Лвл: %d | Ник: %s",playerid,PlayerInfo[playerid][pWarns],PlayerInfo[playerid][pLevel],sendername2); ABroadCast(COLOR_LIGHTRED,string,1); Delgun(playerid); ResetPlayerWeapons(playerid); //PlayerInfo[playerid][pMember] = 0; //PlayerInfo[playerid][pLeader] = 0; //PlayerInfo[playerid][pRank] = 0; PlayerInfo[playerid][pSlot2] = 0; PlayerInfo[playerid][pSlot3] = 0; PlayerInfo[playerid][pSlot4] = 0; PlayerInfo[playerid][pSlot5] = 0; PlayerInfo[playerid][pSlot6] = 0; PlayerInfo[playerid][pSlot7] = 0; PlayerInfo[playerid][pSlot8] = 0; PlayerInfo[playerid][pSlot9] = 0; PlayerInfo[playerid][pSlot10] = 0; PlayerInfo[playerid][pSlot11] = 0; Kick(playerid); } if(PlayerInfo[playerid][pLevel] > 1) { /*if(PlayerInfo[playerid][pWarns] >= 3) { format(string, sizeof(string), "[Античит]: %s был забанен за использования читов [ 3 предупреждения ]", plname); SendClientMessageToAll(COLOR_LIGHTRED, string); PlayerInfo[playerid][pMember] = 0; PlayerInfo[playerid][pLeader] = 0; PlayerInfo[playerid][pRank] = 0; PlayerInfo[playerid][pLocked] = 1; Delgun(playerid); ResetPlayerWeapons(playerid); Delgun(playerid); Kick(playerid); //return 1; }*/ GetPlayerName(playerid, sendername, sizeof(sendername)); GetPlayerIp(playerid,ip,sizeof(ip)); //format(string,sizeof(string),"[Античит]: %s был(а) кикнут(а) за использование читов",plname); //SendClientMessageToAll(COLOR_LIGHTRED, string); SendClientMessage(playerid,COLOR_LIGHTRED,"Удалите чит программу, чтобы продолжить игру на сервере"); format(string,sizeof(string),"- Кикнут ID %d | Warns: %d | Лвл: %d | Чит на оружие",playerid,PlayerInfo[playerid][pWarns],PlayerInfo[playerid][pLevel]); ABroadCast(COLOR_LIGHTRED,string,1); Delgun(playerid); ResetPlayerWeapons(playerid); //PlayerInfo[playerid][pMember] = 0; //PlayerInfo[playerid][pLeader] = 0; //PlayerInfo[playerid][pRank] = 0; PlayerInfo[playerid][pSlot2] = 0; PlayerInfo[playerid][pSlot3] = 0; PlayerInfo[playerid][pSlot4] = 0; PlayerInfo[playerid][pSlot5] = 0; PlayerInfo[playerid][pSlot6] = 0; PlayerInfo[playerid][pSlot7] = 0; PlayerInfo[playerid][pSlot8] = 0; PlayerInfo[playerid][pSlot9] = 0; PlayerInfo[playerid][pSlot10] = 0; PlayerInfo[playerid][pSlot11] = 0; Kick(playerid); } } } } //======================Античит================================================= public CheckCheaters() { new gunname[32]; for(new i = 0; i < MAX_PLAYERS; i++) { if(!GetPVarInt(i, "NoAB")) { new State = GetPlayerState(i); if(State != PLAYER_STATE_PASSENGER) { if(IsPlayerConnected(i)) { if(PyxiTime[i] == 0) { new gun[12], ammo[12], cheater = 0; for(new gn = 0; gn < 12; gn++) { GetPlayerWeaponData(i,gn,gun[gn],ammo[gn]); } cheatergun(i); /* if(PlayerInfo[i][pGun0] == 0 && gun[0] > 0)//Кулак, кастет { GetWeaponNameEx(gun[0],gunname,sizeof(gunname)); cheater = 1; } if(PlayerInfo[i][pGun1] == 0 && gun[1] > 0)//Рукопашное оружие { GetWeaponNameEx(gun[1],gunname,sizeof(gunname)); cheater = 1; }*/ if(PlayerInfo[i][pSlotammo2] != ammo[2])//Пистолеты, патроны { if(PlayerInfo[i][pSlotammo2] > ammo[2] && ammo[2] >= 0 && PlayerInfo[i][pSlot2] != 0 && IsAPistol(GetPlayerWeapon(i))) PlayerInfo[i][pSlotammo2] = ammo[2]; else if(PlayerInfo[i][pSlotammo2] < ammo[2] && IsAPistol(GetPlayerWeapon(i))) { if(PlayerInfo[i][pSlotammo2] < 0) PlayerInfo[i][pSlotammo2] = 0; else { GetWeaponNameEx(gun[2],gunname,sizeof(gunname)); cheater = 2; } } } if(PlayerInfo[i][pSlotammo3] != ammo[3])//Дробовики, патроны { if(PlayerInfo[i][pSlotammo3] > ammo[3] && ammo[3] >= 0 && PlayerInfo[i][pSlot3] != 0 && IsAShotgun(GetPlayerWeapon(i))) PlayerInfo[i][pSlotammo3] = ammo[3]; else if(PlayerInfo[i][pSlotammo3] < ammo[3]) { if(PlayerInfo[i][pSlotammo3] < 0) PlayerInfo[i][pSlotammo3] = 0; else { GetWeaponNameEx(gun[3],gunname,sizeof(gunname)); cheater = 2; } } } if(PlayerInfo[i][pSlotammo4] != ammo[4])//Автоматы, патроны { if(PlayerInfo[i][pSlotammo4] > ammo[4] && ammo[4] >= 0 && PlayerInfo[i][pSlot4] != 0 && IsAShotgun(GetPlayerWeapon(i))) PlayerInfo[i][pSlotammo4] = ammo[4]; else if(PlayerInfo[i][pSlotammo4] < ammo[4]) { if(PlayerInfo[i][pSlotammo4] < 0) PlayerInfo[i][pSlotammo4] = 0; else { GetWeaponNameEx(gun[4],gunname,sizeof(gunname)); cheater = 2; } } } if(PlayerInfo[i][pSlotammo5] != ammo[5])//Штурмовое, патроны { if(PlayerInfo[i][pSlotammo5] > ammo[5] && PlayerInfo[i][pSlot5] != 0 && IsAnAssault(GetPlayerWeapon(i))) PlayerInfo[i][pSlotammo5] = ammo[5]; else if(PlayerInfo[i][pSlotammo5] < ammo[5] && ammo[5] >= 0 ) { if(PlayerInfo[i][pSlotammo5] < 0) PlayerInfo[i][pSlotammo5] = 0; else { GetWeaponNameEx(gun[5],gunname,sizeof(gunname)); cheater = 2; } } } if(PlayerInfo[i][pSlotammo6] != ammo[6])//Винтовки, патроны { if(PlayerInfo[i][pSlotammo6] > ammo[6] && PlayerInfo[i][pSlot6] != 0 && IsARifle(GetPlayerWeapon(i))) PlayerInfo[i][pSlotammo6] = ammo[6]; else if(PlayerInfo[i][pSlotammo6] < ammo[6] && ammo[6] >= 0) { if(PlayerInfo[i][pSlotammo6] < 0) PlayerInfo[i][pSlotammo6] = 0; else { GetWeaponNameEx(gun[6],gunname,sizeof(gunname)); cheater = 2; } } } if(PlayerInfo[i][pSlotammo7] != ammo[7])//Мощное оружие, патроны { if(PlayerInfo[i][pSlotammo7] > ammo[7] && PlayerInfo[i][pSlot7] != 0 && IsAHeavyAssault(GetPlayerWeapon(i))) PlayerInfo[i][pSlotammo7] = ammo[7]; else if(PlayerInfo[i][pSlotammo7] < ammo[7] && ammo[7] >= 0) { if(PlayerInfo[i][pSlotammo7] < 0) PlayerInfo[i][pSlotammo7] = 0; else { GetWeaponNameEx(gun[7],gunname,sizeof(gunname)); cheater = 2; } } } if(PlayerInfo[i][pSlotammo9] != ammo[9])//Вещи, патроны { if(PlayerInfo[i][pSlotammo9] > ammo[9] && PlayerInfo[i][pSlot9] != 0 && IsAStuff1(GetPlayerWeapon(i))) PlayerInfo[i][pSlotammo9] = ammo[9]; else if(PlayerInfo[i][pSlotammo9] < ammo[9] && ammo[9] >= 0) { if(PlayerInfo[i][pSlotammo9] < 0) PlayerInfo[i][pSlotammo9] = 0; else { GetWeaponNameEx(gun[9],gunname,sizeof(gunname)); cheater = 2; } } } new string[128]; new plname[MAX_PLAYER_NAME]; new ip[256]; new weaponid; GetWeaponName(weaponid, gunname, sizeof(gunname)); if(cheater == 2 && PyxiTime[i] == 0) { guncheat[i] =1; GetPlayerName(i, plname, MAX_PLAYER_NAME); GetPlayerIp(i,ip,sizeof(ip)); format(string,sizeof(string),"- Кикнут %s | Патроны на оружие | Лвл: %d | Warns: %d | IP: %s",plname,PlayerInfo[i][pLevel],PlayerInfo[i][pWarns],ip); ABroadCast(COLOR_LIGHTRED,string,1); SetPlayerHealthAC(i, 0); Delgun(i); ResetPlayerWeapons(i); PlayerInfo[i][pSlot2] = 0; PlayerInfo[i][pSlot3] = 0; PlayerInfo[i][pSlot4] = 0; PlayerInfo[i][pSlot5] = 0; PlayerInfo[i][pSlot6] = 0; PlayerInfo[i][pSlot7] = 0; PlayerInfo[i][pSlot8] = 0; PlayerInfo[i][pSlot9] = 0; PlayerInfo[i][pSlot10] = 0; PlayerInfo[i][pSlot11] = 0; Kick(i); return 1; } } } } } } return 1; } stock GetWeaponNameEx(id, name[], len) return format(name,len, "%s", GunNames[id]); stock IsAPistol(gunid) { if(gunid >= 22 && gunid <=24) { return 1; } return 0; } stock IsAMelee(gunid) { if(gunid >= 2 && gunid <= 9 ) { return 1; } return 0; } stock IsAGirlsStuff(gunid) { if(gunid >= 10 && gunid <= 15 || gunid == 46) { return 1; } return 0; } stock IsAGrenade(gunid) { if((gunid >= 16 && gunid <= 18) || gunid == 39) { return 1; } return 0; } stock IsAShotgun(gunid) { if(gunid >= 25 && gunid <= 27) { return 1; } return 0; } stock IsAMachineGun(gunid) { if(gunid == 28 || gunid == 29 || gunid == 32) { return 1; } return 0; } stock IsAnAssault(gunid) { if(gunid == 30 || gunid == 31) { return 1; } return 0; } stock IsARifle(gunid) { if(gunid == 33 || gunid == 34) { return 1; } return 0; } stock IsAHeavyAssault(gunid)//базуки { if(gunid >= 35 && gunid <= 37 ) { return 1; } return 0; } stock IsAStuff1(gunid)//Баллончик { if(gunid >= 41 && gunid <= 43 ) { return 1; } return 0; } stock GiveRichGun(playerid,weaponid,ammo) { PyxiTime[playerid] = 5; if(IsAPistol(weaponid)) { PlayerInfo[playerid][pSlot2] = weaponid; PlayerInfo[playerid][pSlotammo2] += ammo; } else if(IsAShotgun(weaponid)) { PlayerInfo[playerid][pSlot3] = weaponid; PlayerInfo[playerid][pSlotammo3] += ammo; } else if(IsAMachineGun(weaponid)) { PlayerInfo[playerid][pSlot4] = weaponid; PlayerInfo[playerid][pSlotammo4] += ammo; } else if(IsAnAssault(weaponid)) { PlayerInfo[playerid][pSlot5] = weaponid; PlayerInfo[playerid][pSlotammo5] += ammo; } else if(IsARifle(weaponid)) { PlayerInfo[playerid][pSlot6] = weaponid; PlayerInfo[playerid][pSlotammo6] += ammo; } else if(IsAHeavyAssault(weaponid)) { PlayerInfo[playerid][pSlot7] = weaponid; PlayerInfo[playerid][pSlotammo7] += ammo; } else if(IsAHeavyAssault(weaponid)) { PlayerInfo[playerid][pSlot7] = weaponid; PlayerInfo[playerid][pAmmo7] += ammo; } else if(IsAGrenade(weaponid)) { PlayerInfo[playerid][pSlot8] = weaponid; PlayerInfo[playerid][pSlotammo8] += ammo; } else if(IsAStuff1(weaponid)) { PlayerInfo[playerid][pSlot9] = weaponid; PlayerInfo[playerid][pSlotammo9] += ammo; } else if(IsAGirlsStuff(weaponid)) { PlayerInfo[playerid][pSlot10] = weaponid; PlayerInfo[playerid][pSlotammo10] += ammo; } GivePlayerWeapon(playerid,weaponid,ammo); return 1; } stock GetSRVMoney(playerid) { return PlayerInfo[playerid][pCash]; } public Delgun(playerid) { PyxiTime[playerid] = 5; PlayerInfo[playerid][pSlot1] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlot2] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlot3] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlot4] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlot5] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlot6] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlot7] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlot8] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlotammo2] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlotammo3] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlotammo4] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlotammo5] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlotammo6] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlotammo7] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlotammo8] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlotammo9] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlotammo10] = 0;//Оружие слот 2 PlayerInfo[playerid][pSlotammo11] = 0;//Оружие слот 2 ResetPlayerWeapons(playerid); return 1; } // Armour Anticheat public GiveArmour(playerid, Float:armour) { if(logs == 1) { printr("GiveArmour"); } if(IsPlayerConnected(playerid)) { Armour[playerid] = armour; // переменная брони SetPlayerArmour(playerid,armour); } return 1; } stock RemovePlayerFromVehicleRich(playerid) { RemovePlayerFromVehicle(playerid); timer[playerid] = SetTimer("AntiRemovePlayerFromVehicle" , 2800, false); } public AntiRemovePlayerFromVehicle(playerid) { new playeridname[MAX_PLAYER_NAME]; GetPlayerName(playerid,playeridname, sizeof(playeridname)); if (GetPlayerState(playerid) == 2)//В авто { SendClientMessage(playerid,COLOR_LIGHTRED,"Удалите чит программу, чтобы продолжить игру на сервере"); Kick(playerid);// Так как может быть и баг(10% случаев) то просто кикаем, а не баним } } // Money Anticheat public GetMoney() { for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { new money = GetPlayerMoney(i); if(PlayerInfo[i][pCash] > money) // условие: если у игрока денег выданных сервером больше чем игровых. { ResetPlayerMoney(i); GivePlayerMoney(i, PlayerInfo[i][pCash]); } else if(PlayerInfo[i][pCash] < money) // условие: если игровых денег у игрока больше чем выданных сервером. { ResetPlayerMoney(i); GivePlayerMoney(i, PlayerInfo[i][pCash]); } } } return ; }
Автор - 666prototype666 Дата добавления - 10.10.2011 в 11:05:05