Всем здравствуйте, знаете такое заклинание предмет в 1 доте(есть и в 2 доте но мне нужен именно 1) какое то мантия при нажатии холодные снаряды запускаются в разную сторону и замедляет, 
Вопрос: как такое сделать ? И чтобы он только наносил урон а не замедлял
Вопрос: как такое сделать ? И чтобы он только наносил урон а не замедлял
Принятый ответ
function J9O takes nothing returns nothing
  local unit P8I=GetEnumUnit()
  local group JAO=ND0
  local unit P7I=NE0
  if IsUnitInGroup(P8I,JAO)==false then
    call GroupAddUnit(JAO,P8I)
    call IssueTargetOrder(NF0,"slow",P8I)
    set JJI=true
    call DamageTarget(P7I,P8I,1,200)
    set JJI=false
    call DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Undead\\FrostNova\\FrostNovaTarget.mdl",P8I,"origin"))
  endif
  set P8I=null
  set JAO=null
  set P7I=null
endfunction
function JBO takes nothing returns boolean
  local trigger t=GetTriggeringTrigger()
  local integer S5I=GetHandleId(t)
  local unit P7I=(LoadUnitHandle(HashData,(S5I),(2)))
  local unit I01=(LoadUnitHandle(HashData,(S5I),(19)))
  local group JAO=(LoadGroupHandle(HashData,(S5I),(133)))
  local real d
  local real x
  local real x0=GetUnitX(P7I)
  local real y
  local real y0=GetUnitY(P7I)
  local group g=NTI()
  local integer NPI=GetTriggerEvalCount(t)
  local integer i
  call SetUnitX(I01,GetUnitX(P7I))
  call SetUnitY(I01,GetUnitY(P7I))
  set ND0=JAO
  set NE0=P7I
  set NF0=(LoadUnitHandle(HashData,(S5I),(132)))
  if GetTriggerEvalCount(t)>37 then
    call KillUnit(I01)
    call NSI(JAO)
    call FlushChildHashtable(HashData,(S5I))
    call S0I(t)
  else
    set d=NPI*21
    set i=0
    loop
      exitwhen i>36
      set x=x0+d*Cos(360*i/36*bj_DEGTORAD)
      set y=y0+d*Sin(360*i/36*bj_DEGTORAD)
      set GK=P7I
      call GroupEnumUnitsInRange(g,x,y,150,Condition(function C81))
      call ForGroup(g,function J9O)
      set i=i+1
    endloop
  endif
  call NSI(g)
  set t=null
  set I01=null
  set JAO=null
  set P7I=null
  set g=null
  return false
endfunction
function JCO takes nothing returns nothing
  local unit SFI=GetTriggerUnit()
  local real x=GetUnitX(SFI)
  local real y=GetUnitY(SFI)
  local group JAO=NTI()
  local trigger t=CreateTrigger()
  local integer S5I=GetHandleId(t)
  local unit I01=CreateUnit(GetOwningPlayer(SFI),'h091',x,y,0)
  local unit JDO=CreateUnit(GetOwningPlayer(SFI),'e00E',GetUnitX(SFI),GetUnitY(SFI),0)
  call UnitAddAbility(JDO,'A0T0')
  call SaveGroupHandle(HashData,(S5I),(133),(JAO))
  call SaveUnitHandle(HashData,(S5I),(19),(I01))
  call SaveUnitHandle(HashData,(S5I),(132),(JDO))
  call SaveUnitHandle(HashData,(S5I),(2),(SFI))
  call TriggerRegisterTimerEvent(t,0.06,true)
  call TriggerAddCondition(t,Condition(function JBO))
  set t=null
  set JAO=null
  set I01=null
  set JDO=null
  set SFI=null
endfunction
function JEO takes nothing returns nothing
  if GetSpellAbilityId()=='A0T9' then
    call JCO()
  endif
endfunction
    
        
            
                `
            
            
                
        
    
    ОЖИДАНИЕ РЕКЛАМЫ...
            
                    
                        Чтобы оставить комментарий, пожалуйста, войдите на сайт.
                    
                
             
                        
                        
                    
 WC3
                                WC3
                            



 
                    
                
Ред. MpW
Ред. MpW
Если в карте нету GroupUtils (прекрасно гуглится на хайве).
Триггер меняем на таймер, но я скинул не для копипаста а для изучения, сложного в коде ничего нету.
Событие?
Условие?
Действия???
Код Jass, собвственно все что надо таймер, дамми юнит с модлью кольца и группа, по малому периоду двигаем даммика за юнитом кастером и выбираем всех врагов вокруг, с каждым тиком таймера увеличиваем радиус поиска группы, тех кто уже попался отсеиваем, а тех кто попался впервые дамажим, замедление делается дамми юнитом кидающим ледяную звезду в себя, урон по площяди убран, только замедление.