- Префабы 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>
Пользователь проверил: поднятая и заново поставленная кровать становится точкой
возрождения, финальный вид ножа (гарда над кулаком, светящиеся руны) и иконки на месте.
README (обе половины): кровати перенесены в проверенное, во врезке из новшеств 1.4.0
осталось только поведение питомцев в кровавую луну и на транспорте. Changelog: «should
become ... Not tested in game yet» -> утверждение.
Co-Authored-By: Claude Opus 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>
Указание: «зомби после упокоения оставляет свой труп. Можем ли мы подменять
этот труп точно таким же, но с другой текстурой и с функцией мешка жертвы?»
ПОДМЕНЯТЬ НЕ ПРИШЛОСЬ НИЧЕГО. Труп - не отдельная модель, а та же скелетная
модель зомби в позе смерти, так что «такой же, но другой текстуры» делается
перекраской уже лежащего трупа. Ни нового префаба, ни новой сущности.
Три части, каждая на своём ванильном механизме:
НЕ ИСЧЕЗАЕТ. EntityAlive.timeStayAfterDeath - обычное публичное поле в тиках,
у зомби 30 секунд, у ванильного мешка 3600. Пишем второе.
ОБЫСКИВАЕТСЯ. У сущностей своя система команд, отдельная от блочной:
InitLocalActivationCommands / AllowActivationCommand / OnEntityActivated.
Объявляем ту же команду "search", что и ванильный мешок (EntityItem), поэтому
подпись достаётся готовой и локализованной. Список команд кешируется при
первом обращении - пока зомби жив, - поэтому на смерти он обнуляется.
ВНУТРИ ЛУТ. Обход сознательный: хранилище живёт внутри EntityLootContainer
вместе со своим сейвом и сетевой синхронизацией, и приделывать это трупу
значит трогать сейвы. Поэтому обыск ПРЕВРАЩАЕТ труп в мешок «Жертва».
ПЕРЕКРАСКА ЧЕРЕЗ ТЕКСТУРУ, А НЕ ЧЕРЕЗ _Color. Первая версия не работала вовсе:
у шейдеров Game/Character и Game/Animal/Fur свойства цвета НЕТ (видно в пробе,
которую печатает GhostTraderPatch: "tint property: <none>"). Красится сама
текстура - прогоном через RenderTexture, как обесцвечиваются торговцы, только
вместо сведения к яркости умножение на цвет. Результат кешируется по исходной
текстуре. Если модель на кадре смерти не собрана, труп встаёт в очередь и
докрашивается односекундным тиком.
ПОДСКАЗКА ПРИ НАВЕДЕНИИ - отдельный механизм, и сначала я настроил не тот.
Иконка EntityActivationCommand рисуется в РАДИАЛЬНОМ меню, то есть на зажатии.
А то, что видно при простом наведении, приходит из Entity.GetActivationText(),
и у EntityAlive он для существа возвращает пустую строку. Теперь возвращает то
же, что ванильный лутаемый объект: строку lootTooltipNew со значком клавиши из
разметки [action:...]. Имя берётся у зомби, так что читается «обыскать Арлин».
ОБЫСК НЕ МГНОВЕННЫЙ: три секунды с круговым индикатором (XUiC_Timer, тот же,
что при снятии верстака). Поле activateTime у команды не подошло - по нему игра
дёргает игровое событие из entity_class, а не наш код.
Обычный мешок это не отменяет: бросок вероятности остался как был, и теперь он
печатается в лог целиком (шанс против броска) - чтобы «не повезло» отличалось
от «сломано» без гадания. У ванильного зомби шанс 4%, то есть ноль мешков на
два десятка убийств - исход с вероятностью около 40%.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Исправление промаха по цели. Кровати класса SleepingBag (bed02*, bunkBed*) были
исключены из подбора НАМЕРЕННО, с формулировкой "это respawn-anchor блоки, не
декорация, трогать не просил" - и подбирались только декоративные
bedMadeNoFrame*/bedMessyNoFrame*.
Пользователь объяснил, что смысл подбора кроватей ровно обратный: "поглощённые
блоки сохраняют состояние, которое было до поглощения. Кровати до поглощения не
являются точкой возрождения. Точкой возрождения они могли бы стать при подборе".
То есть мы подбирали ровно те кровати, которые не нужны, и не подбирали те, ради
которых всё затевалось.
Проверено декомпиляцией BlockSleepingBag: PlaceBlock ставит игроку
selectedSpawnPointKey и запоминает BedrollPos - поставленная своими руками
кровать действительно становится точкой возрождения, а стоящая в POI нет.
Значит подбор и поглощение браслетом решают РАЗНЫЕ задачи.
Новых патчей не понадобилось, и это проверялось до правки: BlockSleepingBag
переопределяет только CanPlaceBlockAt, PlaceBlock, GetActivationText и
ЧЕТЫРЁХаргументный OnBlockActivated. Наши три патча висят на
HasBlockActivationCommands, GetBlockActivationCommands и ПЯТИаргументном
OnBlockActivated - ни одного из них он не перекрывает. С BlockCompositeTileEntity
(кулеры, коробки) в своё время так не вышло и понадобился отдельный набор.
Добавлены два префикса: bed02 и bunkBed. Полсотни цветовых вариантов наследуют
Class="SleepingBag" через Extends и покрываются ими же. bedroll НЕ включён:
собственный предмет игрока, ставится и снимается штатно, а bedrollPOI от него не
наследуется и точкой возрождения не является.
В ИГРЕ НЕ ПРОВЕРЕНО. Смотреть надо одно: становится ли поднятая и заново
поставленная кровать точкой возрождения на самом деле.
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>
Пользователь: "У тебя там много переносов строк, и каждый перенос отображается
как отдельное изменение."
Так и есть, проверено по разметке живой записи: Nexus заворачивает КАЖДУЮ строку
в свой <li> внутри ul.arrowlist. Мой текст был разбит по ширине в 90 символов,
поэтому на странице получилось 62 пункта со стрелками - половина из них обрывки
фраз вроде "skill's level in a single byte, so everything above 255 was cut".
Текст переписан: 16 строк, каждая - законченный пункт, переносов по ширине нет.
Содержание сохранено, только плотнее: откат уровня и новая шкала, самопочинка
сейвов, два индикатора, мир между подчинёнными, счёт убийств с благодарностью
Derizor и Savion, непочиненная модель кинжала для Scarlettdruid, изменения
порогов и блок "если приходишь с 1.0.1".
Строки длинные (до 288 знаков) - это нормально, пункт переносится сам по ширине
колонки, оставаясь одним пунктом.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Nexus рисует "Version 1.3.0" над записью сам, из отдельного поля, а текст
начинался с той же строки - на странице номер задваивался. Проверено на живой
записи: "Version 1.3.0 1.3.0 FIXED: ...".
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Пользователь: "Описание файлов не bb-код и всего 255 знаков."
Описание ФАЙЛА на Nexus - обычный текст с жёстким пределом 255 знаков, разметка
там не работает. Мой NEXUS_FILE_DESCRIPTION_1.3.0.bbcode был написан в неверном
формате и втрое длиннее предела, поэтому удалён, а не оставлен путаться под
рукой. Задним числом это объясняет и живую страницу: у файла 1.0.1 на сайте
висит короткая заметка, а подробный NEXUS_FILE_DESCRIPTION_1.0.1.bbcode из
репозитория туда никогда и не вставлялся - он физически не мог туда влезть.
Вместо него два файла по назначению:
NEXUS_FILE_SUMMARY_1.3.0.txt - 251 знак, в поле описания файла;
NEXUS_CHANGELOG_1.3.0.txt - полные заметки во вкладку Changelogs, тоже
обычным текстом.
Содержание длинного текста сохранено целиком, включая поимённый ответ Derizor,
Savion и Scarlettdruid.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Страницу мода удалось прочитать впервые (Chrome со своим профилем и отладочным
портом - curl и WebFetch там получают 403 от Cloudflare). В комментариях висит
жалоба Derizor (14.09) и Savion (15.09): убийство не засчитывается, если добил не
игрок своим оружием. Это ровно тот баг, который закрыт 16.09 в 229b436 - завели
его по своему наблюдению, не зная про тред.
В описание версии добавлен блок с ответом обоим поимённо и честная строка про
непочиненное: модель кинжала (Scarlettdruid) ждёт своего 3D-префаба.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Пользователь: "Ссылка на ютуб у тебя неверная. Должно быть @alex_cube".
Правка во всех четырёх текстах, где ссылка встречалась (README RU+EN,
SITE_DESCRIPTION, NEXUS_DESCRIPTION и старое описание версии 1.0.1) - и в самом
URL, и в подписи. Заодно описание версии 1.3.0 получило тот же футер со
ссылками, что и 1.0.1: исходники, страница на сайте, канал.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>