Вопросы

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 пользователей онлайн

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

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

    • Доналдо Фарекелка
      От Доналдо Фарекелка


      Скачать файл Christmas Live » RPG | XS
      Приветствую, сливаю мод, который делал самолично. Мод недоработан, возможно где-то имеются баги, без лаунчера.
      Взят под основу от Phantom RolePlay. Отдельная благодарность за мод WW.INC
      Основная информация про мод:
       
      Информация про сервер:
      Записка:
      ПРИМЕР -  скриншот, сделанный для показа чего-либо и скриншот может является устаревшей информацией(Пояснение: Что-то изменилось, а что-то нет).
      Добавил Доналдо Фарекелка Добавлено 14.03.2025 Категория Моды Автор Donaldo_Farekelka  
    • KAIF HOST
      От KAIF HOST
      Если вы ищете надежный, стабильный и бюджетный хостинг для ваших серверов SAMP или CRMP, то KAIF-HOST.RU - лучший выбор для вас. Мы молодая компания среди игровых хостингов, но мы гарантируем стабильность и безопасность вашего сервера.
       
      Мы предлагаем защиту от TCP SYN и UDP флуда, а также от Spoofing атак. Мы также обеспечиваем защиту на уровнях L3, L4 и L7.
       
      Наши преимущества включают автоподнятие серверов после падения, удобную панель управления сервером и автоматическую установку сервера. Мы также гарантируем быструю техническую поддержку для всех наших клиентов.
       
       
       
      Наши серверы доступны всего от 20 рублей в месяц, что делает нас одним из самых доступных хостингов на рынке.
       
       
       
       
       
       Ссылки:
       
      Сайт kaif-host.ru
      Панель управления lk.kaif-host.ru
      Группа ВКонтакте https://vk.com/kaif_host_official
       
      P.s Промокод #pawnorus даст тебе скидку в размере 20%

    • watson
      От watson
      Привет всем!

      Выкладываю рабочий инструмент, который лично писал под задачи для крупных бонусных проектов. От меня недавно произошла доработка - теперь при записи маршрута сохраняются все сообщения, которые вы пишете в чат.
       
      Как это работает Запуск записи:
      Вводите /route с названием скрипта (или биндите на клавишу) — скрипт начинает фиксировать всё ваше передвижение (onfoot/incar/aim пакеты) и любые ваши сообщения в чат. Завершение:
      Ещё раз /route с названием скрипта или /stop — сохраняется маршрут вместе с чатом в файл формата .rt в папке MoonLoader/rakbotRoutes. Воспроизведение:
      Через команду !play <название> в консоли RakSamp LITE — бот воспроизводит маршрут один в один с вашими действиями, повторяет весь ввод, а так-же отправляет в чат все сохранённые сообщения (имитация через Enter). Поддержка цикла:
      Можно включить повтор маршрута (!loop), пока не надоест. Что важно в коде
      Запись всех синк-пакетов (движения, анимации, aim и т.д.):
      Пакеты по движению (onfoot/incar/aim) записываются подробно — никакой халтуры, каждое значение (позиция, кватернион, скорость, анимации, флаги и т.д.) фиксируется для полной копии.  

       
      Запись сообщений чата по индексам
      Каждое сообщение, которое отправляется в чат во время записи маршрута, сохраняется в отдельную таблицу с текущим индексом (counter). То есть при воспроизведении бот знает, на каком этапе какой текст нужно “цитировать” в чат.  

       
      Воспроизведение маршрута и чата
      На каждом этапе воспроизведения проверяется, было ли сообщение в этот момент — если да, оно “отправляется” как будто в оригинале, без задержек и рассинхрона. Пакеты проигрываются по индексу — как только доходит до конца, скрипт сам решает, останавливать ли выполнение или запускать по кругу (если включен loop).  

       
      Формат сохранения
      Файл маршрута содержит не только действия, но и отдельную секцию [chat], что позволяет воспроизвести всё как было, а не только беготню.  

       
       
      Если кому-то реально нужна автоматизация для бонусных серверов и не только как например фейковые игроки и вам важна последовательность действий и чата — этот инструмент сэкономит часы времени. Всё написано максимально просто для внедрения.

      P.S. Если есть определённые проблемы, вопросы или даже идеи для доработки — пишите.
      Desktop.zip