Доступ к готовым решениям

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Мануал Пульсатор жизней и брони

OKStyle

Адвокат по делам семейным
Administrator
Wiki Team
Регистрация
4 Мар 2011
Сообщения
7,094
Лучшие ответы
226
Репутация
2,455
Награды
11
Многие наверное видели постоянно бегающую полоску здоровья у читеров. В этой теме я покажу как сделать это скриптово:

В начало:
PHP:
new PulsarTimer[MAX_PLAYERS char]; // код старый, меняйте сами

В OnPlayerCommandText:
[php]if(strcmp(cmdtext, "/pulson", true, 7) == 0)
{
    PulsarTimer{playerid} = SetTimerEx("Pulsator", 10, 1, "i", playerid);
    GameTextForPlayer(playerid, "~w~Pulsator ~g~~h~ON", 2000, 6);
    return 1;
}
if(strcmp(cmdtext, "/pulsoff", true, 8) == 0)
{
    KillTimer(PulsarTimer{playerid});
    GameTextForPlayer(playerid, "~w~Pulsator ~r~~h~OFF", 2000, 6);
    return 1;
}
В OnPlayerDisconnect:
PHP:
KillTimer(PulsarTimer{playerid});
В OnGameModeExit или OnFilterScriptExit:
PHP:
for(new i, j = GetMaxPlayers(); i != j; i++)
{
    if(IsPlayerConnected(i)) KillTimer(PulsarTimer{i});
}
В низ ставим функцию таймера:
PHP:
forward Pulsator(playerid);
public Pulsator(playerid)
{
    new Float:hp;
    GetPlayerHealth(playerid, hp);
    if(GetPVarInt(playerid, "Increase") == 1)
    {
        if(hp > 99.1) SetPVarInt(playerid,"Increase", 0);
        else SetPlayerHealth(playerid, hp + 1.0);
    }
    else if(GetPVarInt(playerid, "Increase") == 0)
    {
        if(hp < 1.1) SetPVarInt(playerid,"Increase", 1);
        else SetPlayerHealth(playerid, hp - 1.0);
    }
    return 1;
}
Но при падении с маленьким кол-вом HP - игрок умирает. Так же и с выстрелами. В 0.3d к нам на помощь придёт новая функция. С ней скрипт несколько преобразится:

Добавим в начало:
PHP:
new bool:IsPlayerUsePulsar[MAX_PLAYERS];
В команды:
/pulson - IsPlayerUsePulsar[playerid] = true;
/pulsoff - IsPlayerUsePulsar[playerid] = false;

В OnPlayerTakeDamage:
PHP:
if(IsPlayerUsePulsar[playerid] == true)
{
    new Float:hp;
    GetPlayerHealth(playerid, hp);
    if(amount > hp) SetPlayerHealth(playerid, hp);
    else SetPlayerHealth(playerid, hp + amount);
}
Таким образом, когда пульсар включен - игрок бессмертен (если сервер не будет лагать, а то не успеет "оживить"). Пробуйте - отписывайтесь о багах.

Автор: OKStyle
 
Сверху Снизу