Личный гараж одного авто

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

8

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

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

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

Игрок может заспавнить свою машину в этом гараже и всегда знать, где она находится.

Подходит для RPG и экономических серверов, где у каждого есть личный транспорт.


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

1. Для простоты задаем одну точку гаража с координатами.

2. Создаем переменную, в которой храним ID личного транспорта игрока.

3. Делаем команду, которая спавнит или переспавнивает машину игрока в гараже.

4. При необходимости можно проверять, чтобы в гараже не было других игроков.


Реализация

Код:
#define GARAGE_X  2150.0
#define GARAGE_Y -1800.0
#define GARAGE_Z   13.5

new PlayerCar[MAX_PLAYERS];


CMD:mycar(playerid)
{
    if(PlayerCar[playerid] == 0)
    {
        PlayerCar[playerid] = CreateVehicle(411, GARAGE_X, GARAGE_Y, GARAGE_Z, 0.0, 1, 1, 0);
        LinkVehicleToInterior(PlayerCar[playerid], GetPlayerInterior(playerid));
    }
    else
    {
        SetVehiclePos(PlayerCar[playerid], GARAGE_X, GARAGE_Y, GARAGE_Z);
        SetVehicleZAngle(PlayerCar[playerid], 0.0);
        RepairVehicle(PlayerCar[playerid]);
    }

    SendClientMessage(playerid, -1, "Твоя машина находится в личном гараже.");

    return 1;
}


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

1. Сделать по одной точке гаража для каждого игрока с разными координатами.

2. Привязать модель машины к данным аккаунта, а не жестко к 411.

3. Добавить команду продажи или смены автомобиля.

4. Реализовать вход в интерьер гаража с отдельной локацией.

5. Сохранять состояние машины между рестартами сервера.
 

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

Сверху