Я сделал на основе спелла лечения скилл,но он не на автокасте приходться самому наводить и только тогда начинает работать.

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

Maxim131:
Мне нужно чтобы он был на автокасте и работал когда у юнита полное хп
попробуй сделай на основе автокаста лед брони.
0
19
7 лет назад
0
Похожие вопросы:

ответ
quq_CCCP:
Ну а чего полностью не сделать кастом Iplate ? Эта багнутая абилка, она делает юнитов на мгновение неуязвимыми - вот они и не получают урона.
Подбрасывай юнитов триггерно, оглушение - молот бурь, ну и наноси сколько влезет урона.
Рук с одного места расстут, чтоб подкидывать и все эффекты настраивать( как лучше всего такое реализовать?Если триггерно неуязвимость снимать перед дмг?
Исправил так, В РО юниты в воздухе 1с, добавил таймер на 1с для нанесение дмг.
function Trig_PD_Conditions takes nothing returns boolean
return  GetSpellAbilityId() == 'A012' 
endfunction

function BuffPD takes nothing returns boolean
return GetUnitAbilityLevel(GetFilterUnit(), 'B006') > 0 == true
endfunction

function DamagePD1 takes nothing returns nothing
timer t = GetExpiredTimer()
integer b = GetHandleId(t)
real i = LRh(b,2)
unit u1 = LUh(b,1)
unit u =LUh(b,0)
call SetUnitInvulnerable(u,false)
call UnitDamageTarget(u1,u,i,true,true,ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL,null)
DestroyTimer(t)
t = null
u = null
u1 = null
endfunction

function DamagePD takes nothing returns nothing
integer a = GetHandleId(gg_trg_PD)
group g = LGh(a,0)
real i = LRh(a,2)
unit u1 = LUh(a,1)
unit u = GetEnumUnit()
if IsUnitInGroup(u,g) == false then
timer t = CreateTimer()
integer b = GetHandleId(t)
GroupAddUnit(g,u)
SGh(a,0,g)
SUh(b,0,u)
SUh(b,1,u1)
SRh(b,2,i)
TimerStart(t,1,false,function DamagePD1)
endif
u = null
u1 = null
g = null
endfunction

function TimerPD takes nothing returns nothing
integer a = GetHandleId(gg_trg_PD)
unit u = LUh(a,1)
group g = LGh(a,0)
timer t = GetExpiredTimer()
group g1 = CreateGroup()
location l = GetUnitLoc(u)
integer i = LIh(a,3)+1
SIh(a,3,i)
GroupEnumUnitsInRangeOfLoc(g1,l,900,Condition(function BuffPD))
ForGroup(g1,function DamagePD)
if i == 20
DestroyTimer(t)
DestroyGroup(g)
FlushChildHashtable(udg_hash,a)
endif
DestroyGroup(g1)
RemoveLocation(l)
g = null
g1 = null
u = null
t = null
l = null
endfunction

function Trig_PD_Actions takes nothing returns nothing
unit u = GetSpellAbilityUnit()
D(GetUnitName(u))
integer a = GetHandleId(gg_trg_PD)
real i = GetUnitAbilityLevel(u,'A012')*0.25*GetHeroStr(u,true)+0.5*GetHeroStr(u,true)
group g = CreateGroup()
timer t = CreateTimer()
SGh(a,0,g)
SUh(a,1,u)
SRh(a,2,i)
TimerStart(t,0.02,true,function TimerPD)
u = null
g = null
t = null
endfunction

//===========================================================================
function InitTrig_PD takes nothing returns nothing
    set gg_trg_PD = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ( gg_trg_PD, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_PD, Condition( function Trig_PD_Conditions ) )
    call TriggerAddAction( gg_trg_PD, function Trig_PD_Actions )
endfunction

0
28
7 лет назад
0
Можно по подробней что тебе нужно?
0
3
7 лет назад
0
Мне нужно чтобы он был на автокасте и работал когда у юнита полное хп
0
28
7 лет назад
0
Maxim131:
Мне нужно чтобы он был на автокасте и работал когда у юнита полное хп
попробуй сделай на основе автокаста лед брони.
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.