Новости Релиз Of Ash and Steel состоится 6 ноября
  • 10.020
  • 12
Of Ash and Steel: атмосферный экшен выходит 6 ноября 6 ноября станет важной датой для поклонников сложных и атмосферных игр - именно в этот день состоится релиз долгожданного проекта Of Ash and...
Новости В Of Ash and Steel начался закрытый плейтест
  • 13.110
  • 12
Разработчики "Русской Готики" объявили о старте закрытого плейтеста. Если вы оставляли заявку на участие, не забудьте проверить электронную почту или посмотреть свою библиотеку - возможно игра уже...
Новости Анонсирован Atomic Heart II
Новости Анонсирован ремастер Final Fantasy Tactics
  • 6.945
  • 2
Культовая пошаговая тактическая RPG от Square Enix получит второе дыхание. На проходящей выставке State of Play, где анонсируются игры для Play Station, состоялся анонс ремастера Final Fantasy...
EthernalBreeze

EthernalBreeze 3.07 (BUILD 7.0.5)

Нет прав доступа на загрузку
Сей мод направлен на расширение Нового Баланса в формат Дьяблоида и схожих рпг игр.

zauronix

Гвардеец
Участник форума
Регистрация
26 Сен 2025
Сообщения
1.636
Реакции
286
Баллы
145
Лучшие ответы
0
@Alex_Leo,
Также надобно трофеи и артефакты мода (кинжал, книжка) исключить из списка скупаемых торгашом на ферме Онара предметов.
он их и не покупает
 

Vidga

Постоялец
Участник форума
Регистрация
17 Янв 2018
Сообщения
64
Реакции
5
Баллы
59
Лучшие ответы
0
ток полная перестановка - там файлы слегка менялись и если прост кинуть поверх, то останется мусор от предыдущей. И ток новая игра - были переписаны индексы абилок и логика аиваров для них. Впрочем попробовать потом можно будет, но возможны баги у уже сгенереных мобов
Кароч если поможет, вылеты в основном с крыс, падальщиков, варанов, кабанов, шныг, волков, причем не обязательно изза аффиксов, могут быть обычные мобы и при их нападении на тебя, будет вылет, возможно да, изза возвратного урона, хотя и хз
 
Автор
Автор
StonedWizzard

StonedWizzard

Рыцарь
Участник форума
Регистрация
10 Июн 2013
Сообщения
2.592
Реакции
2.406
Баллы
434
Лучшие ответы
0
Кароч если поможет, вылеты в основном с крыс, падальщиков, варанов, кабанов, шныг, волков, причем не обязательно изза аффиксов, могут быть обычные мобы и при их нападении на тебя, будет вылет, возможно да, изза возвратного урона, хотя и хз
Там скорей всего та же проблема - во время обработки атаки атакующий дохнет от рефлекта или другого источника, а затем где то в глубинах движка случаются проблемы с контроллером анимаций. Новая система "размазанного" урона должна решить траблу. Проверю как всё отлажу, а то ща спелы мобы не кастовали сначала из-за того, что аллокация динамических структур из скриптов (мой доп. урон) не работал с массивами и вместо 124 байт выделял 44 и структуру считать не выходило. Ща ещё багу со чтением стека в ф-ии поправил, надеюсь теперь структуру считает и дальше будет отрабатывать флоу урона...


Также надобно трофеи и артефакты мода (кинжал, книжка) исключить из списка скупаемых торгашом на ферме Онара предметов.
Если просто в обычном окне торговли, то хз, вроде есть фильтры в недрах двигла для доспехов, но то для нпс, а не гг... короче хз, просто не продавайте. А если случилась такая оказия - марвин в помощь, пока статы хранятся просто в виде глобальных массивов. А вообще отстаньте от меня с артефактами пока - до крафта они будут такими какие есть, а потом я их переведу на рельсы крафта и их можно будет уже развивать немного иначе и более красивым способом.

Да я то могу, а толку если ещё не всё работает. Пару дней на отладку и выдам на тесты новую версию. Может быть быстрее будет, если ошибок и багов будет не много. Покаместь всё работает стабильно и с ощутимой прибавкой fps вплот до того, что массовые зарубы что раньше фризили кадры до 1-2 ща оттаивают гораздо быстрее. Короче стабильно всё, но не всё работает как задумывалось)))
--- Добавлено: ---

Касты излечил)
Осталось немного логику применения кастов поправить, и разобраться с рефлектом - вроде работает, а вроде бы и нет) Там ещё пробежаться туда-сюда через толпы и чем Белиар не пранкует - сегодня и отдам на тесты, если ничё слишком ужасного не вылезет)))
 
Последнее редактирование:

zauronix

Гвардеец
Участник форума
Регистрация
26 Сен 2025
Сообщения
1.636
Реакции
286
Баллы
145
Лучшие ответы
0
@Alex_Leo,
Просьба-предложение: Автор мода, пожалуйста, объедини артефакты кинжал и книжку в один предмет с объединением разнообразия прокачиваемых бафов. А то прокачка мультиклассового ГГ (ловкач+силовик+маг) доступна, а артефакты при этом под разные классы заточены.
А ещё они конфликтуют с эмблемой в новой карме (всмысле всё на один Слот идёт) и что теперь делать?
--- Добавлено: ---

@StonedWizzard, может сделать прокачку одновременно и кинжала и гримуара? А дальше пусть меняется от экипировки..
 
Автор
Автор
StonedWizzard

StonedWizzard

Рыцарь
Участник форума
Регистрация
10 Июн 2013
Сообщения
2.592
Реакции
2.406
Баллы
434
Лучшие ответы
0
А ещё они конфликтуют с эмблемой в новой карме (всмысле всё на один Слот идёт) и что теперь делать?
та всё просто - я новый слот под свои арты сделаю)
та там разберусь, не всё сразу. как займусь крафтом то буду думать. скорей всего сделаю чёт типа переливания опыта. И вообще эти арты будут улучшатся по другому и оба бутут иметь равные возможности, задолбало по отдельности ими управлять. Будут сугубо две+ декорации, на которые можно будет любые свойства накладывать. Посмотрим.
--- Добавлено: ---

Так, рефлект ожил. Вроде теперь уж стабильно - ща ещё мясные тесты прогоню на всякий...
Кста прикол из разряда "не баг, а фича" - думал рефлект делать ограниченым по радиусу... но провтыкал и забыл сделать. Ща посмотрел - без ограничений он смотрится полезней)
 
Последнее редактирование:
Автор
Автор
StonedWizzard

StonedWizzard

Рыцарь
Участник форума
Регистрация
10 Июн 2013
Сообщения
2.592
Реакции
2.406
Баллы
434
Лучшие ответы
0
Итак, свершилось!

Спустя столько времени очередной релиз. Как всегда по уже сложившемуся обычаю скидываю сюда на тесты. Если сборка продержится хоть день без постоянных вылетов - опубликую наконец по-человечески))
На тестах я ни единого вылета за целый день так и не заметил, все стресс тесты показали себя выше всяких ожиданий. Впрочем это не гарантирует прям 100% стабильность, но по идее она, эта стабильность, наконец таки должна поселится среди строк кода (ну или хотя бы её дух)))

Короче, встречайте 3.06 (BUILD 7.0.2)
+ Произведён полный рефакторинг конвейера урона в моде.
+ Скриптовая часть обработки урона так же подверглась существенной переработке. Исправлено множество багов в работе скилов и расчёта урона.
+ Введён новый фреймворк временных эффектов. Более централизованный и гибкий для добавления новых эффектов.
+ Переработана система абилок нпс. Теперь добавление новых абилок в будущем станет лёгким и непринуждённым.
+ Переработан механизм отправки урона из скриптов. Теперь для этого есть отдельная механика, которая позволит отпралять из скриптов аналог дескриптора урона. И даже ставить его в очередь!
+ Устранён баг с каскадным аое уроном.
+ Отражённый урон должен работать корректно.
+ Поправлены ф-ии определения свой-чужой.
+ Поправлен расчёт опыта в мастерства от урона по хп. Выяснилось что там дважды учитывался энергетический щит, из-за чего опыта начислялось меньше чем нужно.
+ Исправлена ф-ия расчёта среза урона от абилок.
+ Исправлен ряд существенных багов в обработке урона.
+ Паутина теперь не должна вызывать эффект замедления. В теории.
+ По идее руны "Жажда крови" и "Жажда убийства" должны качать мастерство. Мобы под действием этих спелов считаются суммонами.
+ Поправлены ф-ии расчёта урона нпс.
+ Исправлена ф-ия поиска нпс в заданном радиусе.
+ Базовая цена перка "Касание скверны" снижена до 100 золотых
+ Базовые требования ресурсов для прокачки артефактов снижена приблизительно в 10 раз.
+ Меню массового потребления пермаентов исправлена и работает.
+ Поправлены мелкие баги в ф-иях поиска предметов по инвентарю. Опять.
+ Доработана и исправлена механика спавна лута в случайных сундуках:
Теперь спавн в пустых судуках будет происходить, даже если опция случайного лута в сундуках отключена (та, что закидывает дополнительное шмотьё при открытии сундука)
Сундуки теперь закрываются на случайную комбинацию при загрузки в него вещей. Можно отключить.
Добавлен мультиспавн в сундуки. Теперь за раз может искать от 1 до 32 сундуков по миру.
Появилась возможность спавнить вещи и в не облутаных сундуках. Как всегда конфиги.
+ Переработана система уникальных идентификаторов нпс (UId) Требуется новая игра! Прошу прощения за это.
+ Каждый нпс получил свой собственный буффер статов/свойств, привязанный к его UId. Это позволяет отвязаться от аиваров из нб.
+ Собственно отвязался от системы аиваров нб, кроме одного. Теперь у меня есть простор для определения своих переменных для каждого отдельного нпс. Новая игра обязательна!
+ Чуть оптимизированы и исправлены временные эффекты. Эгиды должны работать.
+ Расширено меню общей статистики - добавлены показатели кармы и краткая информация о школах и мастерствах.
+ Ещё некоторые мелкие оптимизации кода по всему моду.
+ Исправлена формула расчёта кармы аданоса. Это производная от того как сильно гг молится обоим богам. Пока нигде не нужна, в будущем будет задействована (заменю, если в нб появится своя)
+ Исправлена функция проверки возможности использования предмета у нпс/гг. Она могла приводить к вылетам, когда нпс пытался использовать зачарованное оружие.
+ Исправлены ф-ии бафов/дебафов нпс. Там я налажал с копированием указателя StExt_Self. Менял его, но не возвращал на место.
+ Исправил баг со стриптизом нпс, из-за работы системы дополнительных слотов брони.
+ Починил ошибку с начислением опыта гг от других нпс. Возможно так же исправлены несправедливые реакции нпс на гг.
+ Эффекты абилок теперь корректно определяются при получении урона, что позволяет вытягивать флаги оригинального спела со всеми втекающими и вытекающими.
+ Вроде бы вражеские эффекты не баффают гг. Исходя из логов. Если попадутся бафы на гг - просьба дать знать. Вместе с логами)
+ Небольшие изменения в AI-контроллере нпс. Поиск цели для каста стал более надёжным.
+ Добавлены сопротивления для дотов и отраженного урона. Так же в комплекте идут модификаторы максимума.
+ Расширены статы нпс. Некоторые новые резисты и так по мелочи.
+ Ауры, которые раньше срабатывали при уроне теперь так же срабатывают и при атаке. Работа этих аур перенесена на новые рельсы отложенного урона.
+ Произведены некоторые правки в работе аур.
+ Поправлены сила лечения нпс от свитков и условие проверки уровня хп для применения.
+ Исправлен баг, когда ф-ия перебора могла "терять" указатель на актёров во время перебора.
+ Оптимизированы ф-ии работы с массивами. Скорость доступа к глобальным массивам через ф-ии должно увеличится раз так в 10.
+ Поправил алгоритм расчёта цены предметов. Вроде теперь он должен стать более вменяемым. Плюсом добавил туда капы, дабы цену не раздувало при экстремальных значениях.
+ И ещё куча всего, что я провтыкал добавить в этот список.
--- Добавлено: ---

Ах, да! Забыл добавить - новая игра обязательна!
Я там менял логику работы абилок и индексы аиваров были смещены. У уже сгенереных мобов на старом сейве ожидаемы баги в работе их абилок (впрочем, можете рискнуть, если прям ну очень нужно).
 

Вложения

Последнее редактирование:

Rustam007

Бродяга
Участник форума
Регистрация
16 Май 2018
Сообщения
39
Реакции
8
Баллы
16
Лучшие ответы
0
Автору в помощь с кодом на отражение урона:

func void StExt_OnPostDamage()
{
var int reflectAllowed;
var int damageFlags;
var int dist;

StExt_PrintDebug("StExt_OnPostDamage()", "ENTER", StExt_AttackNpc, StExt_TargetNpc);

// Проверка входящих данных
if (Hlp_IsNULL(StExt_IncomingDamageInfo))
{
StExt_PrintDebug("StExt_OnPostDamage()", "StExt_IncomingDamageInfo instance is Null!", StExt_TargetNpc, StExt_AttackNpc);
return;
}

// Проверка валидности NPC
if (!Hlp_IsValidNpc(StExt_TargetNpc) || !Hlp_IsValidNpc(StExt_AttackNpc))
{
StExt_PrintDebug("StExt_OnPostDamage()", "Invalid NPC detected!", StExt_TargetNpc, StExt_AttackNpc);
return;
}

// Проверка актёров
if (!StExt_CheckDamageActors("StExt_OnPostDamage()"))
{
return;
}

StExt_PrintIncomingDamageDebug("STEXT_ONPOSTDAMAGE");

// Инициализация reflect
StExt_InitializeReflectDamage();

if (Hlp_IsNULL(StExt_ReflectDamageInfo))
{
StExt_PrintDebug("StExt_OnPostDamage()", "ReflectDamageInfo NULL!", StExt_TargetNpc, StExt_AttackNpc);
return;
}

// Получение флагов и типа урона
StExt_ReflectDamageInfo.DamageFlags = StExt_GetDamageFlags(
StExt_TargetNpc,
StExt_AttackNpc,
StExt_NullItem,
StExt_IncomingDamageInfo.SpellId
);

StExt_ReflectDamageInfo.DamageType = StExt_GetDamageType(
StExt_TargetNpc,
StExt_AttackNpc,
StExt_NullItem,
StExt_IncomingDamageInfo.SpellId
);

// Основной обработчик
StExt_PostDamageHandler(StExt_AttackNpc, StExt_TargetNpc, StExt_NullItem);

// Проверка дистанции
dist = npc_getdisttonpc(StExt_TargetNpc, StExt_AttackNpc);
damageFlags = StExt_IncomingDamageInfo.Flags;

// Проверка возможности reflect
reflectAllowed =
(
!StExt_ValueHasFlag(damageFlags, StExt_IncomingDamageFlag_Index_ReflectDamage) &&
!StExt_ValueHasFlag(damageFlags, StExt_IncomingDamageFlag_Index_Contextual) &&
StExt_ValueHasFlag(damageFlags, StExt_IncomingDamageFlag_Index_HasAttacker)
);

// Применение reflect
if (reflectAllowed && Hlp_IsValidNpc(StExt_AttackNpc) && (dist < 800))
{
// Ограничение максимальных целей
if (StExt_ReflectDamageInfo.MaxTargets > 8)
StExt_ReflectDamageInfo.MaxTargets = 8;

// Рассчёт AOE
StExt_ReflectDamageInfo.MaxTargets = StExt_CalcAoeTargets(
StExt_TargetNpc,
StExt_ReflectDamageInfo.DamageFlags,
StExt_ReflectDamageInfo.MaxTargets
);

StExt_ReflectDamageInfo.Radius = StExt_CalcAoeDistance(
StExt_TargetNpc,
StExt_ReflectDamageInfo.DamageFlags
);

// Применяем отражённый урон
StExt_ApplyReflectDamage(StExt_TargetNpc, StExt_AttackNpc);

// Суммирование отражённого урона с жёсткой защитой
int reflectDamage = 0;
if (!Hlp_IsNULL(StExt_ReflectDamageInfo.Damage) && !Hlp_IsNULL(StExt_ReflectDamageInfo.DotDamage))
{
for (int i = 0; i < StExt_ReflectDamageInfo.MaxTargets && i < 8; i++)
{
int dmg = StExt_ReflectDamageInfo.Damage;
int dot = StExt_ReflectDamageInfo.DotDamage;

if (dmg > 10000) dmg = 10000;
if (dot > 5000) dot = 5000;

// Проверяем, что элементы не NULL и не отрицательные
if (dmg < 0) dmg = 0;
if (dot < 0) dot = 0;

reflectDamage += dmg + dot;
}
}

StExt_PrintDebug("StExt_OnPostDamage()", "Reflect Damage Total: " + reflectDamage, StExt_TargetNpc, StExt_AttackNpc);
}
else
{
StExt_PrintDebug(
"StExt_OnPostDamage()",
"Reflect not allowed",
StExt_TargetNpc,
StExt_AttackNpc
);
}

// Завершение reflect
StExt_FinalizeReflectDamage();

StExt_PrintDebug("StExt_OnPostDamage()", "EXIT", StExt_AttackNpc, StExt_TargetNpc);
};

Что делает код с отраженным уроном:
  • Проверка на NULL массивов Damage и DotDamage.
  • Каждый элемент проверяется на отрицательные значения.
  • Жёсткие лимиты: Damage ≤ 10000, DotDamage ≤ 5000, MaxTargets ≤ 8.
    [*]Защита от невалидных NPC и NULL входящих данных.
    [*]Логирование суммы отражённого урона.
 

Rustam007

Бродяга
Участник форума
Регистрация
16 Май 2018
Сообщения
39
Реакции
8
Баллы
16
Лучшие ответы
0
Автору в помощь с кодом на отражение урона:

func void StExt_OnPostDamage()
{
var int reflectAllowed;
var int damageFlags;
var int dist;

StExt_PrintDebug("StExt_OnPostDamage()", "ENTER", StExt_AttackNpc, StExt_TargetNpc);

// Проверка входящих данных
if (Hlp_IsNULL(StExt_IncomingDamageInfo))
{
StExt_PrintDebug("StExt_OnPostDamage()", "StExt_IncomingDamageInfo instance is Null!", StExt_TargetNpc, StExt_AttackNpc);
return;
}

// Проверка валидности NPC
if (!Hlp_IsValidNpc(StExt_TargetNpc) || !Hlp_IsValidNpc(StExt_AttackNpc))
{
StExt_PrintDebug("StExt_OnPostDamage()", "Invalid NPC detected!", StExt_TargetNpc, StExt_AttackNpc);
return;
}

// Проверка актёров
if (!StExt_CheckDamageActors("StExt_OnPostDamage()"))
{
return;
}

StExt_PrintIncomingDamageDebug("STEXT_ONPOSTDAMAGE");

// Инициализация reflect
StExt_InitializeReflectDamage();

if (Hlp_IsNULL(StExt_ReflectDamageInfo))
{
StExt_PrintDebug("StExt_OnPostDamage()", "ReflectDamageInfo NULL!", StExt_TargetNpc, StExt_AttackNpc);
return;
}

// Получение флагов и типа урона
StExt_ReflectDamageInfo.DamageFlags = StExt_GetDamageFlags(
StExt_TargetNpc,
StExt_AttackNpc,
StExt_NullItem,
StExt_IncomingDamageInfo.SpellId
);

StExt_ReflectDamageInfo.DamageType = StExt_GetDamageType(
StExt_TargetNpc,
StExt_AttackNpc,
StExt_NullItem,
StExt_IncomingDamageInfo.SpellId
);

// Основной обработчик
StExt_PostDamageHandler(StExt_AttackNpc, StExt_TargetNpc, StExt_NullItem);

// Проверка дистанции
dist = npc_getdisttonpc(StExt_TargetNpc, StExt_AttackNpc);
damageFlags = StExt_IncomingDamageInfo.Flags;

// Проверка возможности reflect
reflectAllowed =
(
!StExt_ValueHasFlag(damageFlags, StExt_IncomingDamageFlag_Index_ReflectDamage) &&
!StExt_ValueHasFlag(damageFlags, StExt_IncomingDamageFlag_Index_Contextual) &&
StExt_ValueHasFlag(damageFlags, StExt_IncomingDamageFlag_Index_HasAttacker)
);

// Применение reflect
if (reflectAllowed && Hlp_IsValidNpc(StExt_AttackNpc) && (dist < 800))
{
// Ограничение максимальных целей
if (StExt_ReflectDamageInfo.MaxTargets > 8)
StExt_ReflectDamageInfo.MaxTargets = 8;

// Рассчёт AOE
StExt_ReflectDamageInfo.MaxTargets = StExt_CalcAoeTargets(
StExt_TargetNpc,
StExt_ReflectDamageInfo.DamageFlags,
StExt_ReflectDamageInfo.MaxTargets
);

StExt_ReflectDamageInfo.Radius = StExt_CalcAoeDistance(
StExt_TargetNpc,
StExt_ReflectDamageInfo.DamageFlags
);

// Применяем отражённый урон
StExt_ApplyReflectDamage(StExt_TargetNpc, StExt_AttackNpc);

// Суммирование отражённого урона с жёсткой защитой
int reflectDamage = 0;
if (!Hlp_IsNULL(StExt_ReflectDamageInfo.Damage) && !Hlp_IsNULL(StExt_ReflectDamageInfo.DotDamage))
{
for (int i = 0; i < StExt_ReflectDamageInfo.MaxTargets && i < 8; i++)
{
int dmg = StExt_ReflectDamageInfo.Damage;
int dot = StExt_ReflectDamageInfo.DotDamage;


if (dmg > 10000) dmg = 10000;
if (dot > 5000) dot = 5000;


// Проверяем, что элементы не NULL и не отрицательные
if (dmg < 0) dmg = 0;
if (dot < 0) dot = 0;


reflectDamage += dmg + dot;
}
}


StExt_PrintDebug("StExt_OnPostDamage()", "Reflect Damage Total: " + reflectDamage, StExt_TargetNpc, StExt_AttackNpc);
}
else
{
StExt_PrintDebug(
"StExt_OnPostDamage()",
"Reflect not allowed",
StExt_TargetNpc,
StExt_AttackNpc
);
}


// Завершение reflect
StExt_FinalizeReflectDamage();


StExt_PrintDebug("StExt_OnPostDamage()", "EXIT", StExt_AttackNpc, StExt_TargetNpc);
};


Что делает код с отраженным уроном:


    • Проверка на NULL массивов Damage и DotDamage.

    • Каждый элемент проверяется на отрицательные значения.

    • Жёсткие лимиты: Damage ≤ 10000, DotDamage ≤ 5000, MaxTargets ≤ 8.
      [*]Защита от невалидных NPC и NULL входящих данных.
      [*]Логирование суммы отражённого урона.
Возможны ошибки в коде, или недоработки, но тебе виднее, если тебе оно вообще нужно, это для размышления в коде. Главное в игре это стабильность, без вылетов и лагов, багов.
 

the9mm

Наемник
Участник форума
Регистрация
22 Окт 2017
Сообщения
606
Реакции
114
Баллы
105
Лучшие ответы
1
Теперь еще пресеты от Данила надо дождаться=)
 

Icefist

Гвардеец
Участник форума
Регистрация
7 Фев 2018
Сообщения
1.287
Реакции
280
Баллы
206
Лучшие ответы
1
Итак, свершилось!

Спустя столько времени очередной релиз. Как всегда по уже сложившемуся обычаю скидываю сюда на тесты. Если сборка продержится хоть день без постоянных вылетов - опубликую наконец по-человечески))
На тестах я ни единого вылета за целый день так и не заметил, все стресс тесты показали себя выше всяких ожиданий. Впрочем это не гарантирует прям 100% стабильность, но по идее она, эта стабильность, наконец таки должна поселится среди строк кода (ну или хотя бы её дух)))

Короче, встречайте 3.06 (BUILD 7.0.2)
+ Произведён полный рефакторинг конвейера урона в моде.
+ Скриптовая часть обработки урона так же подверглась существенной переработке. Исправлено множество багов в работе скилов и расчёта урона.
+ Введён новый фреймворк временных эффектов. Более централизованный и гибкий для добавления новых эффектов.
+ Переработана система абилок нпс. Теперь добавление новых абилок в будущем станет лёгким и непринуждённым.
+ Переработан механизм отправки урона из скриптов. Теперь для этого есть отдельная механика, которая позволит отпралять из скриптов аналог дескриптора урона. И даже ставить его в очередь!
+ Устранён баг с каскадным аое уроном.
+ Отражённый урон должен работать корректно.
+ Поправлены ф-ии определения свой-чужой.
+ Поправлен расчёт опыта в мастерства от урона по хп. Выяснилось что там дважды учитывался энергетический щит, из-за чего опыта начислялось меньше чем нужно.
+ Исправлена ф-ия расчёта среза урона от абилок.
+ Исправлен ряд существенных багов в обработке урона.
+ Паутина теперь не должна вызывать эффект замедления. В теории.
+ По идее руны "Жажда крови" и "Жажда убийства" должны качать мастерство. Мобы под действием этих спелов считаются суммонами.
+ Поправлены ф-ии расчёта урона нпс.
+ Исправлена ф-ия поиска нпс в заданном радиусе.
+ Базовая цена перка "Касание скверны" снижена до 100 золотых
+ Базовые требования ресурсов для прокачки артефактов снижена приблизительно в 10 раз.
+ Меню массового потребления пермаентов исправлена и работает.
+ Поправлены мелкие баги в ф-иях поиска предметов по инвентарю. Опять.
+ Доработана и исправлена механика спавна лута в случайных сундуках:
Теперь спавн в пустых судуках будет происходить, даже если опция случайного лута в сундуках отключена (та, что закидывает дополнительное шмотьё при открытии сундука)
Сундуки теперь закрываются на случайную комбинацию при загрузки в него вещей. Можно отключить.
Добавлен мультиспавн в сундуки. Теперь за раз может искать от 1 до 32 сундуков по миру.
Появилась возможность спавнить вещи и в не облутаных сундуках. Как всегда конфиги.
+ Переработана система уникальных идентификаторов нпс (UId) Требуется новая игра! Прошу прощения за это.
+ Каждый нпс получил свой собственный буффер статов/свойств, привязанный к его UId. Это позволяет отвязаться от аиваров из нб.
+ Собственно отвязался от системы аиваров нб, кроме одного. Теперь у меня есть простор для определения своих переменных для каждого отдельного нпс. Новая игра обязательна!
+ Чуть оптимизированы и исправлены временные эффекты. Эгиды должны работать.
+ Расширено меню общей статистики - добавлены показатели кармы и краткая информация о школах и мастерствах.
+ Ещё некоторые мелкие оптимизации кода по всему моду.
+ Исправлена формула расчёта кармы аданоса. Это производная от того как сильно гг молится обоим богам. Пока нигде не нужна, в будущем будет задействована (заменю, если в нб появится своя)
+ Исправлена функция проверки возможности использования предмета у нпс/гг. Она могла приводить к вылетам, когда нпс пытался использовать зачарованное оружие.
+ Исправлены ф-ии бафов/дебафов нпс. Там я налажал с копированием указателя StExt_Self. Менял его, но не возвращал на место.
+ Исправил баг со стриптизом нпс, из-за работы системы дополнительных слотов брони.
+ Починил ошибку с начислением опыта гг от других нпс. Возможно так же исправлены несправедливые реакции нпс на гг.
+ Эффекты абилок теперь корректно определяются при получении урона, что позволяет вытягивать флаги оригинального спела со всеми втекающими и вытекающими.
+ Вроде бы вражеские эффекты не баффают гг. Исходя из логов. Если попадутся бафы на гг - просьба дать знать. Вместе с логами)
+ Небольшие изменения в AI-контроллере нпс. Поиск цели для каста стал более надёжным.
+ Добавлены сопротивления для дотов и отраженного урона. Так же в комплекте идут модификаторы максимума.
+ Расширены статы нпс. Некоторые новые резисты и так по мелочи.
+ Ауры, которые раньше срабатывали при уроне теперь так же срабатывают и при атаке. Работа этих аур перенесена на новые рельсы отложенного урона.
+ Произведены некоторые правки в работе аур.
+ Поправлены сила лечения нпс от свитков и условие проверки уровня хп для применения.
+ Исправлен баг, когда ф-ия перебора могла "терять" указатель на актёров во время перебора.
+ Оптимизированы ф-ии работы с массивами. Скорость доступа к глобальным массивам через ф-ии должно увеличится раз так в 10.
+ Поправил алгоритм расчёта цены предметов. Вроде теперь он должен стать более вменяемым. Плюсом добавил туда капы, дабы цену не раздувало при экстремальных значениях.
+ И ещё куча всего, что я провтыкал добавить в этот список.
--- Добавлено: ---

Ах, да! Забыл добавить - новая игра обязательна!
Я там менял логику работы абилок и индексы аиваров были смещены. У уже сгенереных мобов на старом сейве ожидаемы баги в работе их абилок (впрочем, можете рискнуть, если прям ну очень нужно).
На каких скриптах тестить?
 
Сверху Снизу