Пробовал в РО создать способность, которая просто наносит урон и имеет анимацию дистанционной атаки, но она либо накладывает стан, если на основе Молота Бурь, либо отравляет, если на основе Отравленного Кинжала. А если основа Перст Смерти, то анимация дистанционной атаки не видна. Может я что-то не так сделал просто, и создать в РО описанную способность возможно?

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

еще можно кислотной бомбой алхимика
у нежити есть death coil
огненная стрела (авто-каст)
у медузы есть разветвленная молния (мб можно настроить)
еще есть паразит
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
27
7 лет назад
0
quq_CCCP, чаннелинг спелы это какие спелы?
0
32
7 лет назад
0
То что нужно кастовать стоя неподвижно, всякие бураны, высасывание жизни.
0
16
7 лет назад
0
Единственный вариант - acidbomb с минимальной длительностью и мнгновенным уроном.
Других таких стандартных спеллов нет.
0
16
7 лет назад
0
Ну типа там длительность 0.03, а урон каждые 0.02 секунды. Тогда сработает ровно 1 раз.
0
23
7 лет назад
0
Вот простой jass снаряд без стана оптимальный код
globals
constant integer c_HolyBoltMissile_Ability_ID='AIfz'    //RAW код способности, что нужно использовать.
constant integer c_HolyBoltMissile_Dummy_ID='u000'      //RAW код пустышки, что имеет модель снаряда.

constant real c_HolyBoltMissile_Interval=.03125         //Интервал полета снаряда. 1 \ 0.03125 = 32 кадра в сек.
constant real c_HolyBoltMissile_MissileSpeed_Base=1000.  //Скорость снаряда базовая, кол-во проходимой дистанции в 1 сек.

//Если неуверены, что меняем, то код что ниже не советую трогать.
timer HolyBoltMissile__TIMER=CreateTimer()
integer HolyBoltMissile__MAX=0
unit array HolyBoltMissile__CASTER
unit array HolyBoltMissile__TARGET
unit array HolyBoltMissile__DUMMY
real array HolyBoltMissile__HEAL
real array HolyBoltMissile__MS
endglobals

function HolyBoltMissile_Periodic takes nothing returns nothing
local integer i=0
local real dist
local real x
local real y
local real xt
local real yt
local real rad
loop
exitwhen i==HolyBoltMissile__MAX
    set x=GetUnitX(HolyBoltMissile__DUMMY[i])
    set xt=GetUnitX(HolyBoltMissile__TARGET[i])
    set y=GetUnitY(HolyBoltMissile__DUMMY[i])
    set yt=GetUnitY(HolyBoltMissile__TARGET[i])
    set dist=SquareRoot((xt-x)*(xt-x)+(yt-y)*(yt-y))
    if dist>HolyBoltMissile__MS[i] then
        set rad=Atan2(yt-y, xt-x)
        call SetUnitX(HolyBoltMissile__DUMMY[i],x+HolyBoltMissile__MS[i]*Cos(rad))
        call SetUnitY(HolyBoltMissile__DUMMY[i],y+HolyBoltMissile__MS[i]*Sin(rad))
        call SetUnitFacing(HolyBoltMissile__DUMMY[i],rad*bj_RADTODEG)
    else
        call KillUnit(HolyBoltMissile__DUMMY[i])
        
        call UnitDamageTarget(HolyBoltMissile__CASTER[i], HolyBoltMissile__TARGET[i], HolyBoltMissile__HEAL[i], true, false, ATTACK_TYPE_NORMAL, null, null)
        call ConditionalTriggerExecute( udg_ClearDamageEvent )
        
        set HolyBoltMissile__MAX=HolyBoltMissile__MAX-1
        
        set HolyBoltMissile__CASTER[i]=HolyBoltMissile__CASTER[HolyBoltMissile__MAX]
        set HolyBoltMissile__TARGET[i]=HolyBoltMissile__TARGET[HolyBoltMissile__MAX]
        set HolyBoltMissile__DUMMY[i]=HolyBoltMissile__DUMMY[HolyBoltMissile__MAX]
        set HolyBoltMissile__HEAL[i]=HolyBoltMissile__HEAL[HolyBoltMissile__MAX]
        set HolyBoltMissile__MS[i]=HolyBoltMissile__MS[HolyBoltMissile__MAX]
        
        set HolyBoltMissile__CASTER[HolyBoltMissile__MAX]=null
        set HolyBoltMissile__TARGET[HolyBoltMissile__MAX]=null
        set HolyBoltMissile__DUMMY[HolyBoltMissile__MAX]=null
        set HolyBoltMissile__HEAL[HolyBoltMissile__MAX]=.0
        set HolyBoltMissile__MS[HolyBoltMissile__MAX]=.0
        
        set i=i-1
        if HolyBoltMissile__MAX==0 then
            call PauseTimer(HolyBoltMissile__TIMER)
        endif
    endif
set i=i+1
endloop
endfunction

function HolyBoltMissile_Cast takes nothing returns boolean
local boolean b=(GetSpellAbilityId()==c_HolyBoltMissile_Ability_ID)
local player p=GetOwningPlayer(GetTriggerUnit())
local real x=GetUnitX(GetTriggerUnit())
local real y=GetUnitY(GetTriggerUnit())
local real xt=GetUnitX(GetSpellTargetUnit())
local real yt=GetUnitY(GetSpellTargetUnit())
local real deg=Atan2(yt-y, xt-x)*bj_RADTODEG
if b then
    if HolyBoltMissile__MAX==0 then
        call TimerStart(HolyBoltMissile__TIMER,c_HolyBoltMissile_Interval,true,function HolyBoltMissile_Periodic)
    endif
    set HolyBoltMissile__CASTER[HolyBoltMissile__MAX]=GetTriggerUnit()
    set HolyBoltMissile__TARGET[HolyBoltMissile__MAX]=GetSpellTargetUnit()
    set HolyBoltMissile__DUMMY[HolyBoltMissile__MAX]=CreateUnit(p,c_HolyBoltMissile_Dummy_ID,x,y,deg)
    call SetUnitAnimation(HolyBoltMissile__DUMMY[HolyBoltMissile__MAX],"birth")
    call QueueUnitAnimation(HolyBoltMissile__DUMMY[HolyBoltMissile__MAX],"stand")
    set HolyBoltMissile__HEAL[HolyBoltMissile__MAX]= RPGCharacter[GetTriggerUnit()].stats[RPG_STAT_DAMAGE_PHYSICAL] * 1.90
    set HolyBoltMissile__MS[HolyBoltMissile__MAX]=1000*c_HolyBoltMissile_Interval
    set HolyBoltMissile__MAX=HolyBoltMissile__MAX+1
endif
set p=null
return b
endfunction

//===========================================================================
function InitTrig_HolyBoltMissile takes nothing returns nothing
local trigger t = CreateTrigger()
local unit u=CreateUnit(Player(15),c_HolyBoltMissile_Dummy_ID,0,0,0)
call TriggerRegisterAnyUnitEventBJ(t,EVENT_PLAYER_UNIT_SPELL_EFFECT)
call TriggerAddCondition(t,Condition( function HolyBoltMissile_Cast ))
call RemoveUnit(u)
set u=null
set t=null
endfunction
0
30
7 лет назад
0
оптимальный
Мне нравится твоё чувство юмора!
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.