• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

Arcane Spellpack By colourcloud

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
  • Like
Reactions: Archangel678
This is my first site upload so take it easy ^^

map details: When you load the map, all the background will be green due to unknown reason xD and the spells details in game havnt been edited

Spells
Arcane circle begin
  • StompBegin
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to War Stomp
    • Actions
      • -------- Set the Caster --------
      • Set StompCast = (Triggering unit)
      • -------- Set the Caster's position --------
      • Set SP = (Position of StompCast)
      • -------- Dummy unit, so its MUI. --------
      • Unit - Create 1 Dummy (Level 1) for (Triggering player) at SP facing Default building facing degrees
      • -------- Set it to a variable so its more efficient. --------
      • Set StompTarget = (Last created unit)
      • -------- This is more efficient than using (Key of (Unit) --------
      • Custom script: set udg_Handle_Stomp = GetHandleId(udg_StompTarget)
      • -------- Save Values --------
      • Hashtable - Save (Facing of StompCast) as 1 of Handle_Stomp in StompHash
      • -------- Damage --------
      • Hashtable - Save ((Real((Level of War Stomp for StompCast))) x 12.50) as 2 of Handle_Stomp in StompHash
      • -------- Starting number of loops. --------
      • Hashtable - Save 0 as 3 of Handle_Stomp in StompHash
      • -------- Save the caster so it inflicts the damage and not the dummy unit --------
      • Hashtable - Save Handle OfStompCast as 4 of Handle_Stomp in StompHash
      • -------- Turn on the loop. --------
      • Set StompTrig = (StompTrig + 1)
      • Trigger - Turn on StompLoop <gen>
      • -------- Add the dummy to the unit group. --------
      • Unit Group - Add StompTarget to StompGroup
      • -------- Clear leaks. --------
      • Custom script: call RemoveLocation(udg_SP)
Damage: x12.5 DPS (damage per second) bases on level of ability

Arcane Circle Loop
  • StompLoop
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in StompGroup and do (Actions)
        • Loop - Actions
          • -------- Set the picked unit -> More efficient than using (Picked Unit) multiple times. --------
          • Set StompCast = (Picked unit)
          • -------- You have to set one point, then a point offset of that point, and the remove them both. Else it leaks. --------
          • Set SP = (Position of StompCast)
          • -------- This is more efficient than using (Key of (Unit) --------
          • Custom script: set udg_Handle_Stomp = GetHandleId(udg_StompCast)
          • -------- Load values --------
          • -------- Position of this ThunderClap --------
          • Set StompReal1 = (Load 1 of Handle_Stomp from StompHash)
          • -------- Damage --------
          • Set StompReal2 = (Load 2 of Handle_Stomp from StompHash)
          • -------- Number of loops left --------
          • Set StompInteger = (Load 3 of Handle_Stomp from StompHash)
          • -------- The original caster so it inflicts the damage and not the dummy unit --------
          • Set StompTarget = (Load 4 of Handle_Stomp in StompHash)
          • -------- You have to set one point, then a point offset of that point, and the remove them both. Else it leaks. --------
          • Set SP2 = (SP offset by 400.00 towards StompReal1 degrees)
          • -------- Your Special Effect (SFX), make sure you destroy 'em. --------
          • Special Effect - Create a special effect at SP2 using Units\NightElf\Wisp\WispExplode.mdl
          • Special Effect - Destroy (Last created special effect)
          • -------- Now you increase and save all values that you want to save/increase. --------
          • Set StompReal1 = (StompReal1 + 8.00)
          • Set StompInteger = (StompInteger + 1)
          • Hashtable - Save StompReal1 as 1 of Handle_Stomp in StompHash
          • Hashtable - Save StompInteger as 3 of Handle_Stomp in StompHash
          • -------- set bj_wantDestroyGroup = true is how you avoid Unit Group leaks. --------
          • Custom script: set bj_wantDestroyGroup = true
          • Unit Group - Pick every unit in (Units within 250.00 of SP2 matching ((((Matching unit) is A flying unit) Equal to False) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) belongs to an ally of (Owner of StompCast)) Equal to False) and ((Owner of (Matching unit)) Not eq and do (Actions)
            • Loop - Actions
              • -------- Damage --------
              • Unit - Cause StompTarget to damage (Picked unit), dealing StompReal2 damage of attack type Spells and damage type Normal
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • StompInteger Greater than or equal to 45
            • Then - Actions
              • Unit Group - Remove StompCast from StompGroup
              • -------- Kill dummy unit --------
              • Unit - Add a 0.01 second Generic expiration timer to StompCast
              • Unit - Make StompCast Explode on death
              • -------- Turn off this trigger --------
              • Set StompTrig = (StompTrig - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • StompTrig Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
              • -------- Clear all hashtables. --------
              • Hashtable - Clear all child hashtables of child Handle_Stomp in StompHash
            • Else - Actions
          • -------- Clear leaks. --------
          • Custom script: call RemoveLocation(udg_SP)
          • Custom script: call RemoveLocation(udg_SP2)

Keywords:
Arcane, spellpack, colourcloud, by
Contents

Arcane Spellpack By Colourcloud (Map)

Reviews
12th Dec 2015 IcemanBo: For long time as NeedsFix. Rejected. 08:40, 1st Jun 2011 Maker: You should separate the visibility actions from the hashtable creation trigger since they're not part of the spell. You don't have to use custom script for...

Moderator

M

Moderator

12th Dec 2015
IcemanBo: For long time as NeedsFix. Rejected.

08:40, 1st Jun 2011
Maker:
You should separate the visibility actions from the hashtable creation trigger since they're not part of the spell.
You don't have to use custom script for getting the handle. I'd prefer the GUI way since the spell is done with GUI. But you can leave it as it is.
For Powerslash you could use the handle integer also.
You can abuse Powerslash if you hit stop immediately after casting it, no mana cost or cooldown. You might have to change the event to Starts the effect...
You could store the ability level into hashtable and load it when dealing the damage.
You could use triggering unit instead of casting unit.
Instead of having several values in the or condition, you could have a real value that runs from 0.36 to 0 and check whether it is < 0. Or use an integer for even faster performance.
Leaks a region:
  • Set Temp_Loc_2 = (Random point in (Region centered at Temp_Loc_1 with size (320.00, 320.00)))
The originality is a bit lacking, Powerslash is basically Omnislash and we have seen many of those. The Stomp is just a looping circle. The Stomp is triggered well.
 
Level 10
Joined
Apr 25, 2009
Messages
296
Well, atleast he gave credits ^^

I'd suggest improving the description and telling us what the spell does. Also, when using [HIDDEN] tags, you must enter text, like [HIDDEN="Spell Description"][/HIDDEN]

===============================================================

You should merge the two loops, as its fewer triggers running at the same time, and it would remove the need for this:

  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • (Powerslash_Knockback_Group is empty) Equal to True
    • Then - Actions
      • Trigger - Turn off Powerslash Knockback <gen>
    • Else - Actions
=========================================================

  • Set Temp_Loc_2 = (Random point in (Region centered at Temp_Loc_1 with size (320.00, 320.00)))
  • //
  • //
  • //Change that to:
  • //
  • //Set TempRegion = (Region centered at Temp_Loc_1 with size (320.00, 320.00))
  • //Set Temp_Loc_2 = (Random point in (TempRegion))
  • //
  • //
  • Custom script: call RemoveRect(udg_TempRegion)
  • Custom script: call RemoveLocation(udg_Temp_Loc_2)
====================================================

I personally don't like using (Key ()), but I guess you can because its GUI.

====================================================

  • Untitled Trigger 001
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set Powerslahs_Hash = (Last created hashtable)
      • Hashtable - Create a hashtable
I'd suggest changing the name or merging it with the other initialization.

====================================================

  • Special Effect - Destroy (Load (Key effect_1) of (Key (Picked unit)) in Powerslahs_Hash)
Instead of using (Key (Picked unit)) I'd suggest using the variable...
 
Top