Перейти к содержимому

Решение проблем

Несколько вещей, которые ломаются дважды, и ответы, которые неочевидны.


restart не перечитывает fxmanifest.lua. Если вы добавили файл, сначала выполните refresh:

refresh
restart mic_phone

Без этого сервер продолжает работать со списком файлов, который у него был, и нового файла там просто нет. Это особенность FiveM, а не телефона, и она стоила каждому хотя бы одного потерянного часа.

Почти всегда виноват инвентарь и почти всегда — сразу после его перезапуска.

Перезапуск ox_inventory при подключённых игроках заклинивает их клиент. invBusy остаётся true, и любой поиск зависает навсегда, поэтому телефон спрашивает «есть ли в этом кармане телефон» и никогда не получает ответа.

Перезапустите его второй раз. Первый перезапуск ломает подключённый клиент, а второй — тот, который он переживает. Переподключаться никому не нужно, а очистки state bag’а вручную недостаточно.

В остальных случаях, по порядку:

  • Совпадает ли предмет в Config.Open.Item с тем, который на самом деле есть в вашем инвентаре?
  • Не включён ли Config.Open.RequireItem на сервере, где игроки его с собой не носят? Выключив его, быстрее всего выяснить, дело ли в предмете.
  • Включена ли батарея и разряжена ли она? Config.Battery.Dead отказывает открывать телефон ниже своего уровня.

Это shared/config/restrict.lua, и у каждого правила в нём есть переключатель. Два, которые удивляют людей:

  • Падение — игра считает падением спуск с бордюра. Falling.Height — это метры воздуха под вами, начиная с которых это засчитывается; по умолчанию 8, что соответствует падению примерно на шесть метров.
  • Лазание — игра считает лазанием спуск со стены на руках. Climbing.After — это секунды до того, как это засчитывается; по умолчанию 1.0, чего прыжок в паркуре никогда не достигает, а лестница достигает всегда.

Config.Restrict.Tell.OnClose решает, сообщать ли об этом, когда это происходит. По умолчанию выключено: вы и так смотрите на то, что вынуло телефон у вас из рук.

Телефон не передаёт голос; он помещает двух людей в канал и позволяет вашему голосовому ресурсу сделать остальное. pma-voice, mumble-voip, SaltyChat и TokoVoip определяются автоматически — если ни один из них не запущен, звонки соединяются, но никто ничего не слышит.

То, куда уходит картинка, определяет shared/server_config.lua. Две вещи ломают это незаметно:

  • Токен Fivemanage, не предназначенный для этого сервера, или удалённый Discord webhook.
  • Хост, которого нет в Hosts. Сервер принимает URL обратно только с перечисленных там адресов, и именно это не позволяет клиенту подсунуть галерее ссылку на что угодно.

По порядку: не стоит ли оно off в Config.AppList? Не ограничено ли оно работой через Jobs или NotJobs? Не является ли оно приложением Boss = true, и считает ли фреймворк, что этот игрок управляет бизнесом? Не лежит ли оно в папке — перетащите одну иконку на другую, и вы её создали.

Библиотека приложений, открываемая кнопкой редактирования на главном экране, перечисляет всё, что существует и не находится ни на одной странице.

Браузерному телефону нужен сертификат, и ресурс получает его сам. Сертификат разбирает случаи, которых не охватывает короткое руководство, — обычный из них: порт не открыт или имя DuckDNS не обновилось после смены вашего адреса.

Config.Locale — это значение по умолчанию, а каждый игрок может выбрать свой язык в Настройках — и ему же следуют уведомления вне телефона. Два языка поставляются полностью; остальные подставляются из английского строка за строкой, а не ломаются, так что недоделанный язык показывает то, что у него есть.