Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.

Вы не подключены. Войдите или зарегистрируйтесь

[ Scr ][ All ] Создание невозможного ко взлому античита на деньги

Перейти вниз  Сообщение [Страница 1 из 1]

Pawno

Pawno
Местный
Местный

Автор: Norn.

Урок по созданию античита на деньги

Информация:
* Этот урок предназначен для модов, известных как "Roleplay".
* Система не будет работать с системами игры (Автоматы 'Sprunk', Бургершоты, Pay'n'Spray и тому подобное).

Сама функция:
Код:
#define ResetMoneyBar ResetPlayerMoney
#define UpdateMoneyBar GivePlayerMoney

new Cash[MAX_PLAYERS];

stock GivePlayerCash(playerid, money)
{
    Cash[playerid] += money;
    ResetMoneyBar(playerid);//Аннулирует деньги в оригинальном баре. Не убирать!
    UpdateMoneyBar(playerid,Cash[playerid]);//Устанавливает новое значение для денег в оригинальном баре!
    return Cash[playerid];
}
stock SetPlayerCash(playerid, money)
{
    Cash[playerid] = money;
    ResetMoneyBar(playerid);//Аннулирует деньги в оригинальном баре. Не убирать!
    UpdateMoneyBar(playerid,Cash[playerid]);//Устанавливает новое значение для денег в оригинальном баре!
    return Cash[playerid];
}
stock ResetPlayerCash(playerid)
{
    Cash[playerid] = 0;
    ResetMoneyBar(playerid);//Аннулирует деньги в оригинальном баре. Не убирать!
    UpdateMoneyBar(playerid,Cash[playerid]);//Устанавливает новое значение для денег в оригинальном баре!
    return Cash[playerid];
}
stock GetPlayerCash(playerid) return Cash[playerid];
Добавьте в OnPlayerConnect:
Код:
ResetPlayerCash(playerid); //Обнуляет деньги у игрока
Добавьте в OnGameModeInit
Код:
SetTimer("MoneyTimer", 1000, 1);
Паблик "MoneyTimer" будет проверять и обнаруживать попытки к взлому системы античита:
Код:
public MoneyTimer()
{
    new username[MAX_PLAYER_NAME];
    for(new i=0; i<MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            if(GetPlayerCash(i) != GetPlayerMoney(i))
            {
                ResetMoneyBar(i);//Аннулирует деньги в оригинальном баре. Не убирать!
                UpdateMoneyBar(playerid,GetPlayerCash(i));//Устанавливает новое значение для денег в оригинальном баре!
                new hack = GetPlayerMoney(i) - GetPlayerCash(i);
                GetPlayerName(i,username,sizeof(username));
                printf("%s попытался нарисовать себе аж $%d.", username,hack);
            }
        }
    }
}
Примечание переводчика: в оригинальном уроке public MoneyTimer() не объявлен, поэтому, чтобы избежать ошибок при компилировании, стоит добавить форвард:
Код:
forward MoneyTimer();

Вернуться к началу  Сообщение [Страница 1 из 1]

Права доступа к этому форуму:
Вы не можете отвечать на сообщения