• 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.

"Pyroline" 750 Range nuke+ teleport

Status
Not open for further replies.
Level 6
Joined
Oct 4, 2011
Messages
226
Hello ladies and gentlemen I've been up late tonight crafting my new ability. I'm having some trouble. My trigger seems to only create 8 fire spikes instead of what should be 10. I've added in a visible text to display how many spikes were created. Testmap and triggers below. THANKS!

  • Pyroline
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Pyroline (Blazing Fiend)
    • Actions
      • Set PL01_CasterUnit = (Triggering unit)
      • Set PL01_CasterPoint = (Position of (Triggering unit))
      • Unit Group - Add PL01_CasterUnit to PL01_CasterGroup
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Target unit of ability being cast) Equal to No unit
        • Then - Actions
          • Set PL01_TargetPoint = (Target point of ability being cast)
        • Else - Actions
          • Set PL01_TargetPoint = (Position of (Target unit of ability being cast))
      • Set PL01_DirectionAngle = (Angle from PL01_CasterPoint to PL01_TargetPoint)
      • Custom script: set udg_PL01_IDInteger = GetHandleId(udg_PL01_CasterUnit)
      • Hashtable - Save 1.00 as (Key duration) of PL01_IDInteger in PL01_HashTable
      • Hashtable - Save PL01_DirectionAngle as (Key direction) of PL01_IDInteger in PL01_HashTable
      • Hashtable - Save 75.00 as (Key offset) of PL01_IDInteger in PL01_HashTable
      • Hashtable - Save 0.10 as (Key interval) of PL01_IDInteger in PL01_HashTable
      • Hashtable - Save Handle Of(PL01_CasterPoint offset by 75.00 towards PL01_DirectionAngle degrees) as (Key loc) of PL01_IDInteger in PL01_HashTable
      • Hashtable - Save Handle Of(Owner of PL01_CasterUnit) as (Key player) of PL01_IDInteger in PL01_HashTable
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Pyroline timer <gen> is on) Equal to False
        • Then - Actions
          • Trigger - Turn on Pyroline timer <gen>
        • Else - Actions
LOOP TRIGGER:

  • Pyroline timer
    • Events
      • Time - Every 0.02 seconds of game time
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in PL01_CasterGroup) Greater than 0
        • Then - Actions
          • Unit Group - Pick every unit in PL01_CasterGroup and do (Actions)
            • Loop - Actions
              • Set PL01_TempUnit = (Picked unit)
              • Custom script: set udg_PL01_IDInteger = GetHandleId(udg_PL01_TempUnit)
              • Set PL01_TempReal = (Load (Key duration) of PL01_IDInteger from PL01_HashTable)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • PL01_TempReal Greater than 0.00
                • Then - Actions
                  • Hashtable - Save (PL01_TempReal - 0.02) as (Key duration) of PL01_IDInteger in PL01_HashTable
                  • Set PL01_IntervalReal = (Load (Key interval) of PL01_IDInteger from PL01_HashTable)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • PL01_IntervalReal Greater than 0.00
                    • Then - Actions
                      • Hashtable - Save (PL01_IntervalReal - 0.02) as (Key interval) of PL01_IDInteger in PL01_HashTable
                    • Else - Actions
                      • Hashtable - Save 0.10 as (Key interval) of PL01_IDInteger in PL01_HashTable
                      • Set PL01_LineTempPoint = (Load (Key loc) of PL01_IDInteger in PL01_HashTable)
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • PL01_FoundTargetUnit Equal to No unit
                        • Then - Actions
                          • Set PL01_TargetsGroup = (Units within 125.00 of PL01_LineTempPoint matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) belongs to an ally of (Load (
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Number of units in PL01_TargetsGroup) Greater than 0
                            • Then - Actions
                              • Unit Group - Pick every unit in PL01_TargetsGroup and do (Set PL01_FoundTargetUnit = (Picked unit))
                              • Unit Group - Remove all units from PL01_TargetsGroup
                            • Else - Actions
                        • Else - Actions
                      • Unit Group - Remove all units from PL01_TargetsGroup
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • PL01_FoundTargetUnit Equal to No unit
                        • Then - Actions
                          • Hashtable - Save Handle Of(PL01_LineTempPoint offset by 75.00 towards (Load (Key direction) of PL01_IDInteger from PL01_HashTable) degrees) as (Key loc) of PL01_IDInteger in PL01_HashTable
                          • Unit - Create 1 Trapfire (Test) for (Load (Key player) of PL01_IDInteger in PL01_HashTable) at PL01_LineTempPoint facing (Load (Key direction) of PL01_IDInteger from PL01_HashTable) degrees
                          • Floating Text - Create floating text that reads |cffff11cc{X}|r at PL01_LineTempPoint with Z offset 20.00, using font size 12.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
                          • Floating Text - Change (Last created floating text): Disable permanence
                          • Floating Text - Change the lifespan of (Last created floating text) to 4.00 seconds
                          • Custom script: call RemoveLocation(udg_PL01_LineTempPoint)
                        • Else - Actions
                          • Custom script: call RemoveLocation(udg_PL01_LineTempPoint)
                          • Unit - Create 1 Trapfire (Test) for (Load (Key player) of PL01_IDInteger in PL01_HashTable) at PL01_LineTempPoint facing (Load (Key direction) of PL01_IDInteger from PL01_HashTable) degrees
                          • Hashtable - Save ((Life of PL01_TempUnit) x 0.15) as (Key damage) of PL01_IDInteger in PL01_HashTable
                          • Unit - Cause PL01_TempUnit to damage PL01_FoundTargetUnit, dealing (Load (Key damage) of PL01_IDInteger from PL01_HashTable) damage of attack type Spells and damage type Fire
                          • Set PL01_TempPoint = (Position of PL01_FoundTargetUnit)
                          • Unit - Move PL01_TempUnit instantly to (PL01_TempPoint offset by 135.00 towards ((Load (Key direction) of PL01_IDInteger from PL01_HashTable) - 180.00) degrees), facing (Load (Key direction) of PL01_IDInteger from PL01_HashTable) degrees
                          • Camera - Pan camera for (Load (Key player) of PL01_IDInteger in PL01_HashTable) to (Position of PL01_TempUnit) over 0.00 seconds
                          • Custom script: set udg_PL01_FoundTargetUnit = (null)
                          • Custom script: call RemoveLocation(udg_PL01_TempPoint)
                          • Hashtable - Save 0.00 as (Key duration) of PL01_IDInteger in PL01_HashTable
                • Else - Actions
                  • Unit Group - Remove PL01_TempUnit from PL01_CasterGroup
                  • Hashtable - Clear all child hashtables of child PL01_IDInteger in PL01_HashTable
        • Else - Actions
          • Trigger - Turn off (This trigger)
{I know some of my Hashtable information isnt being used,}
 

Attachments

  • Arena Idea 0001C.w3x
    146.4 KB · Views: 75
Level 6
Joined
Oct 4, 2011
Messages
226
Brilliant! I didn't account for the loop trigger time. Also I did make the first interval instant good tip :). Works with like 10 at the same time think its all good. Thanks Maker.
 
Status
Not open for further replies.
Top