# Бэкпорт NPC новых городов (SP1) — что изменено и что проверять Серия коммитов в `x64` (генератор → NPC → подключение). Первый под-проект NPC-бэкпорта. Дизайн — `doc/backport_sp1_town_npcs_design.md`, план — `doc/backport_sp1_town_npcs_plan.md`. ## Что изменено - Добавлены городские NPC 4 локаций в изолированном `npc/backport/` (подключены через `scripts_athena.conf`, append-only): чиновники/транспорт, лавки, гайды, кафры. Итого 10 файлов. - **Moscovia / Brasilis** — дословный порт (города, гайды, лавки) + кафра как `duplicate(kaf_alberta)`. - **Manuk / Splendide** — городские NPC и лавки (дословно). - **Движок не менялся** (0 новых скрипт-команд; `--verify` чист по командам/именам/ссылкам/картам/скобкам); существующие NPC и `src/map/script.c` не тронуты. - Кафры новых городов сделаны `duplicate(kaf_alberta)` — поведение/набор услуг как у стандартной кафры uAthena (старый 3-арг `F_Kafra`). Новый 5-арг API и пароль склада (`F_CheckKafCode`) из eathena-ref НЕ переносились (адаптация под старый API — главный инвариант задачи). ## Достижимость - **Moscovia / Brasilis** — полностью: свободный транспорт-NPC (`warp "moscovia"/"brasilis"`). - **Manuk / Splendide** — городские NPC на месте, но вход в Новый Мир квест-гейтед → откроется в **SP3**. ## Зависимости - **item_db:** все item ID лавок присутствуют в item_db (**0 отсутствующих** — покрыто бэкпортом итемов). Лавки полностью рабочие. ## Что проверять (на кластере, char-сервер + GRF) 1. Города грузятся; NPC видны на своих местах (координаты/спрайты как в источнике). 2. **Moscovia/Brasilis достижимы** через транспорт-NPC; обратный путь работает. 3. **Кафра** в Moscovia/Brasilis: сохранение, склад, телепорт — как у обычной кафры uAthena. 4. Лавки открываются; покупка предметов работает (все ID имеются). 5. Диалоги гайдов/чиновников проходят без ошибок скрипта в логе map-сервера. 6. Существующие NPC других городов не затронуты (выборочно). ## Известные ограничения - Карты читаются из GRF — у клиента/сервера должны быть `.gat` новых карт (деплой/GRF). - Полная загрузка карт/NPC и проход диалогов — фаза тестировщиков (на дев-боксе карты не грузятся без GRF). ## Воспроизведение `python3 dumps/forge/backport-town-npcs.py` (идемпотентно). Проверки: `--selftest`, `--verify`, `--items-report`.