Команда починки двигателя с задержкой

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

8

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

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

Команда чинит двигатель текущего транспорта игрока, но не мгновенно.

Подходит для RP механиков и выездного ремонта.


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

1. Проверяем, сидит ли игрок в машине.

2. Запускаем таймер и блокируем управление на время ремонта.

3. По окончании таймера восстанавливаем здоровье машины и управление.


Реализация

Код:
forward FinishEngineFix(playerid);


CMD:fixengine(playerid, params[])
{
    if(!IsPlayerInAnyVehicle(playerid))
        return SendClientMessage(playerid, -1, "Ты не в транспорте.");

    TogglePlayerControllable(playerid, false);

    SendClientMessage(playerid, -1, "Механик чинит двигатель, подожди несколько секунд.");

    SetTimerEx("FinishEngineFix", 5000, false, "i", playerid);

    return 1;
}


public FinishEngineFix(playerid)
{
    if(!IsPlayerConnected(playerid)) return 1;
    if(!IsPlayerInAnyVehicle(playerid)) return 1;

    new veh = GetPlayerVehicleID(playerid);

    SetVehicleHealth(veh, 900.0);
    RepairVehicle(veh);

    TogglePlayerControllable(playerid, true);

    SendClientMessage(playerid, -1, "Двигатель отремонтирован.");

    return 1;
}


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

1. Делать разное время ремонта для разных классов машин.

2. Взимать плату за ремонт.

3. Ограничивать использование команды по времени.
 

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

Сверху