Эндгейм-версия расходника Пространственного браслета: то же место в слоте, что у
Кровавой сферы, но не тратится вовсе. Кода менять не пришлось - только конфиги.
ЗАОДНО ЭТО ПОЧИНКА УЖЕ ОТГРУЖЕННОГО ТЕКСТА. Сообщение о пустом слоте
(braceletSpatialVaultNoMod) и описание браслета обещают игроку "кровавую сферу
ИЛИ кровавый камень" на всех 13 языках с 15.09. Пока камня не было, оба текста
отправляли за предметом, которого в игре не существует.
СОВМЕСТИМОСТЬ СЕЙВОВ - ПЕРВОЕ, ЧТО ПРОВЕРЕНО. resourceBloodStone - НОВОЕ имя, в
существующих сейвах его нет, значит нет и ни одного стака, который читался бы по
другой байтовой раскладке. Это ровно то условие, нарушение которого в e362c62
убило персонажа: ItemValue.Read/Write гейтят блок модификаций одним условием
!(itemClass is ItemClassModifier), и класс предмета определяет раскладку каждого
стака в сейве. Камень заведён новым предметом, а не переводом существующего -
тем же решением, что и Кровавая сфера. Добавление нового <item_modifier>
раскладку уже записанных стаков не меняет: айди новых предметов дописываются в
name->id мэппинг сейва, байты старых стаков остаются как были.
БЕСКОНЕЧНАЯ ПРОЧНОСТЬ СДЕЛАНА ОТСУТСТВИЕМ СТРОК, А НЕ БОЛЬШИМ ЧИСЛОМ. У камня
сознательно нет ни ShowQuality, ни DegradationBreaksAfter, ни effect_group с
DegradationMax - сравнить со сферой, у которой все три есть. SpendCharge
(SpatialVaultPickupPatch.cs) списывает прочность только у модификации, чьё имя
равно ChargeItemName ("resourceBloodSphere"); камень под условие не попадает,
цикл делает continue, его UseTimes не трогает никто. Большой DegradationMax был
бы хуже: неподвижная полоска прочности бесполезна, а при MaxUseTimes == 0 она
рисуется ПОЛНОЙ, то есть забытая пассивка выглядела бы как "всё работает".
Три места в коде сверены на то, что камень пройдёт весь путь:
1. Гейт пустого слота в Begin - это !_bracelet.HasMods(), то есть "в слоте
что-нибудь есть", а НЕ "есть сфера по имени". Камень гейт проходит. Это был
главный риск правки: искал бы гейт сферу по имени, камень не работал бы.
2. SpendCharge вызывается ПОСЛЕ SetBlockRPC(..., Air) и bag.AddItem, а его
результат только логируется - ветки "не заплатил -> откажи" нет. Блок с
камнем уходит в хранилище, в логе "took ... into the vault for 0 of charge".
3. Ветка max <= 0 в SpendCharge камня не касается: до неё доходят только
предметы, прошедшие проверку имени.
ФАЙЛЫ
Config/item_modifiers.xml - новый item_modifier resourceBloodStone,
installable_tags="necroBracelet", свой modifier_tags="necroBraceletStone".
Extends="modGeneralMaster" param1="CustomIcon" - НЕ resourceRockSmall: с ним
приехали бы Action0 ThrowAway и ThrowableDecoy, и камень можно было бы метать
как отвлекающий (на сфере эта ошибка уже была и была исправлена). Вид в руке -
HoldType 40 плюс все три меша rock_smallPrefab плюс TintColor "220, 30, 45", как
у сферы и трёх камней мода. CustomIcon="BloodStone", без CustomIconTint:
иконка своя, рисованная, лежит в обеих папках атласа с 15.09.
Config/recipes.xml - рецепт на химстанции, craft_area="chemistryStation",
tags="learnable,chemStationCrafting,necroNecromancyApprentice": 50 праха зомби,
20 костей, 4 обычной крови, 1 кровь некроманта. Все четыре имени проверены по
файлам. Цена выше, чем читается по списку: крафт самой крови некроманта снимает
90% текущего ХП.
Config/progression.xml - камень добавлен в unlock_entry третьего display_entry
(unlock_level="2000", unlock_tier="1"). Это только строка в панели скилла;
открытие рецепта делает тег. 2000 здесь и 2000 у RecipeTagUnlocked обязаны
совпадать, иначе замок на панели разойдётся с доступностью рецепта.
Config/Localization.csv - два ключа, resourceBloodStone и
resourceBloodStoneDesc, 13 языков; ключей стало 135. Названия камня взяты из уже
переведённого braceletSpatialVaultNoMod, так что сообщение об отказе и имя в
инвентаре совпадают слово в слово. braceletSpatialVaultDesc дополнено на всех 13
языках: камень не тратится. Файл переписан через csv-модуль, round-trip без
правок даёт побайтово тот же файл - кавычки и CRLF остальных строк не поехали.
ОПИСАНИЯ. README.md, SITE_DESCRIPTION.html и NEXUS_DESCRIPTION.bbcode доведены
до текущего состояния мода: сфера и камень добавлены в таблицы тиров и в список
арсенала, у браслета сказано, что забор блоков питается зарядом в слоте,
счётчик ключей 130 -> 135. Заодно снято утверждение "весь контент проходит тесты
в игре" - оно перестало быть верным: расход сферы в игре подтверждён, камень в
игру ещё не грузился.
НЕ ПРОВЕРЕНО В ИГРЕ: камень целиком. Всё выше - сверка по файлам и по
декомпиляции. Сценарий проверки в BACKLOG.md; главное, на что смотреть, -
отсутствие полоски прочности у камня в слоте и "for 0 of charge" в логе.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
66 lines
7.0 KiB
Plaintext
66 lines
7.0 KiB
Plaintext
[size=5][b]Description[/b][/size]
|
|
|
|
Every other survivor in this world ends the same way: one bad night, one horde, and you are part of it. [b]Necromancer's Tome[/b] gives you the other road. Necromancy here is an answer to a curse, not a side branch of crafting - you learn to command the dead instead of joining them. Infect zombies with madness so they tear into each other, cut with a blade that heals you as it kills, raise your own undead to walk beside you, and plant a ward that turns your attackers into your defenders.
|
|
|
|
It starts with a note. Reading it, your character sees a blurred flashback - a fragment of whatever happened to them before they woke up in this world. It ends, five thousand kills later, with the Black Portal: a full-screen finale that finishes the story the note began, and closes on a choice that is yours to make.
|
|
|
|
[size=5][b]Installation instructions[/b][/size]
|
|
|
|
[list=1]
|
|
[*]Turn [b]EasyAntiCheat off[/b]. The mod ships Harmony DLLs and will not load with EAC enabled.
|
|
[*]Download the archive and unpack it.
|
|
[*]Drop the [b]NecromancerTome[/b] folder into your [b]Mods[/b] folder, so that you end up with [i]Mods/NecromancerTome/ModInfo.xml[/i]. The Mods folder sits either next to the game executable or in [i]%APPDATA%/7DaysToDie/[/i] - either location works, create it if it is not there.
|
|
[*]Start the game. A new [b]Necromancy[/b] skill appears in the crafting skills panel from level one.
|
|
[/list]
|
|
|
|
To uninstall, delete the folder. The mod adds items and one block, so a save that used them will lose them - start a fresh world if you want a clean state.
|
|
|
|
[size=5][b]Main features[/b][/size]
|
|
|
|
[b]A skill that levels from kills, not perk points.[/b] Necromancy counts every zombie you put down. Five tiers, 5000 kills to the top, each threshold opening part of the arsenal:
|
|
|
|
[list]
|
|
[*][b]Adept[/b] (from the start) - Spirit Stone, Necromancer's Knife, Blue Portal Stone, Pyramid of Spirits, Blood Sphere
|
|
[*][b]Adept[/b] (20 / 30 / 60 / 100 / 300) - Spatial Bracelet, then four knife mods: Tears of the Dead, Scavenger's Feast, Grave's Repose, Dark Sense
|
|
[*][b]Journeyman[/b] (500 / 1400 / 1700) - Scroll of Deviation, knife mods Dead Man's Grip and Dead Storm
|
|
[*][b]Apprentice[/b] (2000) - Summon Zombie Dog, Beetles of the Lord, Summon Zombie Griffin, Blood Stone
|
|
[*][b]Necromancer[/b] (3000) - Summon Zombie Bear, Summon Zombie Wolf, Banshee's Scroll
|
|
[*][b]Master[/b] (5000) - Black Portal Stone
|
|
[/list]
|
|
|
|
[b]Turn the horde on itself.[/b] The [b]Spirit Stone[/b] is thrown; the zombie it touches switches sides and starts tearing into the others instead of you. The [b]Scroll of Deviation[/b] does the same to everything in the blast radius at once.
|
|
|
|
[b]A blade that grows with you.[/b] The [b]Necromancer's Knife[/b] scales its damage with your Necromancy level - nearly useless in unskilled hands, lethal once you are levelled. It heals you for half the damage dealt and marks the wounded zombie as a Victim, guaranteeing a bag of necromantic ingredients on its death. [b]Six mods fit this knife and nothing else[/b]: water and food drawn straight out of corpses, protection from heat and cold, slowed victims, an area power-attack storm bought with your own health, and every nearby zombie marked on your compass and map.
|
|
|
|
[b]Undead that fight for you.[/b] Summoning books raise a [b]zombie dog, bear, wolf or griffin[/b] - permanent companions, one of each kind at a time, recalled into the book with a power attack. [b]Beetles of the Lord[/b] release a swarm that scatters wide and stings zombies onto your side. The [b]Banshee's Scroll[/b] screams up a small horde that is [i]not[/i] on your side at all - use it on purpose.
|
|
|
|
[b]Base defence that converts instead of killing.[/b] The [b]Pyramid of Spirits[/b] is a deployable block. While you stand in its radius it charms any uncharmed zombie nearby on its own and sets it alight with cold purple flame, turning it against the rest instead of your walls. Its block menu toggles the effect and shows the radius.
|
|
|
|
[b]Necromancer's tools.[/b] The [b]Blue Portal Stone[/b] teleports you to your bedroll after a ten-second channel that any damage interrupts, and is never consumed. The [b]Spatial Bracelet[/b] opens a personal storage rift that grows with your Necromancy level - and holding its regular attack on a block pulls that block straight into the rift, ten seconds up close and one more per block of distance, while the world drains to black and white around you. That pull runs on a charge in the bracelet's mod slot: the [b]Blood Sphere[/b] is spent a point per second and crumbles when empty, while the [b]Blood Stone[/b] from the third grade is never spent at all. [b]Necromancer's Blood[/b] is paid for in your own health. [b]Tin cans[/b] add a reusable water cycle - fill, boil on a campfire without a pot, drink, keep the can.
|
|
|
|
[b]The dead keep shop.[/b] Every trader in the world is rendered in black and white, half-transparent and matte. Nothing about the trade changes - but the necromancer deals with the dead, and the only people still doing business out here are not quite alive.
|
|
|
|
[b]A real ending.[/b] The [b]Black Portal Stone[/b] is the last thing the skill tree gives you, and it is the end of the mod's story - a full-screen finale that stops the game and closes on a choice of two. One of them ends the run and returns you to the main menu; the other lets you come back and keep playing. What waits on the far side is better seen than described.
|
|
|
|
[b]Fully localized into 13 languages[/b]: English, German, Spanish, French, Italian, Japanese, Korean, Polish, Brazilian Portuguese, Russian, Turkish, Simplified and Traditional Chinese. Every string, not just the item names.
|
|
|
|
[size=5][b]Requirements[/b][/size]
|
|
|
|
[list]
|
|
[*][b]7 Days to Die 3.2.[/b] Other versions are untested.
|
|
[*][b]EasyAntiCheat must be off[/b] - the mod uses Harmony patches.
|
|
[*][b]No other mods required.[/b] Harmony itself ships with the game.
|
|
[*][b]Single-player.[/b] The story scenes rely on the game's own pause, which vanilla only applies in single-player; in multiplayer they play without stopping time. Everything else works, but the mod was built and tested solo.
|
|
[*]Client-side install: every player who wants it installs it themselves.
|
|
[/list]
|
|
|
|
[size=5][b]Shout outs[/b][/size]
|
|
|
|
Thanks to [b]The Fun Pimps[/b] for a game that survives this much rewriting, and to [b]Andreas Pardeike[/b] for Harmony, without which none of the runtime side of this mod would exist. Thanks to the 7 Days to Die modding community, whose forum posts and open-source mods answered questions the XML documentation does not.
|
|
|
|
[b]AI disclosure:[/b] the item icons and the finale artwork in this mod are AI-generated. Everything else - the code, the design, the mechanics and the writing - is my own.
|
|
|
|
Source code, full change history and issue tracker: [url=https://git.08h.ru/alex/necromants-tome-7d2d-3-2]git.08h.ru/alex/necromants-tome-7d2d-3-2[/url]
|
|
Mod page on my site: [url=https://www.alexcube.ru/7-days-to-die-moi-mody/kniga-nekromanta-necromancer-s-tome/]alexcube.ru[/url]
|
|
My YouTube channel: [url=https://www.youtube.com/@alexcube]@alexcube[/url]
|