If you're referring to Rocket Fury, has been done by me.
no neuro told me hes was going to do a spell for me, long time ago actually and now i just wondered if he even works on it
If you're referring to Rocket Fury, has been done by me.
no neuro told me hes was going to do a spell for me, long time ago actually and now i just wondered if he even works on it
Rocket Fury is the spell, @Kadun im sorry, forgot to tell you that he was working on it, I did it, but it was quite messy so I asked him to.
Dragon Punch - Completed by HydraRancher
its okay
And +rep Ayanami its working perfect im really glad
But how can i make it 10 second cooldown ?
I didn't do Dragon Punch haha.
Have you tried changing it in the Object Editor?
indeed this thread is for asking fellow coders to do spells for youThis thread has a different function to the spell idea thread though surely?
Uses Gtrigger and DummyThis spell is from Dota, but a little changed,
Spell Name : Berserk Strike
Gui, Jass, vJass are welcome. As you wish
Mui of course
Description : Runs to a target, for purchasing Berserk Strike dealing 60% of target's max life, the hero is damaged by 50% of the hero max life. Also the target is slowed by 50%.
Other Marks : The Cast range of spell is 700.
The hero runs till the distance between target and hero becomes 150, then Berserk Strike!
While running, the hero's must be "walk" animation. Maybe to increase speed of animation to make it realistic, that the hero is really running I don't want stand animation, because it's not realistic. So animation is the important part of spell. And it's possible, because Dota uses it!
If the distance between the hero and target becomes greater than 1000, then running to the target is stopped
For testing use the model " Upgraded headhunter - Berserker Troll"
And please Walk animation!
library BerserkStrike uses T32,Dummy optional GTrigger
//Ability SetUp
globals
private constant real SPEED =30
private constant real DAMAGE_TARGET_PERCENT =0.60
private constant real DAMAGE_SELF_PERCENT =0.50
private constant real IMPACT_DISTANCE =150
private constant real MAX_DISTANCE =1000
private constant integer ABILITY =039;ASDF039;
//ability bassed off Cripple
private constant integer SLOW_ABILITY =039;SLOW039;
private constant attacktype ATTACK_TYPE =ATTACK_TYPE_NORMAL
private constant damagetype DAMAGE_TYPE =DAMAGE_TYPE_NORMAL
private constant string EFFECT ="Abilities\\Spells\\Demon\\DarkPortal\\DarkPortalTarget.mdl"
endglobals
//Do not modify past this point
private struct BS
unit caster
unit target
private method periodic takes nothing returns nothing
local real cx=GetUnitX(.caster)
local real cy=GetUnitY(.caster)
local real tx=GetUnitX(.target)
local real ty=GetUnitY(.target)
local real d=SquareRoot((tx-cx)*(tx-cx)+(ty-cy)*(ty-cy))
local real a=Atan2(ty-cy,tx-cx)
call SetUnitX(.caster,cx+SPEED*Cos(a))
call SetUnitY(.caster,cy+SPEED*Sin(a))
if d>=MAX_DISTANCE then
call PauseUnit(.caster,false)
call SetUnitAnimation(.caster,"stand")
call .stopPeriodic()
call .deallocate()
elseif d<=IMPACT_DISTANCE then
call PauseUnit(.caster,false)
call IssueTargetOrder(.caster,"smart",.target)
call UnitDamageTarget(.caster,.target,GetUnitState(.target,UNIT_STATE_MAX_LIFE)*DAMAGE_TARGET_PERCENT,true,false,ATTACK_TYPE,DAMAGE_TYPE,null)
call UnitDamageTarget(.caster,.caster,GetUnitState(.caster,UNIT_STATE_MAX_LIFE)*DAMAGE_SELF_PERCENT,true,false,ATTACK_TYPE,DAMAGE_TYPE,null)
call DestroyEffect(AddSpecialEffectTarget(EFFECT,.target,"chest"))
call CastSpellOnTarget(.target,GetOwningPlayer(.caster),SLOW_ABILITY,1,"cripple",tx,ty)
call .stopPeriodic()
call .deallocate()
endif
endmethod
implement T32x
private static method start takes nothing returns boolean
local thistype this
if GetSpellAbilityId()==ABILITY then
set this=thistype.allocate()
set .caster=GetTriggerUnit()
set .target=GetSpellTargetUnit()
call PauseUnit(.caster,true)
call SetUnitAnimationByIndex(.caster,17)
call .startPeriodic()
endif
return false
endmethod
private static method onInit takes nothing returns nothing
local trigger trig=CreateTrigger()
static if LIBRARY_GTrigger then
call GT_RegisterStartsEffectEvent(trig,ABILITY)
else
call TriggerRegisterAnyUnitEventBJ(trig,EVENT_PLAYER_UNIT_SPELL_EFFECT)
endif
call TriggerAddCondition(trig,function thistype.start)
endmethod
endstruct
endlibrary