# Бэкпорт локаций и варпов из дореневала — что изменено и что проверять Серия коммитов в ветке `x64` (генератор → артефакты → регистрация/подключение). Сводка для тестировщиков. Правила слияния — `doc/backport_prerenewal_maps_warps_design.md`. ## Что изменено (итог) - **+76 новых карт** зарегистрированы в `db/map_index.txt` (append-only, в конце файла; существующие индексы не сдвинуты): - разрушенный Morroc / Сограт: `moc_fild22b`, `moc_prydn1/2`, `moc_para01`; - Moscovia: `mosk_dun`; - Brasilis: `brasilis`, `bra_fild01`, `bra_dun01/02`, `bra_in01`; - Новый Мир — Manuk (`manuk`, `man_fild01-03`, `man_in01`, `mid_camp`, `mid_campin`) и Splendide (`splendide`, `spl_fild01-03`, `spl_in01/02`); - WoE:SE Arunafeltz: `aru_gld`, `arug_cas01-05`, `arug_dun01`, `schg_dun01`; - реневал-города (локации; вход — через будущий порт NPC): Dicastes (`dicastes01/02`, `dic_dun01-03`, `dic_fild01/02`, `dic_in01`), Eclage (`eclage`, `ecl_fild01`, `ecl_hub01`, `ecl_in01-04`, `ecl_tdun01-04`), Dewata (`dewata`, `dew_fild01`, `dew_dun01/02`, `dew_in01`), Malangdo (`malangdo`, `mal_dun01`, `mal_in01/02`), Malaya (`malaya`, `ma_fild01/02`, `ma_dun01`, `ma_in01`, `ma_scene01`, `ma_zif01-09`), Mora (`mora`, `bif_fild01/02`). - **+164 новых варпа** в изолированном `npc/warps/backport/**` (10 файлов), подключены через `npc/scripts_warps.conf`: | файл | варпов | |---|---| | `cities/splendide.txt` | 40 | | `cities/manuk.txt` | 38 | | `cities/mid_camp.txt` | 26 | | `guild/guildcastles.txt` (Arunafeltz) | 17 | | `cities/moscovia.txt` | 14 | | `fields/spl_fild.txt` | 10 | | `cities/brasilis.txt` | 8 | | `fields/man_fild.txt` | 7 | | `dungeons/bra_dun.txt` | 2 | | `fields/morroc_fild.txt` (внутренние `mocf020/021`) | 2 | - **Существующие варпы и координаты НЕ менялись** (включая `anthell` — он остаётся входом из `moc_fild04`). Проверено: diff по `npc/warps/**` вне `backport/` пуст; 0 дубликатов имён NPC, 0 коллизий тайлов (генератор `--verify`). - **Конфликты** (перенаправленные входы) вынесены в `doc/backport_warp_conflicts.md`: **11 записей ВХОД для `moc_fild20`** (редизайн Сограт-пустыни — единственная карта с конфликтами; новые континенты добавились без коллизий). ВЫХОД-конфликтов нет (активных выходов из новых карт в старый мир в источнике не было). ## Что НЕ добавлялось (и почему) Battlegrounds (`bat_*`), инстансы (`1@/2@/towers/nyd`), WoE:TE (`te_*`), Izlude-R/Академия (`iz_*`), 3rd-job (`job3_*`), квест-инстансы (`que_*`), копии `gld2_*` — нет статических варпов и/или движок вне объёма (у uAthena нет `instance.c`/`battleground.c`), и/или вне дореневальной эпохи. ## Важные ограничения - **GRF/клиент.** Карты читаются из GRF (`read_map_from_cache: 0`). У клиента/сервера тестировщиков должны быть `.gat` новых карт, иначе вход = дисконнект. (На дев-боксе без GRF map-сервер логирует `*.gat not found` для ВСЕХ карт — это ожидаемо и к бэкпорту отношения не имеет.) - **Реневал-города достижимы только через квест-NPC** — их вход появится с **портом NPC** (отдельная задача). Сейчас они зарегистрированы как локации, но статических варпов-порталов в них нет. - Индексы новых карт добавлены в конец `map_index` (существующие не сдвинуты); при необходимости синхронизировать с индексами клиента — это деплой-нюанс. ## Что проверять (на кластере, с рабочим GRF) 1. **Все 164 добавленных варпа** в `npc/warps/backport/**` срабатывают и ведут в верную точку (Manuk/Splendide — основная масса; Arunafeltz хаб↔замки; Moscovia/Brasilis). 2. **Существующие переходы не сломаны** — выборочно поля Morroc/Prontera, вход в `anthell` из `moc_fild04`, классические города. 3. **`doc/backport_warp_conflicts.md`** — пройти каждую из 11 записей ВХОД по `moc_fild20`; вместо `решение?` вписать корректирующие данные (поставить вход по координатам / сменить выход / удалить варп / и т.п.) для последующей обработки. 4. Новые карты, у которых нет `.gat` в клиенте — отметить для подготовки GRF. ## Как воспроизвести / перегенерировать ``` python3 dumps/forge/backport-warps.py # перегенерировать backport/** + доки (идемпотентно) python3 dumps/forge/backport-warps.py --selftest # проверка правил слияния на фикстурах python3 dumps/forge/backport-warps.py --verify # уникальность имён + коллизии тайлов по всему npc/ ``` После перегенерации повторно применить append-шаги (см. план, Task 3): они guarded — повторно не дублируют.