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
+17
-10
@@ -296,16 +296,23 @@
|
||||
трупа, к этому моменту бесполезен. Теперь порог у мода стоит там, где мод реально нужен,
|
||||
а не там, где он "по силе" смотрится ровно.
|
||||
|
||||
Итоговая раскладка:
|
||||
30 - Слёзы мертвеца (вода) группа 1 "Адепт"
|
||||
60 - Пир падальщика (еда) группа 1
|
||||
100 - Могильный покой (тепло/холод) группа 1
|
||||
300 - Тёмное чутьё (радар) группа 1
|
||||
1400 - Хватка мертвеца (замедление) группа 2 "Подмастерье"
|
||||
1700 - Мёртвая буря (силовая) группа 2
|
||||
Итоговая раскладка (убийства; в скобках уровень скилла в шкале 20-за-уровень,
|
||||
введённой 2026-09-17 - см. шапку progression.xml):
|
||||
20 - Слёзы мертвеца (вода) группа 1 "Адепт" ур. 1
|
||||
60 - Пир падальщика (еда) группа 1 ур. 3
|
||||
100 - Могильный покой (тепло/холод) группа 1 ур. 5
|
||||
300 - Тёмное чутьё (радар) группа 1 ур. 15
|
||||
1400 - Хватка мертвеца (замедление) группа 2 "Подмастерье" ур. 70
|
||||
1700 - Мёртвая буря (силовая) группа 2 ур. 85
|
||||
Первые четыре - выживание и информация, они переехали в группу 1 к самому ножу (он там и
|
||||
доступен с уровня 1). Последние два - чистый бой, остались в группе 2 на прежних порогах:
|
||||
пользователь про них сказал "дальше уже не так принципиально".
|
||||
доступен с нулевого уровня). Последние два - чистый бой, остались в группе 2 на прежних
|
||||
порогах: пользователь про них сказал "дальше уже не так принципиально".
|
||||
|
||||
ВОДА ПЕРЕЕХАЛА С 30 УБИЙСТВ НА 20, 2026-09-17. Причина не балансовая, а арифметическая:
|
||||
новая шкала идёт шагом в 20 убийств, и 30 на неё не ложится. Из двух соседних узлов (20
|
||||
или 40) пользователь выбрал 20 - "мод на воду нужен на самом начальном этапе". Тега
|
||||
necroNecromancyLvl30 больше нет, рецепт сидит на necroNecromancyLvl20 - том же теге, что
|
||||
браслет и Кровавая сфера.
|
||||
|
||||
Двигать - тройка "тег в рецепте + RecipeTagUnlocked в progression.xml + unlock_tier в
|
||||
display_entry", все три должны совпадать, иначе замок на панели соврёт. -->
|
||||
@@ -325,7 +332,7 @@
|
||||
призывов и не должны требовать верстак. Тег learnable, как у остальных гейтованных
|
||||
рецептов мода, чтобы рецепт не светился в меню до открытия группы. -->
|
||||
<append xpath="/recipes">
|
||||
<recipe name="necroModKnifeTearsOfTheDead" count="1" tags="learnable,packMuleCrafting,necroNecromancyLvl30">
|
||||
<recipe name="necroModKnifeTearsOfTheDead" count="1" tags="learnable,packMuleCrafting,necroNecromancyLvl20">
|
||||
<ingredient name="resourceZombieAsh" count="10"/>
|
||||
<ingredient name="resourceVictimSkin" count="1"/>
|
||||
<ingredient name="drinkJarEmpty" count="2"/>
|
||||
|
||||
Reference in New Issue
Block a user