SA-MP Forums Archive
[Include] [INC] Money 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] Money Anticheat (/showthread.php?tid=118395)

Pages: 1 2


[INC] Money Anticheat - ^Woozie^ - 03.01.2010

90% античитов на деньги обходятся по такой схеме. В этом античите такое не пройдёт.

Инсталляция:

Difference - это отличие между суммой, которую игроку дало скриптом и которая у него на руках. Если эта сумма отличается более чем на 15$ его кикнет. Для стант-серверов рекомендуется сделать побольше, но в пределах нормы.

Ставим в TOP
pawn Code:
#define DIFFERENCE 15
new PlayerMoney[MAX_PLAYERS];
Ставим отдельно:
pawn Code:
//-----------------------------------------------------------------------------------------------------

public OnPlayerConnect(playerid)
{
PlayerMoney[playerid] = 0;
return 1;
}

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

stock GivePlayerMoneyUAC(playerid,money)
{
MoneyAntiCheat(playerid);
PlayerMoney[playerid]+=money;
GivePlayerMoney(playerid,money);
return 1;
}

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

stock SetPlayerMoneyUAC(playerid,money)
{
MoneyAntiCheat(playerid);
PlayerMoney[playerid] = money;
SetPlayerMoney(playerid,money);
return 1;
}

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

stock GetPlayerMoneyUAC(playerid)
{
MoneyAntiCheat(playerid);
return PlayerWant[playerid][playermoneyuac];
}


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

stock ResetPlayerMoneyUAC(playerid)
{
MoneyAntiCheat(playerid);
PlayerMoney[playerid] = 0;
ResetPlayerMoney(playerid);
return 1;
}

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

forward MoneyAntiCheat(playerid);
public MoneyAntiCheat(playerid)
{
new string[128];
new cash = GetPlayerMoney(playerid);
if(cash > playermoneyuac[playerid])
{
if ((cash-playermoneyuac[playerid]) > DIFFERENCE)
{
new hacked = cash - playermoneyuac[playerid];
GivePlayerMoney(playerid, -hacked);
format(string,128, "%s (%d) кикнут с сервера. Причина: Читерство на деньги (%d),GetName(playerid),playerid,hacked);
SendClientMessageToAll(COLOR_RED,string);
Kick(playerid);
}
}
return 1;
}


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

stock GetName(playerid)
{
new Name[256];
GetPlayerName(playerid,Name,MAX_PLAYER_NAME);
return Name;
}

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

stock MoneyLove(playerid)
{
new cash = GetPlayerMoney(playerid);
if(cash > playermoneyuac[playerid])
{
if ((cash-playermoneyuac[playerid]) > DIFFERENCE)
{
playermoneyuac[playerid] = GetPlayerMoney(playerid);
}else{
MoneyAntiCheat(playerid);
}
}
return 1;
}

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

public OnPlayerEnterVehicle(playerid,vehicleid,ispassenger)
{
if(GetVehicleModel(vehicleid) == 420 || GetVehicleModel(vehicleid) == 438)
{
MoneyLove(playerid);
}
return 1;
}


//-----------------------------------------------------------------------------------------------------
Не забудьте заменить функции GetPlayerMoney GivePlayerMoney SetPlayerMoney на мои!


Re: [INC] Money Anticheat - MX_Master - 03.01.2010

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


Re: [INC] Money Anticheat - [Saint] - 03.01.2010

Каждый решает сам, что ему использовать....


Re: [INC] Money Anticheat - MX_Master - 03.01.2010

спору нет, но ты будешь такой античит использовать? если нет, то почему? какие минусы/плюсы?


Re: [INC] Money Anticheat - ^Woozie^ - 03.01.2010

Quote:

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

что за тупизм. Все аналоги этого античита обходились, когда между таймером игрок читерил и ему давалось лаве скриптовой функцией или путем GetPlayerMoney, особенно в командах с подачей денег. Вот и всё, по крайней мере я так обошёл несколько античитов в начале лета. Сейчас может другие авторы поняли свои косяки, но эту уязвимость я уже заметил давно, руки не доходили выложить.


Re: [INC] Money Anticheat - Zeex - 03.01.2010

А если на сервере 2 игрока с ид 2 и 3, что будет делать данный античит? А я скажу что - ничего он не сделает, т.к. даже проверять их не станет... (даю подсказку - КОТОК)))
Кстати что значит КОТОК? Любопытно даже стало


Re: [INC] Money Anticheat - MX_Master - 03.01.2010

автор
Quote:
Originally Posted by ^Psycho^
Quote:

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

что за тупизм. Все аналоги этого античита обходились, когда между таймером игрок читерил и ему давалось лаве скриптовой функцией или путем GetPlayerMoney, особенно в командах с подачей денег. Вот и всё, по крайней мере я так обошёл несколько античитов в начале лета. Сейчас может другие авторы поняли свои косяки, но эту уязвимость я уже заметил давно, руки не доходили выложить.
тупизмом можно назвать твой античит недописанный.
выдрал куски из общего какого-то кода и с довольным лицом создал релиз (:
могу пожелать только удачи в исправлениях


Re: [INC] Money Anticheat - Serafim_sd - 03.01.2010

Quote:
Originally Posted by ^Psycho^
Code:
stock PlayerCounter()
{
new c;
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i)) { c++;}
}
return c;
}
Допустим у нас 10 игроков с ид от 0 до 9, игрок с ид 5 вышел и твоя функция вернет 9 игроков. это верно, но тогда цикл
Code:
for(new i = 0; i < KOTOK; i++)
{
MoneyAntiCheat(i);
}
забудет о игроке с ид 9...

ЗЫ парень наверно на КОТОК торопился) а вообще это очень забавно - докапываться до названий переменных)))


Re: [INC] Money Anticheat - Serafim_sd - 03.01.2010

и зачем вообще нужен был коток? можно ведь
Code:
for(new i = 0; i < PlayerCounter(); i++)



Re: [INC] Money Anticheat - Zeex - 03.01.2010

Quote:
Originally Posted by Serafim_sd
и зачем вообще нужен был коток? можно ведь
Code:
for(new i = 0; i < PlayerCounter(); i++)
Ну условие цикла ведь проверяется/вычисляется на каждой итерации - получился бы цикл в цикле


Re: [INC] Money Anticheat - ^Woozie^ - 03.01.2010

исправление будет, не ссать.


Re: [INC] Money Anticheat - CrunkBankS - 13.01.2010

Скоро будет?


Re: [INC] Money Anticheat - ^Woozie^ - 13.01.2010

готово. дело одной минуты


Re: [INC] Money Anticheat - CrunkBankS - 14.01.2010

Он в интерьере за чит не посчитает если оружие в аммо купить?


Re: [INC] Money Anticheat - ^Woozie^ - 14.01.2010

вроде не должен


Re: [INC] Money Anticheat - noobik - 21.01.2010

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


Re: [INC] Money Anticheat - CrunkBankS - 22.01.2010

Вообщем в интах не конфликтует, но чит на деньги не всегда определяет


Re: [INC] Money Anticheat - ^Woozie^ - 22.01.2010

Ты обновку античита делал?


Re: [INC] Money Anticheat - CrunkBankS - 22.01.2010

угу


Re: [INC] Money Anticheat - ZiGGi - 23.01.2010

ужасный способ...
грузит сервер ппц....