a352a408a4c9f356ada266a5393eb11dd07ead48
14
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
a352a408a4 |
Урны ремонтника и лутера: большая зона, запуск кнопкой, кнопки-состояния
- necroCinerariumRepair/+Skull и necroCinerariumLoot/+Skull (пока на модели урны сборщика), рецепты (урна + ремкомплект / отмычка, на крови и на соке), открываются с урнами. - Зона - сторона притязания сервера или 31/21/11 (пункт «Размер зоны»), весь столб мира, каркас по «Показать границы»; работа - по «Запустить», один проход, «Остановить». - Ремонтник: обход столбов из общего бюджета клеток, очередь повреждённых блоков с RepairItems (зоны пересекаются - блок берёт первый), ремонт раз в 2.5 с материалами из ящиков по нитям (доля по повреждению), не хватает - ждёт с мигающей кнопкой. - Лутер: предметы на земле, мешки с зомби, красные трупы (тем же путём, что игрок, с находкой черепа) - в ящик с любой нитью; рюкзаки игроков и аэродроп не трогает. - Кнопки на модели (рендереры «button»): жёлтая - ждёт, мигает - нехватка/ящик полон, зелёная - работа, красная - прилив. Запись урны v6 (зона, проход, курсор, кто нажал). - Тексты 13 языков; команды разработки necrodamage, necrodrop, necrobag, necrocorpse, necrourn run|stop|size. Проверено в игре: ремонтник (нехватка -> материалы -> починил 2 блока), лутер (предметы с земли). Мешки и красные трупы - не проверены. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|
|
f040ebdc62 |
Урна рабочего: рецепт - урна и молоток, открывается вместе с урнами
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|
|
f4ae9cbcb8 |
Урна-логист - отдельный блок: без зоны (ставится вплотную), нити только к ней, зелёные руны и глазницы, своя иконка; рецепт с набором для шитья, лимит общий
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|
|
bd76360eeb |
Урна-цинерарий: блок, багажник с черепом, сумка духа, зона, лимит
Урна устроена как транспорт: на E круговое меню - «Багажник» (своё окно с одной ячейкой под череп), сумка духа 6x2 (хранилище игры), «Починить» (5 костей из рюкзака), показать/скрыть зону 5x5 от -1 до +4, «Поднять» (деталь игры TEFeaturePickup; только с пустой сумкой, череп остаётся внутри - поднятая урна с черепом становится necroCinerariumSkull). Постановка: зоны урн не пересекаются, урн не больше ceil(убийств / 500); реестр урн - файл в папке сейва. Разбитая урна роняет череп. Сохранение - CinerariumWriteHelper, версия первым байтом. Рецепт - конец Адепта (уровень 15). Модель и иконка временные (кастрюля). Тексты - 13 языков. Дух-работник - следующий этап. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|
|
027c707233 |
Кровавая роза: семена, куст, ступка, сок чёрной розы
- Кровавые семена (50 семян травы + кровь некроманта), три этапа роста на грядке: росток -> бутоны-черепа -> куст роз с черепом в сердцевине (бандл necrorose). Урожай - чёрные розы (3 базово, бонусы фермерства через ванильные теги). - Ступка (верстак, 1 куб, руны на боку; бандл necromortar) - на Подмастерье. - Сок чёрной розы: 4 розы + пустая банка на ступке; банка - копия банки крови с чернильно-чёрным содержимым (в бандле necroblood). - Копии всех рецептов на крови некроманта с соком: банка сока = две банки крови (при одной крови - одна), из сока 3 кровавые сферы вместо 2. - Иконки семян, ступки, сока и чёрной розы; тексты на 13 языках. - DecorColliderTagPatch: хитбокс ступки и куста роз. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|
|
11db1116b0 |
1.7.0: костяной скакун, книга Духа крысы, турели, расход сфер в оссуарии
- Костяной скакун (necroBoneSteed): мотоцикл из костей, сухожилий и сосудов с черепом-циклопом вместо фары; своя модель (бандл necrobonesteed), ванильная система предмета-транспорта (necroBoneSteedPlaceable, предпросмотр при установке); топливо - кровавая сфера, одна сфера = полный бак; теги коллайдеров и шейдер копируются с ванильного мотоцикла; рецепт на верстаке, Подмастерье - Книга Духа крысы: своя модель (бандл necrobooks) - чёрная кожа, светящийся узор со скелетом крысы и семиконечной звездой, ржавые уголки, ремешок - Турели не стреляют по существам мода (питомцы, рой, змея) - Гео-оссуарий тратит 1/10 прочности сферы на стак вместо целой сферы В игре не проверено. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|
|
f2dfeed126 |
1.7.0: охрана питомцами, один питомец за раз, прицел книг, гео-оссуарий
Питомцы: - охрана хозяина: враг ближе 20 м (в режиме змеи - к телу) атакуется сам, поводок 40 м, охраняют все кроме крысы; приказ прицелом охрана не перебивает - IsFoe исключает существ мода (necro*): питомец выбирал целью себя - призыв нового спутника отзывает прежнего - прицел книг призыва - как у арбалета, краснеет на годной цели Гео-оссуарий (necroGeoOssuary): станция добычи на кровавой сфере - основа - коллектор росы; в 3 ячейки модов любой из 5 ресурсов (камень, уголь, селитра, железо, сланец), 1 сфера = стак 6000 за 5-8 ч - работает без открытого неба; верстак, Подмастерье (ур. 25) - своя модель (бандл necroossuary): кости, корни, сосуды, клыки, черепа с глазами-углями; шейдер и теги коллайдера берутся у ванильного коллектора Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|
|
d97f83e972 |
ИИ питомцев переписан, добавлен Дух крысы, пороги разнесены по шкале
Работа по указаниям 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> |
||
|
|
ed5fea5192 |
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> |
||
|
|
156e046cc2 |
Череп вместо зомби на скилле, вкладке и двух баффах
Вкладка испытаний подтверждена в игре ("вкладка видна, нож сработал"), лог
чистый - 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>
|
||
|
|
c832f734d7 |
Кровавая сфера открывается вместе с браслетом, а не с уровня 1
Сфера вставляется в Пространственный браслет, но открывалась с уровня 1, тогда как сам браслет - с 20. Девятнадцать уровней её можно было крафтить в пустоту. По записанному правилу мода "пороги - по нужде, а не по силе" порог ставится туда, где предмет впервые нужен. progression.xml: resourceBloodSphere убрана из unlock_entry с unlock_tier="1" и дописана в строку браслета (unlock_tier="2"). recipes.xml: теги рецепта packMuleCrafting -> learnable,packMuleCrafting, necroNecromancyLvl20. learnable как у всех гейтованных рецептов мода, чтобы рецепт не светился в меню до открытия. Два числа обязаны совпадать и совпадают: RecipeTagUnlocked для necroNecromancyLvl20 стоит на level="20,5000", а unlock_tier="2" в группе с unlock_level="1,20,30,60,100,300" - это те же 20. Разойдись они, замок на панели скилла разошёлся бы с реальной доступностью рецепта. Чистый XML, пересборка не нужна. Комментарии в обоих файлах переписаны - там стояло "ЗАМЕЧЕНО, НЕ ИСПРАВЛЕНО". НЕ ПРОВЕРЕНО В ИГРЕ: на свежем персонаже рецепта быть не должно, после 20 убийств должны открыться браслет и сфера одной строкой. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|
|
5a512260cc |
Кровавый камень: бесконечный заряд браслета
Эндгейм-версия расходника Пространственного браслета: то же место в слоте, что у
Кровавой сферы, но не тратится вовсе. Кода менять не пришлось - только конфиги.
ЗАОДНО ЭТО ПОЧИНКА УЖЕ ОТГРУЖЕННОГО ТЕКСТА. Сообщение о пустом слоте
(braceletSpatialVaultNoMod) и описание браслета обещают игроку "кровавую сферу
ИЛИ кровавый камень" на всех 13 языках с 15.09. Пока камня не было, оба текста
отправляли за предметом, которого в игре не существует.
СОВМЕСТИМОСТЬ СЕЙВОВ - ПЕРВОЕ, ЧТО ПРОВЕРЕНО. resourceBloodStone - НОВОЕ имя, в
существующих сейвах его нет, значит нет и ни одного стака, который читался бы по
другой байтовой раскладке. Это ровно то условие, нарушение которого в
|
||
|
|
896501dcd8 |
Откат крови и Кровавая сфера вместо неё
Чинит поломку сейвов, внесённую предыдущим коммитом |
||
|
|
e8f064f5ec |
Книга некроманта 1.0 — первая публичная версия
Мод для 7 Days to Die 3.2: навык «Некромантия», растущий от счётчика убитых зомби, тёмное оружие с шестью собственными модами, призывная нежить, пирамида духов и сюжетный финал через Чёрный портал. Локализация на 13 языках. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MaNro5hAGTzcQ7rJNN2tCX |