Вопросы

KlasterK
Освоившийся

Когда игрок впервые респавнится, его выкидывает в выбор класса, хотя я везде проставил TogglePlayerSpectating. После того, как он заспавнится, у него сбрасывается админка(SetPlayerTeam) и несколько переменных(PVar). После этого игрок нормально респавнится с сохранением всех параметров. Но когда игрок делает смену класса через F4 игрок зависает и показывается надпись Loading...

Доп вопрос: что быстрее работает, PVar или Enum?

 

  открыть спойлер
  открыть спойлер

 

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


Ссылка на сообщение

3 ответа на этот вопрос

  • 0
Cawfee
Великий Гуру
  В 8/22/2023 в 08:19, KlasterK сказал:

что быстрее работает, PVar или Enum

Читать далее...  

Работа с переменными всегда быстрее, чем с нативными функциями, которые, вдобавок, под капотом скрывают ассоциативный массив.

 

  В 8/22/2023 в 08:19, KlasterK сказал:

public OnPlayerSpawn(playerid)
{
    SetPlayerPos(playerid, spawn[0], spawn[1], spawn[2]);

}

Читать далее...  

Это неправильный подход. Перед тем, как возрождать игрока посредством spawnPlayer (либо неявными путями), вы должны установить параметры этого возрождения, используя SetSpawnInfo

 

  В 8/22/2023 в 08:19, KlasterK сказал:

игрок зависает и показывается надпись Loading

Читать далее...  

Есть такой косяк у игры, что описанная ситуация возникает при ряде обстоятельств. Чаще всего помогает добавление класса по умолчанию. Если в OnGameModeInit нет вызова следующей функции, добавьте. Понятия не имею, почему это происходит и как это работает, но обычно помогает. А вообще процесс входа в игру и возрождения полон чудес...

AddPlayerClass(00.00.00.00.0000000);

 

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


Ссылка на сообщение
  • 0
KlasterK
Освоившийся

@Cawfee 

Оказалось, что в проблеме с PVar оказался mxINI, не знаю как так получилось. Теперь при нажатии F4 появляется насыщенность и кнопки << >> Spawn. При нажатии последней, игрок нормально спавнится. Проблему с админкой буду решать, используя PVar.

 

Еще вопрос есть: когда я ввожу строку, то компилятор ругается на Input line too long. Я этого избегаю, используя массив, а потом загружаю его в обычную строку в OnGameModeInit. Можно ли как-то удалить этот массив строк?  Есть другие способы?

#define Load(%0for(new i; i < sizeof _%0; i++) strcat(%0, _%0[i])

static const _problem_stroka[][] =
{
    "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n",
    "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\n",
    "ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\n"
}
static problem_stroka;

public OnGameModeInit()
{
    Load(problem_stroka);
}

CMD:stroka(playerid, params[])
{
    return ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Problem Stroka", problem_stroka, "X""X");
}

 

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


Ссылка на сообщение
  • 0
Cawfee
Великий Гуру

@KlasterK, у стандартного компилятора есть лимит на длину строки. Используйте компилятор от Zeex, где этот лимит увеличен. И тогда сможете писать следующим образом:

static const TOO_LONG_TEXT[] = !"\
    П Е Р В А Я  С Т Р О К А  С Л И Ш К О М  Д Л И Н Н О Г О  М А С С И В А  Т Е К С Т А\
    В Т О Р А Я  С Т Р О К А  С Л И Ш К О М  Д Л И Н Н О Г О  М А С С И В А  Т Е К С Т А\
    Т Р Е Т Ь Я  С Т Р О К А  С Л И Ш К О М  Д Л И Н Н О Г О  М А С С И В А  Т Е К С Т А\
\
    П Е Р В А Я  С Т Р О К А  С Л И Ш К О М  Д Л И Н Н О Г О  М А С С И В А  Т Е К С Т А\
    В Т О Р А Я  С Т Р О К А  С Л И Ш К О М  Д Л И Н Н О Г О  М А С С И В А  Т Е К С Т А\
    Т Р Е Т Ь Я  С Т Р О К А  С Л И Ш К О М  Д Л И Н Н О Г О  М А С С И В А  Т Е К С Т А\
\
    П Е Р В А Я  С Т Р О К А  С Л И Ш К О М  Д Л И Н Н О Г О  М А С С И В А  Т Е К С Т А\
    В Т О Р А Я  С Т Р О К А  С Л И Ш К О М  Д Л И Н Н О Г О  М А С С И В А  Т Е К С Т А\
    Т Р Е Т Ь Я  С Т Р О К А  С Л И Ш К О М  Д Л И Н Н О Г О  М А С С И В А  Т Е К С Т А\
";

 

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


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

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

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

    • hikkogarrys
      От hikkogarrys
      Продам лаунчер для Аризоны есть пк лаунчер я мобайл



    • Jasper231
      От Jasper231
      Идет набор в команду для создания CRMP MOBILE проекта. Нам нужны
      1) Кодеры
      2) Мапперы
      3) Люди которые вообще разбираются в создании серверов
       
      об зарпалте договоримся и об остальном поговорим в вк: @haslyyyim
    • otec
      От otec
      Копия радмира
      ║☑️Название CORVUS CRMP
      ║☑️Сервер у которого есть будущее и будет
      ║☑️Адекватная администрация
      ║☑️Идут наборы в Лидеры, Админы.
      ║☑️Вступайте в Telegram: t.me/corvusgta « Вступай!
      ║☑️Вступайте в ВКонтакте: vk.com/corvus_crmp « Вступай!
      ║☑️Постоянные ПРИЗЫ - МП | Интересный Мод
      ║☑️Все новости - обновления в Telegram и ВКонтакте
      ║☑️Сайт - corvus-crmp.ru
      ║☑️Форум - forum.corvus-crmp.ru
      ║☑️Скачать лаунчер - corvus-crmp.ru
      ║☑️Заходи мы ждем тебя
      ║☑️В случае возможных ошибок пишите сюда:@corvus_help_bot
    • vicegame
      От vicegame
      Доброго времени суток уважаемые форумчане
      Хочу представить наши услуги и цены:
      GTA SAMP от 75руб
      GTA CRMP от 75 руб
      GTA MTA от 120 руб
      Для каждого тарифа неограниченные слоты, оплата только за ресурсы 
      Удобная панель управления и широкий функционал 
      Работаем с 2023 года!
       
      Также имеются БЕСПЛАТНЫЕ тарифы для (ознакомительных целей)
       
      Мощные процессоры Ryzen 5950X (Германия)
       
      Платежная система YooKassa на борту:
      Банковские карты
      SberPay
      TinkoffPay
      Yoomoney

      Ссылка на хостинг: ТЫК