Evil Islands (Add-On) *последняя версия*
Star 
33) Чтобы начать использовать луа-скрипты (в стартере с аддоном.длл), надо из какого-нибудь (Классик-)мода любого с этими скриптами скопировать всю папку lua к себе в мод, оттуда файл default.lua скопировать в основную папку своего мода и переименовать в main.lua, EnableLuaScripts=1 в Config/ai.reg.

В этом дефолтном файле остается ошибка с регенерацией здоровья, которая так или иначе исправляется в конкретных модах (см. Минор-мод).
В main.lua в функции RegenerateHp строки
    hp.regen = hp.regen + hp.regen * unit_stats:perkModifier(PerkType.Vitality) * 0.01
        hp.regen = hp.regen * regen_spell
    unit_stats:heal(common_server_stats_addr, hp.max * hp.regen)
исправить на
    local hp_regen = hp.regen + hp.regen * unit_stats:perkModifier(PerkType.Vitality) * 0.01
        hp_regen = hp_regen * regen_spell
    unit_stats:heal(common_server_stats_addr, hp.max * hp_regen)

Опыт для взятия навыка уровня level с нуля GetSkillPrice(level) почему-то там
    return 46 * 1.61 ^ (level / 5)
Тогда как если
    return 50 * 1.61 ^ (level / 5)
То при прокачке навыка с 0 до 100 затраты опыта отличаются от оригинала только на 1, это с той округляющей функцией GetSkillPriceDiff(from, to), какая там предложена
    return math.floor(GetSkillPrice(to) - GetSkillPrice(from))

Из непонятного, мне не понятно, зачем понадобилось создавать массив с эффектами заклинаний, наложенных на юнита.
    local spell_effect_mods = Array(spell_effect_mods_addr, Memory.Type.Float, 40, true)
Тогда как эффекты заклинаний вполне себе берутся и без этого массива из
    local unit              = UnitServer(unit_addr)
    local regen_spell = unit : spellEffect(SpellType.Regeneration)
И зачем и откуда этот массив передается в аргументы функций CalcAttackParamsOnServer и CalcAttackParamsOnClient, где без этого массива тоже можно обойтись.

В Жамевю традиция использования этого массива продолжена, размерность увеличена с 40 до 53.

Ещё в Жамевю появилось (и включаются в настройках) несколько новых функций с дополнительными аргументами вроде unitname (прототип юнита), в безопасности, сколько выбрано штук оружия. Предположительно, достаточно было определить адреса в памяти всех этих новых аргументов, как уже было для прежних всяких значений. И использовать прежние основные функции RecalcUnitStats и прочие, которые только повод, чтобы что угодно посчитать и поменять.

Надо отметить, что с нынешними луа-скриптами больше не предусмотрено распределение получаемого опыта между персонажами как в оригинальной сетевой игре в зависимости от относительного общего набранного опыта персонажей, а только в зависимости от числа персонажей.
Ответ


Сообщения в этой теме
RE: Evil Islands (Add-On) *последняя версия* - от Zyzyx - 12.06.2026, 21:39

Перейти к форуму:


Пользователи, просматривающие эту тему: 2 Гость(ей)