Чак: E - замах, ПКМ - бросок валуна в прицел или в существо.
Ранчер: ПКМ - Рой фараона, E - невидимость. Крикунья: E - орда
под девиацией. Здоровье одержимого и откаты - на месте полосок
здоровья и выносливости игрока.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Вселиться в зомби и в своего питомца, подорвать одержимого копа, 25 убийств
змеёй, войти в чертоги (ChallengeStatAwarded: счёт шлёт NecroChallenges.cs),
найти череп (Gather), сок чёрной розы, мод «Мёртвая буря», гримуар медведя
(Craft). Тексты намёком, 13 языков.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Подмешивание в орду было выключено 10.10: в кровавый прилив змеи нет, античит
не нужен. Убраны EraserPatch.cs, сущность zombieEraser, бафф свечения, строка
локализации, отброс змеи взрывом и текстуры Resources/Eraser. В выпущенных
версиях Стирателя не было - сейвы игроков не затронуты.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CC0-череп Blender Studio (Human Base Meshes), окрашен в стиле останков:
копоть в швах и глазницах, засохшая кровь; игровой вариант ~4000
треугольников с запечёнными цветом и нормалями, бандл necroskull.
Хват 21, как у книг призыва; своя иконка вместо ванильной.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Красный труп «Жертвы» истлевает в лёгкий контейнер necroRemains (своя модель:
остов, обтянутый обугленной плёнкой, бандл necroremains) через 2 минуты,
раньше - если игрок дальше 80 м или трупов больше 30. Лут и остаток срока
переходят, звук разбитого пятна крови (organicdestroy). Команда necroremains
истлевает трупы рядом сразу (для проверки).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Отдельный блок necroChalkboardPlayer (модель и надпись сюжетной доски):
крафт с начала игры - краска 2, дерево 8, гвозди 4, волокна 3, кости 2;
писать можно в обычной игре, записи свои у каждой доски; можно подобрать.
Сюжетная necroChalkboard (чертоги) по-прежнему пишется только модом.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
В прилив: урон, скорость ударов и вампиризм ножа вдвое, плата за силовую
вдвое меньше, выносливость вчетверо меньше, дальность 2.8, хват мачете
(модели меча пока нет). С ножом в руке: бег +50%, восстановление здоровья
и выносливости вдвое, полоски пульсируют фиолетовым, сердце 120 уд/мин.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Глава с листом-схемой (Fig. VII, подписи на эсперанто), пока открыта с 1 дня
для теста (по замыслу - с 5). Оглавление - до 10 глав. Доска чертогов на 5 день:
«Осторожно! Приближается лунный прилив!» вместо «излучения красной луны».
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Нет змеи, чертогов, одержимости зомби и питомцев; кто вне тела - выброшен
в тело; «коза» без эффекта. Подмешивание Стирателей в орду отключено.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Главы питомцев с чертежами (Fig. III-VI), команда necroobj для выгрузки моделей
- Книги призыва питомцев переименованы в гримуары (13 языков)
- Чертоги: второй этаж; таблички necroDoorNumber (только в редакторе) нумеруют двери,
дверь с номером закрыта до события (SetDoorOpen, necropalace door N open|close),
с начала открыты 2, 4, 5, 6
- Дух: плавный шаг по ступенькам, проход в проёмы с порогом
- Стервятник: снижение только C, без Ctrl-переключателя
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Книга некроманта: главы «Нож некроманта» и «Могильная крыса» - лист-чертёж сверху (Textures/,
три вида из Blender, подписи на эсперанто), управление и лор; окно книги непрозрачное, текст с контуром
- «Дух крысы» переименован в «Могильную крысу» на 13 языках (ключи прежние)
- Блоки (Dev): плакат-синька ножа (necroPosterKnife, 3:2 под полотно рамки), грифельная доска
necroChalkboard (надписи - TEFeatureSignable, писать только в редакторе/творческом; шрифт Neucha OFL,
свой шейдер текста с тестом глубины), дверь-книжный шкаф necroBookDoor (своя модель с аниматором,
хитбокс створки через RootTransformRefParent)
- Чертоги: префаб 25x8x25 (промежуточный); открываются только межкомнатные двери; надписи на досках
по дням игры: «Отомсти архимагу!», с 5-го дня «Берегись излучения красной луны»
- Нож: силовая атака стоит 20 здоровья, с «Мёртвой бурей» 40; не хватает - itembreak, «Недостаточно
здоровья» и обычный удар; описания на 13 языках
- Консольная команда necromodel - устройство модели блока в лог
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Прицел всех одержимых - всегда перекрестие (свой guiDrawCrosshair: точка бралась из проверки
камеры от 3-го лица у тела); краснеет на враге: у стервятника - цель рывка, у наземных - враг
на луче прицела до 30 м, не за стеной
- Падаль: отхил вдвое меньше (EatHealFrac 0.125); ест на F стервятник, медведь, собака, волк и
одержимые зомби
- E - действие: стервятник - клич (был F), крыса/волк - обыск, медведь - на дыбы (враги до 3.5 м
сбиты с ног и отброшены, откат 6 с)
- Рёв медведя: надписи «на медведя идут N» и откат, мимо очереди подсказок
- Крыса и волк обыскивают мешки с зомби (EntityLootContainer), волк берёт в сумку
- Багажник волка: окно сумки как у браслета, без рюкзака; выброс - у волка
- Отзыв волка: мешок на месте и метка «Сумка волка» на карте, снимается с мешком
- Тексты на 13 языках
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Могильная крыса: своя модель без волчьей шерсти; стоит на земле (центр капсулы);
E - осмотр контейнеров без права взять (окно игры, рюкзак скрыт, отказ «инвентарь
заполнен», контейнер не разрушается); ПКМ - проход сквозь постройки, полупрозрачная.
- Стервятник: курица в когтях - слепок с обвисшими крыльями и шеей, без хитбокса.
- Зомбособака: нюх - все существа рядом на компасе и карте.
- Медведь: толстая шкура (вдвое меньше урона), рёв-провокация, удар лапой по блокам.
- Лютоволк: бросок на цель с опрокидыванием, след крови раненых, сумка на 3 ячейки
(лут, выгрузка у тела, выпадает мешком при гибели и отзыве; отдельный файл сейва).
- Череп (останки): 2% при обычном обыске красного трупа вместо браслета.
- Прицел книги не рисуется в одержимости; подсказки вселения на 13 языках.
- Замер EntityLeakProbe: удалённые, но живые в памяти сущности - в лог.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Одержимость питомца: ПКМ с книгой - вселиться, E - отозвать (и изнутри питомца),
пояс скрыт, надпись о враге у тела.
- Одержимый стервятник: полёт, рывок на ЛКМ с 10 м с прямым уроном, звуком и
кровотечением, обычный прицел краснеет на цели; посадка в позу 0 и взлёт на пробел;
ПКМ - клич-приманка (паникующая курица, откат 0.5 с); F - питаться трупами и
блоками-падалью, доеденное исчезает.
- Дух змеи атакует только нежить; фиолетовая метка на карте у змеи и одержимого.
- Череп из красного трупа (этап 1 цинерария); глава книги «Письмо архимага» с видео.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
HoldType 14 (консерва) не имеет анимации набора воды, банка набирала
воду без движения рук. Ставим 87 - хват drinkJarEmpty.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Кровавые семена (50 семян травы + кровь некроманта), три этапа роста на грядке:
росток -> бутоны-черепа -> куст роз с черепом в сердцевине (бандл necrorose).
Урожай - чёрные розы (3 базово, бонусы фермерства через ванильные теги).
- Ступка (верстак, 1 куб, руны на боку; бандл necromortar) - на Подмастерье.
- Сок чёрной розы: 4 розы + пустая банка на ступке; банка - копия банки крови
с чернильно-чёрным содержимым (в бандле necroblood).
- Копии всех рецептов на крови некроманта с соком: банка сока = две банки крови
(при одной крови - одна), из сока 3 кровавые сферы вместо 2.
- Иконки семян, ступки, сока и чёрной розы; тексты на 13 языках.
- DecorColliderTagPatch: хитбокс ступки и куста роз.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Змея: проверка «внутри текстуры» лучами (земля игры - поверхность), каждый кадр выброс
на ближайшее свободное место (на земле - из любых текстур, в полёте - из грунта);
шаг и прыжок в текстуры не пускают. Полёт пока зажата ПКМ: 1.1 м/с (половина шага
зомби), сквозь постройки можно, в грунт нельзя; Пробел вверх, C/Ctrl вниз.
E - аварийный выход. Детализация зданий и область тела - как у одержимого.
- Одержимый: будит спящих (комнаты зданий и сам вид одержимого), приседание на C и Ctrl,
удар по точке под прицелом с наведением на грудь ближнего врага.
- Хваты: толчок руки к прицелу на ЛКМ; «пиф-паф» вселяет на пике толчка.
«Отрицание» стало «Козой» (13 языков): средний и безымянный поджаты, большой прижат;
звук - бросок змеи.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- tinCanRiverWater/tinCanBoiledWater: HoldType 14 -> 3 (хват drinkJar*),
питьё сразу, без фазы вскрытия консервы.
- necrocan: диск воды расширен с r 0.0389 до 0.0425 - край уходит в
толщину двойной стенки, щели у стенки больше нет. Проверено в игре.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Чертоги разума: дух в префабе chertogi под землёй, книга памяти, нож и плакат;
кровать префаба - мебель necroPalaceBed (иначе становилась точкой возрождения);
охрана выбрасывает и игроков (их нет в EntityAlives).
- Хваты пустой руки по R: «отрицание» и «пиф-паф» - поза рук костями поверх аниматора,
остальные кости заморожены, ЛКМ - заклинание, прицел краснеет на зомби.
- «Отрицание»: зомби в ужасе бежит дальше 40 м и теряет игрока как цель.
- «Пиф-паф»: одержимость зомби-гуманоидом - бег, прыжок, удар, дальняя атака,
подрыв, крик крикуньи; тело цепенеет, зомби танкуют одержимого; область
вокруг тела сжата; полоска здоровья; спавн и прорисовка у одержимого.
- Книга с оглавлением (окно necroTome), глава «Некроэнергия».
- Прорисовка дверей у змеи и одержимого (CheckLODs от камеры, а не от тела).
- Почтовый ящик консоли и команды necrobones/necropose/necroshot для разработки.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Радиация: проверка раз в 2 с, в поясе змея сразу развеивается (таймер 30 с убран).
- Леденящий ужас: учуянные змеёй зомби (30 м) бегут, ломая препятствия;
очередь испуга, отметка места змеи для поиска пути, выключен в кровавую луну.
«Шум» (зомби шли к змее) удалён. Диагностика бегства в логе пока оставлена.
- Стиратель (zombieEraser): в орде игрока-змеи с шансом 0.5; взрывается на любой
атаке и при разрыве змеёй, отбрасывает змею; тело - чёрный разрыв. Вид: своя
раскраска на модели гавайца (Resources/Eraser), свечение маджента, звуки спайдера.
- Фиолетовая змея на карте (necroSnakeSpirit).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- модель: ступени из костей, черепа с тлеющими глазницами, костяная ось насквозь,
наверху цветок из рваной плоти на коротком шипастом стебле из скрученных жил,
в нём фиолетовый кристалл; бандл necroward (копия префаба оссуария)
- блок на Shape="ModelEntity" как оссуарий; шейдер и теги коллайдера ставит
GeoOssuaryPatch (теперь для обоих префабов); свой коллайдер-коробка
- «Пирамида духов» переименована в «Пирамиду отрицания» (13 языков, и в описаниях);
внутреннее имя блока прежнее - уже поставленные пирамиды в сейвах сохранятся
- иконка - рендер модели
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Префабы necroBookDogPrefab и necroBookVulturePrefab в бандле necrobooks: модель
книги крысы, свои текстуры - рисунки z-dog и z-bird, кожа в тон шкуре зомбопса
(серо-бурая) и перьям зомбостервятника (красно-бурая).
- bookSummonZombieDog и bookSummonZombieGriffin переведены на них, тинт снят.
- Иконки SummonZombieDog и SummonZombieGriffin - рендер моделей, как у книги крысы.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Камень в любой ячейке скакуна - вечно полный бак, сферы рядом не тратятся.
- Камень в отсеке топлива гео-оссуария - работает вечно (FuelTypes + removeFuel).
- Кровавая сфера чинится пакетом крови: 250 прочности за пакет (2 пакета - полная).
- Описания сферы, камня, оссуария и скакуна дополнены (13 языков); в описании
скакуна по-корейски и по-китайски название сферы приведено к принятому в моде.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Мотор не заводится без сфер и глохнет, когда кровь кончилась (ваниль заводила
его и с пустым баком - ехал на полной тяге); вставили сферу в седле - заводится.
- Звуки мотора у скакуна молчат; на ходу - стук педалей bicycle_pedal,
гудок и колёса - велосипедные.
- Частицы дыма/огня убраны (розовые кубы - ванильные частицы без материалов).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Топливо скакуна - кровавые сферы в 4 ячейках модификаций, тратятся по очереди
(одна сфера = 120 ед., бак 480); уровень бака считается по прочности сфер,
выработанная сфера исчезает. Заправка канистрой убрана. В ячейки - только сферы.
- Причина «не едет» и «-2147483648%»: Extends не наследует effect_group, у предмета
скакуна не было ни ячеек, ни прочности. Своя группа: ModSlots 4, DegradationMax 4000;
здоровье закреплено кодом (DegradationMax сфер в ячейках его перебивал бы).
- Ремонт - 50 костей за ход вместо ремкомплекта; подсказка при нехватке, 13 языков.
- Модель скакуна: сиденье и рама прогнуты по ванили, рога по оси руля,
череп меньше и короче, свет фары в глазнице, крыло над передним колесом,
зубы под черепом убраны.
- Книга крысы: повёрнута как ванильная (палец на корешке), без металлических уголков.
В игре не проверено.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Костяной скакун (necroBoneSteed): мотоцикл из костей, сухожилий и сосудов
с черепом-циклопом вместо фары; своя модель (бандл necrobonesteed),
ванильная система предмета-транспорта (necroBoneSteedPlaceable, предпросмотр
при установке); топливо - кровавая сфера, одна сфера = полный бак; теги
коллайдеров и шейдер копируются с ванильного мотоцикла; рецепт на верстаке,
Подмастерье
- Книга Духа крысы: своя модель (бандл necrobooks) - чёрная кожа, светящийся
узор со скелетом крысы и семиконечной звездой, ржавые уголки, ремешок
- Турели не стреляют по существам мода (питомцы, рой, змея)
- Гео-оссуарий тратит 1/10 прочности сферы на стак вместо целой сферы
В игре не проверено.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Питомцы:
- охрана хозяина: враг ближе 20 м (в режиме змеи - к телу) атакуется сам,
поводок 40 м, охраняют все кроме крысы; приказ прицелом охрана не перебивает
- IsFoe исключает существ мода (necro*): питомец выбирал целью себя
- призыв нового спутника отзывает прежнего
- прицел книг призыва - как у арбалета, краснеет на годной цели
Гео-оссуарий (necroGeoOssuary): станция добычи на кровавой сфере
- основа - коллектор росы; в 3 ячейки модов любой из 5 ресурсов
(камень, уголь, селитра, железо, сланец), 1 сфера = стак 6000 за 5-8 ч
- работает без открытого неба; верстак, Подмастерье (ур. 25)
- своя модель (бандл necroossuary): кости, корни, сосуды, клыки, черепа
с глазами-углями; шейдер и теги коллайдера берутся у ванильного коллектора
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Ночью по R с ножом - дух змеи: тело падает (-95% HP), игрок управляет
призрачной змеёй от первого лица. Свободный ход по миру (свой наблюдатель
чанков, отрисовка, звук, спавн и спящие считаются от змеи), прыжок,
атака на ЛКМ - рывок сквозь препятствия и чёрный разрыв, ПКМ - выбраться
из текстур. Тёмное чутьё, тревога у тела, отсчёт в радиации края карты,
пурпурный фильтр зрения (necrovision). Утром змея развеивается.
Чёрный разрыв (NecroBurst.cs): клон частиц confetti в чёрном, команда
necroburst. Проверено в игре 28.09.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Обыск больше не превращает труп в мешок. Труп получает сумку со списком добычи zPackVictim
и открывается игровым путём (LockRequestLocal -> LootBagOpened -> окно добычи с игровым
таймером обыска). Запрет открывать мёртвых у EntityAlive снят префиксами только для таких
трупов. Открытый и не опустошённый труп лежит час, опустошённый убирается сразу.
После загрузки труп узнаётся по сохранённой сумке (баффы зомби в сейв не пишутся).
LockRequestLocal вызывается из TEPersistence (перегрузка с ReadOnlySpan не компилируется
в основном проекте). Класс EntityLootContainerVictim оставлен ради старых сейвов.
Описание ножа исправлено на всех языках, README - текущее описание.
Проверено в игре на 3.3: открытие, таймер, уборка опустошённых, восстановление после загрузки.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Метка висела на onSelfAttackedOther, которое приходит после DamageEntity; при смертельном
ударе добыча успевала разыграться без неё. Перенесена на onSelfPrimary/SecondaryActionRayHit
(до урона, как лечение ножом), с гейтом Health GT 0 - трупы больше не метятся.
Отзыв sanovskiy на Nexus. Проверено в игре на 3.3: три убийства с одного удара дали «Жертву».
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Повод: 1.4.1 на игре 3.3.0 experimental не смогла прочитать Пространственное
хранилище (Bag переписан) и при сохранении записала пустой маркер - вещи
пропали навсегда.
GameVersionGuard: версия из Constants.cVersionInformation (не из const
cVersionMinor - та вшивается в DLL), поддерживается Major 3 и Minor/10 == 2,
то есть любая 3.2.x. На другой версии в главном меню окно «мод несовместим,
обновите» с единственной кнопкой «Выйти из игры» (решение пользователя), а
вместо PatchAll ставятся по отдельности только окно и четыре патча
сохранения хранилища. Всё, чем пользуется защита, сверено с декомпиляцией 3.3.
Хранилище: непрочитанные байты (чужая версия или упавший разбор) проходят
Read -> ToPlayer -> FromPlayer -> Write нетронутыми, ключ - entityId, сброс
при открытии главного меню (последнее сохранение игрока делается раньше,
внутри SaveAndCleanupWorld - проверено по коду игры). Пока байты не
прочитаны, хранилище не открывается и не пополняется, с подсказкой.
Проверено в игре на 3.2 через отладочные файлы FORCE_VAULT_UNREAD и
FORCE_VERSION_GUARD (в .gitignore, в архив не попадают): 603 байта
хранилища прошли сохранение и прочитались обратно совпадающими с исходными
(26 ячеек, 24 предмета); окно появляется, Esc его не закрывает, кнопка
закрывает игру. На настоящей 3.3 не проверено.
Localization: 4 новых ключа на 13 языках, всего 165; README - статус и
число ключей (было 149).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Было: CorpseLootPatch перекрашивал труп через renderer.materials и Tint(),
и ничего за собой не убирал. Копии материалов Unity с объектом не удаляет,
перекрашенная текстура была несжатой RGBA32 (16-64 МБ) и читаемой (копия
ещё и в RAM), кеш только рос. Лог игры: Texture.currentTextureMemory
1,2 -> 7,4 ГБ за два часа при desired ~3,5 ГБ, FPS 60 -> 11. Те же жалобы
на Nexus (sanovskiy, Kriloko, Megaladon43).
Стало: каждый перекрашенный труп записан (рендереры, материалы, текстуры),
тик раз в секунду удаляет всё за трупом, которого нет в мире, текстура
удаляется со счётчиком пользователей. Текстура не больше 1024, DXT,
makeNoLongerReadable. Проверено в игре: обыск и истечение срока доводят
счёт до «трупов 0, текстур 0».
Необысканный труп лежит 300 с вместо 3600 (указание пользователя).
buffNecroZombieKillTrackerDisplay: update_rate .1 -> 1 (отзыв zomb1);
урон ножа растёт после убийства, проверено.
Документы: версия 1.4.1, README (статус + несовместимость с 3.3
experimental), описания Nexus и сайта (пять минут вместо часа),
NEXUS_CHANGELOG/FILE_SUMMARY_1.4.1.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
НОЖ ПОЛУЧИЛ СВОЮ ФОРМУ. До сих пор в бандле necroknife стояла ванильная геометрия
костяной заточки с нашей текстурой - на Nexus это заметили (Scarlettdruid: нож не похож
на свою иконку). Форма сделана в Blender поверх ванильного меша: головка и шейка бедра
срезаны, срез закрыт; лезвие выпрямлено в ампутационный нож с клиновым сечением;
костяная гарда стоит над кулаком (место выбрано по игре: девятый виток обмотки от
прежней гарды); рукоять обмотана верёвкой. Весь нож повёрнут на 180° вокруг оси -
режущая кромка смотрела не в ту сторону, "получается, что я обухом режу". Поворот, а
не зеркало: так руны на клинке не отражаются.
Текстура осталась от ножа некроманта. Верёвка нарисована в свободном углу её же атласа
(второй материал импорт в Unity отбрасывает), старые руны заменены светящимися
рублеными знаками, одинаковыми на обеих сторонах клинка. Меш 2823 вершины / 4360
треугольников. Сама цепочка сборки (скрипты Blender и сборки текстур) - в _private,
в репозиторий не входит.
ИКОНКИ нарисованы пользователем: NecromancersKnife.png - под новую модель, RatBook.png -
первая своя у Свитка духа крысы. У свитка снят CustomIconTint: он множится на иконку
и гасил бы нарисованные цвета, он был нужен только перекрашенной волчьей иконке.
ДОКУМЕНТЫ. README (обе половины), SITE_DESCRIPTION.html, NEXUS_DESCRIPTION.bbcode:
версия 1.4.0, новый вид ножа, добыча Жертвы в самом трупе (краснеет, лежит час, при
обыске оставляет мешок - проверено в игре), подбор кроватей-точек возрождения (в игре
НЕ проверено, так и написано). В "Статусе" - абзац 1.4.0 и напоминание о шкале 1.3.0:
на Nexus 21.09 игрок принял уровень "1 из 250" за застывший счётчик и решил, что
прогресс сбросился - уровень растёт раз в 20 убийств, а с 1.0.1 он пересчитывается и
становится в 20 раз меньше.
Тексты для Nexus в принятых сайтом форматах: NEXUS_FILE_SUMMARY_1.4.0.txt (254 знака
из 255) и NEXUS_CHANGELOG_1.4.0.txt (20 строк = 20 пунктов, без номера версии в начале).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Работа по указаниям 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>
Уровень навыка игра хранит ОДНИМ БАЙТОМ (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>
Мои были описательные ("Первый подданный", "Короткая дорога домой") - верные по
смыслу и скучные. Пользователь предложил свои:
Камень духов "Не бейте меня" подчинённый зомби бьётся за
игрока, по игроку не бьют
Синий портальный камень "Сам себе G.L.A.D.O.S." отсылка к Portal
Нож некроманта "Основной инструмент" каламбур на "Основной инстинкт"
"Безумный донор" не тронут - он и был авторский, и уже в этом стиле.
КАК РЕШАЛСЯ ПЕРЕВОД, потому что шутки переводятся плохо:
"Не бейте меня" - буквально на все 13, смысл не зависит от культуры.
"Сам себе G.L.A.D.O.S." - имя ИИ сохранено латиницей во всех языках (имя
собственное, в локализациях Portal оно тоже латиницей), переводится только
обёртка.
"Основной инструмент" - каламбур на названии фильма, живёт только там, где
название созвучно. Сохранён: en Basic Instinct -> Basic Instrument, es Instinto
basico -> Instrumento basico, pl Nagi instynkt -> Nagi instrument, ru Основной
инстинкт -> Основной инструмент. Где фильм известен под английским названием или
созвучия нет (de/fr/it/ja/ko/tr/zh) - взят прямой смысл "главный инструмент".
Мёртвую шутку туда не подставляли: каламбур, который не звучит, читается как
ошибка переводчика, а не как юмор.
Описания не переписаны, остались в серьёзно-атмосферном тоне. Контраст выглядит
скорее намеренным; свести тон - отдельная правка на 4 ключа x 13 языков.
Ключей по-прежнему 149, менялись значения, не состав.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Пользователь: "за кровь 100 XP маловато". Награды не задавались вовсе, поэтому
все испытания падали на challenge_reward_default (100 XP, gameevents.xml:602).
Своих событий заводить не нужно - готовы 500/1000/2000/2500/5000/10000.
ИСПРАВЛЕНА МОЯ ЖЕ ОЦЕНКА. Я предложил оставить ножу 100, обосновав это тем, что
он "один крафт, без риска", - и сказал это ДО чтения рецепта. В нож входит
1 Кровь некроманта, а её крафт снимает 90 процентов ТЕКУЩЕГО здоровья. Нож стоит
захода на порог смерти, аналогия с craftStoneAxe была неверной. Поставлено 500.
Итоговая лестница, каждое число обосновано ценой:
Камень духов 1 камень + 20 волокон 100
Нож некроманта 5 костей + 10 волокон + 1 кровь 500
Синий портальный камень 150 праха зомби + 3 минералки 2000
Безумный донор 15 крафтов крови = 15 x 90% ХП 2500
Портальный камень: 2000 при одном крафте, потому что в рецепте 150 праха зомби.
Прах падает с помеченной Жертвы по 1-4 с вероятностью 0.4 (loot.xml), в среднем
около единицы за убийство - то есть порядка 150 ритуальных убийств ножом.
Ванильный craftForgedIron (100 крафтов) платит 2000 за такой же грайнд без риска.
Донор: 2500, выше портального камня, потому что оплачивает не грайнд, а
смертельный риск. Выше не пошли - 5000 ваниль держит за химстанцией и тирами
квестов.
Камень духов: 100 и это не занижение - самая дешёвая вещь мода и буквальный
аналог craftStoneAxe, за который ваниль платит ровно умолчание.
ДВА НОВЫХ ИСПЫТАНИЯ, названия под механику:
"Первый подданный" - Камень духов подчиняет зомби, и тот бьётся за игрока; это
первое существо, которое слушается некроманта. Иконка specters_grace совпадает
и с названием предмета, и со смыслом.
"Короткая дорога домой" - камень телепортирует к спальному мешку и не
расходуется. Иконка map_house.
Локализация: 6 ключей x 13 языков, ключей стало 149. Счётчик в README и
SITE_DESCRIPTION обновлён. Текст наград заводить не пришлось - ключи
challenge_reward_*xp ванильные.
НЕ ПРОВЕРЕНО В ИГРЕ.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
В скелет сознательно клали одно испытание, чтобы сперва убедиться, что вкладка
появляется. Убедились в игре - добавлено второе, оба заказанных на месте.
<objective type="Craft" item="resourceNecromancerBlood" count="15"/>
Craft, а не Gather: кровь не добывается из мира, она крафтится. count у Craft
работает - проверено заранее, потому что в самых наглядных ванильных примерах
(craftStoneAxe, craftClothes) счётчика нет и легко решить, что его не бывает; на
деле 18 ванильных Craft-целей его несут, вплоть до resourceForgedIron count=100.
Иконка ui_game_symbol_siphoning_strikes ("высасывающие удары") - найдена при
разборе всех 359 доступных символов. Под механику "плати собственной кровью"
попадает точнее любого медицинского символа.
Имя оправдано механикой, а не просто звучит: каждый крафт снимает 90 процентов
ТЕКУЩЕГО здоровья (NecromancerBloodPatch.cs) и требует нож в инвентаре.
Пятнадцать раз подряд - пятнадцать раз до полусмерти.
Зависимости от первого испытания нет и не будет (указание "разрозненно"), хотя
фактически кровь без ножа не скрафтить: игрок сам упрётся в нож, если начнёт с
крови, и это честнее замка.
Локализация: 3 ключа x 13 языков, ключей стало 143. Счётчик в README (RU+EN) и
SITE_DESCRIPTION.html (RU+EN) обновлён той же правкой. Шапка challenges.xml
переписана - она описывала состояние "одно испытание из двух".
НЕ ПРОВЕРЕНО В ИГРЕ.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Вкладка испытаний подтверждена в игре ("вкладка видна, нож сработал"), лог
чистый - ERR за весь запуск ноль, challenges загрузились за 0.08. Заодно
подтвердилось, что осознанный риск скелета сыграл: у группы нет reward_event и
reward_text_key, и игра не сказала ни слова - умолчания корня challenges на
группы распространяются.
По указанию пользователя ui_game_symbol_zombie заменён на ui_game_symbol_skull
во всех четырёх живых местах мода:
progression.xml:90 crafting_skill craftingNecroNecromancy - сам скилл
challenges.xml:41 challenge_category NecroNecromancy - вкладка
buffs.xml:14 buffNecroZombieKillTrackerDisplay - счётчик убийств
buffs.xml:175 buffNecroDarkSense - Тёмное чутьё
Причина пользователя: "Значок зомби - протокольная рожа, как у уголовника. Череп
будет более некромантским."
Вкладка и скилл меняются ТОЛЬКО ПАРОЙ - они обязаны читаться как одно целое. Это
записано комментарием в challenges.xml, чтобы позже их не развели по одному.
СОЗНАТЕЛЬНО НЕ ТРОНУТО: комментарий buffs.xml:150 упоминает ui_game_symbol_zombie,
но описывает ВАНИЛЬНЫЙ класс nav_object="zombie" и его собственную иконку на
карте и компасе. Это не наша иконка, текст не устарел.
Чистый XML, пересборка не нужна.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Новый Config/challenges.xml - мод его раньше не имел. Категория (вкладка),
группа и ОДНО испытание "Первым делом - нож".
Одно, а не два заказанных, намеренно: файл трогается впервые, сначала надо
увидеть в игре, что вкладка вообще появляется. Нож крафтится сразу и без
верстака, то есть проверка занимает минуту. "Безумный донор" добавится одной
записью, когда скелет подтвердится.
РАЗРОЗНЕННО, НЕ ЦЕПОЧКОЙ (по указанию): у группы нет ни link_challenges, ни
hidden_by. Побочная польза - снялось противоречие порядка: Кровь некроманта
нельзя скрафтить без ножа, так что "донор" первым в цепочке был бы невыполним.
ИКОНКИ ТОЛЬКО ИЗ СИМВОЛЬНОГО АТЛАСА ИГРЫ. В templates.xml оба места, где они
рисуются (challenge_entry и category_icon), объявлены БЕЗ атрибута atlas, то есть
читают атлас по умолчанию; в ванильном challenges.xml все 215 иконок имеют вид
ui_game_symbol_* без исключений. Свой атлас мода (NecroFinal) не поможет -
обратиться к нему можно только явным atlas= на спрайте, а дописать его в шаблон
нельзя: шаблон один на все испытания, ванильные иконки пропадут.
Из 359 собранных символов нашлись некромантские, череп не понадобился. Вкладка -
ui_game_symbol_zombie (тот же символ, что у скилла в progression.xml, чтобы
вкладка и скилл читались как одно целое), нож - ui_game_symbol_knife. Для
"Безумного донора" отложен ui_game_symbol_siphoning_strikes.
Локализация: 5 ключей x 13 языков, ключей стало 140. Название вкладки взято слово
в слово из craftingNecroNecromancyName. Счётчик в README и SITE_DESCRIPTION
обновлён 135 -> 140.
ОСОЗНАННЫЙ РИСК: у группы нет reward_text_key и reward_event, хотя у всех 20
ванильных они есть. Ставка на умолчания корня challenges (default_reward,
default_reward_text_key). Если не сработает - будет в логе, и это дешевле, чем
заводить событие награды вслепую.
НЕ ПРОВЕРЕНО В ИГРЕ.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>