Труп «Жертвы» открывается сам, как ящик: без мешка

Обыск больше не превращает труп в мешок. Труп получает сумку со списком добычи zPackVictim
и открывается игровым путём (LockRequestLocal -> LootBagOpened -> окно добычи с игровым
таймером обыска). Запрет открывать мёртвых у EntityAlive снят префиксами только для таких
трупов. Открытый и не опустошённый труп лежит час, опустошённый убирается сразу.
После загрузки труп узнаётся по сохранённой сумке (баффы зомби в сейв не пишутся).
LockRequestLocal вызывается из TEPersistence (перегрузка с ReadOnlySpan не компилируется
в основном проекте). Класс EntityLootContainerVictim оставлен ради старых сейвов.
Описание ножа исправлено на всех языках, README - текущее описание.

Проверено в игре на 3.3: открытие, таймер, уборка опустошённых, восстановление после загрузки.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
AlexCube
2026-09-26 19:33:52 +03:00
co-authored by Claude Opus 5.5
parent 1c2e3f2cdf
commit e25544521d
10 changed files with 239 additions and 104 deletions
File diff suppressed because one or more lines are too long
+4 -1
View File
@@ -388,7 +388,10 @@
uses this one directly or one of the three OTHER confirmed variants, blue/red/gold) per
the fallback plan agreed on before this was ever guessed at - not visually distinct from a
normal zombie drop, but a real, working bag with the right guaranteed contents.
Force-spawned by HarmonySrc/VictimPatch.cs when a zombie with buffNecroVictim dies -
С 1.5.0 (2026-09-26) НЕ СОЗДАЁТСЯ: труп «Жертвы» сам открывается как контейнер
(HarmonySrc/CorpseLootPatch.cs). Класс оставлен ради сейвов - в мирах игроков могут
лежать уже выпавшие мешки, и без класса они не загрузятся. Не удалять.
Был: force-spawned by HarmonySrc/VictimPatch.cs when a zombie with buffNecroVictim dies -
never rolled by the normal LootDropProb/LootDropEntityClass system (not referenced from
any zombie's own entity_class), so its own IsEnemyEntity/Faction/etc. just mirror the
other loot containers for consistency, not because anything reads them via that path. -->
+4 -4
View File
@@ -1,8 +1,8 @@
<config>
<!-- "Жертва" (Victim) green loot bag - BACKLOG.md item 5, Necromancer's Knife. Guaranteed
drop off a zombie killed while carrying buffNecroVictim (see HarmonySrc/VictimPatch.cs,
which force-spawns EntityLootContainerVictim from entityclasses.xml on death, bypassing
the normal LootDropProb roll entirely).
<!-- "Жертва" (Victim) loot - BACKLOG.md item 5, Necromancer's Knife. С 1.5.0 это список
добычи САМОГО ТРУПА зомби, умершего с buffNecroVictim: труп получает сумку с этим
списком и открывается как ящик (HarmonySrc/CorpseLootPatch.cs, CorpseLoot.VictimLootList).
До 1.5.0 список наполнял мешок EntityLootContainerVictim, который появлялся при обыске.
Contents per user: random hides (usually one or none), rotten flesh, bones, and a chance
at "Кожа жертвы" (resourceVictimSkin, items.xml) - a crafting resource for summon books.