Files
necromants-tome-7d2d-3-2/Config/nav_objects.xml
T
AlexCubeandClaude Opus 5 d97f83e972 ИИ питомцев переписан, добавлен Дух крысы, пороги разнесены по шкале
Работа по указаниям 2026-09-18. В релиз пока не выходит.

НОВЫЙ ПИТОМЕЦ "Дух крысы" (necroRatSpirit), Некромантия 3 (60 убийств):
модель зомбоволка в масштабе 0.28, урон 5, кроличьи звуки. Сам не нападает
никогда, держится справа-сзади в двух блоках, упёршись в препятствие проходит
СКВОЗЬ него и блоков не ломает. Укус замедляет, оставляет метку духа (видна на
компасе, +25% получаемого урона) и рвёт жилу. Обгрызая труп, лечится.

СВОЯ ЗАДАЧА ИИ. Задачи "иди за сущностью" в игре нет вовсе - проверены все 32
типа EAI*. Написана NecroFollowOwnerTask по образцу EAIApproachSpot: сектор
"3-6 часов" от хозяина, FindPath с canBreak:false, проход сквозь препятствие
через Entity.IsStuck. Вешается в рантайме, минуя Type.GetType.

ПРИКАЗ АТАКОВАТЬ. Повторное применение свитка при живом питомце натравливает
его на цель под прицелом: EntityPlayerLocal.HitInfo + ItemActionAttack.
GetEntityFromHit. Торговцы и игроки отсеяны. Нет цели - "Нет цели для атаки".

ЗОМБОЖИВОТНЫЕ ПРИВЕДЕНЫ К ТОМУ ЖЕ ОБРАЗЦУ. Сняты BreakBlock, Territorial,
ApproachSpot, Wander, BlockingTargetTask и поедание трупов; цель они больше не
выбирают сами. Лестница урона 20/35/45/60 плюс расчленение у Пса, Медведя и
Волка. Кровотечение всем, метка и ослабление - только у крысы.

УБИЙСТВА ПИТОМЦЕМ ЗАСЧИТЫВАЮТСЯ ВЛАДЕЛЬЦУ, включая добивание кровотечением.
Префикс на AwardKillXPServer подменяет убийцу владельцем; для смерти от баффа
заведена память укусов, потому что в DamageSource от баффа нет того, кто его
наложил. Зомби под Камнем духов это не задело - решение от 17.09 в силе.

ГРИФ откачен на летающую ветку EntityVulture и переименован в Могильного
стервятника: модель наконец соответствует имени. Держится у игрока сам, через
собственный механизм "дома" (setHomeArea), на время погони дом отвязывается.
Попытка натянуть птичий префаб на наземный класс провалилась и записана - так
делать нельзя.

ПРОЧЕЕ: призрачный вид распространён с торговцев на питомцев (у Пса, Медведя и
Волка выключен по указанию), у Пса светятся фиолетовые глаза, белая иконка
книги снята со всех свитков призыва, "Жуки Властелина" переименованы в "Рой
фараона" на всех 13 языках.

ПОРОГИ: крыса 60, стервятник 500, пёс 1300, медведь 2000, волк 4000.

ИСПРАВЛЕНО ПО ХОДУ ИГРОВЫХ ПРОВЕРОК: питомцы не призывались обычным кликом
(AnimWait требовал удержания), отзыв срабатывал не с первого раза (автомат
состояний ItemActionSpawnEntity), крыса проваливалась сквозь мир (IsStuck
отключает и пол), питомец подбрасывал хозяина (коллайдеры разводились до
появления модели).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 20:51:42 +03:00

88 lines
6.0 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<config>
<!-- Метки на карте и компасе для Духа крысы, 2026-09-18.
Две штуки, и это РАЗНЫЕ вещи: одна помечает саму крысу (чтобы игрок видел, где его
питомец), вторая - зомби, которого крыса укусила (метка духа).
Форма скопирована с ванильного nav_object_class "zombie" (Data/Config/nav_objects.xml):
это самый простой из существующих классов - у него НЕТ requirement_type, то есть метка
показывается безусловно, как только её кому-нибудь повесили. Классы с requirement_type
(IsPlayer, IsAlly, IsOwner, Tracking и ещё семь) сами решают, кому показываться, и нам
это только мешало бы: и питомец, и его добыча должны быть видны владельцу всегда.
Ванильные animaltracking_* сюда не годятся: они работают через систему отслеживания
животных (перк следопыта), а не через прямое назначение. -->
<append xpath="/nav_object_classes">
<!-- Сам питомец - ЖЁЛТЫМ, по прямому указанию.
СПРАЙТ: "воскрешение" (пробуем, указание 2026-09-18 - "для крысы попробуй иконку
воскрешения, проверим как смотрится"). Кроличий, стоявший тут сначала, не подошёл по
смыслу. Призрака, духа или души среди иконок игры НЕТ ВООБЩЕ - просмотрены все 359
имён вида ui_game_symbol_* из Data/Config и из самой сборки; ближайшее по названию
было specters_grace (бафф "Призрачная грация", перк Ловкости), но у воскрешения
смысл к некромантии ближе. Если в игре окажется невнятно, запасные - specters_grace
и skull (череп, он же значок самой Некромантии), меняется одна строка. -->
<nav_object_class name="necroRatSpiritPet">
<map_settings>
<property name="sprite_name" value="ui_game_symbol_twitch_resurrect"/>
<property name="min_distance" value="0"/>
<property name="max_distance" value="-1"/>
<property name="color" value="255,220,0,255"/>
<property name="has_pulse" value="false"/>
</map_settings>
<compass_settings>
<property name="sprite_name" value="ui_game_symbol_twitch_resurrect"/>
<property name="min_distance" value="0"/>
<property name="max_distance" value="1024"/>
<property name="max_scale_distance" value="32"/>
<property name="color" value="255,220,0,255"/>
<property name="has_pulse" value="false"/>
<property name="icon_clamped" value="false"/>
</compass_settings>
</nav_object_class>
</append>
<append xpath="/nav_object_classes">
<!-- Помеченная добыча. Спрайт зомбиный, как у ванильной метки, но цвет НЕ красный:
красным в игре уже отмечены зомби из Тёмного чутья (буфф necroModKnifeDarkSense
вешает ванильный nav_object "zombie"), и если бы метка крысы была такой же, две
разные механики стали бы неотличимы на карте.
ЦВЕТ ИСПРАВЛЕН 2026-09-18. Сначала здесь стоял зелёный (150,220,70) - ошибка, и
пользователь поймал её сразу: "игрок может решить, что цель дружелюбна". Зелёный в
интерфейсах значит "свой", а это помеченный ВРАГ.
Взят гнилостно-коричневый, а не ядовито-зелёный (предложены были оба). Причина
простая: сама крыса на карте жёлтая (255,220,0), а ядовито-зелёный - это
жёлто-зелёный, и на значке размером в десяток пикселей эти два цвета слились бы.
Коричневый не спорит ни с жёлтой крысой, ни с красными зомби Тёмного чутья и
читается как "гниёт" - ровно то, что метка и делает (см. GeneralDamageResist в
buffs.xml). Если в игре окажется тускло, ядовито-зелёный - это value="154,185,20",
одна строка.
has_pulse=true намеренно: метка живёт полминуты и должна быть заметна среди прочего,
это её единственная работа, а коричневый на карте сам по себе неяркий. -->
<nav_object_class name="necroRatSpiritMark">
<map_settings>
<property name="sprite_name" value="ui_game_symbol_zombie"/>
<property name="min_distance" value="0"/>
<property name="max_distance" value="-1"/>
<property name="color" value="165,100,35,255"/>
<property name="has_pulse" value="true"/>
</map_settings>
<compass_settings>
<property name="sprite_name" value="ui_game_symbol_zombie"/>
<property name="min_distance" value="0"/>
<property name="max_distance" value="1024"/>
<property name="max_scale_distance" value="32"/>
<property name="color" value="165,100,35,255"/>
<property name="has_pulse" value="true"/>
<property name="icon_clamped" value="false"/>
</compass_settings>
</nav_object_class>
</append>
</config>