1.4.1: утечка видеопамяти от трупов «Жертвы», труп лежит 5 минут

Было: 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>
This commit is contained in:
AlexCube
2026-09-24 23:36:51 +03:00
co-authored by Claude Opus 5.5
parent 67dd410358
commit 77b56be9ae
10 changed files with 186 additions and 16 deletions
+6 -2
View File
@@ -30,12 +30,16 @@
<buff name="buffNecroZombieKillTrackerDisplay" icon="ui_game_symbol_skull" icon_color="150,0,0" name_key="buffNecroZombieKillTrackerDisplayName" description_key="buffNecroZombieKillTrackerDisplayDesc">
<stack_type value="ignore"/>
<duration value="0"/>
<update_rate value=".1"/>
<!-- Было ".1" (10 раз в секунду). 2026-09-24 стало "1" по отзыву zomb1 на Nexus
(подозревал в этом падение FPS): тик только пересчитывает урон ножа из числа
убийств, а оно меняется лишь при убийстве - после убийства урон догоняет не позже
чем через секунду. -->
<update_rate value="1"/>
<display_value value="necroNecromancyLevelCVar"/>
<!-- Нож некроманта (BACKLOG.md item 5, user request 2026-08-28): "урон умножается на
скилл некроманта ... и делится на 10". Computed here (this buff already ticks
10x/sec on every player via update_rate) rather than on the knife item itself,
once a second - 10x/sec before 1.4.1 - on every player via update_rate) rather than on the knife item itself,
since a held item has no update tick of its own - reading a live CVar from a
passive_effect (confirmed working: vanilla's own $PlayerLevelBonus, computed in
buffs.xml and read elsewhere via passive_effect value="@$PlayerLevelBonus") needs