• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Hammer of Storm v 1.3

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
I have long agonized over this spell but still made it =)

Description and characterization of a spell:
Hammer of Storm
Hammer which harms the objectives and others pushing their opponents.
Level 1 - 100 target damage, 50 damage surrounding enemies.
Level 2 - 200 target damage, 100 damage surrounding enemies.
Level 3 - 100 target damage, 150 damage surrounding enemies.
Level 4 - 400 target damage, 200 damage surrounding enemies.

I think I try fix bugs and leaks.

Keywords:
Hammer, Storm, Lightning, Zeus, Lord of Olimpia.
Contents

Hammer of Storm (Map)

Reviews
17:11, 16th Jun 2010 Hanky: There are leaks and it's not even MUI or MPI. Before you submit anything please read the spell submission rules.

Moderator

M

Moderator

17:11, 16th Jun 2010
Hanky:
There are leaks and it's not even MUI or MPI. Before you submit anything please read the spell submission rules.
 
Level 18
Joined
Feb 28, 2009
Messages
1,970
  • Unit Group - Pick every unit in (Units within 300.00 of (Position of HoS_Unit[2])) and do (Actions)
Leaks unit group and location (Position of HoS_Unit[2]))
  • Unit - Move (Picked unit) instantly to ((Position of (Picked unit)) offset by -3.00 towards (Facing of (Picked unit)) degrees)
Location
  • Lightning - Create a Chain Lighting - Main lightning effect from source (Position of HoS_Unit2[HoS_Number[3]]) to target (Position of (Picked unit))
Location twice
  • Unit - Make (Picked unit) face (Position of HoS_Unit[2]) over 0.00 seconds
Location

Here you are. I may missed something, but these are enaugh. Also as I said the spell isn`t MUI and the way you damage target is inefficient.
 
Level 4
Joined
Mar 29, 2009
Messages
39
  • Unit Group - Pick every unit in (Units within 300.00 of (Position of HoS_Unit[2])) and do (Actions)
Leaks unit group and location (Position of HoS_Unit[2]))
  • Unit - Move (Picked unit) instantly to ((Position of (Picked unit)) offset by -3.00 towards (Facing of (Picked unit)) degrees)
Location
  • Lightning - Create a Chain Lighting - Main lightning effect from source (Position of HoS_Unit2[HoS_Number[3]]) to target (Position of (Picked unit))
Location twice
  • Unit - Make (Picked unit) face (Position of HoS_Unit[2]) over 0.00 seconds
Location

Here you are. I may missed something, but these are enaugh. Also as I said the spell isn`t MUI and the way you damage target is inefficient.

Thank you, I will correct these mistakes.
Explain to me please: what is MUI?
 
Level 10
Joined
Mar 30, 2009
Messages
255
dont use wait... they are very inefficient and they kill the spell being MUI (every units can cast it at the same time)

also your coding is inefficient:

this:
  • If ((Level of Hammer of Storm for HoS_Unit[1]) Equal to 1) then do (Unit - Cause HoS_Unit[1] to damage (Picked unit), dealing 50.00 damage of attack type Spells and damage type Normal) else do (Do nothing)
  • If ((Level of Hammer of Storm for HoS_Unit[1]) Equal to 2) then do (Unit - Cause HoS_Unit[1] to damage (Picked unit), dealing 100.00 damage of attack type Spells and damage type Normal) else do (Do nothing)
  • If ((Level of Hammer of Storm for HoS_Unit[1]) Equal to 3) then do (Unit - Cause HoS_Unit[1] to damage (Picked unit), dealing 150.00 damage of attack type Spells and damage type Normal) else do (Do nothing)
  • If ((Level of Hammer of Storm for HoS_Unit[1]) Equal to 4) then do (Unit - Cause HoS_Unit[1] to damage (Picked unit), dealing 200.00 damage of attack type Spells and damage type Normal) else do (Do nothing)
sould be like:
  • Unit - Cause HoS_Unit[1] to damage (Picked unit), dealing (50.00 x (Real((Level of Hammer of Storm for HoS_Unit[1])))) damage of attack type Spells and damage type Normal
also, to avoid waits, you should set the whole trigger in the HoS move trigger, making the HoS start trigger only the init Trigger

you can count the time with integer or real variables
  • Events
    • Time - Every 0.02 seconds of game time
  • Conditions
  • Actions
  • Set Count_Real = (Count_Real + 0.01)
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • Count_Real Greater than or equal to 50.00
    • Then - Actions
      • blablabla
    • Else - Actions
      • blablabla
this is an example only

edit:
  • Set HoS_Point[2] = ((Position of (Picked unit)) offset by -3.00 towards (Facing of (Picked unit)) degrees)
position of picked unit leaks

you should place a
  • Custom script: set bj_wantDestroyGroup = true
before
  • Unit Group - Pick every unit in (Units within 300.00 of HoS_Point[1]) and do (Actions)
well i think thats it... remove all the waits and replace them with timers

have fun and good luck :)
 
Last edited:
Level 18
Joined
Feb 28, 2009
Messages
1,970
What can replace
  • Set HoS_Point[2] = ((Position of (Picked unit)) offset by -3.00 towards (Facing of (Picked unit)) degrees)
?????
You must store Position of (Picked unit) to the variable (let`s say it`ll be HoS_Point[100]) and then you can
  • Set HoS_Point[2] = HoS_Point[100] offset by -3.00 towards (Facing of (Picked unit)) degrees)
 
Level 18
Joined
Feb 28, 2009
Messages
1,970
The whole thing must (coz we don`t want the trigger to leak a location) look like this
  • Set HoS_Point[100] = Position of (Picked unit)
  • Set HoS_Point[2] = HoS_Point[100] offset by -3.00 towards (Facing of (Picked unit)) degrees)
  • Custom script: call RemoveLocation(udg_HoS_Point[100])
  • -------- And later... --------
  • Custom script: call RemoveLocation(udg_HoS_Point[2])
 
Level 4
Joined
Mar 29, 2009
Messages
39
The whole thing must (coz we don`t want the trigger to leak a location) look like this
  • Set HoS_Point[100] = Position of (Picked unit)
  • Set HoS_Point[2] = HoS_Point[100] offset by -3.00 towards (Facing of (Picked unit)) degrees)
  • Custom script: call RemoveLocation(udg_HoS_Point[100])
  • -------- And later... --------
  • Custom script: call RemoveLocation(udg_HoS_Point[2])

OK!Thanks!I edit this now.
 
Top