• 🏆 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!

Earth Spell Pack v1.5

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
Hope you all enjoy my spells:Sand Stomp, Sand Quaker and Hyper Knock! Thanks!


Keywords:
earth, spell, pack
Contents

Just another Warcraft III map (Map)

Reviews
15 November 2015 BPower: Rejecting due to the status of this resource being "needs fix" for years. 20:53, 1st Mar 2010 TriggerHappy: HyperKnock is not MUI. Feel free to remove it if you don't feel like making it MUI, then this can probably be...

Moderator

M

Moderator

15 November 2015
BPower: Rejecting due to the status of this resource being "needs fix" for years.

20:53, 1st Mar 2010
TriggerHappy:

HyperKnock is not MUI. Feel free to remove it if you don't feel like making it MUI, then this can probably be approved.
 
Level 15
Joined
Jul 6, 2009
Messages
889
Them theme is Earth I believe?
I like your spells effects, but they are too powerful o_O

18 Shockwaves.... units at the very middle will DIE instantly or what?
Why does Hyper Knock let you target allied units o_O, and only at melee range?

You leak every location used, you should read a memory leak guide to clear them.
 
Level 11
Joined
Jul 2, 2008
Messages
601
I should accept, that this is a good use of special effects. Evenmore, your first two spells are good codded. The only thing I dislike - is your Hyper Knockback. Not because you don't clean any position leak at your Knockback Loop (It leaks about 4 times every 0.04, which means 90.000 leaks per minute, if the spell would be used unstoppably ;) ), but because it even look ugly and unreal. Unfortunately, you are forbidden to use outgame imports, so... What can I say? I won't rate this, just make sure, you know the rules. :)

Remove imports, clean leaks. Then this should be accepted.
 
Level 11
Joined
Jul 2, 2008
Messages
601
Of course I can:

  • Unit - Move HK_Target_Unit instantly to ((Position of HK_TC) offset by ((Distance between (Position of HK_TC) and (Position of HK_Target_Unit)) + 25.00) towards (Angle from (Position of HK_TC) to (Position of HK_Target_Unit)) degrees)
  • Unit - Move HK_TC instantly to ((Position of HK_Target_Unit) offset by ((Distance between (Position of HK_Target_Unit) and (Position of HK_TC)) - 28.00) towards (Angle from (Position of HK_Target_Unit) to (Position of HK_TC)) degrees)
  • Special Effect - Create a special effect at (Position of HK_TC) using Objects\Spawnmodels\Undead\ImpaleTargetDust\ImpaleTargetDust.mdl
  • Destructible - Pick every destructible within 200.00 of (Position of HK_Target_Unit) and do (Destructible - Kill (Picked destructible))
  • Destructible - Pick every destructible within 200.00 of (Position of HK_TC) and do (Destructible - Kill (Picked destructible))
  • Surrounding - Create a 0.50 second timed crater deformation at (Position of HK_Target_Unit) with radius 200.00 and depth 15.00
ALL this stuff leaks at "Position of HK_TC" and "Position of HK_Target_Unit". Also! This thing:

((Distance between (Position of HK_Target_Unit) and (Position of HK_TC)) - 28.00) towards (Angle from (Position of HK_Target_Unit) to (Position of HK_TC)) degrees)

Should be set into variable too! Before usage. So your lines should look like:

  • Set HK_Location1 = Position of HK_TC
  • Set HK_Location2 = Position of HK_Target_Unit
  • Set HK Location3 = ((Distance between HK_Location1 and (HK_Location2 - 28.00) towards (Angle from HK_Location1 to HK_Position2) degrees)
  • Unit - Move instantly and bla-bla-bla to HK_Location3 etc
Got it?

EDIT: That's just a quick example, I could make a mistake. I even didn't write it in WE, just here :)
 
Level 11
Joined
Jul 2, 2008
Messages
601
Since you asked me, I've checked it again. That's well that you finally added an Esc System to your testing map, but I see no reason in switching it off for three seconds. ;)

Let's move to triggers. I started from the hyper knockback. You've fixed all the leaks in the loop, but I found a leak and unefficient codding in the main trigger. Why do you use If/Then/Else in this trigger:

  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • (HK_Target_Unit belongs to an enemy of (Owner of HK_TC)) equal to(==) True
    • Then - Actions
You can set it at the beggining of the spell - there is no limit on the number of conditions!

  • Events
    • Unit - A unit starts an effect of ability
      • Conditions
    • (Ability being cast) equal to (==) Hyper Knock
    • ((Target unit of ability being cast) belongs to an enemy of (Casting Unit)) equal to (==) True
Just to let you know (I didn't check it myself), if it's possible to cast on your own units (I think it does since you have such a condition), then this point will leak, because it's set, but then never destroyed:

  • Set HK_Location = (Position of HK_TC)
You can just make trigger look like this to prevent this leak and don't manipulate with entire conditions:

  • Hyper Knock
    • Events
      • Unit - A unit starts an effect of ability
    • Conditions
      • (Ability being cast) equal to (==) Hyper Knock
    • Actions
      • Set HK_TC = (Triggering unit)
      • Set HK_Target_Unit = (Target unit of ability being cast)
      • Set HK_Location = (Position of HK_TC)
      • Set HK_Owner = (Owner of HK_TC)
      • Set HK_Strength = (Strength of HK_TC (including bonuses))
      • Unit - Create 1 Dummy for HK_Owner at HK_Location facing HK_Location
      • Unit - Add Hyper Knock[Stun] to (Last created unit)
      • Unit - Order (Last created unit) to Mountain King (Alliance) - Storm Bolt HK_Target_Unit
      • Unit - Add a 2.00 second _dunno word_ expiration timer to (Last created unit)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      • -------- Here is it - move it outside the If/Then/Else --------
      • Custom script: call RemoveLocation(udg_HK_Location)
By the holy gods, someone, give me a link to english WE, I'm going crazy of translating all this stuff! ><

Next, Sand Quaker:

  • If ((Level of Sand Quaker for SQ_Unit[1]) equal to (==) 1) then do (Set SQ_Percentages = (Random integer number between 1 and 6)) else do (Do nothing)
And you make this three times?! Gosh, make it like this:

  • Set SQ_Percentages = (Random integer number between 1 and (7 - (Level of Sand Quaker for SQ_Unit[1])))
And again, move all "call RomoveLocation" outside the If/Then/Else or you'll leak two points per unsuccessful cast!

Remove "Do Nothing" action - it's unefficient using this. Don't you think Do Nothing and nothing at all equal? Yes, they do, but this will slow down the work of the map for a nanosecond :D

This is ulseless variable:

  • Set SQ_Owner = (Owner of SQ_Unit[1])
You can easily use (Owner of SQ_Unit[1]) - it doesn't leak. Only player groups do. Players - not. Same for the owner of unit in Sand Stomp trigger.

  • Set SQ_Ability = Sand Quaker[Effects]
Useless variable once again. :)

Seems, that's all from now.

But don't you think yourself, that your Hyper Knockback spell looks ugly? And it won't stop even if the casting unit is stunned... ;(

EDIT: Looks like it's first time when I create such a huge review. :D
 
Top