Dezmont_Mailz
Умник
Я до этого писал античит,меня даже похвалили за это,но гнобили что в нём есть баги а проверяв командой и вправду они есть
Значит первом делом скажу что античит ловит на оружие,на патроны,также ловит читеров с бесконечными патронами,и так же NOP Dgun
Я исправил его тем что когда покупаешь оружие тебя могла кикать посколько там зависит от слотов,так же теперь когда садишься в машину с оружием с любым тебя не кикает что раньше много жалоб было на это!
нам понадобятся переменные не мало для мода сразу скажу
в pInfo
дальше колбеки
дальше в конец мода
дальше в OnPlayerConnect,OnPlayerDeath и OnPlayerSpawn
созданный паблик GetAmmoEx в секундный тайме (( таймер который обновляется каждую секунду ))
Выдачу оружия меняем на
а теперь разберём мои старые ошибки в античите!!
Дело в том что оружие не по клиенту а по игре размещается по слотам
Иза чего были ложные,потому что в слоте 1000 пуль а в оружие 500 пуль потому что мы два раза купили или сделали ган иза этого был ложный кик
Почему в машинах кикало,дело в том что до этого когда садишься в машину GetPlayerAmmo устанавливался на 0 а привыходе из машины он был больше чем патроны в оружие иза этого он думал что ты читанул патроны однако тут проверка стоит на слот как бы в оружие не может быть больше патронов чем слоте имеем виду это
Но сейчас в данном коде это всё поравлено,наслаждайтесь и издевайтесь над читерами
Алгоритм большой но оптимизирован и читабельность кода 100% не врезается в глаза так что отдаю даром
Если где то есть ссылочку а вот прошлый античит http://pawno-info.ru/showthread.php?t=218006
Есть смысл от NOP OnPlayerWeaponShot но все знают что прокачка оружия будет через сек. таймер поэтому он будет тратить куча патронов а толку 0 он оружие не вкачает поже я сделаю что бы без прокачки скила а выстрелов было много был кик тем самым на вашем сервере будет стоять АНТИ NOP OnPlayerWeaponShot
Кто не знает что такое KickEx то просто в конец мода
Значит первом делом скажу что античит ловит на оружие,на патроны,также ловит читеров с бесконечными патронами,и так же NOP Dgun
Я исправил его тем что когда покупаешь оружие тебя могла кикать посколько там зависит от слотов,так же теперь когда садишься в машину с оружием с любым тебя не кикает что раньше много жалоб было на это!
нам понадобятся переменные не мало для мода сразу скажу
в pInfo
PHP:
bool:WeaponInfo[47],
AmmoSlot[13],
FP_Ammo_Reloading[2],
FP_Player_Warns_Ammo_Reloading,
PHP:
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
PlayerInfo[playerid][FP_Ammo_Reloading][0] = GetPlayerAmmo(playerid);
if(PlayerInfo[playerid][FP_Ammo_Reloading][0] == PlayerInfo[playerid][FP_Ammo_Reloading][1])
{
switch(GetPlayerWeapon(playerid))
{
case 0..15,44..46:
{
PlayerInfo[playerid][FP_Ammo_Reloading][1] = PlayerInfo[playerid][FP_Ammo_Reloading][0];
PlayerInfo[playerid][FP_Player_Warns_Ammo_Reloading]=0;
return 1;
}
}
PlayerInfo[playerid][FP_Player_Warns_Ammo_Reloading]++;
if(PlayerInfo[playerid][FP_Player_Warns_Ammo_Reloading]>5)
{
KickEx(playerid,COLOR_LIGHTRED,"Читер");
return 1;
}
}
else
{
PlayerInfo[playerid][FP_Ammo_Reloading][1]=PlayerInfo[playerid][FP_Ammo_Reloading][0];
PlayerInfo[playerid][FP_Player_Warns_Ammo_Reloading]=0;
}
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
if(IsAPlane(vehicleid))
{
PlayerInfo[playerid][WeaponInfo][46] = true;
PlayerInfo[playerid][AmmoSlot][11] += 1;
}
return 1;
}
PHP:
stock GetAmmoEx(playerid)
{
new weap = GetPlayerWeapon(playerid);
if(weap > 0 && PlayerInfo[playerid][WeaponInfo][weap] == false || GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK)
{
KickEx(playerid,COLOR_LIGHTRED,"Ваш текст");
return 1;
}
switch(weap)
{
case 0: return 1;
default:
{
if(GetPlayerAmmo(playerid) < 0)
{
KickEx(playerid,COLOR_LIGHTRED,"Ваш текст");
return 1;
}
new slot = 0;
switch(weap)// ïðè÷èíà
{
case 0,1: slot = 0;
case 2..9: slot = 1;
case 22..24: slot = 2;
case 25..27: slot = 3;
case 28,29,32: slot = 4;
case 30,31: slot = 5;
case 33,34: slot = 6;
case 35..38: slot = 7;
case 16..18: slot = 8;
case 41..43: slot = 9;
case 10..15: slot = 10;
case 44..46: slot = 11;
case 40: slot = 12;
}
if(GetPlayerAmmo(playerid) > PlayerInfo[playerid][AmmoSlot][slot])
{
KickEx(playerid,COLOR_LIGHTRED,"Ваш текст");
return 1;
}
else if(GetPlayerAmmo(playerid) != PlayerInfo[playerid][AmmoSlot][slot])
{
PlayerInfo[playerid][AmmoSlot][slot] = GetPlayerAmmo(playerid);
}
if(GetPlayerAmmo(playerid) == 0)
{
ResetPlayerWeapons(playerid);
PlayerInfo[playerid][WeaponInfo][weap] = false;
PlayerInfo[playerid][AmmoSlot][slot] = 0;
}
return 1;
}
}
return 1;
}
stock ServerGiveWeapon(playerid,weaponid,rammo)
{
if(PlayerInfo[playerid][PlayerInAFK] > 0) return 1;
new slot = 0;
switch(weaponid)// ïðè÷èíà
{
case 0,1: slot = 0;
case 2..9: slot = 1;
case 22..24: slot = 2;
case 25..27: slot = 3;
case 28,29,32: slot = 4;
case 30,31: slot = 5;
case 33,34: slot = 6;
case 35..38: slot = 7;
case 16..18: slot = 8;
case 41..43: slot = 9;
case 10..15: slot = 10;
case 44..46: slot = 11;
case 40: slot = 12;
}
PlayerInfo[playerid][WeaponInfo][weaponid] = true;
PlayerInfo[playerid][AmmoSlot][slot] += rammo;
GivePlayerWeapon(playerid,weaponid,rammo);
return 1;
}
stock Delgun(playerid)
{
ResetPlayerWeapons(playerid);
for(new i = 0; i < 13; i++) PlayerInfo[playerid][AmmoSlot][i] = 0;
for(new i = 0; i < 47; i++) PlayerInfo[playerid][WeaponInfo][i] = false;
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:
Delgun(playerid);
PHP:
GetAmmoEx(i);
PHP:
ServerGiveWeapon
Дело в том что оружие не по клиенту а по игре размещается по слотам
Иза чего были ложные,потому что в слоте 1000 пуль а в оружие 500 пуль потому что мы два раза купили или сделали ган иза этого был ложный кик
Почему в машинах кикало,дело в том что до этого когда садишься в машину GetPlayerAmmo устанавливался на 0 а привыходе из машины он был больше чем патроны в оружие иза этого он думал что ты читанул патроны однако тут проверка стоит на слот как бы в оружие не может быть больше патронов чем слоте имеем виду это
Но сейчас в данном коде это всё поравлено,наслаждайтесь и издевайтесь над читерами
Алгоритм большой но оптимизирован и читабельность кода 100% не врезается в глаза так что отдаю даром
Если где то есть ссылочку а вот прошлый античит http://pawno-info.ru/showthread.php?t=218006
Есть смысл от NOP OnPlayerWeaponShot но все знают что прокачка оружия будет через сек. таймер поэтому он будет тратить куча патронов а толку 0 он оружие не вкачает поже я сделаю что бы без прокачки скила а выстрелов было много был кик тем самым на вашем сервере будет стоять АНТИ NOP OnPlayerWeaponShot
Кто не знает что такое KickEx то просто в конец мода
PHP:
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;
}
Последнее редактирование:
