Это первый спелл который я сделал на JASS, всё работает как и задумано кроме одного но, этот спелл можно использовать много раз на одного и того же юнита, что меня не сильно устраивает, как можно это пофиксить?
(да я знаю что wait это ересь, но как сделать этот спелл на таймерах я не додумался)
function Trig_Target_Heal_JASS_Conditions takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'A00C' ) ) then
        return false
    endif
    return true
endfunction

function Trig_Target_Heal_JASS_Actions takes nothing returns nothing
    local real healing
    local unit target
    local unit caster
    local integer cycle
    local effect healeffect
    set udg_HoTCaster = GetSpellAbilityUnit()
    set udg_HoTTarget = GetSpellTargetUnit()
    set udg_HoTHeal = ( ( ( I2R(GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetSpellAbilityUnit())) * 0.05 ) * I2R(GetHeroStatBJ(bj_HEROSTAT_INT, GetSpellAbilityUnit(), true)) ) + ( I2R(GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetSpellAbilityUnit())) * 15.00 ) )
    set caster = udg_HoTCaster
    set target= udg_HoTTarget
    set healing = udg_HoTHeal
    set cycle = 1
    loop
        exitwhen cycle > 200
    	    if ( not GetBooleanAnd( IsUnitAliveBJ(target) == false , cycle <= 0  ) ) then
            call AddSpecialEffectTargetUnitBJ( "chest", target, "Abilities\\Spells\\Human\\Heal\\HealTarget.mdl" )
            set healeffect = GetLastCreatedEffectBJ()
            call SetUnitLifeBJ( target,( GetUnitStateSwap(UNIT_STATE_LIFE, target)+ healing) )
            call TriggerSleepAction( 0.50 )
            call DestroyEffectBJ (healeffect)
	    set cycle = (cycle + 1)
        else
            call DoNothing(  )
        endif
    endloop
    set caster = null
    set target= null
    set healing = 0
endfunction

//===========================================================================
function InitTrig_Target_Heal_JASS takes nothing returns nothing
    set gg_trg_Target_Heal_JASS = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Target_Heal_JASS, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_Target_Heal_JASS, Condition( function Trig_Target_Heal_JASS_Conditions ) )
    call TriggerAddAction( gg_trg_Target_Heal_JASS, function Trig_Target_Heal_JASS_Actions )
endfunction

Принятый ответ

Похожие вопросы:

ответ
а вопрос закрыть?
ответ
~8gabriel8:
В РО у способности есть есть строка Графика - Анимации, там указываешь ту, что хочешь видеть при её использовании. Например, для Огненных стрел Жрицы Луны используется анимация attack, для Молота бурь Горного Короля анимация spell throw, а для Покоя Хранителя Рощи анимация spell channel. Для двух последних способностей в РО указывается два слова, оба слова через пробел не работают, например, указывай отдельно spell и throw или spell и channel. Если у модели нет анимаций с таким названием, но есть анимации, которые содержат одно из этих слов, то будут проигрываться они. Там ещё есть тонкости, о которых долго печатать надо, да и они тебе могут не понадобиться. Пробуй.
ответ
quq_CCCP, Ну я на хайве видел полуджассовый вампиризм. Так мне и нужно вручать при замахе, чтоб если героя диспелят он вампиризм при атаке вернул. А утечку показывает, как я атакую, сразу хендл на один повышается. Может руна не удаляется?
ClotPh, Вообще не понял о чём ты.
Решил проблему, утечка возникала из -за не удаления руны, она почему-то не удаляется изнутри триггера, создал отдельный для удаления и нет утечки.
ответ
ALL_Remove = false
чтотооченьважное
ALL_Remove = true
как сложно то было

`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
4 года назад
0
Похожие вопросы:

ответ
а вопрос закрыть?
ответ
~8gabriel8:
В РО у способности есть есть строка Графика - Анимации, там указываешь ту, что хочешь видеть при её использовании. Например, для Огненных стрел Жрицы Луны используется анимация attack, для Молота бурь Горного Короля анимация spell throw, а для Покоя Хранителя Рощи анимация spell channel. Для двух последних способностей в РО указывается два слова, оба слова через пробел не работают, например, указывай отдельно spell и throw или spell и channel. Если у модели нет анимаций с таким названием, но есть анимации, которые содержат одно из этих слов, то будут проигрываться они. Там ещё есть тонкости, о которых долго печатать надо, да и они тебе могут не понадобиться. Пробуй.
ответ
quq_CCCP, Ну я на хайве видел полуджассовый вампиризм. Так мне и нужно вручать при замахе, чтоб если героя диспелят он вампиризм при атаке вернул. А утечку показывает, как я атакую, сразу хендл на один повышается. Может руна не удаляется?
ClotPh, Вообще не понял о чём ты.
Решил проблему, утечка возникала из -за не удаления руны, она почему-то не удаляется изнутри триггера, создал отдельный для удаления и нет утечки.
ответ
ALL_Remove = false
чтотооченьважное
ALL_Remove = true
как сложно то было

Принятый ответ
0
10
4 года назад
0
Окей, сам нашел решение)
0
15
4 года назад
0
Боже что за код
0
10
4 года назад
0
Tobi123:
Боже что за код
0
15
4 года назад
0
DiShan, плюсплюс.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.