SA-MP Forums Archive
[Include] [INC] Weapon Anticheat - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+----- Forum: Релизы/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=66)
+----- Thread: [Include] [INC] Weapon Anticheat (/showthread.php?tid=136723)

Pages: 1 2


[INC] Weapon Anticheat - ^Woozie^ - 26.03.2010

Посмотрел я тут другие форумы и убедился. 99% Античитов здесь - фекалии.

Вот нормально, хоть и частично работающий античит на оружие. На патроны сделаете сами, кому надо. На патроны не делал, т.к код будет содержать много лишнего.


Добавляем переменные. MP - предполагаемое количество игроков на сервере.

Код:
#define MP 5

new PlayerWeapons[MP][46];
new iPlayerWeapon[MP];
new iNewPlayerWeapon[MP];
new iPlayerAmmo[MP];
new iNewPlayerAmmo[MP];
Добавляем функции куда-нибудь.
Код:
//---------------------------------------------------------------------------------------------

GivePlayerWeaponUAC(playerid,id,ammo)
{
PlayerWeapons[playerid][0] = 1;
PlayerWeapons[playerid][id] = 1;
if(id == 39) { PlayerWeapons[playerid][40] = 1; }
GivePlayerWeapon(playerid,id,ammo);
return 1;
}

//---------------------------------------------------------------------------------------------

ResetPlayerWeaponsUAC(playerid)
{
for(new i = 0; i < 46; i++)
{
PlayerWeapons[playerid][i] = 0;
}
PlayerWeapons[playerid][0] = 1;
ResetPlayerWeapons(playerid);
return 1;
}

//---------------------------------------------------------------------------------------------
Меняем все функции выдачи и сброса оружий на мои аналоги.
Также в конец OnPlayerDisconnect и в начало OnPlayerSpawn и OnPlayerDeath добавляем

Код:
ResetPlayerWeaponsUAC(playerid);
Заменяем функцию OnPlayerUpdate

Код:
public OnPlayerUpdate(playerid)
{
if(IsPlayerConnected(playerid))
{
iNewPlayerAmmo[playerid] = GetPlayerAmmo(playerid);
if(iNewPlayerAmmo[playerid] != iPlayerAmmo[playerid])
{
OnPlayerAmmoChange(playerid, iNewPlayerAmmo[playerid], iPlayerAmmo[playerid]);
iPlayerAmmo[playerid] = iNewPlayerAmmo[playerid];
}
iNewPlayerWeapon[playerid] = GetPlayerWeapon(playerid);
if(iNewPlayerWeapon[playerid] != iPlayerWeapon[playerid])
{
OnPlayerWeaponChange(playerid, iNewPlayerWeapon[playerid], iPlayerWeapon[playerid]);
iPlayerWeapon[playerid] = iNewPlayerWeapon[playerid];
}
}
return 1;
}
Добавляем функции:

Код:
forward OnPlayerAmmoChange(playerid, newammo, oldammo);
public OnPlayerAmmoChange(playerid, newammo, oldammo)
{
if(newammo == 0)
{
PlayerWeapons[playerid][GetPlayerWeapon(playerid)] = 0;
}
return 1;
}

//---------------------------------------------------------------------------------------------

forward OnPlayerWeaponChange(playerid, newweapon, oldweapon);
public OnPlayerWeaponChange(playerid, newweapon, oldweapon)
{
new string[128];
if(PlayerWeapons[playerid][newweapon] == 0 && GetPlayerWeapon(playerid) != 0)
{
format(string,128, "%s (%d) был кикнут. Читерство на оружие - %s.",GetName(playerid),playerid,aWeaponNames[newweapon]);
SendClientMessageToAll(COLOR_RED,string);
Kick(playerid);
}
return 1;
}
Массив aWeaponsNames возьмите из фильтрскрипта debug. Функцию GetName найдите тоже где нибудь.

Внимание! Этот античит прокатит только на те моды, где есть своя система аммуниций. Но по мне, ради такого стоит её сделать. Свою не даю, потому что я жид. И при подборе пикапа с оружием, выдавайте игроку тоже оружие что он подбирает, но только с нулём патронов.


Re: [INC] Weapon Anticheat - ONIXS - 26.03.2010

На патроны в данный момент сделать античит невозможно ибо кол во патронов в половине случаев возвращается неверное.


Re: [INC] Weapon Anticheat - ^Woozie^ - 26.03.2010

Quote:

На патроны в данный момент сделать античит невозможно ибо кол во патронов в половине случаев возвращается неверное.

возможно и сделал, просто у тебя фантазия хромает.


Re: [INC] Weapon Anticheat - ONIXS - 26.03.2010

Quote:
Originally Posted by ^Faus
возможно и сделал, просто у тебя фантазия хромает.
С фантазией у меня всё нормально, сделать то можно, но зачем? Нормальный читер врубит фриз патронов и античит будет бесполезен)))


Re: [INC] Weapon Anticheat - ^Woozie^ - 26.03.2010

я написал, кто хочет делать anti infinite ammo - пусть делают. у меня оно есть и работает.


Re: [INC] Weapon Anticheat - ^Woozie^ - 26.03.2010

ещё короче баг такой маленький возникнуть может.
Если вы садитесь в Caddy вам выдаётся клюшка. Ну вы поняли что надо сделать


Re: [INC] Weapon Anticheat - slikki - 26.03.2010

какая вероятность что античит может ошибиться? прсото если большая то свой вырезать не буду чтобы заменить...


Re: [INC] Weapon Anticheat - ^Woozie^ - 26.03.2010

Вероятность вообще отсутствует, если все оружия что ты выдаёшь в моде, выдаются через эту функцию.
Но опять же, есть спорные моменты, например когда заходишь в Police Ranger(выдаётся шотган) или Caddy(клюшка).

Решается просто.
Код:
public OnPlayerEnterVehicle(playerid,vehicleid,ispassenger)
{
if(GetVehicleModel(vehicleid) == 457) { GivePlayerWeaponUAC(playerid,2,0); }
if(GetVehicleModel(vehicleid) == 599) { GivePlayerWeaponUAC(playerid,25,0); }
}



Re: [INC] Weapon Anticheat - ONIXS - 26.03.2010

Quote:
Originally Posted by ^Faus
Вероятность вообще отсутствует, если все оружия что ты выдаёшь в моде, выдаются через эту функцию.
Но опять же, есть спорные моменты, например когда заходишь в Police Ranger(выдаётся шотган) или Caddy(клюшка).

Решается просто.
Код:
public OnPlayerEnterVehicle(playerid,vehicleid,ispassenger)
{
if(GetVehicleModel(vehicleid) == 457) { GivePlayerWeaponUAC(playerid,2,0); }
if(GetVehicleModel(vehicleid) == 599) { GivePlayerWeaponUAC(playerid,25,0); }
}
Но если при этом у тебя уже есть оружие в этом слоте, то клюшку тебе не дадут, а в слот шотгана вроде добавятся патроны


Re: [INC] Weapon Anticheat - slikki - 26.03.2010

у меня был антчит выдавал через ACSGivePlayerWeapon и частенько кикал невиновных)) хз почему
будет время попробую твой)


Re: [INC] Weapon Anticheat - ^Woozie^ - 26.03.2010

Я написал, что для этого нужна своя система аммуниций. И все функции выдачи оружия должны быть заменены на мои.


Quote:

Но если при этом у тебя уже есть оружие в этом слоте, то клюшку тебе не дадут, а в слот шотгана вроде добавятся патроны

Клюшка выдаётся при посадке в машину, что непонятного? А ноль патронов просто так.


Re: [INC] Weapon Anticheat - ONIXS - 26.03.2010

Quote:
Originally Posted by ^Faus
Клюшка выдаётся при посадке в машину, что непонятного?
Не совсем, клюшка будет дана если в этом слоте нету другого оружия.


Re: [INC] Weapon Anticheat - Manyack - 09.07.2010

подскажите пожалуйста, в чем может быть проблема, я ставлю этот античит, все отлично работает, но как только на сервер заходит больше 5 человек все начинают тупо падать с неба.


Re: [INC] Weapon Anticheat - Manyack - 10.07.2010

ну подскажите, в чем проблема?


Re: [INC] Weapon Anticheat - Maggi - 10.07.2010

оружие глючит в сампе... лучше сделать норм систему античита (по определению) и внести в нее исключения:
1) если сел в тачу - то делать доп. обработку спецоружия (теков...)
2) если сел в спецмодель кот выдает скриптовым образом оружие то тупо отнимать
3) сделать счетчик "лагов" если античит в течение 10 сек пытался отнять пухи у игрока и кол-во провалов более пяти то тупо кикать с подозрением на чит или лаг... скоро сделаю свой античит по этой схеме... думаю что все будет работать норм...

P.s: будут проблемы возможно во времена когда игрок выходит входит в тачку....(серву данные не отсылаются в этот момент (хз почему)... итд...)


Re: [INC] Weapon Anticheat - DANGER1979 - 14.07.2010

не тестировал твой античит, но думаю что в нём много не учтёно.
писал античит оружия, но он у меня на сервере постоянно выключен, т.к. при онлайне в 200 человек сильно ложно флудит в чат, когда кто то быстро скролит оружие. остальное всё учтено.
вся проблема в античитах оружия то, что в сампе при быстром скроле возвращается, даже при определённом оружие, т.е. проверке закончил ли смену оружия игрок, кол-во патронов от другого оружия.


Re: [INC] Weapon Anticheat - slikki - 14.07.2010

del.....


Re: [INC] Weapon Anticheat - Maggi - 17.07.2010

Quote:

вся проблема в античитах оружия то, что в сампе при быстром скроле возвращается, даже при определённом оружие, т.е. проверке закончил ли смену оружия игрок, кол-во патронов от другого оружия.

А наф так? лучше делать проверку оружейных слотов, онито помойму не должны глючить при скролле

уже осталось совсем совсем мало - скоро напишу свой античит....

З.Ы: DANGER1979 , советую сделать антилаг - оч помогает...метод создания - в OnPlayerUpdate() делать инкремент переменной PlayerUpdateTicks и обнулять ее после проверок в главном таймере.... если она = 0 то игрок либо лагает либо в афк))) работает отлично) для теста афк нужно сделать счетчик афк...т.е скока раз она была равна нулю...если например 5 раз... т.е лаг длинной в 5 сек хДД то писать в чат что игрок перешел в афк...


Re: [INC] Weapon Anticheat - Stepashka - 17.07.2010

Quote:
Originally Posted by Maggi
View Post
уже осталось совсем совсем мало - скоро напишу свой античит....
а может не надо , напишите уже что-нибудь новое, реально надоели эти баяны, совсем фантазии чтоли нет?!


Re: [INC] Weapon Anticheat - Romanius - 17.07.2010

как говорится: перестаньте изобретать велосипед, его уже давно изобрели