Документация Pulse Phone
Устранение неполадок
11. Устранение неполадок
Начните здесь: прочитайте проверку при запуске в консоли сервера. Она начинается с PULSE PHONE v1.x.x и номера билда, затем идёт по одной строке на каждую область (Server, Database, Framework, Connected scripts, Items...). Под каждой строкой FIX или NOTE указаны проблема и её решение (-> ...). Введите phone:health для полного отчёта построчно и phone:diag для подробностей.
Телефон не открывается
| Что вы видите | Почему | Решение |
|---|---|---|
F1 ничего не делает, /phone работает |
F1 занят другим скриптом | Переназначьте в Settings > Key Bindings > FiveM или измените Config.Keys.open. Новое значение по умолчанию получат только игроки, которые никогда не назначали эту клавишу. |
| Вообще ничего не открывается | У игрока нет предмета телефона, аккумулятор разряжен, какой-то скрипт отключил телефон, или игрок мёртв, в наручниках или в другом заблокированном состоянии | Проверьте Config.Item.required, аккумулятор и состояния Config.Block. |
| Не открывается поверх инвентаря или меню | Так задумано (Config.Open.blockWhenNuiFocused) |
Сначала закройте другое меню. |
| «No phone item»: не открывается ни у кого | Config.Item.required = true, но предмета phone нет в вашем инвентаре, или игроки его не носят |
Добавьте предмет phone (раздел 4) и выдайте его игрокам или задайте Config.Item.required = false. |
| Новый телефон чёрный и пишет «Hold to turn on» | Телефон пришёл выключенным: Config.Device.arrivesOn = false. С 1.4.0 новые телефоны по умолчанию приходят включёнными; config.lua, сохранённый с прошлой версии, сохраняет своё значение |
Достав телефон, удерживайте End или O (Config.Keys.power) около двух секунд или удерживайте мышью собственную боковую кнопку телефона. Смахните вверх на экране приветствия, чтобы начать настройку. |
Коробка исчезает, но предмет phone не появляется |
Config.Item.required = false и unique = false используют телефон, принадлежащий персонажу, без предмета в инвентаре |
Откройте телефон как обычно. Если на вашем сервере телефон должен быть предметом, включите Config.Item.required до начала продаж телефонов, затем перезапустите Pulse. |
| Экран пустой или белый | Серверная часть не запущена. F8 показывает the server never answered bootstrap - is the resource running server-side? |
Поищите в консоли сервера красную строку [phone] или ошибку escrow (ниже). |
Экран пустой, консоль пишет ui/index.html missing |
Папка ui/ удалена или не загружена |
Загрузите всю папку phone заново. Не удаляйте ui/. |
Телефон виден в руке, но экран так и не появляется; проверка при запуске показывает [FAIL] Interface с именем файла в ui/assets/ |
Этого файла нет в вашей копии: неполная загрузка или его удалил антивирус | Скачайте телефон заново из Keymaster и загрузите всю папку. Если файл снова исчезнет, добавьте папку сервера в исключения антивируса. |
| Курсор застрял в центре экрана | В GTA выключен raw input | Игрок включает raw input в настройках GTA. |
Framework, деньги и работы
| Что вы видите | Почему | Решение |
|---|---|---|
FRAMEWORK NOT SELECTED: more than one framework is started |
Запущены два ядра, например es_extended и qb-core | Задайте в Config.Framework в config/config.lua тот, который используете, или добавьте setr phone_framework <name> в server.cfg (раздел 3). До тех пор денежные функции выключены. |
framework not ready: ... в консоли, и телефоны остаются на экране «not ready» |
Framework, который телефон нашёл или который ему указали, ещё не работает: всё ещё запускается, перезапускается, остановлен или (для кастомного) его мост так и не был зарегистрирован. Денежные операции отклоняются, пока он не заработает. | Запускайте телефон после framework. После перезапуска ядра подождите немного или перезапустите и телефон. Кастомный framework: зарегистрируйте мост и вызывайте exports.phone:FrameworkRestarted() после перезапуска ядра. Сервер вообще без framework: задайте Config.Framework = 'standalone' в config/config.lua или добавьте setr phone_framework standalone в server.cfg (это имеет приоритет над конфигом). |
| Определён не тот framework: строка при запуске называет тот, который вы не используете | ox_core запущен рядом с ESX, QBCore или Qbox (тогда телефон использует другой), или ресурс вашего ядра переименован | Остановите ядро, которое не используете, или задайте своё принудительно через setr phone_framework <name> в server.cfg (раздел 3). Переименованное ядро: используйте его исходное имя или подключите его как кастомный framework. |
Config.Framework = "esx" but es_extended is not started |
В настройке указан framework, который не запущен | Исправьте настройку или верните её в 'auto'. |
Строка при запуске пишет Framework: standalone на сервере с framework |
У ядра другое имя ресурса, или оно запускается после телефона | Запускайте телефон после framework. Переименованное ядро не находится: используйте его исходное имя или подключите его как кастомный framework (раздел 3). |
| Баланс банка 0 или неверный | Телефон работает в режиме standalone (собственный банк), или framework не найден | Проверьте части Framework: и Banking: в строке при запуске. |
| Нет счёта компании в Services | Не запущен скрипт счетов компаний, или игрок не начальник | Запустите один из раздела 7. Ранги начальника: boss (ESX), isboss (QBCore / Qbox) или bossGrade. На ox_core и vRP управления компанией нет. |
| Полиция или EMS не получают вызовы 911 | Названий их работ нет в списках, или они не на смене | Добавьте названия своих работ в Config.Services и Config.Emergency в config/apps.lua. |
<script> found but not connected |
У этой версии скрипта другие экспорты | Телефон использует следующий вариант. Обновите скрипт или выберите другой через Config.Providers. |
Сервер на ND Core, но строка при запуске называет другой framework или standalone |
ND_Core запускается после телефона, или запущено ещё одно ядро |
Запускайте телефон после ND_Core, остановите ядро, которое не используете, или добавьте setr phone_framework nd в server.cfg. |
База данных
| Что вы видите | Почему | Решение |
|---|---|---|
Телефон никак не загрузится; F8 показывает request "bootstrap" timed out |
Мешают таблицы другого телефона, и их не удалось перенести | Прочитайте проверку при запуске (phone:health). Строка [FAIL] Database ... belong to another script называет таблицы; см. раздел 2, «Таблицы другого телефона». |
Проверка при запуске: [WARN] Database N table(s) of another script were moved aside: phone_x -> old_phone_x |
Таблица, которую другой скрипт оставил под одним из имён телефона, была переименована при запуске, чтобы телефон мог создать свою. Ничего не удалено | Для телефона ничего делать не нужно. Если эта таблица принадлежит вашему скрипту, дайте ему другое имя таблицы: под старым он свои данные не найдёт. phoneimport читает оттуда данные старого телефона (Импорт данных, «Таблицы с тем же именем, что у Pulse Phone»). |
Проверка при запуске: [WARN] Database <table> is missing columns the phone writes (...) |
У таблицы имя телефона, но в ней нет столбца, в который пишет телефон, и она явно не принадлежит другому скрипту. Её намеренно оставляют нетронутой: ошибочное переименование было бы хуже предупреждения | Если её создал другой скрипт, переименуйте её в old_<table> в своём инструменте для базы данных и перезапустите сервер. Если нет, отправьте эту строку в поддержку (раздел 12). Правила описаны в разделе Импорт данных. |
db: could not create table ... check that the database user may CREATE TABLE |
Пользователь базы данных не может создавать таблицы | Выдайте пользователю права CREATE и ALTER или импортируйте phone.sql вручную. |
db: could not add column ... |
Пользователь не может выполнять ALTER для таблиц | Как выше. |
is running but the database did not answer |
oxmysql работает, но не может подключиться к базе данных | Исправьте mysql_connection_string. Телефон сам повторит попытку. |
no SQL resource running - storing data in the resource key/value store |
oxmysql не запущен или запускается после телефона | Запускайте oxmysql раньше телефона. |
auth_gssapi_client в логе oxmysql |
Пользователь базы данных настроен на вход через Windows | Переключите этого пользователя на пароль: ALTER USER 'fivem'@'localhost' IDENTIFIED VIA mysql_native_password USING PASSWORD('your-password'); |
phone_db_fallback is "kvp", so the key/value store takes over |
База данных не отвечает, и включён запасной вариант | Данные пишутся в key/value-хранилище и в базу данных не попадут. Исправьте соединение. |
db: no answer within 10 s, answered as failed: <query> |
Этот запрос так и не вернулся (медленная или заблокированная база данных) | Приложению, которое его отправило, сообщено об ошибке. Проверьте лог SQL-ресурса. |
Звонки, фото и сам телефон
| Что вы видите | Почему | Решение |
|---|---|---|
Звонки соединяются без звука, no voice resource |
Не запущен ни один голосовой скрипт | Запускайте pma-voice (или другой из раздела 5) раньше телефона. |
Нет звука, 2 voice resources running |
Два голосовых скрипта борются за одни и те же каналы | Запускайте ровно один. |
| Видеозвонок показывает только изображение звонящего | Два игрока не могут соединиться напрямую | Настройте видеорелей по продвинутому руководству, ссылка на которое есть в разделе 5. |
| В объединённом звонке есть звук, но нет картинки | Групповое видео отключено, или настроенные места для видео заняты. Участники с голосом могут оставаться в конференции без места для видео. | В config/config.lua проверьте Config.Calls.groupVideo и Config.Calls.groupVideoMax. Групповое видео включено по умолчанию с четырьмя местами для видео. Для подключения в продакшене выполните настройку видеорелея по ссылке в разделе 5. |
| У одного игрока видеоклипы с камеры без звука | Этот игрок когда-то отклонил запрос игры на доступ к микрофону. FiveM запоминает ответ в %AppData%\CitizenFX\media_access.json и больше не спрашивает. |
Игрок закрывает FiveM, удаляет %AppData%\CitizenFX\media_access.json, снова запускает игру и разрешает доступ к микрофону, когда его спросят. |
Фото не сохраняются, screenshot-basic not started |
screenshot-basic не запущен | Запускайте его раньше телефона. |
| Фото сохраняются, но отображаются битыми | phone_media_origin — обычный http:// |
Используйте адрес https://, или удалите эту настройку, или используйте Fivemanage (раздел 6). |
refused a media link on "<host>" |
Ссылка с хоста, которого нет в списке разрешённых | Добавьте хост в Config.Media.allow (раздел 6) или оставьте его отклонённым. |
| Приложение Radio пишет, что рация недоступна | Не запущен голосовой скрипт, или это YACA | См. раздел 5, Radio. |
| Radio: «You need a radio to tune in» | Задан Config.Radio.item, а у игрока нет этого предмета |
Выдайте ему предмет или задайте item = false в config/apps.lua. |
| Таксофон отклоняет звонок из-за денег | Слишком мало денег на счёте, который указан в Config.Payphone.pay, или кастомный мост без денежных функций |
На сервере standalone ни у кого нет наличных: оставьте pay = 'either' или используйте 'bank'. |
| Не получается печатать в текстовом поле | Другой скрипт вызвал SetNuiFocus(false, false), пока телефон был открыт |
Найдите этот скрипт (его покажут NUI devtools). |
Проверка при запуске: phone_media_origin not set |
У сервера нет публичного адреса Cfx.re (локальный или LAN тестовый сервер) | Игрокам на том же ПК или в той же сети всё в порядке. Для публичного сервера проверьте, что он есть в списке серверов, или задайте setr phone_media_origin "https://..." (раздел 6). |
| Телефон невидим, стандартный телефон или серый блок в руке | Модель телефона не загрузилась через стриминг. F8 показывает the handset model "pulse_titanium" did not load. (или pulse_ultra, pulse_clear, pulse_flip — смотря какая модель у этого телефона) |
Задайте sv_enforceGameBuild 2699 или новее. Загрузите stream/ заново без изменений и сохраните каждую строку data_file в fxmanifest.lua. |
Магазин и предметы
| Что вы видите | Почему | Решение |
|---|---|---|
| Нет продавца в магазине | Продавец появляется только в пределах примерно 60 m. Магазин может быть выключен, или ваша карта перекрывает Legion Square | Проверьте Config.Store.enabled. Перенесите прилавок в Config.Store.locations. |
store: the item "pulse_phone_box" ... is not registered in your inventory |
Нет предмета коробки | Добавьте его (раздел 4). До тех пор телефоны выдаются без коробки. |
Магазин пишет «inventory full», хотя у игрока есть место; консоль пишет store: the inventory would not take <item> |
Этого предмета нет в списке предметов вашего инвентаря, поэтому инвентарь его отклоняет | Добавьте предмет, названный в консоли (раздел 4 и config/items/), или задайте Config.Store.box = false, чтобы выдавать телефоны без коробок. Деньги за покупку были возвращены. |
В магазине нет Reserve или кабеля, или store: the item "pulse_cable" ... |
Предметов для зарядки нет в вашем инвентаре | Добавьте pulse_magpack, pulse_magpack_max и pulse_cable (раздел 4) и их картинки. |
В магазине нет Pulse Home Wi-Fi, или store: the item "pulse_router" ... |
Предмета роутера нет в вашем инвентаре, или Config.Wifi.enabled равен false |
Добавьте pulse_router (раздел 4) и его картинку. |
Home Wi-Fi: the model "pulse_router" is not streamed в F8 |
stream/ загружена не полностью |
Загрузите stream/ заново без изменений. Wi-Fi всё равно работает; просто роутер не отображается. |
В магазине нет Pulse Burner, или store: the item "pulse_burner" ... |
Предмета одноразового телефона нет в вашем инвентаре, или Config.Burner.enabled равен false |
Добавьте pulse_burner (раздел 4) и его картинку. |
Pulse Burner: the model "pulse_burner" is not streamed в F8 |
stream/ загружена не полностью |
Загрузите stream/ заново без изменений. Одноразовые телефоны всё равно работают; в руке отображается модель Pulse. |
| У офицера нет приложения Intercept, или оно пишет, что он не на смене | Его работы нет в Config.Taps.jobs, его ранг ниже minGrade, или framework сообщает, что он не на смене |
Проверьте config/apps.lua и его работу. |
| «A router can only go inside a home you own or have a key to» | placement равен 'housing' (или 'auto' при наличии скрипта жилья) |
Поставьте его внутри своего дома или измените placement в config/apps.lua. |
| Роутер не ставится: кольцо остаётся красным, или сообщение объясняет причину | Место нарушает правило. Это должна быть ровная поверхность в пределах примерно 3 m от игрока (не стена и не склон), не ближе minSpacing (8 m) к другому роутеру, и у игрока должно быть поставлено меньше maxPerPlayer (2). При placement = 'interior' — только в помещении («A router has to go indoors»). При 'housing' — в доме, которым игрок владеет или от которого у него есть ключ. |
Подойдите ближе и наведитесь на пол или стол. Сначала заберите старый роутер. Или измените placement в config/apps.lua (раздел 8, Home Wi-Fi). |
| «Routers go in homes, and this server has no housing script the phone can read» | placement = 'housing', но не запущен ни один скрипт жилья из раздела 7 |
Задайте placement как 'auto' или 'interior' или запустите поддерживаемый скрипт жилья. |
| Предметы отображаются без картинки | Картинки не скопированы | Скопируйте config/items/images/ в папку картинок вашего инвентаря. Строка Item pictures в проверке при запуске называет недостающие и папку. |
Проверка при запуске: [FAIL] Items ... missing in ox_inventory |
ox_inventory читает только свой файл предметов | Вставьте записи, выведенные под блоком, в ox_inventory/data/items.lua, затем перезапустите ox_inventory и телефон. |
Проверка при запуске: Phone item ... opens <another script> |
Запись phone в ox_inventory указывает на экспорт другого скрипта |
Замените эту запись той, что выведена под блоком (она также есть в Settings > Server > Health Check с кнопкой Copy), затем перезапустите ox_inventory. Стандартная запись подходит как есть. |
Проверка при запуске: [INFO] Items TMC keeps no item list the phone can read |
У TMC нет способа перечислить свои предметы, поэтому телефон не может сказать, какие есть. Это информация, а не ошибка | Убедитесь, что каждый предмет, выведенный под блоком, есть в списке предметов TMC. Магазин называет любой предмет, который TMC отклоняет. |
Проверка при запуске: [WARN] Items ... restart the server once so ESX loads them |
Предметы добавлены в таблицу items ESX, но этот ESX не умеет перезагружать их во время работы |
Перезапустите сервер один раз. |
Проверка при запуске: [WARN] Items ... could not add the items itself |
Телефон не смог записать в таблицу items ESX или в предметы QBCore (причина указана в строке) |
Сделайте это вручную: выполните config/items/esx.sql (ESX) или вставьте config/items/qb-core.lua в qb-core/shared/items.lua (QBCore), затем перезапустите сервер. |
Unique phones are waiting for their inventory. |
Уникальные телефоны включены, но ни один из нужных им инвентарей не запущен | Запускайте выбранный поддерживаемый инвентарь раньше phone и проверьте Config.Providers.inventory. Pulse сохраняет настройку уникальных телефонов и продолжит работу, когда этот инвентарь станет доступен; не меняйте режим владения только для того, чтобы обойти это предупреждение. |
| Счёт нельзя оплатить: некому его получить | У компании, выставившей счёт, нет счёта в скрипте счетов компаний, или отправителя не удаётся найти | Задайте Config.Bills.payToCity = true, чтобы принимать такие счета как городские штрафы. |
Другие скрипты, язык и связь
| Что вы видите | Почему | Решение |
|---|---|---|
Скрипт выдаёт ошибку No such export для другого телефона |
Он вызывает экспорты другого телефона, например exports['<old phone>']:SendMail. Pulse Phone не копирует экспорты других телефонов. |
Замените этот вызов собственным экспортом Pulse Phone (Экспорты) или попросите автора скрипта добавить вариант для Pulse Phone. Скриптам, которые используют события, ничего не нужно. |
No such export для phone |
Папка телефона переименована | Верните ей имя phone (ниже). |
| Не тот язык | В Config.Locale задан другой язык, или игрок выбрал свой |
Задайте Config.Locale. Каждый игрок может выбрать свой язык в Settings > General > Language. |
Текст отображается в виде ключей вроде key.answer |
Старая папка config/locales/ скопирована поверх новой |
Используйте новые файлы локализации. Перенесите свои формулировки вручную. |
| Загрузка в App Hub пишет No Connection | У телефона здесь нет сотового сигнала (мёртвая зона или нет сигнала при включённом Carrier), и он не подключён к Wi-Fi. Для загрузок нужен Wi-Fi или мобильные данные. | Перейдите туда, где есть сигнал, или подключитесь к Wi-Fi (роутер Pulse Home Wi-Fi). |
| Загрузка в App Hub пишет No Cellular Plan, Data Limit Reached или Cellular Data Is Off | Carrier включён, а у телефона нет тарифа или закончился трафик, или игрок выключил Cellular Data | Купите или повысьте тариф в приложении Carrier (установлено на каждом телефоне, пока Carrier включён), снова включите Cellular Data или подключитесь к Wi-Fi. |
| У всех «No Service» | Carrier включён (Config.Carrier.enabled = true или setr phone_carrier 1), поэтому каждому телефону нужен тариф |
Игроки покупают тариф в приложении Carrier. Или выключите его: задайте enabled = false и удалите строку setr phone_carrier. |
| Сигнала нет только в некоторых местах | Включены мёртвые зоны (Config.Coverage.enabled) |
Проверьте свои зоны командой phone:zone show в игре. Экстренные вызовы работают всегда. |
Settings > Server, экстренные оповещения и обновления
| Что вы видите | Почему | Решение |
|---|---|---|
| В Settings нет строки Server | У игрока нет ace phone.admin, или Config.OwnerTools.enabled = false |
add_ace group.admin phone.admin allow и добавьте игрока в group.admin, затем снова откройте Settings. |
phone:setup ничего не делает |
Введено в консоли сервера, или игрок не администратор | Введите это в игре (F8) как администратор. В консоли phone:health выводит те же проверки. |
| Изменение, сделанное в игре, не действует | Оно помечено Restart needed | Перезапустите телефон (ensure phone) или сервер. Строка Restart в проверке при запуске перечисляет, что ждёт применения. |
Правка файла в config/ ничего не меняет |
Эта настройка изменена в игре, а значение из игры имеет приоритет | Нажмите на ней Reset to Default в Settings > Server или выполните phone:reset <key> в консоли. |
| Settings > Server показывает всё только для чтения | Config.OwnerTools.enabled = false в config/apps.lua |
Задайте true и перезапустите телефон. |
Not saved: ... под настройкой |
Это значение не подходит для настройки (вне диапазона, неверный формат, название работы с пробелами) | Используйте значение, описанное в сообщении. |
| Никто не получает экстренное оповещение | Config.Broadcast.enabled = false, или игроки находятся вне нарисованного вами круга |
Проверьте config/apps.lua. Для теста отправьте на весь город. |
| Игроки получают серьёзные или информационные оповещения без звука или не получают вовсе | Каждый игрок может отключить эти уровни, а серьёзные оповещения следуют Silent Mode | Это выбор игрока. Экстренные (extreme) оповещения звучат всегда. |
| У офицера нет кнопки New Alert | Его работы нет в Config.Broadcast.senders, его ранг ниже указанного, или он не на смене |
Добавьте 'police:3' (работа:минимальный ранг) в senders или задайте requireDuty = false. |
Wait ... before sending another alert |
Перезарядка отправителя (cooldownSeconds) или почасовой лимит (perHour) |
Подождите или увеличьте лимиты в config/apps.lua. |
В проверке при запуске нет строки Update |
Телефон не смог получить файл обновлений (нет интернета, файрвол), или Config.UpdateCheck.enabled = false |
Исправлять нечего: телефон работает и без этого. С Config.Debug = true консоль сообщит причину. |
Новые функции
| Что вы видите | Почему | Решение |
|---|---|---|
| Нет приложения Shade | Shade выключен по умолчанию, и для него нужен предмет pulse_vpn, работа из списка или access.everyone |
Задайте Config.DarkMarket.enabled = true в config/apps.lua и проверьте его блок access. |
| Нет SIM-карты в магазине или нет баланса в Settings | SIM-карты выключены по умолчанию (Config.Sim.enabled), а предоплаченный баланс — второй переключатель (prepaid) |
Включите их в config/apps.lua и добавьте pulse_sim и pulse_topup в свой инвентарь (раздел 4). |
| Pulse Beacon не прикрепляется к машине | Игрок слишком далеко от транспорта (attachRange, 4 m) или уже владеет maxPerPlayer (8) |
Встаньте рядом с машиной. Проверьте config/apps.lua. |
| «An unknown Pulse Beacon is moving with you» | Предупреждение безопасности: чужой маячок перемещался вместе с игроком alertAfter секунд |
Так и должно быть. Задавайте alert.enabled = false, только если ваши правила разрешают скрытую слежку. |
| Pulse Buds, Ring Light или Card Wallet не работают из инвентаря | Их предметов нет, или они выключены | Добавьте pulse_buds, pulse_ringlight и pulse_wallet (раздел 4) и проверьте config/apps.lua. |
| Slipstream не даёт игроку создать гонку или присоединиться | Игрок дальше joinRadius (60 m) от линии старта, гонка заполнена (maxRacers), или взнос вне диапазона от minFee до maxFee |
Подъедьте к линии старта. Проверьте config/apps.lua. |
| Hail: водитель никогда не получает заказы | Класс или модель его машины не разрешены, его работы нет в driver.jobs, у него нет driver.licenceItem, или он вне serviceArea |
Проверьте блок driver в config/apps.lua. |
| Заказы Eats никогда не доставляет игрок | Нет курьера на смене с работой из couriers.jobs; при cityCourier.enabled вместо этого доставляет город |
Добавьте свои работы доставки в config/apps.lua (или в Settings > Server > Jobs). |
| Realty не показывает дома | Ваш скрипт жилья не умеет выводить список домов на продажу, а Config.Homes.listings пуст |
Добавьте объявления в config/apps.lua или запустите скрипт жилья из раздела 7. |
| Ни один агент не получает заявки на просмотр в Realty | Ни у одного игрока на смене нет работы из realtor.jobs |
Добавьте названия своих работ в config/apps.lua (или в Settings > Server > Jobs). |
| Игры в реальном времени: приглашение не приходит | Игра выключена в config/apps.lua, или приглашение ждало дольше inviteSeconds |
Проверьте config/apps.lua и отправьте приглашение снова. |
| Линия компании никому не звонит, или звонящие ждут на удержании | Никто не вошёл как диспетчер этой линии, или ни один сотрудник не на смене | См. config/apps.lua: диспетчеры входят через приложение Services. |
| Groups: «the group is full» | maxMembers (6, включая лидера) |
Увеличьте его в config/apps.lua. |
| Срочные новости никого не уведомляют | breaking.enabled выключен, или не прошла перезарядка (cooldownSeconds, perAuthorSeconds) |
Проверьте config/apps.lua или Settings > Server > News. |
Проблемы с установкой и версиями
| Что вы видите | Почему | Решение |
|---|---|---|
You lack the required entitlement или ошибка escrow при запуске |
Ключ сервера принадлежит другому аккаунту Cfx.re, а не тому, с которого купили Pulse Phone | Ассет должен принадлежать тому же аккаунту Cfx.re, что и ключ вашего сервера (sv_licenseKey). Скачайте телефон из Keymaster (Granted Assets) на этом аккаунте. Копия от кого-то другого никогда не запустится. |
Failed to verify protected resource phone при запуске, а консоль или F8 показывает syntax error near '<\1>' для файлов в защищённой папке |
Загрузка изменила защищённые файлы: FTP-клиент отправил их в текстовом режиме (Auto/ASCII), или загрузка оборвалась. С лицензией всё в порядке (при неверном аккаунте вместо этого будет You lack the required entitlement) |
Удалите папку phone на сервере, скачайте её заново из Keymaster и загрузите в режиме Binary (FileZilla: Transfer > Transfer Type > Binary) или загрузите zip и распакуйте его на сервере. Сравните папку с таблицей файлов в INSTALL.md. |
Проверка при запуске: [FAIL] Package ... file(s) missing or the wrong size с именами файлов в ui/, data/ или stream/ |
Эти файлы пришли не такими, какими были собраны: частичная загрузка, передача по FTP в текстовом режиме, или один из них удалил антивирус | То же решение: скачайте заново, затем загрузите в режиме Binary или распакуйте zip на сервере. Если файл снова исчезнет, добавьте папку сервера в исключения антивируса. Файлы stream проверяются только на наличие (escrow меняет их размер), защищённый код проверяет сам сервер. |
Проверка при запуске: [FAIL] Package the file list is from build ... files from two downloads are mixed |
ui/ и остальная папка взяты из разных загрузок |
Удалите папку и распакуйте одну загрузку целиком. Всегда берите stream/ и ui/ из одного и того же релиза. |
Проверка при запуске: [WARN] Package data/package.json is missing or unreadable |
Список файлов, который поставляется с каждым релизом, не дошёл | Загрузите всю папку заново (режим Binary), включая data/. |
| После переименования папки перестают работать другие скрипты или предметы | Другие скрипты и записи предметов обращаются к телефону как к phone (exports.phone, phone.useItem) |
Оставьте папке имя phone. |
Странное поведение после обновления, your config has no Config.Charging section |
Скопирован старый config.lua |
Разделы, которых в нём нет, работают со значениями по умолчанию. Скопируйте недостающие разделы из нового config/config.lua или начните с нового файла. |
| После обновления старый адаптер мешает подключению скриптов | Обратно скопированы старые файлы bridge/ (из этой или более старой версии) |
Используйте новые файлы (раздел 10). |
| Запускаются два телефона | Старая папка phone всё ещё лежит где-то в resources |
Вынесите её из resources. |