Конфликты карт MLO в FiveM: отсутствующие стены, мерцание, дублирующиеся объекты
Исправьте отсутствующие стены, мерцающие текстуры, дублирующиеся объекты и невидимые интерьеры, когда две карты FiveM конфликтуют: найдите перекрывающийся ресурс и удалите дополнительный ymap.
Симптомы выглядят так: в здании отсутствует стена, пол или текстура мерцает, один и тот же стул или объект показывается дважды, или интерьер невидим, когда вы входите внутрь. Если это началось после добавления карты, две ресурса очень вероятно редактируют одну и ту же область. Это руководство показывает, как найти пару и как её исправить.
Почему две карты конфликтуют
Карта изменяет мир с помощью файлов .ymap (где находятся объекты), файлов .ytyp (какие интерьеры и объекты существуют) и файлов .ybn (коллизии). Когда два ресурса работают в одном месте, происходит следующее:
- Дублирующиеся объекты. Обе карты размещают одинаковую мебель или одно и то же здание, поэтому вы видите двойные изображения и часто мерцание на краю двух поверхностей.
- Отсутствующие стены или невидимый интерьер. Одна карта скрывает или заменяет часть здания базовой игры, а другая карта предполагает, что оно там есть. Самая частая причина — карта, которая удаляет объект базовой игры в месте, где вы поместили пользовательский интерьер.
- Z-fighting (мерцание). Две плоские поверхности занимают одно место, и игра рисует одну, затем другую, кадр за кадром.
- Один интерьер дважды. Вы установили две версии одного MLO (например, старый и новый пакет с другим именем папки). Их определения используют одни и те же внутренние названия и конфликтуют.
Шаг 1: определите, какой ресурс задействован
Вам нужен список всех ресурсов, которые содержат файлы карт. Ищите папки с папкой stream и this_is_a_map 'yes' в манифесте. Затем:
- Перейдите к сломанному месту в игре и запомните точное место.
- В консоли сервера введите
stop <resource>для одного ресурса карты. В txAdmin вы можете использовать живую консоль для этого. - Покиньте сервер и присоединитесь снова. Потоковые данные карты наиболее надежны после переподключения.
- Проверьте место. Если проблема исчезла, вы нашли ресурс в конфликте. Если нет, запустите его снова с
ensure <resource>и остановите следующий.
Сделайте это со всеми ресурсами карт, а не только с новым. Только что добавленная карта — первый подозреваемый, но другая половина конфликта может быть старой картой, которая работала отдельно на протяжении месяцев.
Совет: если у вас много карт, остановите половину из них, проверьте и разделите снова. Вы найдете пару за несколько раундов вместо дюжин перезагрузок.
Шаг 2: исправьте это
Как только вы узнаете два ресурса, у вас есть три варианта.
Удалите один из них
Если обе карты показывают одно здание (два разных MLO для одного магазина или старая копия карты, которую вы обновили), оставьте один и удалите другой из resources и из server.cfg. Это решение в большинстве случаев.
Удалите дублирующийся .ymap
Пакеты часто содержат одну и ту же .ymap в двух ресурсах или «исправление» карты, которая повторяет часть основной карты. Если два файла размещают одни и те же объекты, удалите один из файлов .ymap из stream и перезагрузите ресурс. Сначала сделайте резервную копию и изменяйте один файл за раз.
Отредактируйте .ymap
Если вы хотите обе карты, откройте файлы в инструменте редактирования карт, таком как CodeWalker. Это позволяет вам просмотреть .ymap, выбрать объекты внутри и увидеть их положение. Затем вы можете удалить дублирующиеся сущности в одном файле и сохранить его. Это требует внимания, поэтому работайте с копией и тестируйте после каждого изменения.
Шаг 3: проверьте порядок загрузки
Конфликты не всегда возникают только из-за файлов. Какой ресурс запускается последним, может определить, какую версию вещи использует игра. В server.cfg держите ваши карты вместе и в стабильном порядке:
# maps
ensure map_base_fix
ensure my_mlo_one
ensure my_mlo_twoПоместите карту «исправления» или «патча» после карты, которую она исправляет. Если вы изменили порядок и проблема переместилась, вы подтвердили конфликт, даже прежде чем что-либо редактировать. Смотрите также порядок ресурсов server.cfg.
Другие причины, которые нужно исключить
Не каждое мерцание — это конфликт между картами. Проверьте и это:
- Слишком много тяжелых файлов. Сервер со многими большими текстурами карт может не потоковать части места, что выглядит как отсутствующие стены. Смотрите увеличенные активы и потеря текстур.
- Отсутствующая линия
.ytyp. Стены видны, но объекты нет. Проверьте манифест как в как установить MLO. - Сборка игры слишком низкая. Пакет использует контент DLC, который ваши игроки не имеют. Смотрите sv_enforceGameBuild и DLC.
- Устаревший кеш клиента. Сервер в порядке, и ваша игра хранит старую копию карты. Попробуйте очистить кеш FiveM.
Предотвращение конфликтов карт в будущем
- Устанавливайте одну карту за раз и проверяйте место перед добавлением следующей.
- Ведите краткий список каждой карты и координаты, которые она охватывает.
- Читайте описание пакета: авторы часто указывают, какие другие карты или исправления он заменяет.
- Не устанавливайте «исправление» карты от другого автора без прочтения того, что оно изменяет.
Контрольный список
| Симптом | Решение |
|---|---|
| Один и тот же объект показывается дважды | Две карты его размещают: удалите одну карту или дублирующийся .ymap |
| Мерцающий пол или стена | Две поверхности в одном месте: найдите второй ресурс и удалите один |
| Стена отсутствует в здании | Карта скрывает часть базовой игры: остановите карты одну за другой, чтобы найти её |
| Интерьер невидим | Проверьте наличие двух версий одного MLO и отсутствующую строку .ytyp |
| Переместилась после изменения порядка | Подтвержденный конфликт: поместите карту патча после карты, которую она исправляет |
| Всё ещё не уверены | Остановите половину ваших карт и разделите снова, пока пара не будет найдена |
Короткие ответы
Как узнать, какая карта вызывает конфликт?
Останавливайте ресурсы карт один за другим и проверяйте место в игре после каждой остановки. Когда проблема исчезнет, последний остановленный ресурс является частью конфликта, либо один, либо вместе с другим.
Могут ли две карты использоваться в одном месте?
Только если они не изменяют одни и те же объекты. Две карты, которые размещают или удаляют вещи в одном здании, будут конфликтовать, и одна из них должна быть удалена или отредактирована.
Нужен ли мне CodeWalker для решения этой проблемы?
Не для поиска конфликта, но да, если вы хотите отредактировать .ymap и удалить только дублирующуюся часть. Без инструмента решение — удалить одну из двух карт.
Скрипты без этой проблемы
Shop CreatorМагазин меньше чем за минуту — владельцы, сотрудники, сейфы и ограбления в комплекте.Смотреть скрипт →
CCTV Security CamerasУстанавливаемые камеры, планшет с мультиэкраном в реальном времени и распечатанные фото-улики.Смотреть скрипт →
Quest CreatorВизуальный редактор квестов и диалогов с NPC — узел за узлом прямо в игре.Смотреть скрипт →