Spell Elite Spark

Doom-Angel

Jass User (Just started using NewGen)
Reaction score
167
k i made a spell and come to think about it that's my first time i do it:
and btw don't say it's omnislash or copied cuz it's not and it's not even based on omnislash (just an idea came up and then i found out that omnislash is based on the same idea)

[Spell] Elite Spark


Description: This spell increases the hero's movement speed making him attack in amazing speed
confusing and terrifying his enemies and not letting anyone in range to escape, Deals 100 damage on each strike and has 15 second duration.

Level 1 - attacking enemies within 500 range in Elite Speed, has 100 second cooldown and cost 200 Mana.
Level 2 - attacking enemies within 1000 range in Ultimate Speed, has 150 second cooldown and cost 350 Mana.
Level 3 - attacking enemies within 1500 range in Monstrous Speed, has 200 second cooldown and cost 500 Mana.


The Trigger of the spell (for the lazy guys :D):
JASS:
//@@@@@@@@@@@@@@@@@@@@ Elite Spark @@@@@@@@@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@ Created By Doom-Angel @@@@@@@@@@@@@@@@@@@@@
//@@@@@@@@@@@@@@@@@@@@@ ~~Have Fun~~ @@@@@@@@@@@@@@@@@@@@@@@@@@


//To import this spell:
//Copy the spell "Elite Spark" in your map and make sure it has the same raw id in the constant function below.
//Copy this trigger into your map.
//Change the constant functions below if you wish to change how the spell operates a bit.


//Constants start here
//You can change here the ability id in case your based ability id is different to check for id go to object editor->your ability and press ctrl+D and u will see the ability id.
constant function ES_abilityID takes nothing returns integer
    return 'AOws'
endfunction


//You can change here the duration of the skill which is set by deafult to 15 seconds.
constant function ES_Duration takes nothing returns real
    return 15.00
endfunction


//You can change here damage dealt per a strike which is set by deafult to 100 damage.
constant function ES_DamageDealt takes nothing returns real
    return 100.00
endfunction
//Constants end here

function ES_Conditions takes nothing returns boolean
    return (GetSpellAbilityId() == ES_abilityID())
endfunction


function ES_filter takes nothing returns boolean
    return (IsUnitEnemy(GetTriggerUnit(),GetOwningPlayer(GetFilterUnit()))) and (GetUnitState(GetFilterUnit(),UNIT_STATE_LIFE) > 0.405) and (IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE) == false)
endfunction


function ES_Check takes timer t,group g returns boolean
    return (TimerGetRemaining(t) == 0) or (CountUnitsInGroup(g) == 0)
endfunction


function ES_Actions takes nothing returns nothing
    local unit u = GetTriggerUnit()
    local timer t = CreateTimer()
    local real y = GetUnitY(u)
    local real x = GetUnitX(u)
    local group g = CreateGroup()
    local group g2 = CreateGroup()
    local integer level = GetUnitAbilityLevel(u,ES_abilityID())
    local boolexpr b = Condition(function ES_filter)
    local unit target
    local unit first
    local effect array e
    local integer i = 0
    local real x2
    local real y2
    call SetUnitVertexColor(u,255,255,255,15)
    call SetUnitTimeScale(u,4-level)
    call TriggerSleepAction(0.20)
    call TimerStart(t,ES_Duration(),false,null)
    call SetUnitPathing(u,false)
    call SetUnitInvulnerable(u,true)
    call PauseUnit(u,true)
    call GroupEnumUnitsInRange(g,x,y,500*level,b)
      loop
        set i = i+1
        set first = FirstOfGroup(g)
        exitwhen (first == null)
          call SetUnitMoveSpeed(first,100)
          set e<i> = AddSpecialEffectTarget(&quot;Abilities\\Spells\\Orc\\StasisTrap\\StasisTotemTarget.mdl&quot;,first,&quot;head&quot;)
          call GroupRemoveUnit(g,first)
      endloop
    call GroupEnumUnitsInRange(g,x,y,500*level,b)
    call GroupEnumUnitsInRange(g2,x,y,500*level,b)
      loop
        exitwhen (ES_Check(t,g))
          set target = GroupPickRandomUnit(g)
          set x2 = GetUnitX(target) 
          set y2 = GetUnitY(target)
          call SetUnitPosition(u,x2,y2)
          call SetUnitAnimation(u,&quot;attack&quot;) 
          call SetUnitFacingTimed(u,bj_RADTODEG * Atan2(y2 - y, x2 - x),0.01)
          call UnitDamageTarget(u,target,ES_DamageDealt(), true, false, ATTACK_TYPE_CHAOS,DAMAGE_TYPE_UNIVERSAL,WEAPON_TYPE_METAL_MEDIUM_SLICE)
          call DestroyEffect(AddSpecialEffectTarget(&quot;Objects\\Spawnmodels\\Undead\\UndeadBlood\\UndeadBloodNecromancer.mdl&quot;,target,&quot;chest&quot;))
          call DestroyEffect(AddSpecialEffectTarget(&quot;Abilities\\Spells\\Orc\\MirrorImage\\MirrorImageCaster.mdl&quot;,u,&quot;origin&quot;))
          call GroupClear(g)
          call TriggerSleepAction(1.06-(0.35*level))             
          call GroupEnumUnitsInRange(g,x,y,500*level,b)
            loop                
                set first = FirstOfGroup(g)
              exitwhen (first == null)
                if (IsUnitInGroup(first,g2) == false) then
                set i = i+1
                call SetUnitMoveSpeed(first,100)
                set e<i> = AddSpecialEffectTarget(&quot;Abilities\\Spells\\Orc\\StasisTrap\\StasisTotemTarget.mdl&quot;,first,&quot;head&quot;)
                endif
                call GroupRemoveUnit(g,first)
            endloop
          call GroupEnumUnitsInRange(g,x,y,500*level,b)
          call GroupEnumUnitsInRange(g2,x,y,500*level,b)
      endloop
    call SetUnitPathing(u,true)
    call SetUnitInvulnerable(u,false)
    call PauseUnit(u,false)
      loop        
        set first = FirstOfGroup(g2)
        exitwhen (first == null)
          call SetUnitMoveSpeed(first,GetUnitDefaultMoveSpeed(first))
          call GroupRemoveUnit(g2,first)
      endloop 
      loop
        exitwhen (i == 0)
          call DestroyEffect(e<i>)
          set e<i> = null
          set i = i-1
      endloop 
    call SetUnitVertexColor(u,255,255,255,255)
    call SetUnitTimeScale(u,1)
    call DestroyGroup(g)
    call DestroyGroup(g2)
    call DestroyBoolExpr(b)
    call DestroyTimer(t)
    set u = null
    set b = null
    set t = null
    set g = null
    set g2 = null
    set target = null
    set first = null
endfunction

//===========================================================================
function InitTrig_EliteSpark takes nothing returns nothing
    set gg_trg_EliteSpark = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ(gg_trg_EliteSpark,EVENT_PLAYER_UNIT_SPELL_EFFECT)
    call TriggerAddCondition(gg_trg_EliteSpark, Condition(function ES_Conditions))
    call TriggerAddAction(gg_trg_EliteSpark, function ES_Actions)
endfunction</i></i></i></i>



it was kinda hard to catch a screenshot of it as being in the speed theme so i don't think u can get anything from the screenshot but u should try and check the spell.





Enjoy~~ :p
 

Attachments

  • [Spell]Elite Spark.w3x
    28.7 KB · Views: 534

Sim

Forum Administrator
Staff member
Reaction score
534
You need to add implementation instructions.

Nice spell!

Change the names of your functions. "Check" could be in conflict with another function with this name in one's map.

Add a prefix, such as "ES_functionname"
 

Doom-Angel

Jass User (Just started using NewGen)
Reaction score
167
>You need to add implementation instructions.
care to give an example?

>Nice spell!
ty :D

>Change the names of your functions. "Check" could be in conflict with another function with this name in one's map.

k i will do it later on
 

Sim

Forum Administrator
Staff member
Reaction score
534
> care to give an example?

Ok:

"To import this spell:
- Copy the dummy unit "Dummy" in your map.
- Copy the spell "Elite Spark" in your map.
- Copy the dummy spell "namewhatever" in your map.
- Copy this trigger into your map.
- Don't forget to change the raw codes!
- Change the constant functions below if you wish to change how the spell operates a bit."
 

Doom-Angel

Jass User (Just started using NewGen)
Reaction score
167
k thx i got it.
i will edit it as well later on

no more comments except Daxtreme? :(
 

Squll2

je'ne sais pas
Reaction score
76
its good :p

your first JASS spell?

Edit: i have no comment really on the code.. i understand what it does but im yet to master JASS so i couldnt tell you if it wasnt efficent or not but everything looks good. mabye a tiny bit more SFX.. but thats just me
 

Demi666

New Member
Reaction score
127
imba:p in never stopps good spell

7/10 couse it didnt have so much eyecandy and was like a eternal omnislash
 

Zakyath

Member
Reaction score
239
Whoa, it's imba, not quite original, and not so hard... still, could be worse. A lot worse. 5/10
 

waaaks!

Zinctified
Reaction score
255
yeah its a bit omnislash thing! but still nice
so that people can implement 3 kinds of omnislash, first the original, second the non target omnislash, and third this spell :D
so if anybody could submit a spell similar to omnislash again, then could anyone kindly combine all the submitted omnislashes to a spellpack?
like [Spellpack] Omnislash spells rofl!

OFFTOPIC:
just wondering
why does Daxtreme always says 'nice spells' for spells made by spell makers?
for inspiration?
did Dax says 'sucky spell' on a spell lately?
"Evil laugh!"
no offense Dax just wonderin'
:D
 

Doom-Angel

Jass User (Just started using NewGen)
Reaction score
167
well u can call it omni slash but i did not base it off it (i didn't knew what omnislash does be4 people told me it's simliar)
actually this spell is kinda easy to make since i made it a long time ago when i was noobier but in GUI so it wasn't MUI so i changed it to JASS and i added it as a spell here.
 

Sim

Forum Administrator
Staff member
Reaction score
534
I like when users submit spells.

I test them and almost always like them no matter what :D

They need to be ready for approval though. Doesn't mean that I like a spell that it is ready for approval!

Sometimes a spell could never be approved, simply because it's just not original/good enough.

-----------------

Reduce the maximum duration of your spell, too. 15 seconds maybe?
 

waaaks!

Zinctified
Reaction score
255
"Daxtreme the spell king lover" no offense just joking

i always want to test spells for leaks and glitches but i dont have wc3 in this pc
i really want to but i cant....:(
if this pc has wc3 then i can help everyday and any questions i find
all the answeres ive answered lately is based on my experience, thats why sometimes i get my answers wrong
 

Doom-Angel

Jass User (Just started using NewGen)
Reaction score
167
k i fixed all things:
1) changed function names
2) made it user friends and added implementation instructions
3) reduced maximum duration as suggested to 20 second (i know u wanted 15 but i feel better with 20 :D)

so tell me if anything is missing in order to move it
 

~GaLs~

† Ғσſ ŧħə ѕαĸε Φƒ ~Ğ䣚~ †
Reaction score
180
works fine for me...+rep
_____________________________________________________________
I really loves spell make by jass...

because i duno how write jass :p
 

Sim

Forum Administrator
Staff member
Reaction score
534
Is it me or... you are ordering the units (the murlocs) to move to a random point every time the blademaster hits? There's a difference between not letting the enemy escape and not enabling them to act at all.

You need also to add a buff to the slowed units.
 

Doom-Angel

Jass User (Just started using NewGen)
Reaction score
167
well yea i thought it would be cool to make it look like they are trying to escape but they are unable to escape since the speed of unit won't letting them escape also what buff do u suggest adding the unit? (question mark mabye to show confusion?)
 

Sim

Forum Administrator
Staff member
Reaction score
534
Dazzling Sparks or something (equivalent to slow)

Remove that move order, a 20-second stun is way overpowered.
 

PurgeandFire

zxcvmkgdfg
Reaction score
509
Looks good, good job and +REP!

If this hasn't been mentioned before, replace the TSA (TriggerSleepAction) with PolledWait... I didn't read the whole code, I just skimmed it. :D
 

Doom-Angel

Jass User (Just started using NewGen)
Reaction score
167
-added the effect
-changed to 15 seconds
-changed a bit the trigger (looks a bit different but does the same)

and for Purge:
i did had polled wait but Purogasm told me i should change to TSA since that my values are so low that TSA will have better effect

fixed everything spell is ready to be added
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top