Система блокировки личного транспорта

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

8

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

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

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

Заблокированная машина не позволяет садиться другим игрокам.


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

1. Храним ID личного транспорта и флаг блокировки.

2. Делаем команды /lockcar и /unlockcar.

3. В OnPlayerStateChange проверяем, может ли игрок сесть в транспорт.


Реализация

Код:
new PlayerCar[MAX_PLAYERS];
new bool:CarLocked[MAX_PLAYERS];


CMD:lockcar(playerid)
{
    if(PlayerCar[playerid] == 0)
        return SendClientMessage(playerid, -1, "У тебя нет личного транспорта.");

    CarLocked[playerid] = true;
    SendClientMessage(playerid, -1, "Ты заблокировал свой транспорт.");

    return 1;
}


CMD:unlockcar(playerid)
{
    if(PlayerCar[playerid] == 0)
        return SendClientMessage(playerid, -1, "У тебя нет личного транспорта.");

    CarLocked[playerid] = false;
    SendClientMessage(playerid, -1, "Ты разблокировал свой транспорт.");

    return 1;
}


public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(newstate == PLAYER_STATE_DRIVER)
    {
        new veh = GetPlayerVehicleID(playerid);

        for(new i = 0; i < MAX_PLAYERS; i++)
        {
            if(PlayerCar[i] == veh && CarLocked[i] && i != playerid)
            {
                RemovePlayerFromVehicle(playerid);
                SendClientMessage(playerid, -1, "Машина заблокирована владельцем.");
                break;
            }
        }
    }

    return 1;
}


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

1. Делать звуковой сигнал при блокировке и разблокировке.

2. Разрешать пассажирам садиться даже при блокировке.

3. Добавить визуальный индикатор блокировки.
 

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

Сверху