Реестр карт
DataTable\<язык>\NDMap.edf; DataTable\Map.edf; Map\Map_Data.spt
Всего 33 Известно 18 Производное 12 Не используется 3Мир
Реестр карт, пустышки, спавн, порталы
Карта — набор связанных файлов: реестр (Map\Map_Data.spt на сервере, Map.edf и NDMap.edf в клиенте), SPT с пустышками (сервер и клиент), [BLOCK] и файлы спавна по наборам монстров, [PORTAL] с текстами, EXT.spt с городскими зонами. Геометрия (BSP/EBP) и регистрация карт описаны в документах 3D и здесь не повторяются.
Map_Data.spt: номер карты = порядок строки, 12 колонок читаются сервером: код (имя для всех ссылок), папка, тип (0 поле, 1 слои и наборы монстров, 2 без блоков монстров), класс (1 — возрождение по *ds своей расы), число слоёв (≤ 500), раса столицы, число наборов монстров (≤ 30), радиус сектора, пределы уровня (только для призыва), код карты для ограничения зелий, маска рас PvP. Обязательны Transport01, Platform01, столица каждой расы и шесть подкарт поселений — без них сервер не стартует.*dm точки блоков, *dp порталы, *sd<код> магазины, *bd<код> привязка, *ds старт (на картах класса 1 первые три — Беллато, Кора, Акретия), *dq зоны подземелий, *0dr/*1dr/*2dr добыча. *sa и пустышки без префикса сервер не читает.EXT.spt, раса — по первой букве имени (b/c/a/elan); это единственная «безопасная зона».SystemSave\<карта>_Boss.ini). Веса точек и nMin/nMob/nMax блока не читаются; карты типа 0 используют только набор 0.pc_MovePortal проверяет уровень даже при NeedConCheck = 0, предметы и расу; клиентская запись портала в Map.edf должна совпадать с серверной, включая требования._dummy.spt клиента — производный файл: записи типа 1 (монстры) собираются из файлов спавна, записи типа 2 (NPC) сохраняются как есть. Клиент требует ровно 37 карт (на Sirin число задаёт ModMapNum).X:Y на миникарте — номер клетки картинки, а не мировые координаты; масштаб и сдвиг в Map.edf пересчитываются под рамку BSP.Текстовые форматы (Map_Data.spt, <карта>.spt, EXT.spt, _dummy.spt) — единица каталога колонка или токен. Map.edf/NDMap.edf — записи переменной длины: каталог по логическим полям, смещения не фиксированы; STRS Strs\map strs для каталога не используется (подписи частичные).
| Файл | Сторона | Формат | Уровень | Корпуса | Запись | Свод | Примечание |
|---|---|---|---|---|---|---|---|
Map\<гильдейская комната>\<карта>-[PORTAL].dat | сервер | dat | непрозрачный | AoP 6 карт, GU 6 карт, Sirin 6 карт | AoP 328, GU 328, Sirin 328 | maps.md | папки *_guildroom_SD/SP: запись 328 байт, 7 колонок; в Map_Data.spt этих карт нет |
Map\<карта>\<блок>.dat | сервер | dat | готов к полному | AoP 3417, GU 2287, Sirin 3417 | AoP 92, GU 92, Sirin 92 | maps.md | файлы спавна (<блок>.dat, у карт типа 1 — <блок>_<набор>.dat); не используемые блоками — остатки (8 файлов nareaM по 80 байт), maps.md §3 |
Map\<карта>\<карта>-[BLOCK].dat | сервер | dat | готов к полному | AoP 41 карт, GU 20 карт, Sirin 42 карт | AoP 1444, GU 1444, Sirin 1444 | maps.md | блоки спавна, maps.md §3 |
Map\<карта>\<карта>-[PORTAL].dat | сервер | dat | готов к полному | AoP 56, GU 31 карт, Sirin 57 | AoP 376, GU 376, Sirin 376 | maps.md | maps.md §4 |
Map\<карта>\<карта>-[PORTAL].txt | сервер | список | вне рамок (не читаются) | AoP 36, GU 34 карт, Sirin 37 | maps.md | текстовая копия порталов; сервер не читает (maps.md §4) | |
Map\<карта>\<карта>-[PORTAL]_str.dat | сервер | dat | производный | AoP 56, GU 31 карт, Sirin 57 | AoP 644, GU 644, Sirin 644 | maps.md, localization.md | Производный из: -[PORTAL].dat (коды) + тексты порталов. тексты порталов, 644 байта (maps.md §4) |
Map\<карта>\<карта>.spt | сервер | spt | готов к полному | AoP 52, GU 37 карт, Sirin 53 | maps.md, npc-stores.md, mining.md, dungeons.md | тип пустышки — префикс имени; в папке NeutralC лежат копии NeutralA/B.spt | |
Map\<карта>\<карта>_dummy.spt | сервер | spt | вне рамок (не читаются) | AoP 6 карт, GU –, Sirin 6 карт | maps.md | старые (2015) копии клиентских _dummy.spt в папках 6 карт; сервер их не читает [код, maps.md §3.4] | |
Map\<карта>\<карта>EXT.spt | сервер | spt | готов к полному | AoP 13, GU 12 карт, Sirin 13 | maps.md, sounds.md | городские зоны | |
Map\<карта>\<прочие>.txt | сервер | список | непрозрачный | AoP 4 карт, GU 2 карт, Sirin 4 карт | Dummy.txt и т. п.; в сводах не описаны | ||
Map\<карта>\MAPDATA.DAT | сервер | dat | непрозрачный | AoP 1 карт, GU –, Sirin 1 карт | копия в папке NeutralC; формат не описан | ||
Map\Map_Data.spt | сервер | spt | готов к полному | AoP ✓, GU ✓, Sirin ✓ | maps.md | реестр карт; номер карты = порядок строки | |
Map\MAPDATA.DAT | сервер | dat | непрозрачный | AoP ✓, GU ✓, Sirin ✓ | maps.md | раздел миникарт Map.edf без шифрования: у AoP байт в байт (73 616); сервер читает его (14012CA70) и шлёт клиенту индекс зоны пакетом 8/6 — должен совпадать с клиентским Map.edf (maps.md §4.3) | |
DataTable\<язык>\NDMap.edf | клиент | edf | производный | AoP ✓ (en-ph, ru-ru), GU ✓ (en-gb, ru-ru), Sirin ✓ (en-gb, ru-ru) | maps.md | Производный из: названия карт и порталов. записи переменной длины; 3D\RFMapCompiler пишет байт в байт (maps.md §6) | |
DataTable\Map.edf | клиент | edf | производный | AoP ✓, GU ✓, Sirin ✓ | maps.md | Производный из: Map_Data.spt + порталы и SPT карт (точки добычи *0dr/*1dr/*2dr), BSP, зоны миникарт (= серверный Map\MAPDATA.DAT). записи переменной длины, размер не проверяется (maps.md §1) | |
Map\<карта>\<карта>-[BLOCK].dat | клиент | dat | готов к полному | AoP 3 карт, GU –, Sirin 3 карт | AoP 1444, Sirin 1444 | maps.md | копия серверного файла в клиенте |
Map\<карта>\<карта>-[PORTAL].dat | клиент | dat | готов к полному | AoP 5 карт, GU –, Sirin 6 карт | AoP 376, Sirin 376 | maps.md | копия серверного файла в клиенте; клиент берёт порталы из Map.edf (maps.md §4) |
Map\<карта>\<карта>-[PORTAL].txt | клиент | список | вне рамок (не читаются) | AoP 38 карт, GU –, Sirin 38 карт | maps.md | текстовая копия порталов | |
Map\<карта>\<карта>-[PORTAL]_str.dat | клиент | dat | готов к полному | AoP 6 карт, GU –, Sirin 7 карт | AoP 644, 772, Sirin 644, 772 | maps.md | копия серверного файла в клиенте |
Map\<карта>\<карта>.spt | клиент | spt | готов к полному | AoP 105, GU 1 карт, Sirin 106 | maps.md | клиентская копия; пустышки, нужные обоим, должны совпадать (maps.md §8) | |
Map\<карта>\<карта>_dummy.spt | клиент | spt | производный | AoP 104 карт, GU –, Sirin 104 карт | maps.md | Производный из: блоки спавна сервера: [BLOCK].dat + файлы спавна + пустышка с именем блока (записи типа 1, maps.md §3.5); записи типа 2 — как при импорте. тип 1 — метки целей квеста на миникарте, выводится из блоков спавна сервера (maps.md §3.4–3.5); тип 2 клиент не использует; составляется автоматически при изменении спавна (решение пользователя 29.10.2026) | |
Map\<карта>\<карта>_dummy.txt | клиент | список | вне рамок (не читаются) | AoP 28 карт, GU –, Sirin 28 карт | maps.md | клиент не читает [код, maps.md §3.5]; выгрузка серверного спавна, промежуточный файл для записей типа 1 в _dummy.spt | |
Map\<карта>\<карта>EXT.spt | клиент | spt | готов к полному | AoP 43, GU 15, Sirin 43 | maps.md, sounds.md | в клиенте — и зоны музыки (sounds.md §5.3) | |
Map\<карта>\<прочие>.txt | клиент | список | непрозрачный | AoP 100, GU –, Sirin 100 | dungeon05.txt и т. п. в папках подземелий; в сводах нет | ||
Map\MAPDATA.DAT | клиент | dat | непрозрачный | AoP ✓, GU –, Sirin ✓ | maps.md | тот же формат, что раздел миникарт Map.edf (93 записи, старый полный набор); клиент не открывает (maps.md §4.3) |
«готов к полному» — формат разобран и поля описаны; «производный» — файл собирается из другого; «непрозрачный» — формат известен не до конца; «отложен» и «вне рамок» — файл студией не редактируется.
Файлы категории разбиты на группы; у каждой группы и подгруппы своя страница с полями только её файлов.
DataTable\<язык>\NDMap.edf; DataTable\Map.edf; Map\Map_Data.spt
Всего 33 Известно 18 Производное 12 Не используется 3Map\<карта>\<карта>.spt; Map\<карта>\<карта>_dummy.spt; Map\<карта>\<карта>EXT.spt; Map\<карта>\<карта>.spt; Map\<карта>\<карта>EXT.spt
Всего 16 Известно 14 Производное 2 Не используется 0Map\<карта>\<карта>-[BLOCK].dat; Map\<карта>\<блок>.dat; Map\<карта>\<карта>-[BLOCK].dat
Всего 24 Известно 9 Производное 0 Не используется 15Map\<карта>\<карта>-[PORTAL].dat; Map\<карта>\<карта>-[PORTAL]_str.dat; Map\<карта>\<карта>-[PORTAL].dat; Map\<карта>\<карта>-[PORTAL]_str.dat
Всего 30 Известно 13 Производное 0 Не используется 17Поля, которые не читает ни сервер, ни клиент. Для каждого — почему так решено и где это установлено. Редактор сохраняет их байты как есть.
DataTable\Map.edf клиентский файл| Смещ. | Поле | Почему не используется | Данные |
|---|---|---|---|
— | angle | поворот миникарты 0/180 — клиент поле не читает (ни одного чтения +0x164 записи карты); картинка повёрнута заранее, G106 подтверждает; при сборке писать 0maps.md §4.3 [код, 30.10.2026]; maps.md §1.2 | — |
— | vertexNum, faceNum | числа вершин и граней BSP — клиент не читает ( +0x1C0, +0x1C4)maps.md §4.3 [код, 30.10.2026] | — |
— | ebpSize | размер клиентского EBP карты (GU: 31 из 31; расхождения AoP — другие наборы файлов); клиент поле не читает ( +0x1C8)maps.md §4 [байты, 29.10.2026]; maps.md §4.3 [код, 30.10.2026] | — |
Map\<карта>\<карта>-[BLOCK].dat клиентский файл| Смещ. | Поле | Почему не используется | Данные |
|---|---|---|---|
+0x000 | nCount | клиент файл не открывает: строк [BLOCK], [PORTAL], _str.dat в образе клиента AoP нет ни в ASCII, ни в UTF-16; сервер читает свою копиюmaps.md §4 (перед 4.1) | — |
+0x004 | Lable | клиент файл не открывает: строк [BLOCK], [PORTAL], _str.dat в образе клиента AoP нет ни в ASCII, ни в UTF-16; сервер читает свою копиюmaps.md §4 (перед 4.1) | — |
+0x044 | m_dwDummyNum | клиент файл не открывает: строк [BLOCK], [PORTAL], _str.dat в образе клиента AoP нет ни в ASCII, ни в UTF-16; сервер читает свою копиюmaps.md §4 (перед 4.1) | — |
+0x048 | m_strDummyCode ×20 | клиент файл не открывает: строк [BLOCK], [PORTAL], _str.dat в образе клиента AoP нет ни в ASCII, ни в UTF-16; сервер читает свою копиюmaps.md §4 (перед 4.1) | — |
+0x088 | m_dwSelectProp ×20 | клиент файл не открывает: строк [BLOCK], [PORTAL], _str.dat в образе клиента AoP нет ни в ASCII, ни в UTF-16; сервер читает свою копиюmaps.md §4 (перед 4.1) | — |
+0x598 | m_nMin | клиент файл не открывает: строк [BLOCK], [PORTAL], _str.dat в образе клиента AoP нет ни в ASCII, ни в UTF-16; сервер читает свою копиюmaps.md §4 (перед 4.1) | — |
+0x59C | m_nMob | клиент файл не открывает: строк [BLOCK], [PORTAL], _str.dat в образе клиента AoP нет ни в ASCII, ни в UTF-16; сервер читает свою копиюmaps.md §4 (перед 4.1) | — |
+0x5A0 | m_nMax | клиент файл не открывает: строк [BLOCK], [PORTAL], _str.dat в образе клиента AoP нет ни в ASCII, ни в UTF-16; сервер читает свою копиюmaps.md §4 (перед 4.1) | — |
Map\<карта>\<карта>-[PORTAL].dat клиентский файл| Смещ. | Поле | Почему не используется | Данные |
|---|---|---|---|
+0x000 | m_dwIndex | клиент файл не открывает: строк [BLOCK], [PORTAL], _str.dat в образе клиента AoP нет ни в ASCII, ни в UTF-16; сервер читает свою копиюmaps.md §4 (перед 4.1) | — |
+0x004 | m_strCode | клиент файл не открывает: строк [BLOCK], [PORTAL], _str.dat в образе клиента AoP нет ни в ASCII, ни в UTF-16; сервер читает свою копиюmaps.md §4 (перед 4.1) | — |
+0x044 | m_strLinkMapCode | клиент файл не открывает: строк [BLOCK], [PORTAL], _str.dat в образе клиента AoP нет ни в ASCII, ни в UTF-16; сервер читает свою копиюmaps.md §4 (перед 4.1) | — |
+0x084 | m_strLinkPortalCode | клиент файл не открывает: строк [BLOCK], [PORTAL], _str.dat в образе клиента AoP нет ни в ASCII, ни в UTF-16; сервер читает свою копиюmaps.md §4 (перед 4.1) | — |
+0x0C4 | m_szMenu | клиент файл не открывает: строк [BLOCK], [PORTAL], _str.dat в образе клиента AoP нет ни в ASCII, ни в UTF-16; сервер читает свою копиюmaps.md §4 (перед 4.1) | — |
+0x104 | m_bNeedConCheck | клиент файл не открывает: строк [BLOCK], [PORTAL], _str.dat в образе клиента AoP нет ни в ASCII, ни в UTF-16; сервер читает свою копиюmaps.md §4 (перед 4.1) | — |
+0x108 | m_nNeedChrLevel | клиент файл не открывает: строк [BLOCK], [PORTAL], _str.dat в образе клиента AoP нет ни в ASCII, ни в UTF-16; сервер читает свою копиюmaps.md §4 (перед 4.1) | — |
+0x10C | m_nUpLevelLim | клиент файл не открывает: строк [BLOCK], [PORTAL], _str.dat в образе клиента AoP нет ни в ASCII, ни в UTF-16; сервер читает свою копиюmaps.md §4 (перед 4.1) | — |
+0x110 | m_itmNeedItemCode ×3 | клиент файл не открывает: строк [BLOCK], [PORTAL], _str.dat в образе клиента AoP нет ни в ASCII, ни в UTF-16; сервер читает свою копиюmaps.md §4 (перед 4.1) | — |
+0x118 | m_nNeedItemCount ×3 | клиент файл не открывает: строк [BLOCK], [PORTAL], _str.dat в образе клиента AoP нет ни в ASCII, ни в UTF-16; сервер читает свою копиюmaps.md §4 (перед 4.1) | — |
+0x134 | m_nKind | клиент файл не открывает: строк [BLOCK], [PORTAL], _str.dat в образе клиента AoP нет ни в ASCII, ни в UTF-16; сервер читает свою копиюmaps.md §4 (перед 4.1) | — |
+0x138 | m_strUseRace | клиент файл не открывает: строк [BLOCK], [PORTAL], _str.dat в образе клиента AoP нет ни в ASCII, ни в UTF-16; сервер читает свою копиюmaps.md §4 (перед 4.1) | — |
Map\<карта>\<карта>-[PORTAL]_str.dat клиентский файл| Смещ. | Поле | Почему не используется | Данные |
|---|---|---|---|
+0x000 | m_dwIndex | клиент файл не открывает: строк [BLOCK], [PORTAL], _str.dat в образе клиента AoP нет ни в ASCII, ни в UTF-16; сервер читает свою копиюmaps.md §4 (перед 4.1) | — |
+0x004 | m_strCode | клиент файл не открывает: строк [BLOCK], [PORTAL], _str.dat в образе клиента AoP нет ни в ASCII, ни в UTF-16; сервер читает свою копиюmaps.md §4 (перед 4.1) | — |
+0x044 | m_strNameTag ×9 | клиент файл не открывает: строк [BLOCK], [PORTAL], _str.dat в образе клиента AoP нет ни в ASCII, ни в UTF-16; сервер читает свою копиюmaps.md §4 (перед 4.1) | — |
Map\<карта>\<блок>.dat серверный файл| Смещ. | Поле | Почему не используется | Данные |
|---|---|---|---|
+0x050 | m_dwRegenMinNum | не читается maps.md §3: «Чтений не найдено» [код] | — |
+0x054 | m_dwStdKill | не читается maps.md §3: «Чтений не найдено» [код] | — |
+0x058 | m_dwRegenMaxNum | не читается maps.md §3: «Чтений не найдено» [код] | — |
Map\<карта>\<карта>-[BLOCK].dat серверный файл| Смещ. | Поле | Почему не используется | Данные |
|---|---|---|---|
+0x088 | m_dwSelectProp ×20 | вес выбора точки maps.md §3: «единственный код с шагом записи точки 0x44 — загрузчик» (поиск по dzs.txt) | — |
+0x598 | m_nMin | nMin блока, в AoP 0maps.md §3: «поиск всех чтений +0x598/+0x59C/+0x5A0 в dzs.txt: ни одно не относится к записи блока»; клиент файл не использует для этих полей | — |
+0x59C | m_nMob | nMob блока, в AoP 0maps.md §3: «поиск всех чтений +0x598/+0x59C/+0x5A0 в dzs.txt: ни одно не относится к записи блока»; клиент файл не использует для этих полей | — |
+0x5A0 | m_nMax | nMax блока, в AoP 0maps.md §3: «поиск всех чтений +0x598/+0x59C/+0x5A0 в dzs.txt: ни одно не относится к записи блока»; клиент файл не использует для этих полей | — |
Map\<карта>\<карта>-[PORTAL].dat серверный файл| Смещ. | Поле | Почему не используется | Данные |
|---|---|---|---|
+0x0C4 | m_szMenu | не читается maps.md §4: « m_szMenu и m_nKind не читаются ни в переходе, ни в остальных пользователях записи» (все вызывающие 1401284C0 и 140128370: проверка ссылок, корабль, гильдейские комнаты …) | — |
+0x134 | m_nKind | не читается (в AoP 1 — вход, 0 — прибытие, у 15 порталов 3) maps.md §4: « m_szMenu и m_nKind не читаются ни в переходе, ни в остальных пользователях записи» (все вызывающие 1401284C0 и 140128370: проверка ссылок, корабль, гильдейские комнаты …) | — |