1.3.0: шкала 20 убийств за уровень, два индикатора, мир между подчинёнными
Уровень навыка игра хранит ОДНИМ БАЙТОМ (ProgressionValue.Write/Read), поэтому старая шкала "одно убийство - один уровень" при max_level=5000 на каждом сохранении откатывала уровень на 256 назад. Снаружи это выглядело как самопроизвольно закрывающиеся рецепты (жалоба со стрима: Слёзы мертвеца открыты, Пир падальщика под замком при 250+ убитых), а тиры 500/2000/3000/5000 были недостижимы в принципе. Подтверждено на двух живых сейвах: sezon8 - 384 убийства при уровне 129, test8 - 303 при уровне 48. Шкала переведена на 20 убийств = 1 уровень, max_level=250 - влезает в байт с запасом. Уровень больше не накапливается, а вычисляется из necroZombieKillsCVar (float, сохраняется честно) и на каждом убийстве, и постфиксом на PlayerDataFile.ToPlayer - последнее чинит старые сейвы само, без команд и новой игры. Открытое при этом не теряется: в старой шкале уровень всегда был не больше счётчика, так что пересчёт может только вернуть украденное переполнением. Отдельно закрыт случай "счётчик пуст, а уровень есть" - счётчик восстанавливается из уровня по старой шкале. Все пороги пересчитаны в уровни, числа убийств не тронуты, кроме воды: 30 на сетку шагом 20 не ложится, по указанию пользователя мод переехал на 20 - туда же, где браслет и Кровавая сфера. Тег necroNecromancyLvl30 удалён. Сходимость всех 18 рецептов (тег -> RecipeTagUnlocked -> unlock_tier) проверена скриптом. Два индикатора: череп в статус-баре показывает уровень (раньше - общее число убийств), фиолетовая шкала над полосой опыта - продвижение внутри уровня, 0..20. Шкала сделана вёрсткой, а не баффом (бафф умеет число, но не полосу), заполнение привязано через XUi-выражение cvar(). Закрывающая скобка у выражения - одна "}", а не "%}": лишний "%" NCalc читает как остаток от деления и ждёт правый операнд, на чём первая проверка в игре и споткнулась. Третья правка: подчинённые зомби больше не дерутся между собой. Девиация выдаёт приказ "бей зомби", а подчинённый сам EntityZombie, и в targetClasses выражается только тип. Постфикс на EAITarget.check вычёркивает подчинённого из кандидатов (зомби выбирает следующего, настоящего врага), префикс на EntityAlive.SetAttackTarget гасит цель на путях мимо выбора - прежде всего месть, когда подчиняют уже дерущихся. Тексты на 13 языках, README (RU+EN), описания для сайта и Nexus приведены к новой шкале. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
fbd58ad018
commit
ed5fea5192
+18
-2
@@ -10,12 +10,28 @@
|
||||
</append>
|
||||
|
||||
<append xpath="/buffs">
|
||||
<!-- Never expires (duration 0): a persistent lifetime total, not a per-day/session counter. -->
|
||||
<!-- Never expires (duration 0): a persistent lifetime total, not a per-day/session counter.
|
||||
|
||||
ЧТО ПОКАЗЫВАЕТ, ИЗМЕНЕНО 2026-09-17. Раньше бафф показывал общее число убитых зомби
|
||||
(necroZombieKillsCVar). Теперь - УРОВЕНЬ НЕКРОМАНТИИ (necroNecromancyLevelCVar), по
|
||||
указанию пользователя: "череп - уровень некромантии... 20 зомби за уровень". Само
|
||||
число убийств никуда не делось, оно по-прежнему копится в necroZombieKillsCVar (и
|
||||
по-прежнему задаёт урон ножа ниже) - просто на экране его место занял уровень, а
|
||||
продвижение внутри уровня показывает отдельная фиолетовая шкала в HUD рядом с полосой
|
||||
опыта (Config/XUi_InGame/windows.xml, CVar necroNecromancyProgressCVar).
|
||||
|
||||
Оба CVar'а пишет HarmonySrc/NecromancyKillCreditPatch.cs - и на каждом убийстве, и при
|
||||
загрузке игрока. В XML их считать нельзя: уровень обязан совпадать с
|
||||
ProgressionValue.Level бит в бит, а деление в ModifyCVar дало бы дробь (19.2).
|
||||
|
||||
Ключ имени/описания (buffNecroZombieKillTrackerDisplayName/Desc) переписан в
|
||||
Localization.csv на всех 13 языках той же правкой. Имя самого баффа НЕ трогалось
|
||||
намеренно: по нему бафф лежит в сейвах у всех, кто уже играет. -->
|
||||
<buff name="buffNecroZombieKillTrackerDisplay" icon="ui_game_symbol_skull" icon_color="150,0,0" name_key="buffNecroZombieKillTrackerDisplayName" description_key="buffNecroZombieKillTrackerDisplayDesc">
|
||||
<stack_type value="ignore"/>
|
||||
<duration value="0"/>
|
||||
<update_rate value=".1"/>
|
||||
<display_value value="necroZombieKillsCVar"/>
|
||||
<display_value value="necroNecromancyLevelCVar"/>
|
||||
|
||||
<!-- Нож некроманта (BACKLOG.md item 5, user request 2026-08-28): "урон умножается на
|
||||
скилл некроманта ... и делится на 10". Computed here (this buff already ticks
|
||||
|
||||
Reference in New Issue
Block a user