Команда оглушения игрока шоком

Активный
Статус
Сообщения
516
Лайки
32

8

месяц на сайте

Идея и назначение

Админ или полицейский может временно оглушить игрока, отключив управление.

Подходит для задержаний и RP ситуаций.


Суть реализации

1. Команда /stun принимает ID игрока и длительность.

2. Отключаем управление через TogglePlayerControllable.

3. По таймеру возвращаем управление.


Реализация

Код:
forward UnstunPlayer(playerid);


CMD:stun(playerid, params[])
{
    new target, seconds;

    if(sscanf(params, "ui", target, seconds))
        return SendClientMessage(playerid, -1, "Используй: /stun [id] [секунды].");

    if(!IsPlayerConnected(target))
        return SendClientMessage(playerid, -1, "Игрок не найден.");

    if(seconds <= 0)
        return SendClientMessage(playerid, -1, "Время должно быть больше нуля.");

    TogglePlayerControllable(target, false);

    SetTimerEx("UnstunPlayer", seconds * 1000, false, "i", target);

    SendClientMessage(target, -1, "Ты оглушен и не можешь двигаться.");

    return 1;
}


public UnstunPlayer(playerid)
{
    if(IsPlayerConnected(playerid))
    {
        TogglePlayerControllable(playerid, true);
        SendClientMessage(playerid, -1, "Эффект оглушения прошел.");
    }

    return 1;
}


Дополнительные идеи

1. Привязать команду только к определенным фракциям.

2. Запрещать оглушать админов или лидеров.

3. Добавить визуальный эффект во время оглушения.
 

0 человек читают эту тему (Всего: 0, Пользователей: 0, Гостей: 0)

Сверху