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

Menag's Spellpack [GUI]

  • Like
Reactions: Coolty44
Well this is my first spell(pack) im uploading.
Atm there are just 2 spells but i will add more.
Comments and critic is welcome.
The spells are completely made by me.

  • HashtableGreenBall
    • Ereignisse
      • Map initialization
    • Bedingungen
    • Aktionen
      • Hashtabelle - Create a hashtable
      • Set GreenBallHashtable = (Last created hashtable)
  • GreenBallCast
    • Ereignisse
      • Einheit - A unit Startet den Effekt einer Fähigkeit
    • Bedingungen
      • (Ability being cast) Gleich GreenBall [Q]
    • Aktionen
      • Set TempUnit = (Triggering unit)
      • Set TempPoint = (Position of TempUnit)
      • Set TempPoint1 = (Target point of ability being cast)
      • -------- ----------------------------------- --------
      • -------- Set Angle --------
      • -------- ----------------------------------- --------
      • Set TempAngle = (Angle from TempPoint to TempPoint1)
      • Custom script: call RemoveLocation(udg_TempPoint1)
      • -------- ----------------------------------- --------
      • -------- Distance per second --------
      • -------- 0.04 is the time in the periodic event from the "MoveTrigger" --------
      • -------- Increase the 400 to have a faster moving ball, decrease it to make the ball slower --------
      • -------- ----------------------------------- --------
      • Set TempDistance = (400.00 x 0.04)
      • -------- ----------------------------------- --------
      • -------- Duration --------
      • -------- Change the Duration to what you want, it says, how long the ball will fly --------
      • -------- ----------------------------------- --------
      • Set TempDuration = ((Real((Level of (Ability being cast) for TempUnit))) x 1.00)
      • -------- ----------------------------------- --------
      • -------- Create DummyUnit --------
      • -------- ----------------------------------- --------
      • Set TempPoint1 = (TempPoint offset by 100.00 towards TempAngle degrees)
      • Einheit - Create 1 GreenBallDummy for (Owner of TempUnit) at TempPoint facing TempAngle degrees
      • Set TempUnit = (Last created unit)
      • Einheit - Add GreenBallDummySpell1 to TempUnit
      • Einheit - Set level of GreenBallDummySpell1 for TempUnit to (Level of (Ability being cast) for (Triggering unit))
      • Einheit - Make TempUnit Unverwundbar
      • Einheit - Set life of TempUnit to 1.00
      • Einheit - Add a TempDuration second Standard expiration timer to TempUnit
      • Einheitengruppe - Add TempUnit to GreenBallGroup
      • -------- ----------------------------------- --------
      • -------- Store Values --------
      • -------- ----------------------------------- --------
      • Hashtabelle - Save TempAngle as 0 of (Key (Last created unit)) in GreenBallHashtable
      • Hashtabelle - Save TempDuration as 1 of (Key (Last created unit)) in GreenBallHashtable
      • Hashtabelle - Save TempDistance as 2 of (Key (Last created unit)) in GreenBallHashtable
      • -------- ----------------------------------- --------
      • -------- run movetrigger --------
      • -------- ----------------------------------- --------
      • Auslöser - Turn on MoveTrigger <gen>
      • -------- ----------------------------------- --------
      • -------- Leaks --------
      • -------- ----------------------------------- --------
      • Custom script: call RemoveLocation(udg_TempPoint)
      • Custom script: call RemoveLocation(udg_TempPoint1)
  • MoveTrigger
    • Ereignisse
      • Zeit - Every 0.04 seconds of game time
    • Bedingungen
    • Aktionen
      • Einheitengruppe - Pick every unit in GreenBallGroup and do (Actions)
        • Schleifen - Aktionen
          • -------- ----------------------------------- --------
          • -------- Sets Values --------
          • -------- ----------------------------------- --------
          • Set TempUnit = (Picked unit)
          • Set TempPoint = (Position of TempUnit)
          • Set TempAngle = (Load 0 of (Key (Picked unit)) from GreenBallHashtable)
          • Set TempDuration = (Load 1 of (Key (Picked unit)) from GreenBallHashtable)
          • Set TempDistance = (Load 2 of (Key (Picked unit)) from GreenBallHashtable)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • 'IF'-Bedingungen
              • TempDuration Größer als 0.00
            • 'THEN'-Aktionen
              • -------- ----------------------------------- --------
              • -------- Moves the unit --------
              • -------- ----------------------------------- --------
              • Set TempPoint1 = (TempPoint offset by TempDistance towards TempAngle degrees)
              • Einheit - Move TempUnit instantly to TempPoint1
              • Hashtabelle - Save (TempDuration - 0.04) as 1 of (Key (Picked unit)) in GreenBallHashtable
              • -------- ----------------------------------- --------
              • -------- Leaks --------
              • -------- ----------------------------------- --------
              • Custom script: call RemoveLocation(udg_TempPoint)
              • Custom script: call RemoveLocation(udg_TempPoint1)
            • 'ELSE'-Aktionen
              • Set TempUnit = (Picked unit)
              • Einheit - Kill TempUnit
              • Einheitengruppe - Remove TempUnit from GreenBallGroup
              • Einheit - Remove TempUnit from the game
              • Hashtabelle - Clear all child hashtables of child (Key (Picked unit)) in GreenBallHashtable
              • -------- ----------------------------------- --------
              • -------- turn off trigger --------
              • -------- ----------------------------------- --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • 'IF'-Bedingungen
                  • (Number of units in GreenBallGroup) Gleich 0
                • 'THEN'-Aktionen
                  • Auslöser - Turn off (This trigger)
                • 'ELSE'-Aktionen
              • -------- ----------------------------------- --------
              • -------- Leaks --------
              • -------- ----------------------------------- --------
              • Custom script: call RemoveLocation(udg_TempPoint)
  • HashtableLightning
    • Ereignisse
      • Map initialization
    • Bedingungen
    • Aktionen
      • Hashtabelle - Create a hashtable
      • Set LightningBallHashtable = (Last created hashtable)
  • LightningBallCast
    • Ereignisse
      • Einheit - A unit Startet den Effekt einer Fähigkeit
    • Bedingungen
      • (Ability being cast) Gleich LightningBall [W]
    • Aktionen
      • -------- ----------------------------------- --------
      • -------- Set Values --------
      • -------- ----------------------------------- --------
      • Set TempUnit = (Triggering unit)
      • Set TempPoint = (Target point of ability being cast)
      • -------- ----------------------------------- --------
      • -------- Duration --------
      • -------- The longer the Spell gets channeled, the more dmg it does --------
      • -------- ----------------------------------- --------
      • Set TempDuration = ((Real((Level of (Ability being cast) for TempUnit))) x 1.00)
      • -------- ----------------------------------- --------
      • -------- Create Dummy Unit --------
      • -------- ----------------------------------- --------
      • Einheit - Create 1 LightningDummy for (Owner of TempUnit) at TempPoint facing 0.00 degrees
      • Set TempUnit = (Last created unit)
      • Einheitengruppe - Add TempUnit to LightningBallGroup
      • -------- ----------------------------------- --------
      • -------- Store Values --------
      • -------- ----------------------------------- --------
      • Set TempUnit = (Triggering unit)
      • Hashtabelle - Save TempDuration as 1 of (Key (Last created unit)) in LightningBallHashtable
      • Hashtabelle - Save (Real((Key (Last created unit)))) as 2 of (Key (Triggering unit)) in LightningBallHashtable
      • Hashtabelle - Save (Player number of (Owner of TempUnit)) as 3 of (Key (Last created unit)) in (Last created hashtable)
      • Hashtabelle - Save (TempDuration + 0.00) as 5 of (Key (Last created unit)) in LightningBallHashtable
      • -------- ----------------------------------- --------
      • -------- run movetrigger --------
      • -------- ----------------------------------- --------
      • Auslöser - Turn on ChannelingTrigger <gen>
      • -------- ----------------------------------- --------
      • -------- Leaks --------
      • -------- ----------------------------------- --------
      • Custom script: call RemoveLocation(udg_TempPoint)
  • ChannelingTrigger
    • Ereignisse
      • Zeit - Every 0.50 seconds of game time
    • Bedingungen
    • Aktionen
      • Einheitengruppe - Pick every unit in LightningBallGroup and do (Actions)
        • Schleifen - Aktionen
          • -------- ----------------------------------- --------
          • -------- Sets Values --------
          • -------- ----------------------------------- --------
          • Set TempUnit = (Picked unit)
          • Set TempDuration = (Load 1 of (Key (Picked unit)) from LightningBallHashtable)
          • Set TempReal = (Load 5 of (Key (Picked unit)) from LightningBallHashtable)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • 'IF'-Bedingungen
              • TempDuration Größer als 0.00
            • 'THEN'-Aktionen
              • -------- ----------------------------------- --------
              • -------- Increases the size of the lightningball --------
              • -------- ----------------------------------- --------
              • Animation - Change TempUnit's size to ((((TempReal - TempDuration) x 150.00) + 100.00)%, (((TempReal - TempDuration) x 150.00) + 100.00)%, (((TempReal - TempDuration) x 150.00) + 100.00)%) of its original size
              • Hashtabelle - Save (TempDuration - 0.50) as 1 of (Key (Picked unit)) in LightningBallHashtable
              • -------- ----------------------------------- --------
              • -------- Increases the dmg which will be dealt, at the moment it is 150 dmg per 0.5 seconds --------
              • -------- ----------------------------------- --------
              • Hashtabelle - Save ((Load 4 of (Key (Picked unit)) from LightningBallHashtable) + 75.00) as 4 of (Key (Picked unit)) in LightningBallHashtable
            • 'ELSE'-Aktionen
              • -------- ----------------------------------- --------
              • -------- Sets Values --------
              • -------- ----------------------------------- --------
              • Set TempInteger = (Load 3 of (Key (Picked unit)) from LightningBallHashtable)
              • Set TempReal = (Load 4 of (Key (Picked unit)) from LightningBallHashtable)
              • Set TempPoint = (Position of TempUnit)
              • -------- ----------------------------------- --------
              • -------- adds all units who will get dmg into a unitgroup --------
              • -------- change the 600 to increase/decrease the radius of the aoe --------
              • -------- ----------------------------------- --------
              • Set TempGroup = (Units within 600.00 of TempPoint matching ((((Owner of TempUnit) is an enemy of (Owner of (Matching unit))) Gleich True) and (((Matching unit) is alive) Gleich True)))
              • Einheitengruppe - Remove TempUnit from LightningBallGroup
              • Einheit - Remove TempUnit from the game
              • -------- ----------------------------------- --------
              • -------- Leaks --------
              • -------- ----------------------------------- --------
              • Custom script: call RemoveLocation(udg_TempPoint)
              • -------- ----------------------------------- --------
              • -------- runs the dmgtrigger --------
              • -------- ----------------------------------- --------
              • Auslöser - Run DmgTrigger <gen> (checking conditions)
              • -------- ----------------------------------- --------
              • -------- Removes some things --------
              • -------- ----------------------------------- --------
              • Hashtabelle - Clear all child hashtables of child (Key (Picked unit)) in LightningBallHashtable
              • -------- ----------------------------------- --------
              • -------- turn off trigger --------
              • -------- ----------------------------------- --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • 'IF'-Bedingungen
                  • (Number of units in LightningBallGroup) Gleich 0
                • 'THEN'-Aktionen
                  • Auslöser - Turn off (This trigger)
                • 'ELSE'-Aktionen
  • DmgTrigger
    • Ereignisse
    • Bedingungen
    • Aktionen
      • Einheitengruppe - Pick every unit in TempGroup and do (Actions)
        • Schleifen - Aktionen
          • Set TempPoint = (Position of (Picked unit))
          • Einheit - Cause TempUnit to damage (Picked unit), dealing TempReal damage of attack type Zaubersprüche and damage type Magie
          • Spezialeffekt - Create a special effect at TempPoint using Abilities\Weapons\Bolt\BoltImpact.mdl
          • Spezialeffekt - Destroy (Last created special effect)
          • -------- ----------------------------------- --------
          • -------- Leaks --------
          • -------- ----------------------------------- --------
          • Custom script: call RemoveLocation(udg_TempPoint)
      • -------- ----------------------------------- --------
      • -------- Leaks --------
      • -------- ----------------------------------- --------
      • Custom script: call DestroyGroup(udg_TempGroup)
  • HashtableRush
    • Ereignisse
      • Map initialization
    • Bedingungen
    • Aktionen
      • Hashtabelle - Create a hashtable
      • Set RushHashtable = (Last created hashtable)
  • RushCast
    • Ereignisse
      • Einheit - A unit Startet den Effekt einer Fähigkeit
    • Bedingungen
      • (Ability being cast) Gleich Rush [E]
    • Aktionen
      • -------- ----------------------------------- --------
      • -------- Set some values --------
      • -------- ----------------------------------- --------
      • Set TempUnit = (Triggering unit)
      • Set TempPoint = (Target point of ability being cast)
      • Set TempReal1 = (X of TempPoint)
      • Set TempReal2 = (Y of TempPoint)
      • Set TempDuration = 1.20
      • Set TempInteger = (Level of (Ability being cast) for TempUnit)
      • -------- ----------------------------------- --------
      • -------- store values --------
      • -------- ----------------------------------- --------
      • Hashtabelle - Save TempReal1 as 0 of (Key (Triggering unit)) in RushHashtable
      • Hashtabelle - Save TempReal2 as 1 of (Key (Triggering unit)) in RushHashtable
      • Hashtabelle - Save TempInteger as 2 of (Key (Triggering unit)) in RushHashtable
      • Hashtabelle - Save TempDuration as 7 of (Key (Triggering unit)) in RushHashtable
      • Einheitengruppe - Add (Triggering unit) to RushGroup
      • -------- ----------------------------------- --------
      • -------- run movetrigger --------
      • -------- ----------------------------------- --------
      • Auslöser - Turn on RushMove <gen>
      • -------- ----------------------------------- --------
      • -------- leaks --------
      • -------- ----------------------------------- --------
      • Custom script: call RemoveLocation(udg_TempPoint)
  • RushMove
    • Ereignisse
      • Zeit - Every 0.04 seconds of game time
    • Bedingungen
    • Aktionen
      • Einheitengruppe - Pick every unit in RushGroup and do (Actions)
        • Schleifen - Aktionen
          • -------- ----------------------------------- --------
          • -------- Sets Values --------
          • -------- ----------------------------------- --------
          • Set TempUnit = (Picked unit)
          • Set TempDuration = (Load 7 of (Key (Picked unit)) from RushHashtable)
          • Set TempPoint1 = (Position of TempUnit)
          • Set TempReal1 = (Load 0 of (Key (Picked unit)) from RushHashtable)
          • Set TempReal2 = (Load 1 of (Key (Picked unit)) from RushHashtable)
          • Set TempPoint = (Point(TempReal1, TempReal2))
          • Set TempAngle = (Angle from TempPoint1 to TempPoint)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • 'IF'-Bedingungen
              • Or - Any (Conditions) are true
                • Bedingungen
                  • (Distance between TempPoint and TempPoint1) Kleiner als 50.00
                  • TempDuration Gleich 0.00
            • 'THEN'-Aktionen
              • Einheitengruppe - Remove TempUnit from RushGroup
              • Hashtabelle - Clear all child hashtables of child (Key (Picked unit)) in RushHashtable
              • -------- ----------------------------------- --------
              • -------- turn off trigger --------
              • -------- ----------------------------------- --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • 'IF'-Bedingungen
                  • (Number of units in RushGroup) Gleich 0
                • 'THEN'-Aktionen
                  • Auslöser - Turn off (This trigger)
                • 'ELSE'-Aktionen
            • 'ELSE'-Aktionen
              • Custom script: call RemoveLocation(udg_TempPoint)
              • Set TempPoint = (TempPoint1 offset by 20.00 towards TempAngle degrees)
              • Einheit - Move TempUnit instantly to TempPoint, facing TempAngle degrees
              • -------- ----------------------------------- --------
              • -------- leaks --------
              • -------- ----------------------------------- --------
              • Custom script: call RemoveLocation(udg_TempPoint)
              • Hashtabelle - Save (TempDuration - 0.04) as 7 of (Key (Picked unit)) in RushHashtable
              • Spezialeffekt - Create a special effect at TempPoint1 using Objects\Spawnmodels\Undead\ImpaleTargetDust\ImpaleTargetDust.mdl
              • Spezialeffekt - Destroy (Last created special effect)
              • Custom script: call RemoveLocation(udg_TempPoint1)
              • Set TempPoint1 = (Position of TempUnit)
              • Set RushSetValuesGroup = (Units within 150.00 of TempPoint1 matching ((((Owner of TempUnit) is an enemy of (Owner of (Matching unit))) Gleich True) and (((Matching unit) is alive) Gleich True)))
              • Set TempInteger = (Load 2 of (Key (Picked unit)) from RushHashtable)
              • Auslöser - Run KnockbackTriggerSetValues <gen> (ignoring conditions)
  • KnockbackTriggerSetValues
    • Ereignisse
    • Bedingungen
    • Aktionen
      • Einheitengruppe - Pick every unit in RushSetValuesGroup and do (Actions)
        • Schleifen - Aktionen
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • 'IF'-Bedingungen
              • ((Picked unit) has buff Betäubt (Pause)) Gleich True
            • 'THEN'-Aktionen
            • 'ELSE'-Aktionen
              • Einheit - Create 1 Dummy for (Owner of TempUnit) at TempPoint1 facing 0.00 degrees
              • Einheit - Add RushDummySpell1 to (Last created unit)
              • Einheit - Add RushDummySpell2 to (Last created unit)
              • Einheit - Set level of RushDummySpell2 for (Last created unit) to TempInteger
              • Einheit - Order (Last created unit) to Menschen-Bergkönig - 'Sturmschlag' (Picked unit)
              • Einheit - Order (Last created unit) to Nachtelf-Klauen-Druide - 'Feenfeuer' (Picked unit)
              • Einheit - Add a 2.00 second Standard expiration timer to (Last created unit)
              • -------- ----------------------------------- --------
              • -------- Change this to increase/decrease the dmg --------
              • -------- ----------------------------------- --------
              • Einheit - Cause TempUnit to damage (Picked unit), dealing ((Real(TempInteger)) x 25.00) damage of attack type Zaubersprüche and damage type Normal
          • Set TempUnit = (Picked unit)
          • Set TempPoint = (Position of TempUnit)
          • Set TempAngle = (Angle from TempPoint1 to TempPoint)
          • Set TempDuration = (0.25 x (Real(TempInteger)))
          • Set TempDistance = 6.00
          • Hashtabelle - Save TempAngle as 3 of (Key (Picked unit)) in RushHashtable
          • Hashtabelle - Save TempDuration as 4 of (Key (Picked unit)) in RushHashtable
          • Hashtabelle - Save TempDistance as 5 of (Key (Picked unit)) in RushHashtable
          • Einheit - Pause ein TempUnit
          • Einheitengruppe - Add TempUnit to RushKnockbackGroup
          • -------- ----------------------------------- --------
          • -------- leaks --------
          • -------- ----------------------------------- --------
          • Custom script: call RemoveLocation(udg_TempPoint)
      • -------- ----------------------------------- --------
      • -------- run movetrigger --------
      • -------- ----------------------------------- --------
      • Auslöser - Turn on KnockbackTrigger <gen>
      • -------- ----------------------------------- --------
      • -------- leaks --------
      • -------- ----------------------------------- --------
      • Custom script: call RemoveLocation(udg_TempPoint1)
  • KnockbackTrigger
    • Ereignisse
      • Zeit - Every 0.03 seconds of game time
    • Bedingungen
    • Aktionen
      • Einheitengruppe - Pick every unit in RushKnockbackGroup and do (Actions)
        • Schleifen - Aktionen
          • -------- ----------------------------------- --------
          • -------- Sets Values --------
          • -------- ----------------------------------- --------
          • Set TempUnit = (Picked unit)
          • Set TempPoint = (Position of TempUnit)
          • Set TempAngle = (Load 3 of (Key (Picked unit)) from RushHashtable)
          • Set TempDuration = (Load 4 of (Key (Picked unit)) from RushHashtable)
          • Set TempDistance = (Load 5 of (Key (Picked unit)) from RushHashtable)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • 'IF'-Bedingungen
              • TempDuration Größer als 0.00
            • 'THEN'-Aktionen
              • -------- ----------------------------------- --------
              • -------- Moves the unit --------
              • -------- ----------------------------------- --------
              • Set TempPoint1 = (TempPoint offset by TempDistance towards TempAngle degrees)
              • Einheit - Move TempUnit instantly to TempPoint1
              • Spezialeffekt - Create a special effect at TempPoint1 using Objects\Spawnmodels\Undead\ImpaleTargetDust\ImpaleTargetDust.mdl
              • Hashtabelle - Save (TempDuration - 0.04) as 4 of (Key (Picked unit)) in RushHashtable
              • Spezialeffekt - Destroy (Last created special effect)
              • -------- ----------------------------------- --------
              • -------- leaks --------
              • -------- ----------------------------------- --------
              • Custom script: call RemoveLocation(udg_TempPoint1)
              • Custom script: call RemoveLocation(udg_TempPoint)
            • 'ELSE'-Aktionen
              • Einheit - Pause aus (Picked unit)
              • Einheitengruppe - Remove TempUnit from RushKnockbackGroup
              • Hashtabelle - Clear all child hashtables of child (Key (Picked unit)) in RushHashtable
              • -------- ----------------------------------- --------
              • -------- turn off trigger --------
              • -------- ----------------------------------- --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • 'IF'-Bedingungen
                  • (Number of units in RushKnockbackGroup) Gleich 0
                • 'THEN'-Aktionen
                  • Auslöser - Turn off (This trigger)
                • 'ELSE'-Aktionen
as my editor is german some parts of it are also german...

Changes:
-Removed Sound from Lightning Ball
-Fixed a bug with Lightning Ball
-Fixed Healingamount of the Green Ball spell
-Turned off channeling and movetrigger if no unit is in the unitgroup
-Removed the Healeffect from the Green Ball spell
-Added a new spell (i dont really like the spell but ok)
-fixed some small things, nothing important
-fixed the fatal error mentioned in the comments (was somehow caused of a unit which got created i made it different now...)
-removed the leaks HappyTrigger (or TriggerHappy cant remember) mentioned, didn't knew that

i wont make any further spell i learned jass so this will be my last gui spell

Credits:
Muzzel for teaching me how to trigger

Keywords:
GUI, Spellpack, Magespells, Spells, Spell, Mage
Contents

Spelltest (Map)

Reviews
Hanky: Now it looks fine enough for an approval. The only thing you could improve is that you shrink some two trigger to one in some cases.

Moderator

M

Moderator

Hanky:
Now it looks fine enough for an approval. The only thing you could improve is that you shrink some two trigger to one in some cases.
 
Level 6
Joined
Aug 26, 2009
Messages
192
I like Green ball spell but the second one is weird :/
This red lighting dummy just sux :/
and this Beastmaster's Ulti sound at casting :D
Remove it and improve Red Lighting Dummy :p

yes i didnt change the sound^^

This red lighting dummy just sux :/

what exactly sux at the dummy?
 
Last edited:
Level 12
Joined
Dec 10, 2008
Messages
850
So, is this your first spells? Becuase if they are, then, god freakin job! I looked over the code quick, and it looks leak free, but other then that, I don't know, since I don't wanna learn Hashtables.

Both spells seem alittle overpowered, but I'm sure that could be changed. I think you could also squash them to 1-2 triggers each, since that loop is all by itself.

Other then that, 4/5, GJ
 
Level 6
Joined
Aug 26, 2009
Messages
192
So, is this your first spells? Becuase if they are, then, god freakin job! I looked over the code quick, and it looks leak free, but other then that, I don't know, since I don't wanna learn Hashtables.

Both spells seem alittle overpowered, but I'm sure that could be changed. I think you could also squash them to 1-2 triggers each, since that loop is all by itself.

Other then that, 4/5, GJ

thx =D
well im triggering now for like a month and those are my first "bigger" spells and my first spells with hashtables

well i found a bug and fixed that i just have to upload new version :d
 
Level 4
Joined
Nov 8, 2009
Messages
25
how to make those tags that you have to click "show" for opening the text in it?

You just have to use the hidden tags:

[hidden=Heading]-----Text-----[/hidden]

If you want to show the triggers use after the hidden tag the tag [TRIGGER]--Triggers[/TRIGGER]

Here is a list of BB codes http://www.hiveworkshop.com/forums/misc.php?do=bbcode

Hope that helps you :)

~BlackHawk
 
Level 37
Joined
Mar 6, 2006
Messages
9,240
  • Set TempPoint = (TempPoint offset by 100.00 towards TempAngle degrees)
-> Set TempPoint1 = ...

MoveTrigger should be initially off.

  • Unit - Move TempUnit instantly to (TempPoint offset by TempDistance towards TempAngle degrees)
Leaks offset location.

  • Set TempUnit = No unit
Kind of unnecessary, globals don't really cause leaks.

  • Custom script: call DestroyGroup(udg_TempGroup)
  • Custom script: call RemoveLocation(udg_TempPoint)
  • Custom script: call RemoveLocation(udg_TempPoint1)
There's no TempGroup, no TempPoint1 in that trigger. Remove TempPoint should be inside the loop.

IF/THEN/ELSE -> Turn of trigger in MoveTrigger should be moved to after your remove TempUnit from the game.

You don't cleat hashtables in that trigger.

  • LightningBallCast Kopieren
    • Actions
      • Custom script: call RemoveLocation(udg_TempPoint1)
There's no TempPoint1 there.

  • Set TempUnit = No unit
Unnecessary.

  • Custom script: call RemoveLocation(udg_TempPoint)
  • Custom script: call DestroyGroup(udg_TempGroup)
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • (Number of units in LightningBallGroup) Equal to 0
    • Then - Actions
      • Trigger - Turn off (This trigger)
    • Else - Actions
Should be in ELSE branch.

  • Custom script: call RemoveLocation(udg_TempPoint)
In DmgTriggerKopieren, this should be inside the loop. Why is that trigger even a separate trigger?

In RushMove -trigger:

  • Unit - Move TempUnit instantly to (TempPoint1 offset by 20.00 towards TempAngle degrees), facing TempAngle degrees
Leaks.

Turn of trigger and leak removals in wrong place.

Same thing with the rest of the triggers.
 
Level 5
Joined
Oct 9, 2008
Messages
112
german:
ja hi menag,

du kennst mich sicher aus dem clan, (x-bl4d3d4nc3r-x) also, sobald ich den lightning ball caste, und der größer wird also, wenn er die volle größe erreicht, bekomme ich einen fatal error...

english:
hi menag,
if i cats the lightning ball, and the ball get his biggest size, i get an fatal error...

mfg
bl4d3
 
Level 6
Joined
Aug 26, 2009
Messages
192
german:
ja hi menag,

du kennst mich sicher aus dem clan, (x-bl4d3d4nc3r-x) also, sobald ich den lightning ball caste, und der größer wird also, wenn er die volle größe erreicht, bekomme ich einen fatal error...

english:
hi menag,
if i cats the lightning ball, and the ball get his biggest size, i get an fatal error...

mfg
bl4d3

i'll try to find the bug
it never occured to me.. :/
 
Level 37
Joined
Mar 6, 2006
Messages
9,240
Maker said:
Should be in ELSE branch.
no.

Ok, then tell me this: How can the size of the group be 0 if it's >0 when the trigger runs, and you don't remove any units from the group?

Why do you need to remove location, if you don't set it?

Why do you have to destroy a group, if you don't create it?

  • Set TempPoint = (TempPoint offset by 100.00 towards TempAngle degrees)
->
  • TempPoint1 = TempPoint offset by...
 
Level 6
Joined
Aug 26, 2009
Messages
192
Ok, then tell me this: How can the size of the group be 0 if it's >0 when the trigger runs, and you don't remove any units from the group?

Why do you need to remove location, if you don't set it?

Why do you have to destroy a group, if you don't create it?

  • Set TempPoint = (TempPoint offset by 100.00 towards TempAngle degrees)
->
  • TempPoint1 = TempPoint offset by...

when the number of units in this group is 0
than the trigger shall be turned off
that's exactly what the if then else there does

those locations and groups i forgot because i removed parts of the code and made them better
i just forgot to remove the custom scripts too..

btw that should be already fixed
 

Zwiebelchen

Hosted Project GR
Level 35
Joined
Sep 17, 2009
Messages
7,236
Could you elaborate?

If I do this, I create two leaks?

  • *something here*
  • Set TempUnit = Triggering Unit
  • Set TempUnit = Triggering Unit
  • Set TempUnit = Triggering Unit
  • Set TempUnit = No unit
  • *something here*
No, you don't. It's not really a leak, it's just a reference leak. It means that TempUnit still points to its previous "owner", no matter if that unit doesn't exist anymore or not.

Let's say you do the following:

- You create a unit
- You assign this unit to the TempUnit variable
- You remove the unit from the game
- You now check for "if TempUnit == no Unit"
--> Although the unit doesn't exist anymore, TempUnit == no Unit does NOT return true. It still points to the removed unit and thus, returns a false negative on that TempUnit == no Unit check. This is why globals should be nulled or overwritten after use - unless you do not use == null checks at all.
 
Top