1. Are you planning to upload your awesome spell or system to Hive? Please review the rules here.
    Dismiss Notice
  2. Find your way through the deepest dungeon in the 18th Mini Mapping Contest Poll.
    Dismiss Notice
  3. A brave new world lies beyond the seven seas. Join the 34th Modeling Contest today!
    Dismiss Notice
  4. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
Hive 3 Remoosed BETA - NOW LIVE. Go check it out at BETA Hive Workshop! Post your feedback in this new forum BETA Feedback.
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Thunder Blade v1.01 GUI

Submitted by Squiggy
This bundle is marked as approved. It works and satisfies the submission rules.
Wheeee.. I was bored and remembered some spell..
http://www.youtube.com/watch?v=TcgwP1l4dfo
It goes off at 0:42, if you care.

So I decided to take this spell to wc3 and polish it a bit.. here's the outcome:

-The spell is completely made by myself without any help/imports/bugabuse/etc..
-If you want to use it in your map, please credit me - if you don't, you fail at life.
-The spell is MUI/GUI/epic without indexing/hashtables and multiboards :eek:
-Jass-Version will follow for sure as soon at I got my jasshelper back to work -.-

[​IMG] Thunder Blade

Conjures an electrified lance out of the sky to stab the targeted unit.
On impact, all units in the area of effect are temporarily paralyzed and damaged as well.


Changelog GUI
v1.01:
-Fixed the hotkey

v1.1:
-Did what TRD said


Keywords:
epic, spell, lightning, tales of the abyss, squiggy, lulz, mui, gui, thunder blade, electric, paralyze
Contents

Thunder Blade v1.0 (Map)

Reviews
Moderator
21:53, 4th Dec 2009 The_Reborn_Devil: The triggering looks very nice and there are no leaks as far as I can see :D And the things I mentioned have been fixed too. It's a pretty neat spell, but maybe a bit too many effects? :D Nah, just kidding...
  1. Anachron

    Anachron

    Joined:
    Sep 9, 2007
    Messages:
    6,220
    Resources:
    66
    Icons:
    49
    Packs:
    2
    Tools:
    1
    Maps:
    3
    Spells:
    9
    Tutorials:
    1
    JASS:
    1
    Resources:
    66
    The more important you are here the faster your systems will get reviewed. It's sad, but it's how it works.
     
  2. ScorpionKing

    ScorpionKing

    Joined:
    Nov 18, 2008
    Messages:
    9
    Resources:
    0
    Resources:
    0
    Looks very nice and is very good :)
    nice work
     
  3. Faith

    Faith

    Joined:
    Dec 29, 2009
    Messages:
    883
    Resources:
    3
    Spells:
    1
    Tutorials:
    2
    Resources:
    3
    I'm having trouble. As far as I can tell, I've copied everything right. I've copied all four abilities, both buffs, and the 3 dummies.. as well as the triggering.

    Triggers

    First Trigger

    • tb1
      • Events
        • Unit - A unit Starts the effect of an ability
      • Conditions
        • (Ability being cast) Equal to Thunder Blade
      • Actions
        • Set TB_temppoint1 = (Position of (Target unit of ability being cast))
        • -------- - --------
        • -------- This is the height at which the 'lance' should begin to be formed. --------
        • Set TB_x = 700.00
        • -------- - --------
        • -------- Some damage.. --------
        • Unit - Cause (Triggering unit) to damage (Target unit of ability being cast), dealing ((Real((Level of Thunder Blade for (Triggering unit)))) x 45.00) damage of attack type Chaos and damage type Universal
        • -------- - --------
        • -------- And here we create 15 dummies, one every 50 height units. --------
        • For each (Integer A) from 1 to 15, do (Actions)
          • Loop - Actions
            • Unit - Create 1 tb.dummy for (Owner of (Triggering unit)) at TB_temppoint1 facing (Random angle) degrees
            • Unit - Set level of TB_Carrier for (Last created unit) to (Level of Thunder Blade for (Triggering unit))
            • Animation - Change (Last created unit) flying height to (TB_x + 50.00) at 0.00
            • Animation - Change (Last created unit) flying height to 0.00 at 2000.00
            • Unit - Add a 0.90 second Generic expiration timer to (Last created unit)
            • Set TB_x = (TB_x + 50.00)
        • Set TB_x = 0.00
        • Custom script: call RemoveLocation(udg_TB_temppoint1)
        • -------- - --------
        • -------- After resetting all values and cleaning those leaks, we move on to 'tb2' --------



    Second Trigger

    • tb2
      • Events
        • Unit - A unit Dies
      • Conditions
        • ((Unit-type of (Triggering unit)) Equal to tb.dummy) or ((Unit-type of (Triggering unit)) Equal to tb.dummy3)
      • Actions
        • -------- - --------
        • -------- As this trigger has multiple purposes (look at the comment), we check which unit is dead now. --------
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • (Unit-type of (Triggering unit)) Equal to tb.dummy
          • Then - Actions
            • -------- - --------
            • -------- In case that it's our 'lance', we create one more dummy with the lightning shield model facing randomly --------
            • Set TB_temppoint1 = (Position of (Triggering unit))
            • Unit - Create 1 tb.dummy3 for (Owner of (Triggering unit)) at TB_temppoint1 facing (Random angle) degrees
            • Unit - Add a 6.00 second Generic expiration timer to (Last created unit)
            • -------- - --------
            • -------- Now we pause all enemy units --------
            • Custom script: set bj_wantDestroyGroup = true
            • Unit Group - Pick every unit in (Units within (((Real((Level of TB_Carrier for (Triggering unit)))) x 100.00) + 200.00) of TB_temppoint1 matching (((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True)) and do (Unit - Pause (Picked unit))
            • Animation - Play (Last created unit)'s birth large animation
            • Animation - Change (Last created unit)'s animation speed to 50.00% of its original speed
            • Special Effect - Create a special effect at TB_temppoint1 using Abilities\Spells\Undead\Unsummon\UnsummonTarget.mdl
            • Special Effect - Destroy (Last created special effect)
            • -------- - --------
            • -------- Here, we check for any 'still alive' part of the lanceand if there is, we create the said dummies we want to move --------
            • Set TB_dummygrp = (Units within 100.00 of TB_temppoint1 matching ((Unit-type of (Matching unit)) Equal to tb.dummy))
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • (Number of units in TB_dummygrp) Greater than or equal to 1
              • Then - Actions
                • Special Effect - Create a special effect at TB_temppoint1 using Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
                • Special Effect - Destroy (Last created special effect)
                • Unit - Create 1 tb.dummy2 for (Owner of (Triggering unit)) at TB_temppoint1 facing (TB_x + 36.00) degrees
                • Unit - Set level of TB_dummydamage for (Last created unit) to (Level of TB_Carrier for (Triggering unit))
                • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                • Set TB_x = (TB_x + 36.00)
                • -------- - --------
                • -------- Last, but not least, we turn on the periodic trigger to make the dummies move. --------
                • Trigger - Turn on tbper <gen>
              • Else - Actions
            • Custom script: call DestroyGroup(udg_TB_dummygrp)
            • Custom script: call RemoveLocation(udg_TB_temppoint1)
          • Else - Actions
            • -------- - --------
            • -------- IF the dead unit wasn't our 'lance' but the lightning shiled, we remove it from the whole map. --------
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • (Unit-type of (Triggering unit)) Equal to tb.dummy3
              • Then - Actions
                • Set TB_temppoint1 = (Position of (Triggering unit))
                • Unit - Remove (Triggering unit) from the game
                • -------- - --------
                • -------- and now, we let the enemies regain their liberty and move around. --------
                • Custom script: set bj_wantDestroyGroup = true
                • Unit Group - Pick every unit in (Units within 700.00 of TB_temppoint1 matching (((Matching unit) has buff Paralyze ) Equal to True)) and do (Actions)
                  • Loop - Actions
                    • Unit - Remove Paralyze buff from (Picked unit)
                    • Unit - Unpause (Picked unit)
                • Custom script: call RemoveLocation(udg_TB_temppoint1)
              • Else - Actions
            • -------- - --------
            • -------- Almost done. One more - 'tbper' --------



    Third Trigger (Initially Off)

    • tbper
      • Events
        • Time - Every 0.04 seconds of game time
      • Conditions
      • Actions
        • -------- - --------
        • -------- First, we check if there are any dummies on the field which are moving and if not, we turn this trigger off. --------
        • Set TB_dummygrp2 = (Units of type Tavern)
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • (Number of units in TB_dummygrp2) Greater than 0
          • Then - Actions
            • -------- - --------
            • -------- If there are any, we add the custom value by the distance they travel. That is, easily said a simple way to make them stop once they reach the end of the area of effect. --------
            • -------- Since the CV will turn 500 once, which is the aoe, the dummy will stop. --------
            • Unit Group - Pick every unit in TB_dummygrp2 and do (Actions)
              • Loop - Actions
                • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  • If - Conditions
                    • (Custom value of (Picked unit)) Less than or equal to (((Level of TB_dummydamage for (Picked unit)) x 100) + 200)
                  • Then - Actions
                    • Set TB_temppoint1 = (Position of (Picked unit))
                    • Set TB_temppoint2 = (TB_temppoint1 offset by 25.00 towards (Facing of (Picked unit)) degrees)
                    • Unit - Set the custom value of (Picked unit) to ((Custom value of (Picked unit)) + 25)
                    • Unit - Move (Picked unit) instantly to TB_temppoint2
                    • Custom script: call RemoveLocation(udg_TB_temppoint2)
                    • Custom script: call RemoveLocation(udg_TB_temppoint1)
                  • Else - Actions
                    • -------- - --------
                    • -------- So, when it reaches the aoe, we add some effects --------
                    • Set TB_temppoint1 = (Position of (Picked unit))
                    • Special Effect - Create a special effect at TB_temppoint1 using Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
                    • Special Effect - Destroy (Last created special effect)
                    • Special Effect - Create a special effect at TB_temppoint1 using Abilities\Spells\Other\Monsoon\MonsoonBoltTarget.mdl
                    • Special Effect - Destroy (Last created special effect)
                    • -------- - --------
                    • -------- And remove the moving dummy --------
                    • Unit - Remove (Picked unit) from the game
                    • Custom script: call RemoveLocation(udg_TB_temppoint1)
                • -------- - --------
                • -------- This is the electric trace the dummies leave behind... --------
                • Special Effect - Create a special effect at TB_temppoint2 using Abilities\Spells\Items\AIlb\AIlbSpecialArt.mdl
                • Special Effect - Destroy (Last created special effect)
          • Else - Actions
            • Trigger - Turn off (This trigger)
        • Custom script: call DestroyGroup(udg_TB_dummygrp2)
        • -------- - --------
        • -------- Congratulations, you made it. --------
        • -------- Have fun and don't hesistate to give me some credits ;) //Squiggy --------




    The problem is... That when my hero casts the ability Thunder Blade, the lance comes down and the effects go off, except instead of forming a circle of effects around the lance, they all spawn at the same time in the middle, where the lance came down.

    Can someone help me?

    EDIT: This is to compare the triggers.

    Triggers

    First Trigger

    • tb1
    • Events
    • Unit - A unit Starts the effect of an ability
    • Conditions
    • (Ability being cast) Equal to Thunder Blade
    • Actions
    • Set TB_temppoint1 = (Position of (Target unit of ability being cast))
    • -------- - --------
    • -------- This is the height at which the 'lance' should begin to be formed. --------
    • Set TB_x = 700.00
    • -------- - --------
    • -------- Some damage.. --------
    • Unit - Cause (Triggering unit) to damage (Target unit of ability being cast), dealing ((Real((Level of Thunder Blade for (Triggering unit)))) x 45.00) damage of attack type Chaos and damage type Universal
    • -------- - --------
    • -------- And here we create 15 dummies, one every 50 height units. --------
    • For each (Integer A) from 1 to 15, do (Actions)
    • Loop - Actions
    • Unit - Create 1 tb.dummy for (Owner of (Triggering unit)) at TB_temppoint1 facing (Random angle) degrees
    • Unit - Set level of TB_Carrier for (Last created unit) to (Level of Thunder Blade for (Triggering unit))
    • Animation - Change (Last created unit) flying height to (TB_x + 50.00) at 0.00
    • Animation - Change (Last created unit) flying height to 0.00 at 2000.00
    • Unit - Add a 0.90 second Generic expiration timer to (Last created unit)
    • Set TB_x = (TB_x + 50.00)
    • Set TB_x = 0.00
    • Custom script: call RemoveLocation(udg_TB_temppoint1)
    • -------- - --------
    • -------- After resetting all values and cleaning those leaks, we move on to 'tb2' --------



    Second Trigger

    • tb2
      • Events
        • Unit - A unit Dies
      • Conditions
        • ((Unit-type of (Triggering unit)) Equal to tb.dummy) or ((Unit-type of (Triggering unit)) Equal to tb.dummy3)
      • Actions
        • -------- - --------
        • -------- As this trigger has multiple purposes (look at the comment), we check which unit is dead now. --------
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • (Unit-type of (Triggering unit)) Equal to tb.dummy
          • Then - Actions
            • -------- - --------
            • -------- In case that it's our 'lance', we create one more dummy with the lightning shield model facing randomly --------
            • Set TB_temppoint1 = (Position of (Triggering unit))
            • Unit - Create 1 tb.dummy3 for (Owner of (Triggering unit)) at TB_temppoint1 facing (Random angle) degrees
            • Unit - Add a 6.00 second Generic expiration timer to (Last created unit)
            • -------- - --------
            • -------- Now we pause all enemy units --------
            • Custom script: set bj_wantDestroyGroup = true
            • Unit Group - Pick every unit in (Units within (((Real((Level of TB_Carrier for (Triggering unit)))) x 100.00) + 200.00) of TB_temppoint1 matching (((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True)) and do (Unit - Pause (Picked unit))
            • Animation - Play (Last created unit)'s birth large animation
            • Animation - Change (Last created unit)'s animation speed to 50.00% of its original speed
            • Special Effect - Create a special effect at TB_temppoint1 using Abilities\Spells\Undead\Unsummon\UnsummonTarget.mdl
            • Special Effect - Destroy (Last created special effect)
            • -------- - --------
            • -------- Here, we check for any 'still alive' part of the lanceand if there is, we create the said dummies we want to move --------
            • Set TB_dummygrp = (Units within 100.00 of TB_temppoint1 matching ((Unit-type of (Matching unit)) Equal to tb.dummy))
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • (Number of units in TB_dummygrp) Greater than or equal to 1
              • Then - Actions
                • Special Effect - Create a special effect at TB_temppoint1 using Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
                • Special Effect - Destroy (Last created special effect)
                • Unit - Create 1 tb.dummy2 for (Owner of (Triggering unit)) at TB_temppoint1 facing (TB_x + 36.00) degrees
                • Unit - Set level of TB_dummydamage for (Last created unit) to (Level of TB_Carrier for (Triggering unit))
                • Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                • Set TB_x = (TB_x + 36.00)
                • -------- - --------
                • -------- Last, but not least, we turn on the periodic trigger to make the dummies move. --------
                • Trigger - Turn on tbper <gen>
              • Else - Actions
            • Custom script: call DestroyGroup(udg_TB_dummygrp)
            • Custom script: call RemoveLocation(udg_TB_temppoint1)
          • Else - Actions
            • -------- - --------
            • -------- IF the dead unit wasn't our 'lance' but the lightning shiled, we remove it from the whole map. --------
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • (Unit-type of (Triggering unit)) Equal to tb.dummy3
              • Then - Actions
                • Set TB_temppoint1 = (Position of (Triggering unit))
                • Unit - Remove (Triggering unit) from the game
                • -------- - --------
                • -------- and now, we let the enemies regain their liberty and move around. --------
                • Custom script: set bj_wantDestroyGroup = true
                • Unit Group - Pick every unit in (Units within 700.00 of TB_temppoint1 matching (((Matching unit) has buff Paralyze ) Equal to True)) and do (Actions)
                  • Loop - Actions
                    • Unit - Remove Paralyze buff from (Picked unit)
                    • Unit - Unpause (Picked unit)
                • Custom script: call RemoveLocation(udg_TB_temppoint1)
              • Else - Actions
            • -------- - --------
            • -------- Almost done. One more - 'tbper' --------



    Third Trigger (Initially Off)

    • tbper
      • Events
        • Time - Every 0.04 seconds of game time
      • Conditions
      • Actions
        • -------- - --------
        • -------- First, we check if there are any dummies on the field which are moving and if not, we turn this trigger off. --------
        • Set TB_dummygrp2 = (Units of type tb.dummy2)
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • (Number of units in TB_dummygrp2) Greater than 0
          • Then - Actions
            • -------- - --------
            • -------- If there are any, we add the custom value by the distance they travel. That is, easily said a simple way to make them stop once they reach the end of the area of effect. --------
            • -------- Since the CV will turn 500 once, which is the aoe, the dummy will stop. --------
            • Unit Group - Pick every unit in TB_dummygrp2 and do (Actions)
              • Loop - Actions
                • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  • If - Conditions
                    • (Custom value of (Picked unit)) Less than or equal to (((Level of TB_dummydamage for (Picked unit)) x 100) + 200)
                  • Then - Actions
                    • Set TB_temppoint1 = (Position of (Picked unit))
                    • Set TB_temppoint2 = (TB_temppoint1 offset by 25.00 towards (Facing of (Picked unit)) degrees)
                    • Unit - Set the custom value of (Picked unit) to ((Custom value of (Picked unit)) + 25)
                    • Unit - Move (Picked unit) instantly to TB_temppoint2
                    • Custom script: call RemoveLocation(udg_TB_temppoint2)
                    • Custom script: call RemoveLocation(udg_TB_temppoint1)
                  • Else - Actions
                    • -------- - --------
                    • -------- So, when it reaches the aoe, we add some effects --------
                    • Set TB_temppoint1 = (Position of (Picked unit))
                    • Special Effect - Create a special effect at TB_temppoint1 using Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
                    • Special Effect - Destroy (Last created special effect)
                    • Special Effect - Create a special effect at TB_temppoint1 using Abilities\Spells\Other\Monsoon\MonsoonBoltTarget.mdl
                    • Special Effect - Destroy (Last created special effect)
                    • -------- - --------
                    • -------- And remove the moving dummy --------
                    • Unit - Remove (Picked unit) from the game
                    • Custom script: call RemoveLocation(udg_TB_temppoint1)
                • -------- - --------
                • -------- This is the electric trace the dummies leave behind... --------
                • Special Effect - Create a special effect at TB_temppoint2 using Abilities\Spells\Items\AIlb\AIlbSpecialArt.mdl
                • Special Effect - Destroy (Last created special effect)
          • Else - Actions
            • Trigger - Turn off (This trigger)
        • Custom script: call DestroyGroup(udg_TB_dummygrp2)
        • -------- - --------
        • -------- Congratulations, you made it. --------
        • -------- Have fun and don't hesistate to give me some credits ;) //Squiggy --------


     
    Last edited: Sep 20, 2010
  4. Faith

    Faith

    Joined:
    Dec 29, 2009
    Messages:
    883
    Resources:
    3
    Spells:
    1
    Tutorials:
    2
    Resources:
    3
    Nobody is going to help me... that's nice. :smile:
     
  5. Arisato

    Arisato

    Joined:
    Dec 17, 2009
    Messages:
    991
    Resources:
    7
    Models:
    1
    Maps:
    4
    Spells:
    1
    Tutorials:
    1
    Resources:
    7
    Thanks it gave me a good laugh :gg:

    4/5 it looks good!i don't want to give 5/5 because of it will bug in pretty low specs PCs.. but well it's nice :D
     
  6. freesouthkorea

    freesouthkorea

    Joined:
    Jun 23, 2018
    Messages:
    28
    Resources:
    1
    Maps:
    1
    Resources:
    1
    meh, there is no reason a user should have to go through all the triggers correcting unit and spell codes, just use variables that can be defined in one location.