Тест 10.10: останки в игре бледно-бежевые, хотя в Unity тот же префаб тёмный -
игра рисует копию Standard из бандла иначе (как было у крысы). BundleShaderFix
ставит встроенный Standard останкам, черепу и ножу-мечу (очередь сохраняется).
Плёнка краснее (указание: «больше красного на не-кости»), модель x1.2,
иконка перерисована.
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>
necroKnifeTidePrefab = нож + tideBlade: плоский прозрачный фиолетовый меч
ромбического сечения (Standard Fade + свечение, текстура с тёмными
вкраплениями), собран NecroTideSetup.cs (ItemsUnityProject). На ночь
прилива MeshFile ножа подменяется на него (путь - из пути обычного ножа).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Тест 10.10: NRE в Hand.Unequip оставлял Hand.isSwitching = true - рука
переставала брать что-либо до перезапуска. Теперь: ножи в других слотах
помечаются к пересборке, нож в руке пересоздаётся, когда нет смены
предмета и удара; сбой перехватывается, isSwitching снимается, Reconcile.
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>
В чертогах игра держала две полные области мира (у чертогов и у тела).
Тело теперь сжато до 3 участков, как у змеи и одержимого; при выходе
возвращается. FreezeProbe пишет каждый кадр дольше 100 мс: длительность,
сборки мусора за кадр, режим, число наблюдателей областей, куча.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Книга: картинка главы при смене главы не удалялась (~2 МБ за смену) -
удаляем сами при смене, у главы без картинки и при закрытии окна.
- Пирамида: кольцо зоны создавало новый материал при каждой перезагрузке
чанка - теперь один общий.
- Прилив: не держать стат игрока после выхода из мира; забывать полосы
пересобранного HUD.
- SpatialVaultPatch: исправлен устаревший комментарий про очистку кэша.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
В прилив: урон, скорость ударов и вампиризм ножа вдвое, плата за силовую
вдвое меньше, выносливость вчетверо меньше, дальность 2.8, хват мачете
(модели меча пока нет). С ножом в руке: бег +50%, восстановление здоровья
и выносливости вдвое, полоски пульсируют фиолетовым, сердце 120 уд/мин.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Оглавление показывает по 10 глав и листается «Назад/Далее»; «Оглавление»
из главы возвращает на ту же страницу. На листе Fig. VII у луны убраны лучи
(походила на солнце), некропыль поднимается просто вверх, со стрелками.
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>
- пирамида: огонь убран; включённая модель светится ярко (кристалл, глазницы),
выключенная тускло; граница зоны - светящееся фиолетовое кольцо по земле
(LineRenderer, точки опущены на рельеф) вместо огоньков; старые огни снимаются
- банка крови: снято зеркалирование - стоит как ванильная, в руке
- нож: руны перенесены на противоположную плоскость клинка
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>
- стекло, крышка и кровь построены заново по размерам игровой банки
- крышка - свернувшаяся кровь: бугристая, пористая, тёмно-бордовая с почти чёрными
пятнами и прожилками фибрина
- на стекле процарапаны руны: «SANGO DE NEKROMANTO» и «NE TUŠU» (эсперанто,
старший футарк); потёки крови по стеклу над уровнем
- кровь тёмная с фиолетовым отливом, слабо светится, со светящимися искрами
- стекло - отдельный прозрачный материал, крышка и кровь - непрозрачный со свечением;
ванильные меши masonJar* и masonJar_n из бандла убраны
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- кость и клинок построены заново по профилю прежнего ножа - длина и положение
навершия, рукояти, гарды и острия те же
- облик костяного кинжала: навершие-сустав, рукоять со скруглённо-прямоугольным
сечением и рифлением как у рифлёного листа, крестообразная гарда, клинок
обоюдоострый ромбического сечения, у гарды во всю ширину; проволочная обмотка
убрана; резьба по кости на навершии и у основания клинка
- текстуры свои (кость, трещины с пурпуром, резьба); руны пользователя перенесены
со старой модели запеканием; ванильные boneShiv_n и перекраска boneShiv_d убраны
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- скакун: меш коллайдеров колёс - свой цилиндр тех же размеров; у материалов
выключенных ореола и стекла фары сняты ванильные текстуры
- оссуарий: коллайдер - своя коробка по габаритам ванильного меша
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>
В первые RagdollDelay секунд после входа игра ещё обрабатывает ввод:
можно было взять ствол, и R разом перезаряжало его и выводило из змеи.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
FPS сползал 60 -> 15-30 за 10-15 минут в любом мире; перезаход сбрасывал, в режиме
змеи (пояс скрыт) тормозов не было. Замер показал: группа окон toolbelt 2 -> 23 мс/кадр
при неизменном числе элементов. Причина - ошибка игры: BindingNcalcFunctions.cvar при
каждом вычислении регистрирует новый VariableStateCVar, RegisterVariable добавляет без
проверки, новая переменная стартует с 0 и в следующем кадре снова вызывает пересчёт.
Шкала fill="{% cvar('necroNecromancyProgressCVar') / 20 }" (с 1.3.0) набирала по одной
переменной за кадр. CVarBindingLeakPatch: одна CVar регистрируется в привязке один раз.
Проверено: 15 мин, 25 убийств - FPS 55-58 ровно, toolbelt ~1 мс/кадр.
Пирамида: на Texture Quality ниже Full атлас блоков игры меньше нашей текстуры 512, и
CustomBlockPaint её пропускал. Теперь берётся мип под размер атласа; бандл necroatlas
пересобран с ignoreMipmapLimit (иначе CopyTexture отказывает и пирамида чёрная).
Проверено на Half.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Серые копии были 4096x4096 RGBA32 без сжатия (64 МБ видеопамяти каждая плюс CPU-копия) - на стриме 28.09 это добавило к переполнению 8 ГБ видеокарты. Теперь как в CorpseLoot: уменьшение до MaxTintSize, Compress, Apply(makeNoLongerReadable). При выходе из мира копии уничтожаются, а не просто забываются.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Вместо «Everything else works» - честно: мод изначально под одиночную
игру, переделывает механики игры (трупы, добыча, поведение зомби), и в
мультиплеере часть вещей может не работать, например трупы «Жертвы».
README (RU/EN), сайт (RU/EN), описание Nexus.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Префикс EntityPlayer.AddKillXP пропускает начисление опыта для жертв
змеи. Некромантия и урон ножа растут как прежде: их счёт - постфикс на
том же методе, Harmony вызывает его и при отменённом оригинале.
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>
ModInfo 1.5.0. README (обе половины), описание для сайта и для Nexus: мод для 3.3,
для игры 3.2 остаётся 1.4.2; Нож метит Жертву и с одного удара; красный труп
открывается как ящик, без мешка. Тексты для Nexus: NEXUS_FILE_SUMMARY_1.5.0.txt
(<=255 знаков) и NEXUS_CHANGELOG_1.5.0.txt (строка = пункт).
DLL пересобраны против 3.3 из текущих исходников.
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>
- Пирамида: StreamModeWrite/Read теперь глобальные перечисления (в 3.2 были внутри TileEntity).
- Хранилище: Bag поверх ItemStackGrid (конструктор с местом хранения, Resize, ItemGrid),
запись и чтение через PooledBinaryWriter/Reader. Формат хранилища 2; формат 1 из сейвов 3.2
читается. Незнакомый номер формата больше не считается «хранилища нет» - байты сохраняются.
- Сфера на браслете: ModificationCount/GetModification/SetModification.
- Непустой сундук: TEFeatureStorage.IsEmpty (ITileEntityLootable в 3.3 нет).
- Поиск ножа в инвентаре через ItemGrid.
- GameVersionGuard пускает только 3.3.
Проверено в игре на V 3.3.0 b14: хранилище из сейва 3.2 (24 стопки) прочиталось, сохранилось
и перечиталось; Пирамида включается; «Жертва», обыск трупа и мешки работают.
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>