Cawfee

Система полета камерой

В теме 8 сообщений

Описание системы.

Система полета камерой представляет собой возможность перемещаться в пространстве игры по всем осям (X, Y, Z) путем нажатия кнопок на клавиатуре.

 

Подключение системы.

1. Система написана в отдельном файле. Вам необходимо скачать этот файл и добавить в папку, находящейся в следующей директории:

"..\pawno\include"

2. Затем Вам следует открыть свой игровой мод и в начале, после всех директив включения заголовочных файлов (#include), дописать следующую строку:

#include "fly"

 

Работа с системой.

В систему полета камерой включены две функции:

1. Изменение состояния полета игрока.

SetPlayerFlyStatus(playerid, status = CAMERA_MODE_REVERSE)
/*
    playerid - ID игрока, которого Вы хотите "отправить" в режим полета
    status - режим полета*
    
    * предусмотрено три режима полета:
        CAMERA_MODE_NONE    (0) - выключить режим полета,
        CAMERA_MODE_FLY     (1) - включить режим полета,
        CAMERA_MODE_REVERSE (2) - сменить режим на реверсивный
*/

2. Проверка, находится ли игрок в "полете".

IsPlayerFlying(playerid)
/*
    playerid - ID игрока, пребывание в состоянии полета которого Вы хотите проверить
    
    * данная функция возвращает:
        CAMERA_MODE_NONE    (0), если игрок не находится в состоянии полета,
        CAMERA_MODE_FLY     (1), если игрок находится в состоянии полета
    
*/

При помощи данных функций вы можете управлять пребыванием игрока в режиме полета, а также получать информацию о том, "летает" ли игрок в тот или иной момент.

 

Особенности системы.

Системой полета предусмотрено, что игрок, выходящий из режима полета, появится именно там, где вышел. Так, если вы покидаете режим полета, пребывая в озере, то появление игрока будет именно в этом озере.

 

Пример использования.

CMD:fly(playerid, params[])
{
    static const MSG_USE_CMD[] = !"» Usage the command: /fly [mode 0-2]";
    
    if(isnull(params)) {
        return SendClientMessage(playerid, -1, MSG_USE_CMD) & 0;
    }

    new mode;
    if(sscanf(params, "d", mode)) {
        return SendClientMessage(playerid, -1, MSG_USE_CMD) & 0;
    }
    
    if(!(mode >= 0 && mode <= 2)) {
        return SendClientMessage(playerid, -1, MSG_USE_CMD) & 0;
    }

    SetPlayerFlyStatus(playerid, mode);
    return 1;
}
CMD:checkfly(playerid, params[])
{
    static const MSG_USE_CMD[] = !"» Usage the command: /checkfly [playerid]";
    
    if(isnull(params)) {
        return SendClientMessage(playerid, -1, MSG_USE_CMD) & 0;
    }

    new id;
    if(sscanf(params, "u", id)) {
        return SendClientMessage(playerid, -1, MSG_USE_CMD) & 0;
    }

    if(id == INVALID_PLAYER_ID) {
        return SendClientMessage(playerid, -1, !"The player is not connected") & 0;
    }

    static const status_fly[][] =
    {
        !"The player is not flying",
        !"The player is flying"
    };
    
    SendClientMessage(playerid, -1, status_fly[IsPlayerFlying(id)]);
    return 1
}

 

fly.inc

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Полезно, спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Помог, спасибо огромное

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

\pawno\include\fly.inc(92) : warning: recursion in SetPlayerFlyStatus
Disable recursion warning: #pragma disablerecursion or #pragma warning disable 238

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Lafiho1, в данном случае рекурсия является контролируемой, что позволяет проигнорировать появление данное предупреждения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проверил, все работает, жаль что не уберешь эти warning при компиляции

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Lafiho1, как насчет этого?

 

Цитата

Disable recursion warning: #pragma disablerecursion or #pragma warning disable 238

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, Cawfee сказал:

@Lafiho1, как насчет этого?

 

 

я уже понял, спасибо))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • gooding
      От gooding


      Скачать файл REDROW RP | ЛУЧШИЙ БОНУСНИК | АВТОПАРКИ
      Доброго времени суток! Я выложил на продажу игровой мод RedRow RolePlay!
       
      17 ТИТУЛОВ, 14 КОСТЮМОВ (КАМЕРМЭН, ФЕЯ, СИ-ДЖЕЙ, ДЭДПУЛ, СПАНЧ БОБ, НИНДЗЯ, ДЕД МОРОЗ и другие!),
      BMW I8, BMW M5, BMW Vision M NEXT, Mercedes-Benz G-CLASS, Rolls-Royce Phantom! Система рулетки  (Исправлена, теперь не выпадает одно и то же),
      Автопарки Фракций (FBI и банд), МОД ОПТИМИЗИРОВАЛИ под ИГРУ, ДОБАВИЛИ НОВЫЙ АНТИЧИТ (Latest Nex-AC) и АНТИЧИТ настроен. Проделано много работы (Над модом работали полгода) и исправили множество багов.
       
      Что было добавлено?
      1. 17 титулов,
      2. 14 костюмов,
      3. Эксклюзивный транспорт (SandKing, Rolls-Royce Phantom, BMW I8, BMW M5, BMW Vision M NEXT, Mercedes-Benz G-CLASS).
      4. Автопарк ФБР и всех банд.
      5. Новый анти-чит.
      6. Оптимизация игрового мода.
      7. Премиум и уникальные возможности для владельцев Премиума.
      8. Команда /bonus, где можно получить бесплатно Red Coins.
      9. За АКТИВ даются Red Coins!
      10. Рестарт сервера в 5:00 по МСК.
      11. Радужный клист.
      12. Уникальный тюнинг для эксклюзивных машин и ускорение.
      13. Новая система банка.
      14. Исправлено множество багов.
      15. Новый маппинг.
      Добавил gooding Добавлено 28.01.2024 Категория Моды Автор GOODING (Я)  
    • gooding
      От gooding
      Доброго времени суток! Я выложил на продажу игровой мод RedRow RolePlay!
       
      17 ТИТУЛОВ, 14 КОСТЮМОВ (КАМЕРМЭН, ФЕЯ, СИ-ДЖЕЙ, ДЭДПУЛ, СПАНЧ БОБ, НИНДЗЯ, ДЕД МОРОЗ и другие!),
      BMW I8, BMW M5, BMW Vision M NEXT, Mercedes-Benz G-CLASS, Rolls-Royce Phantom! Система рулетки  (Исправлена, теперь не выпадает одно и то же),
      Автопарки Фракций (FBI и банд), МОД ОПТИМИЗИРОВАЛИ под ИГРУ, ДОБАВИЛИ НОВЫЙ АНТИЧИТ (Latest Nex-AC) и АНТИЧИТ настроен. Проделано много работы (Над модом работали полгода) и исправили множество багов.
       
      Что было добавлено?
      1. 17 титулов,
      2. 14 костюмов,
      3. Эксклюзивный транспорт (SandKing, Rolls-Royce Phantom, BMW I8, BMW M5, BMW Vision M NEXT, Mercedes-Benz G-CLASS).
      4. Автопарк ФБР и всех банд.
      5. Новый анти-чит.
      6. Оптимизация игрового мода.
      7. Премиум и уникальные возможности для владельцев Премиума.
      8. Команда /bonus, где можно получить бесплатно Red Coins.
      9. За АКТИВ даются Red Coins!
      10. Рестарт сервера в 5:00 по МСК.
      11. Радужный клист.
      12. Уникальный тюнинг для эксклюзивных машин и ускорение.
      13. Новая система банка.
      14. Исправлено множество багов.
      15. Новый маппинг.
    • Redmondd
      От Redmondd
      Хочу сделать команду /gpsoff, которая убирает метку