Spell Pentagram

Grymlax

Probably not around
Reaction score
138
Pentagram
1429865498_d8ba117493_m.jpg


Jass: I wish
Mui: not even close
Gui: Yupp
Leakless: Hopefully


Here it is my first trigger enhanced spell.

Tooltip:
Pentagram
Creates a Pentagram that damages and freezes 5 enemies. each level increases the size of the pentagram aswell as the damage done

1429978610_e570431ea6.jpg


Implementation Instructions!
1. First start by opening your Import manager (F12), there you export both images to your computer. then you import them into your other map. make sure you use the same custom path as my icons!

2. then you open your Object Editor (F6) there you create a new custom spell based of blizzard. change the damage done to 0 and remove all animations/buffs/effects. change the name/tooltip/icons to match the pentagram. then after that you change the area of effect this will change the size of the circle that you see before you cast the spell so make sure it's the same size as in your triggers. Compare your spell with my to see if there is any fields i forgot to tell u to alter.

3. Open your Trigger Editor (F4) then first open the variables (CTRL+B) and create the same variables that i got that has the name Pent infront of it.

4. go back to the Trigger Editor (F4) and create the same triggers as the ones that i got. the last trigger (Channel Animation) is only to give my hero a channel animation. if u use another modelfile u should either remove it or alter it to fit your map.

5. play and make sure the spell is working.

6. have fun!

Trigger1:
Casting

Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Pentagram
Actions
Set Pentcaster = (Triggering unit)
Set PentCirclepoint = (Target point of ability being cast)
Set Pentvictims = (Units within (250.00 + (((Real((Level of Pentagram for Pentcaster))) - 1.00) x 50.00)) of PentCirclepoint matching ((((Owner of (Matching unit)) is an enemy of (Owner of (Triggering unit))) Equal to True) and ((((Matching unit) is A structure) Not equal to True and (((Matching unit) is alive) Equal to True)
Set Pentvictim[1] = (Random unit from Pentvictims)
Unit Group - Remove Pentvictim[1] from Pentvictims
Set Pentvictim[2] = (Random unit from Pentvictims)
Unit Group - Remove Pentvictim[2] from Pentvictims
Set Pentvictim[3] = (Random unit from Pentvictims)
Unit Group - Remove Pentvictim[3] from Pentvictims
Set Pentvictim[4] = (Random unit from Pentvictims)
Unit Group - Remove Pentvictim[4] from Pentvictims
Set Pentvictim[5] = (Random unit from Pentvictims)
Unit Group - Remove Pentvictim[5] from Pentvictims
Set Pentpoint[1] = (PentCirclepoint offset by (250.00 + (((Real((Level of Pentagram for Pentcaster))) - 1.00) x 50.00)) towards 288.00 degrees)
Set Pentpoint[2] = (PentCirclepoint offset by (250.00 + (((Real((Level of Pentagram for Pentcaster))) - 1.00) x 50.00)) towards 0.00 degrees)
Set Pentpoint[3] = (PentCirclepoint offset by (250.00 + (((Real((Level of Pentagram for Pentcaster))) - 1.00) x 50.00)) towards 72.00 degrees)
Set Pentpoint[4] = (PentCirclepoint offset by (250.00 + (((Real((Level of Pentagram for Pentcaster))) - 1.00) x 50.00)) towards 144.00 degrees)
Set Pentpoint[5] = (PentCirclepoint offset by (250.00 + (((Real((Level of Pentagram for Pentcaster))) - 1.00) x 50.00)) towards 216.00 degrees)
Lightning - Create a Drain Mana lightning effect from source Pentpoint[1] to target Pentpoint[2]
Set Pentlightning[1] = (Last created lightning effect)
Lightning - Create a Drain Mana lightning effect from source Pentpoint[2] to target Pentpoint[3]
Set Pentlightning[2] = (Last created lightning effect)
Lightning - Create a Drain Mana lightning effect from source Pentpoint[3] to target Pentpoint[4]
Set Pentlightning[3] = (Last created lightning effect)
Lightning - Create a Drain Mana lightning effect from source Pentpoint[4] to target Pentpoint[5]
Set Pentlightning[4] = (Last created lightning effect)
Lightning - Create a Drain Mana lightning effect from source Pentpoint[5] to target Pentpoint[1]
Set Pentlightning[5] = (Last created lightning effect)
Lightning - Create a Drain Mana lightning effect from source Pentpoint[1] to target Pentpoint[4]
Set Pentlightning[6] = (Last created lightning effect)
Lightning - Create a Drain Mana lightning effect from source Pentpoint[4] to target Pentpoint[2]
Set Pentlightning[7] = (Last created lightning effect)
Lightning - Create a Drain Mana lightning effect from source Pentpoint[2] to target Pentpoint[5]
Set Pentlightning[8] = (Last created lightning effect)
Lightning - Create a Drain Mana lightning effect from source Pentpoint[5] to target Pentpoint[3]
Set Pentlightning[9] = (Last created lightning effect)
Lightning - Create a Drain Mana lightning effect from source Pentpoint[3] to target Pentpoint[1]
Set Pentlightning[10] = (Last created lightning effect)
For each (Integer A) from 1 to 5, do (Actions)
Loop - Actions
Unit - Pause Pentvictim[(Integer A)]
Unit - Move Pentvictim[(Integer A)] instantly to Pentpoint[(Integer A)]
Animation - Change Pentvictim[(Integer A)]'s vertex coloring to (0.00%, 0.00%, 0.00%) with 0.00% transparency
Trigger - Turn on Pentagram damage <gen>
Trigger - Turn on Channel Animation <gen>
Custom script: call DestroyGroup(udg_Pentvictims)
Trigger2:
Pentagram damage

Events
Time - Every 0.50 seconds of game time
Conditions
Actions
For each (Integer A) from 1 to 5, do (Actions)
Loop - Actions
Unit - Cause Pentcaster to damage Pentvictim[(Integer A)], dealing ((Real((Level of Pentagram for Pentcaster))) x 10.00) damage of attack type Spells and damage type Normal
Trigger3:
Stop Casting

Events
Unit - A unit Stops casting an ability
Conditions
(Ability being cast) Equal to Pentagram
Actions
For each (Integer A) from 1 to 10, do (Actions)
Loop - Actions
Lightning - Destroy Pentlightning[(Integer A)]
For each (Integer B) from 1 to 5, do (Actions)
Loop - Actions
Unit - Unpause Pentvictim[(Integer B)]
Animation - Change Pentvictim[(Integer B)]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
Set Pentvictim[(Integer B)] = No unit
Trigger - Turn off Pentagram damage <gen>
Trigger - Turn off Channel Animation <gen>
Custom script: call RemoveLocation (udg_PentCirclepoint)
Custom script: call RemoveLocation (udg_Pentpoint[1])
Custom script: call RemoveLocation (udg_Pentpoint[2])
Custom script: call RemoveLocation (udg_Pentpoint[3])
Custom script: call RemoveLocation (udg_Pentpoint[4])
Custom script: call RemoveLocation (udg_Pentpoint[5])

Trigger4: (This Trigger is only necessary if your hero doesn't have a channel animation)
Channel Animation

Events
Time - Every 0.06 seconds of game time
Conditions
Actions
Animation - Play Pentcaster's Stand Work Gold animation, using only Rare animations


So here it is. Please point out all mistakes I've done with this spell so i can correct them.
 

Attachments

  • PentagrambyGrymlaxV1.03.w3x
    56.1 KB · Views: 523

Tinki3

Special Member
Reaction score
418
Awesome, and for first time ;).

Few things to point out:

- The "Pentvictims" group shouldn't use "Player 1 Red" as reference - what if
player 2/3/4/5... uses the spell? You also need to filter non-structure units,
and units that are alive.

Like so:
Code:
Set Pentvictims = (Units within (250.00 + (((Real((Level of Pentagram  for Pentcaster))) - 1.00) x 50.00)) of PentCirclepoint matching ((((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True) and ((((Matching unit) is A structure) Not equal to True and (((Matching unit Is Alive) Equal to True))

- The caster looked "weird" when just standing there channeling the spell.
It would be good if you added some animation to be played during the channeling time.
You could do this via the 0.5 sec periodic trigger.

- Global variables do not need to be nulled. As in, Set Var = No Unit is pointless. Though, "Pentvictim[#]" is an exception in this case (remove the nullification line for the caster).

- Finally, some implementation instructions would be good to include as a guide for other users.
 

Tinki3

Special Member
Reaction score
418
Ok good.

The only thing that's not fixed is in the unit group "Pentvictims" your filtering
units that belong to enemies of "Player 1 (Red)". Like I've already said, if a different
colored player wanted to use the spell, it would not work properly for them.

Simply change P1R to "Owner of (Triggering unit)" - that'll take care of any
player that wants to cast Pentagram.

Also, you should edit your first post and replace the map attachment in that
one with the updated map, instead of creating a whole new post.

People would get annoyed if they had to search the whole thread just to find
the map :p
 

Jolly chap*

New Member
Reaction score
34
This is a good-looking spell. I like it! :D +rep

Oh darn, I can't +rep. It says "must spread reputation around before giving it to Grymlax again".
 

FireBladesX

Eating my wings!
Reaction score
123
While we're on satanic icons, does anyone know how to get a pentagram using a integer function (or not, if you don't need it, I suppose...) and special effects?

In other words, without using lightning affects and dummy units?
 
General chit-chat
Help Users

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top