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


Re: [INC] Money Anticheat - Toney - 23.01.2010

Чё то странно просто протестировал я эту читерильную машинку и чё там, смарю, деньги до миллиарда подлитают и текст драв ложица намертво потом смарю до - триллиона короче ерунда.. Исправьте баг.


Re: [INC] Money Anticheat - CrunkBankS - 24.01.2010

Выложьте кто нить др античит


Re: [INC] Money Anticheat - ZiGGi - 30.01.2010

Code:
new PlayerInfo[MAX_PLAYERS][pMoney];// переменная в которой хранятся деньги
Code:
public OnPlayerUpdate()
{
    AntiMoneyCheat(playerid);
}
Code:
stock AntiMoneyCheat(playerid)
{
	new clientmoney = GetPlayerMoney(playerid);
	if(clientmoney < 0) return SetPlayerMoneyZ(playerid,0);
	if(clientmoney == PlayerInfo[playerid][pMoney]) return 1;
	if(clientmoney < PlayerInfo[playerid][pMoney]) return SetPlayerMoneyZ(playerid,clientmoney);
	if(clientmoney > PlayerInfo[playerid][pMoney]) return SetPlayerMoneyZ(playerid,PlayerInfo[playerid][pMoney]);
}
// Функции денег
Code:
stock GivePlayerMoneyZ(playerid, money)
{
	PlayerInfo[playerid][pMoney] += money;
	return SetPlayerMoneyZ(playerid, PlayerInfo[playerid][pMoney]);
}

stock SetPlayerMoneyZ(playerid, money)
{
    PlayerInfo[playerid][pMoney] = money;
	ResetPlayerMoney(playerid);
	return GivePlayerMoney(playerid,money);
}

stock GetPlayerMoneyZ(playerid)
{
    return PlayerInfo[playerid][pMoney];
}



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

ZiGGi, big thanks

я так понимаю, если игрок начитерит себе деньги то они у него сразуже отнимутся...
и чтобы анти-чит работал нужно во всём моде заменить все функции: GetPlayerMoney & SetPlayerMoney
на: GetPlayerMoneyZ & SetPlayerMoneyZ


P.S. чёт я ступил функции SetPlayerMoney как стандартной нету, есть GivePlayerMoney




Re: [INC] Money Anticheat - ZiGGi - 30.01.2010

Quote:
Originally Posted by [Saint
]
ZiGGi, big thanks

я так понимаю, если игрок начитерит себе деньги то они у него сразуже отнимутся...
и чтобы анти-чит работал нужно во всём моде заменить все функции: GetPlayerMoney & SetPlayerMoney
на: GetPlayerMoneyZ & SetPlayerMoneyZ
угу можно модифицировать, например запись в лог о дизбалансе денег...


Re: [INC] Money Anticheat - Riaz - 30.01.2010

Это значит если он купит Sprunk в автомате деньги просто отчислятся?


Re: [INC] Money Anticheat - kAND - 30.01.2010

Quote:
Originally Posted by S2D.Alone_ (RU)
Это значит если он купит Sprunk в автомате деньги просто отчислятся?
Я думаю из этого вполне понятно, что будет...
Quote:

...
if(clientmoney < PlayerInfo[playerid][pMoney]) return SetPlayerMoneyZ(playerid,clientmoney);
...

Но если все-таки нет, то деньги да,сначаа просто отчислятся, а потом обновятся в переменной...


Re: [INC] Money Anticheat - CrunkBankS - 30.01.2010

Со стандартными магазинами будет конфликтовать?


Re: [INC] Money Anticheat - kAND - 30.01.2010

Quote:
Originally Posted by CrunkBankS
Со стандартными магазинами будет конфликтовать?
Судя по коду конфликтов быть не должно. Только в казино не поиграешь, точней можешь поиграть, но только себе в убыток....


Re: [INC] Money Anticheat - CrunkBankS - 30.01.2010

Та казино заперто, открыты только магазины и аммо


Re: [INC] Money Anticheat - lost13 - 13.05.2010

вот выкладывал я на другом сайте =/ античит непробиваемый одно но как и у всех хороших античитов не поиграть в казино только как ктото сказал "себе в убыток" и он нелюбит стант бонусы =/ + нужно сделать проверку на такси но только 1 раз иначе античит будет уязвим, например можно сделать при посадке в такси playersmoneys[playerid] = GetPlayerMoney(playerid);

Анти-чит на деньги
ВНИМАНИЕ!: Скрипт не будет корректно работать со сторонними фильтрскриптами в которых даются или отнимаются деньги! следует добавить этот скрипт во все сторонние фильтрскрипты!

и так начнём урок создание простейшего и эффективного анти чита на деньги.
создадим переменную в которой будем хранить денежки игроков:

PHP код:
new playersmoneys[MAX_PLAYERS];
Далее в OnPlayerDisConnect засунем

PHP код:
playersmoneys[playerid] = 0;
Потом (можно в самом низу мода) создаём свои функции денег:

PHP код:
stock GiveServerMoney(playerid,amout)//дает деньги от сервера
{
GivePlayerMoney(playerid,amout);
playersmoneys[playerid] = GetPlayerMoney(playerid);//сохраняем деньги в нашу переменную
return 1;
}

stock ResetServerMoney(playerid)//отбирает деньги
{
GivePlayerMoney(playerid,-GetPlayerMoney(playerid));
playersmoneys[playerid] = GetPlayerMoney(playerid);//сохраняем деньги в нашу переменную
return 1;
}
Дальше заменяем GivePlayerMoney и ResetPlayerMoney на новые функции

Далее создаём таймер или вставляем этот код в OnPlayerUpdate:

PHP код:
if(GetPlayerMoney(playerid) > playersmoneys[playerid]/* && !IsPlayerAdmin(playerid)*/)//раскомментируйте если нехотите чтобы кикало админов
{
ResetPlayerMoney(playerid);
GiveServerMoney(playerid,lostmoneys[playerid]);
for(new i; i < MAX_PLAYERS; i++)
if(IsPlayerConnected(i) && playerid != i){
format(str,sizeof(str),"\"%s\" был кикнут администратором \"Server\". (Причина: Денежный чит)",GetName(playerid));
SendClientMessage(i,red,str);}
SendClientMessage(playerid,red,"Вы были кикнуты администратором \"Server\". (Причина: Денежный чит)");
TogglePlayerControllable(playerid,0);
Kick(playerid);//если хотите чтобы банило замените на Ban(playerid);
return 1;
}
Всё античит готов, урок закончен всем спасибо

P.S. Античит проверим пицотраз рабочий 100% если у вас есть какие то ошибки(которых быть не может) то, попробуйте всё сделать руками!