Команда сохранения и загрузки позиции

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

8

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

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

Игрок может сохранить свою текущую позицию и позже вернуться на неё.

Подходит для мапперов, тестеров и отладки.


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

1. Храним сохранённые координаты и флаг сохранения.

2. Команда /savepos запоминает позицию.

3. Команда /loadpos телепортирует обратно.


Реализация

Код:
new Float:SavedX[MAX_PLAYERS], Float:SavedY[MAX_PLAYERS], Float:SavedZ[MAX_PLAYERS];
new bool:HasSavedPos[MAX_PLAYERS];


CMD:savepos(playerid)
{
    GetPlayerPos(playerid, SavedX[playerid], SavedY[playerid], SavedZ[playerid]);
    HasSavedPos[playerid] = true;

    SendClientMessage(playerid, -1, "Позиция сохранена.");

    return 1;
}


CMD:loadpos(playerid)
{
    if(!HasSavedPos[playerid])
        return SendClientMessage(playerid, -1, "Нет сохранённой позиции.");

    SetPlayerPos(playerid, SavedX[playerid], SavedY[playerid], SavedZ[playerid]);

    SendClientMessage(playerid, -1, "Ты вернулся к сохранённой позиции.");

    return 1;
}


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

1. Несколько слотов сохранённых позиций.

2. Экспорт позиций в файл для маппинга.

3. Ограничение использования на обычных игроках.
 

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

Сверху