Boomerang problem ?!?

aki15

New Member
Reaction score
5
Hello everyone, I requested a boomerang spell and it was working good in test map, but not in mine.
-In my map it's damaging it on first hit, but won't damage it when turning back.
Here are the triggers:
Code:
Boomerang Var
    Events
        Map initialization
    Conditions
    Actions
        -------- Set this variable to the base ability "Boomerang" --------
        Set BoAbility = Boomerang 
        -------- Set this variable to the unit "Boomerang Dummy" --------
        Set BoDummy = Boomerang Dummy
        -------- Damage dealt --------
        Set BoReal[0] = 18.00
        -------- Collision area of boomerang --------
        Set BoReal[1] = 130.00
        -------- Maximum distance --------
        Set BoReal[2] = 1200.00
        -------- Speed of boomerang (distance travelled per second) --------
        Set BoReal[3] = 650.00
        -------- ----------------------------------------- --------
        Hashtable - Create a hashtable
        Set Hashtable = (Last created hashtable)

Code:
Boomerang
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to BoAbility
    Actions
        Set TempPoint = (Position of (Triggering unit))
        Set TempOffset = (Target point of ability being cast)
        Unit - Create 1 BoDummy for (Owner of (Triggering unit)) at TempPoint facing Default building facing degrees
        Hashtable - Save BoReal[2] as 0 of (Key (Last created unit)) in Hashtable
        Hashtable - Save False as 1 of (Key (Last created unit)) in Hashtable
        Hashtable - Save Handle Of(Triggering unit) as 2 of (Key (Last created unit)) in Hashtable
        Hashtable - Save (Angle from TempPoint to TempOffset) as 3 of (Key (Last created unit)) in Hashtable
        Hashtable - Save 4 as 4 of (Key (Last created unit)) in Hashtable
        Unit Group - Add (Last created unit) to BoGroup
        Set BoGroupCount = (BoGroupCount + 1)
        Trigger - Turn on Boomerang Periodic <gen>
        Custom script:   call RemoveLocation(udg_TempPoint)
        Custom script:   call RemoveLocation(udg_TempOffset)

Code:
Boomerang Periodic
    Events
        Time - Every 0.03 seconds of game time
    Conditions
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                BoGroupCount Equal to 0
            Then - Actions
                Trigger - Turn off (This trigger)
            Else - Actions
                Unit Group - Pick every unit in BoGroup and do (Actions)
                    Loop - Actions
                        Set TempUnit = (Load 2 of (Key (Picked unit)) in Hashtable)
                        Set TempPoint = (Position of (Picked unit))
                        Set TempOffset = (Position of TempUnit)
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                (Distance between TempPoint and TempOffset) Less than or equal to 50.00
                                (Load 1 of (Key (Picked unit)) from Hashtable) Equal to True
                            Then - Actions
                                Hashtable - Clear all child hashtables of child (Key (Picked unit)) in Hashtable
                                Unit Group - Remove (Picked unit) from BoGroup
                                Set BoGroupCount = (BoGroupCount - 1)
                                Unit - Kill (Picked unit)
                            Else - Actions
                                Set BoUnit = (Picked unit)
                                Set TempGroup = (Units within BoReal[1] of TempPoint matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of TempUnit)) Equal to True))))
                                Unit Group - Pick every unit in TempGroup and do (Actions)
                                    Loop - Actions
                                        Custom script:   set udg_TempBoolean = LoadBoolean(udg_Hashtable, GetHandleId(udg_BoUnit), GetHandleId(GetEnumUnit()))
                                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            If - Conditions
                                                TempBoolean Equal to True
                                            Then - Actions
                                            Else - Actions
                                                Unit - Cause TempUnit to damage (Picked unit), dealing BoReal[0] damage of attack type Chaos and damage type Universal
                                                Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
                                                Special Effect - Destroy (Last created special effect)
                                                Custom script:   call SaveBoolean(udg_Hashtable, GetHandleId(udg_BoUnit), GetHandleId(GetEnumUnit()), true)
                                Custom script:   call DestroyGroup(udg_TempGroup)
                                Set TempReal = (Angle from TempPoint to TempOffset)
                                Custom script:   call RemoveLocation(udg_TempOffset)
                                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    If - Conditions
                                        (Load 0 of (Key (Picked unit)) from Hashtable) Less than or equal to 0.00
                                    Then - Actions
                                        Set TempOffset = (TempPoint offset by (BoReal[3] x 0.03) towards TempReal degrees)
                                        Unit - Move (Picked unit) instantly to TempOffset
                                        Hashtable - Save True as 1 of (Key (Picked unit)) in Hashtable
                                    Else - Actions
                                        Set TempOffset = (TempPoint offset by (BoReal[3] x 0.03) towards (Load 3 of (Key (Picked unit)) from Hashtable) degrees)
                                        Unit - Move (Picked unit) instantly to TempOffset
                                        Hashtable - Save ((Load 0 of (Key (Picked unit)) from Hashtable) - (BoReal[3] x 0.03)) as 0 of (Key (Picked unit)) in Hashtable
                        Custom script:   call RemoveLocation(udg_TempPoint)
                        Custom script:   call RemoveLocation(udg_TempOffset)
Spell made by Ayanami :D !
 

Ayanami

칼리
Reaction score
288
It's not supposed to hit when turning back. o.o Didn't make it that way, lol.
 

Sajin

User title under construction.
Reaction score
56
You can do what i did and have it damage for every 0.03 seconds of game :) what you do is change this section of the third code
Code:
     Then - Actions
                                Hashtable - Clear all child hashtables of child (Key (Picked unit)) in Hashtable
                                Unit Group - Remove (Picked unit) from BoGroup
                                Set BoGroupCount = (BoGroupCount - 1)
                                Unit - Kill (Picked unit)
                            Else - Actions
                                Set BoUnit = (Picked unit)
                                Set TempGroup = (Units within BoReal[1] of TempPoint matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of TempUnit)) Equal to True))))
                                Unit Group - Pick every unit in TempGroup and do (Actions)
                                    Loop - Actions
                                        Custom script:   set udg_TempBoolean = LoadBoolean(udg_Hashtable, GetHandleId(udg_BoUnit), GetHandleId(GetEnumUnit()))
                                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            If - Conditions
                                                TempBoolean Equal to True
                                            Then - Actions
                                            Else - Actions
                                                Unit - Cause TempUnit to damage (Picked unit), dealing BoReal[0] damage of attack type Chaos and damage type Universal
                                                Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
                                                Special Effect - Destroy (Last created special effect)
                                                Custom script:   call SaveBoolean(udg_Hashtable, GetHandleId(udg_BoUnit), GetHandleId(GetEnumUnit()), true)
to
Code:
     Then - Actions
                                Hashtable - Clear all child hashtables of child (Key (Picked unit)) in Hashtable
                                Unit Group - Remove (Picked unit) from BoGroup
                                Set BoGroupCount = (BoGroupCount - 1)
                                Unit - Kill (Picked unit)
                            Else - Actions
                                Set BoUnit = (Picked unit)
                                Set TempGroup = (Units within BoReal[1] of TempPoint matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of TempUnit)) Equal to True))))
                                Unit Group - Pick every unit in TempGroup and do (Actions)
                                    Loop - Actions
                                        Custom script:   set udg_TempBoolean = LoadBoolean(udg_Hashtable, GetHandleId(udg_BoUnit), GetHandleId(GetEnumUnit()))
                                        Unit - Cause TempUnit to damage (Picked unit), dealing BoReal[0] damage of attack type Chaos and damage type Universal
                                                Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
                                                Special Effect - Destroy (Last created special effect)
                                                Custom script:   call SaveBoolean(udg_Hashtable, GetHandleId(udg_BoUnit), GetHandleId(GetEnumUnit()), true)

Im sure theres another way such as changing TempBoolean back to false when the boomerang turns around but I did it this way to make it more epic ;)
 

Ayanami

칼리
Reaction score
288
You can do what i did and have it damage for every 0.03 seconds of game :) what you do is change this section of the third code
Code:
     Then - Actions
                                Hashtable - Clear all child hashtables of child (Key (Picked unit)) in Hashtable
                                Unit Group - Remove (Picked unit) from BoGroup
                                Set BoGroupCount = (BoGroupCount - 1)
                                Unit - Kill (Picked unit)
                            Else - Actions
                                Set BoUnit = (Picked unit)
                                Set TempGroup = (Units within BoReal[1] of TempPoint matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of TempUnit)) Equal to True))))
                                Unit Group - Pick every unit in TempGroup and do (Actions)
                                    Loop - Actions
                                        Custom script:   set udg_TempBoolean = LoadBoolean(udg_Hashtable, GetHandleId(udg_BoUnit), GetHandleId(GetEnumUnit()))
                                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            If - Conditions
                                                TempBoolean Equal to True
                                            Then - Actions
                                            Else - Actions
                                                Unit - Cause TempUnit to damage (Picked unit), dealing BoReal[0] damage of attack type Chaos and damage type Universal
                                                Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
                                                Special Effect - Destroy (Last created special effect)
                                                Custom script:   call SaveBoolean(udg_Hashtable, GetHandleId(udg_BoUnit), GetHandleId(GetEnumUnit()), true)
to
Code:
     Then - Actions
                                Hashtable - Clear all child hashtables of child (Key (Picked unit)) in Hashtable
                                Unit Group - Remove (Picked unit) from BoGroup
                                Set BoGroupCount = (BoGroupCount - 1)
                                Unit - Kill (Picked unit)
                            Else - Actions
                                Set BoUnit = (Picked unit)
                                Set TempGroup = (Units within BoReal[1] of TempPoint matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of TempUnit)) Equal to True))))
                                Unit Group - Pick every unit in TempGroup and do (Actions)
                                    Loop - Actions
                                        Custom script:   set udg_TempBoolean = LoadBoolean(udg_Hashtable, GetHandleId(udg_BoUnit), GetHandleId(GetEnumUnit()))
                                        Unit - Cause TempUnit to damage (Picked unit), dealing BoReal[0] damage of attack type Chaos and damage type Universal
                                                Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
                                                Special Effect - Destroy (Last created special effect)
                                                Custom script:   call SaveBoolean(udg_Hashtable, GetHandleId(udg_BoUnit), GetHandleId(GetEnumUnit()), true)

Im sure theres another way such as changing TempBoolean back to false when the boomerang turns around but I did it this way to make it more epic ;)

Wouldn't this actually deal damage per 0.03 seconds? o.o
Although you're saving the boolean, no Conditions are being used to check if the boolean is true or false.
 

Sajin

User title under construction.
Reaction score
56
Wouldn't this actually deal damage per 0.03 seconds? o.o
Although you're saving the boolean, no Conditions are being used to check if the boolean is true or false.

hehe ^^
Quote Originally Posted by Sajin
You can do what i did and have it damage for every 0.03 seconds of game what you do is change this section of the third code
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • The Helper The Helper:
    The bots will show up as users online in the forum software but they do not show up in my stats tracking. I am sure there are bots in the stats but the way alot of the bots treat the site do not show up on the stats
  • Varine Varine:
    I want to build a filtration system for my 3d printer, and that shit is so much more complicated than I thought it would be
  • Varine Varine:
    Apparently ABS emits styrene particulates which can be like .2 micrometers, which idk if the VOC detectors I have can even catch that
  • Varine Varine:
    Anyway I need to get some of those sensors and two air pressure sensors installed before an after the filters, which I need to figure out how to calculate the necessary pressure for and I have yet to find anything that tells me how to actually do that, just the cfm ratings
  • Varine Varine:
    And then I have to set up an arduino board to read those sensors, which I also don't know very much about but I have a whole bunch of crash course things for that
  • Varine Varine:
    These sensors are also a lot more than I thought they would be. Like 5 to 10 each, idk why but I assumed they would be like 2 dollars
  • Varine Varine:
    Another issue I'm learning is that a lot of the air quality sensors don't work at very high ambient temperatures. I'm planning on heating this enclosure to like 60C or so, and that's the upper limit of their functionality
  • Varine Varine:
    Although I don't know if I need to actually actively heat it or just let the plate and hotend bring the ambient temp to whatever it will, but even then I need to figure out an exfiltration for hot air. I think I kind of know what to do but it's still fucking confusing
  • The Helper The Helper:
    Maybe you could find some of that information from AC tech - like how they detect freon and such
  • Varine Varine:
    That's mostly what I've been looking at
  • Varine Varine:
    I don't think I'm dealing with quite the same pressures though, at the very least its a significantly smaller system. For the time being I'm just going to put together a quick scrubby box though and hope it works good enough to not make my house toxic
  • Varine Varine:
    I mean I don't use this enough to pose any significant danger I don't think, but I would still rather not be throwing styrene all over the air
  • The Helper The Helper:
    New dessert added to recipes Southern Pecan Praline Cake https://www.thehelper.net/threads/recipe-southern-pecan-praline-cake.193555/
  • The Helper The Helper:
    Another bot invasion 493 members online most of them bots that do not show up on stats
  • Varine Varine:
    I'm looking at a solid 378 guests, but 3 members. Of which two are me and VSNES. The third is unlisted, which makes me think its a ghost.
    +1
  • The Helper The Helper:
    Some members choose invisibility mode
    +1
  • The Helper The Helper:
    I bitch about Xenforo sometimes but it really is full featured you just have to really know what you are doing to get the most out of it.
  • The Helper The Helper:
    It is just not easy to fix styles and customize but it definitely can be done
  • The Helper The Helper:
    I do know this - xenforo dropped the ball by not keeping the vbulletin reputation comments as a feature. The loss of the Reputation comments data when we switched to Xenforo really was the death knell for the site when it came to all the users that left. I know I missed it so much and I got way less interested in the site when that feature was gone and I run the site.
  • Blackveiled Blackveiled:
    People love rep, lol
    +1
  • The Helper The Helper:
    The recipe today is Sloppy Joe Casserole - one of my faves LOL https://www.thehelper.net/threads/sloppy-joe-casserole-with-manwich.193585/
  • The Helper The Helper:
    Decided to put up a healthier type recipe to mix it up - Honey Garlic Shrimp Stir-Fry https://www.thehelper.net/threads/recipe-honey-garlic-shrimp-stir-fry.193595/
  • The Helper The Helper:
    Here is another comfort food favorite - Million Dollar Casserole - https://www.thehelper.net/threads/recipe-million-dollar-casserole.193614/

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top