2 posts in this topic

Доброго времени суток уважаемые пользователи pawno-rus решил выложить свою работу античита может кому пригодится. И так давайте начнем!
Ко всем new 

Спойлер

new ChekMoneyAntiCheat[MAX_PLAYERS];

В конце мода:

Спойлер

GiveMoney(playerid,money)//Выдаем деньги
{
    PlayerInfo[playerid][pMoney] += money;
    GivePlayerMoney(playerid,PlayerInfo[playerid][pMoney]-GetPlayerMoney(playerid));
}
GetMoney(playerid)//Узнаем деньги
{
    return PlayerInfo[playerid][pMoney];
}
ResetMoney(playerid)//Забираем деньги 
{
    PlayerInfo[playerid][pMoney] = 0;
    ResetPlayerMoney(playerid);
}

В public OnPlayerConnect:
 

Спойлер

PlayerInfo[playerid][pMoney] = 0;

ChekMoney[playerid] = SetTimer("ChekMoneyAntiCheat",1000,1);

Теперь создаем таймер:

Спойлер

ChekMoneyAntiCheat(playerid)//Таймер проверки
{
    GivePlayerMoney(playerid,PlayerInfo[playerid][pMoney]-GetPlayerMoney(playerid));
    if(GetPlayerMoney(playerid) != PlayerInfo[playerid][pMoney])
    {
        ResetPlayerMoney(playerid);
        GivePlayerMoney(playerid,PlayerInfo[playerid][pMoney]);
    }
    else
    {
        PlayerInfo[playerid][pMoney] = GetPlayerMoney(playerid);
    }
    return 1;
}

Теперь заменяем все GivePlayerMoney,GetPlayerMoney,ResetPlayerMoney на GiveMoney,GetMoney,ResetMoney
ВАЖНО!
Здесь мы не чего не заменяем!

Спойлер

GiveMoney(playerid,money)//Выдаем деньги
{
    PlayerInfo[playerid][pMoney] += money;
    GivePlayerMoney(playerid,PlayerInfo[playerid][pMoney]-GetPlayerMoney(playerid));
}
GetMoney(playerid)//Узнаем деньги
{
    return PlayerInfo[playerid][pMoney];
}
ResetMoney(playerid)//Забираем деньги 
{
    PlayerInfo[playerid][pMoney] = 0;
    ResetPlayerMoney(playerid);
}

 

Share this post


Link to post
Share on other sites

Вот моя версия анти чита 

В конец мода:

stock hak_GivePlayerMoney(playerid, money, statis = 0)
{
	if(statis == 1) return GivePlayerMoney(playerid, money);
	if(money < 0) PlayerInfo[playerid][pMoney] = money;
	else if(money > 0) PlayerInfo[playerid][pMoney] += money;
	ResetPlayerMoney(playerid);
	return GivePlayerMoney(playerid, money);
}
#if defined _ALS_GivePlayerMoney
	#undef GivePlayerMoney
#else
	#define _ALS_GivePlayerMoney
#endif
#define GivePlayerMoney hak_GivePlayerMoney 

и в OnPlayerUpDate

if(IsPlayerConnected(playerid))
{
    if(PlayerInfo[playerid][pMoney] != GetPlayerMoney(playerid))
    {
        ResetPlayerMoney(playerid);
        GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney], 1);
    }
}

Переменную PlayerInfo[playerid][pMoney] меняйте на свою

P.S На работу способность не проверял, но должно работать 

Edited by MuhammadPawn

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • August_Rothschild
      By August_Rothschild
      Всем привет , как заменять анимации в игре ? Имеется ввиду анимации танцев , как прочесть файлы с анимациями или как заменять определенную анимацию 
    • hotlive
      By hotlive
      я создал свою копию радмира и хочу дать доступ игрокам  к команде /getv, так как она доступна только админам, помогите сделать