Добавлен DiShan
Это первый спелл который я сделал на JASS, всё работает как и задумано кроме одного но, этот спелл можно использовать много раз на одного и того же юнита, что меня не сильно устраивает, как можно это пофиксить?
(да я знаю что wait это ересь, но как сделать этот спелл на таймерах я не додумался)
(да я знаю что 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, Вообще не понял о чём ты.
Решил проблему, утечка возникала из -за не удаления руны, она почему-то не удаляется изнутри триггера, создал отдельный для удаления и нет утечки.
ответ
Hate:
ALL_Remove = false чтотооченьважное ALL_Remove = true
как сложно то было
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
XGM Bot
4 года назад
0
Похожие вопросы:
- И это снова я!
ответ
nvc123:
- Как установиь желаемую анимацию для проигрывания заклинания?
ответ
~8gabriel8:
- Где утечка и как её убрать?
ответ
Alexey103:
- Как исправить ошибку в библиотеке All.j?
ответ
Hate:
Поиск по всем ресурсам на сайте
Принятый ответ
0
DiShan
4 года назад
0
Окей, сам нашел решение)
0
Tobi123
4 года назад
0
Боже что за код
0
DiShan
4 года назад
0
Tobi123:
https://prnt.sc/rfc7zs
0
Tobi123
4 года назад
0
DiShan, плюсплюс.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.