# Чеклист тестирования наёмников (после фикса last_thinktime) Базовое подтверждено: призыв, следование, авто-агр, каст скиллов работают. Дальше — по приоритету. ## A. Жизненный цикл (проверить, что фиксы держатся) - [ ] **Релогин** (перезайти чаром): мерк остаётся / появляется снова — **БЕЗ `@merc reset`** (исправлено: запрос мерка перенесён на момент после `state.auth=1`, коммит 6c1d478). Если всё ещё нужен reset — сообщить. - [ ] **Полный рестарт сервера**: мерк перезагружается из БД и появляется. - [ ] **Варп / Fly Wing / смена карты**: мерк переходит за хозяином на новую карту и продолжает следовать. - [ ] **Смерть мерка**: исчезает корректно; после — скролл **снова призывает** нового. - [ ] **`@merc reset`**: полностью удаляет мерка, после можно призвать с нуля. - [ ] **Логаут с живым мерком** → в `map-server_sql.leaks` НЕТ строки `mercenary_soldier.c`. - [ ] (долго) **Истечение контракта** (~30 мин): мерк сам исчезает без ошибок. ## B. Бой и скиллы по КЛАССУ мерка (это реализовано: M7d-1/2/3a/5/5b) Призывать через `@item ` → использовать. Маппинг скроллов: Archer 12153-62, **Sword 12163-72**, **Spear 12173-82**. - [ ] **Мечник (Sword)**: бьёт в ближнем; кастует MS_BASH / MS_MAGNUM / MER_CRASH; самобаффы MS_BERSERK / REFLECTSHIELD / PARRYING. - [ ] **Копейщик (Spear)**: ML_PIERCE / ML_BRANDISH / ML_SPIRALPIERCE; самобаффы ML_DEFENDER / AUTOGUARD. - [ ] **Лучник (Archer)**: MA_DOUBLE / MA_SHOWER / MA_CHARGEARROW / MA_SHARPSHOOTING; баффы MER_QUICKEN / INCAGI / BLESSING. - [ ] **Урон скиллов вменяемый** (не 0, не абсурд), анимация проигрывается. - [ ] **Самобаффы вешаются** в простое рядом с хозяином (проверить `@status` мерка — нет, статусы у мерка; визуально по анимации). - [ ] **Kill-bonus**: мерк добивает мобов → иногда получает случайный бонус-статус (flee/atk/hp/sp/hit). Лояльность растёт. - [ ] **Частота каста**: `conf/battle/monster.conf` → `merc_skill_rate` (деф. 30%). Поставить 100 → каст почти всегда; 0 → только мили. `@reloadbattleconf`. ## C. Агр мобов на мерка (новое, e8d03a8) - [ ] Моб видит игрока И мерка/гомункула в радиусе → агрится **на мерка/гомункула** (приоритет), даже если игрок ближе. - [ ] Моб **уже** сагрился на игрока → при появлении мерка агр **остаётся на игроке**. - [ ] Боссы — то же поведение. - [ ] `mob_target_merc_first: no` + `@reloadbattleconf` → моб снова берёт ближайшего (ванила). ## D. Саппорт-скиллы и ловушки — ТЕПЕРЬ РЕАЛИЗОВАНО (M7d-3b/4/5c/5d, коммиты 32c1f16/628e71d/ae1e8fc) Саппорт-мерк (со скиллами лечения/девоушна) должен, **стоя рядом с хозяином**, сам: - [ ] **Лечить статусы хозяина**: навести на хозяина сон/стан → REGAIN снимает; заморозку/петрификацию → TENDER; проклятье/слепоту → BENEDICTION; яд/немоту → RECUPERATE; конфуз → MENTALCURE; кровотечение → COMPRESS. (Кастует, только если статус реально висит — без спама.) - [ ] **ML_DEVOTION**: держать девоушн на хозяине — урон хозяина перенаправляется на мерка; при смерти/роспуске мерка девоушн снимается. - [ ] **MER_MAGNIFICAT**: самобафф мерка (SP-регген; вешается как self-бафф). - [ ] **MER_SCAPEGOAT**: НЕ кастуется автоматически (жертвует мерка ради хила хозяина) — только если когда-нибудь дадим ручное управление. Ловушки лучника (**MA_SKIDTRAP/LANDMINE/SANDMAN/FREEZINGTRAP**): - [ ] Лучник-мерк в бою иногда **ставит ловушку** в клетку цели (шанс = `merc_skill_rate`). Эффект: FREEZINGTRAP→заморозка, LANDMINE→стан, SANDMAN→сон, SKIDTRAP→блок движения. - [ ] **MA_REMOVETRAP**: мерк может снять любую ловушку. Заметка: саппорт-каст идёт, только когда мерк **рядом с хозяином и без боевой цели** (в бою приоритет — атака). Если хочется кастовать кьюр и в бою — скажи, расширю. ## E. Прочее из последних правок (если будет время — отдельно от мерков) - [ ] Рентал-предметы (срок, char-bound: нельзя трейд/дроп/склад/вендинг). - [ ] `@achievements` / `@title`, `@quests` / `@quest`, `@status` / `@cd` / `@whereis` / `@market`, `@h3`. Что подтвердится / отвалится — пишите, добью точечно.