Команда временного увеличения урона

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

8

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

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

Игрок может на короткое время увеличить наносимый урон.

Подходит для арен и особых режимов боя.


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

1. Храним множитель урона для игрока.

2. Команда /damageboost задает множитель и время.

3. В обработчике урона применяем множитель, затем по таймеру сбрасываем.


Реализация

Код:
new Float:DamageMultiplier[MAX_PLAYERS] = {1.0, ...};

forward ResetDamageBoost(playerid);


CMD:damageboost(playerid, params[])
{
    new mult, seconds;

    if(sscanf(params, "ii", mult, seconds))
        return SendClientMessage(playerid, -1, "Используй: /damageboost [множитель] [секунды].");

    if(mult < 1) mult = 1;
    if(seconds <= 0) seconds = 1;

    DamageMultiplier[playerid] = float(mult);

    SetTimerEx("ResetDamageBoost", seconds * 1000, false, "i", playerid);

    SendClientMessage(playerid, -1, "Твой урон временно увеличен.");

    return 1;
}


public ResetDamageBoost(playerid)
{
    DamageMultiplier[playerid] = 1.0;

    if(IsPlayerConnected(playerid))
        SendClientMessage(playerid, -1, "Бонус к урону закончился.");

    return 1;
}


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

1. Реализовать модификацию урона через обработчик OnPlayerWeaponShot.

2. Ограничить команду только аренами.

3. Ввести визуальный эффект при активном бусте.
 

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

Сверху