Рекомендованные сообщения



2 posts in this topic

Здарова народ, знаю, что много тем есть по этому поводу, много чего перепробовал... Но хотелось бы от вас услышать, есть у кого-то реально рабочий способ без костылей, или с минимальным их количеством? А то у меня какой бы способ не юзал, при спавне не появляется HUD и курсор мыши, а стрелок нет. Хотя спектр убираю

Share this post


Link to post
Share on other sites

Решил проблему. Во-первых, не появлялся худ - очевидно, SelectTextDraw активен, я об этом думал, но был уверен в своём коде 100% и только спустя 5 часов решил строчку немного изменить..

Во-вторых, нашёл более-менее рабочий вариант от ziggi (при наличии инклуда fixes):

stock SpawnPlayerEx(playerid, skin, Float:x, Float:y, Float:z, Float:rotation) // мне он понадобился только, когда скин при регистрации выбирать нужно было, а спектр я выключаю сам при загрузке аккаунта
{
    SetSpawnInfo(playerid, 0, skin, x, y, z, rotation, 0, 0, 0, 0, 0, 0);
    TogglePlayerSpectating(playerid, 0);
}

forward SetClassCameraPos(playerid); // это тоже можете переделать под себя
public SetClassCameraPos(playerid)
{
    SetPlayerCameraPos(playerid, ...);
    SetPlayerCameraLookAt(playerid, ...);
}

public OnPlayerRequestClass(playerid, classid)
{
    // если игрок нажал F4 и умер, то просто спавним его
    if (IsPlayerLogin(playerid)) {
        TogglePlayerSpectating(playerid, 1);
      
        SetSpawnInfo(playerid, 0, 0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
      	SpawnPlayer(playerid); // Это уже я дописал, чтобы игрок спавнился где нужно, без верхней строчки будет такой ужас

        TogglePlayerSpectating(playerid, 0);
        return false;
    }

    // скрыть кнопки
    TogglePlayerSpectating(playerid, 1);

    // установить позицию камеры (без задержки после TogglePlayerSpectating не работает)
    SetTimerEx("SetClassCameraPos", 200, 0, "i", playerid);

    #if defined Spawn_OnPlayerRequestClass
        return Spawn_OnPlayerRequestClass(playerid, classid);
    #else
        return 1;
    #endif
}
#if defined _ALS_OnPlayerRequestClass
    #undef OnPlayerRequestClass
#else
    #define _ALS_OnPlayerRequestClass
#endif
 
#define OnPlayerRequestClass Spawn_OnPlayerRequestClass
#if defined Spawn_OnPlayerRequestClass
    forward Spawn_OnPlayerRequestClass(playerid, classid);
#endif 

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Игорь5878
      By Игорь5878
      Продаётся оригинальный игровой мод проекта RakNet Role Play
      В моде присутствует множество уникальных систем например пару примеров: уникальная система крафта оружия/патронов, система чердаков, автосалонов.
      В продажу мода входит: Группа ВК проекта - vk.com/raknet_official Свободная группа - vk.com/raknet_fr
      Сайт/форум проекта - raknetrp.ru
      Цена на мод договорная. 
      Связаться со мной можете по ссылке во вконтактах группы, либо на форуме.
      Продаётся самая последняя версия мода - 2.2.3
    • Игорь5878
      By Игорь5878
      Оригинальный RakNet ONLINE
      Просмотр файла Продаётся оригинальный игровой мод проекта RakNet Role Play
      В моде присутствует множество уникальных систем например пару примеров: уникальная система крафта оружия/патронов, система чердаков, автосалонов.
      В продажу мода входит: Группа ВК проекта - vk.com/raknet_official Свободная группа - vk.com/raknet_fr
      Сайт/форум проекта - raknetrp.ru
      Цена на мод договорная. 
      Связаться со мной можете по ссылке во вконтактах группы, либо на форуме.
      Продаётся самая последняя версия мода - 2.2.3
      Добавил Игорь5878 Добавлено 19.04.2021 Категория Моды Автор Angel_  
    • odosenok
      By odosenok
      Описание системы.
      Система полета камерой представляет собой возможность перемещаться в пространстве игры по всем осям (X, Y, Z) путем нажатия кнопок на клавиатуре.
       
      Подключение системы.
      1. Система написана в отдельном файле - include. Вам необходимо скачать этот файл и добавить в папку, находящейся в следующей директории:
      "..\pawno\include" 2. Затем Вам следует открыть свой игровой мод и в начале, после всех инклудов, дописать следующую строку:
      #include <fly>  
      Работа с системой.
      В систему полета камерой включены две функции:
      1.
      SetPlayerFlyStatus(playerid, status = 2) /* 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; else if(!(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; else 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 } Авторское право.
      Функции для получения позиции для перемещения камеры, само перемещение вырезаны из разработки Norck.
      В свою очередь я, @odosenok, лишь преобразовал данный код, создал более удобный интерфейс.
       
      fly.inc