Just another Add Ability to Unit through Trigger post

Bitterstone

New Member
Reaction score
1
Hey, gonna make this short.

Is it possible to add an ability to a unit using triggers?

I'm currently using this Trigger:

Code:
Time Warp
    Events
        Unit - A unit Finishes casting an ability

    Conditions
        (Ability being cast) Equal to Time Warp 

    Actions

        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                TimeWarpBOOLEAN Equal to False

            Then - Actions
                Set TimeWarpBOOLEAN = True
                Game - Display to (All players) the text: TimeWarp True
                Unit - Remove Time Warp  from (Casting unit)
                Unit - Add Time Warp (Aura) to (Casting unit)

                Wait 2.00 seconds

                Unit - Remove Time Warp (Aura) from (Casting unit)
                Unit - Add Time Warp  to (Casting unit)
                Unit - Reset ability cooldowns for (Casting unit)

                Wait 1.00 seconds

                Unit - Order (Casting unit) to Human Mountain King - Thunder Clap

            Else - Actions

        Set TimeWarpBOOLEAN = False

        Game - Display to (All players) the text: TimeWarp False

A little bit if explanation of the trigger, first of all the prompts is just for debugging.
The Time Warp ability works as a dummy for replacing the actual Time Warp (Aura) ability wich has a slow aura. This step is made because monsters will continuosly spawn and I want all the monsters to get this slow buff for the set amount of time.
The first Wait action is to determine the length of the effect of the Aura (it's supposed to be around 60 seconds, but as for now its 2 seconds for debugging).
The second Wait action simply waits for the global cooldown (if there is any, i dont know, just a precaution matter) and finally the trigger casts the dummy spell Time Warp (wich is based on thunderclap) again to trigger it's cooldown.

Now, what happens is:

1. Dummy spell Time Warp casts normally when I hit the button.
2. The Boolean variable switches to true and the prompt comes out as intended.
3. Dummy spell Time Warp dissapears.
4. Time Warp (Aura) does NOT appear.
5. Waits 2 seconds.
6. Does NOT remove Time Warp (Aura) because it was never added.
7. Does NOT add dummy spell Time Warp.
8. Waits 1 second.
9. Casts Thunder Clap, wich the unit does not possess.
10. Sets Boolean variable back to false and prompts normally.


Also, been quite a while since I was active here, don't remember how to put the trigger code into that a trigger box-thing...

Hope I make myself somewhat clear of what the problem is, if not, feel free to ask.

Yours faithfully, Bitterstone.
 

Smitty

Member
Reaction score
20
The unit clearly possesses some ability based on thunderclap. Also you forgot to set the level for warp aura, which I believe may be the issue you have here.
 

Bitterstone

New Member
Reaction score
1
The unit clearly possesses some ability based on thunderclap. Also you forgot to set the level for warp aura, which I believe may be the issue you have here.

Added:
Unit - Set level of Time Warp (Aura) for (Casting unit) to 1
but with no success.

Also, i've reworked step 10, it no longer casts Thunder Clap, but just for your clarifacation, the unit was casting Thunder Clap, the ordinary Thunder Clap ability, not my remodelled one. But no matter, i've solved step 10.
Still, the main issue remains.

Thanks for input though.
 

Smitty

Member
Reaction score
20
Hmm, the abilities are hero/non-hero as needed I assume? Could there be an issue with animations? ie. the unit is given an order before its animation finishes? Try using debug messages.
 

Bitterstone

New Member
Reaction score
1
Hmm, the abilities are hero/non-hero as needed I assume? Could there be an issue with animations? ie. the unit is given an order before its animation finishes? Try using debug messages.

Yes, the unit is classified as a unit, not a hero. The abilities are classified as unit specific abilities, not hero abilities.
Also, my debug messages show wether or not the trigger is run through completely, wich it is.

Seems like the task at hand is abit more complicated than I first thought it would be...

Anyway, thanks for showing interest in trying to solve my little problem. :)
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
The wait kills (casting unit).

After a wait in your triggers variables like (XXX unit) where XXX is not "Triggering" will be lost.
(Triggering Unit) is fine though.

Code:
Time Warp
    Events
        Unit - A unit Finishes casting an ability
    Conditions
        (Ability being cast) Equal to Time Warp 
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                TimeWarpBOOLEAN Equal to False
            Then - Actions
                Set TimeWarpBOOLEAN = True
                Unit - Remove Time Warp  from (Triggering unit)
                Unit - Add Time Warp (Aura) to (Triggering unit)
                Wait 2.00 seconds
                Unit - Remove Time Warp (Aura) from (Triggering unit)
                Unit - Add Time Warp  to (Casting unit)
                Unit - Reset ability cooldowns for (Triggering unit)
                Wait 1.00 seconds
                Unit - Order (Triggering unit) to Human Mountain King - Thunder Clap
            Else - Actions
        Set TimeWarpBOOLEAN = False
        Game - Display to (All players) the text: TimeWarp False
Change your code to this and voila! it should work fine.
 

Bitterstone

New Member
Reaction score
1
The wait kills (casting unit).

After a wait in your triggers variables like (XXX unit) where XXX is not "Triggering" will be lost.
(Triggering Unit) is fine though.

Code:
Time Warp
    Events
        Unit - A unit Finishes casting an ability
    Conditions
        (Ability being cast) Equal to Time Warp 
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                TimeWarpBOOLEAN Equal to False
            Then - Actions
                Set TimeWarpBOOLEAN = True
                Unit - Remove Time Warp  from (Triggering unit)
                Unit - Add Time Warp (Aura) to (Triggering unit)
                Wait 2.00 seconds
                Unit - Remove Time Warp (Aura) from (Triggering unit)
                Unit - Add Time Warp  to (Casting unit)
                Unit - Reset ability cooldowns for (Triggering unit)
                Wait 1.00 seconds
                Unit - Order (Triggering unit) to Human Mountain King - Thunder Clap
            Else - Actions
        Set TimeWarpBOOLEAN = False
        Game - Display to (All players) the text: TimeWarp False
Change your code to this and voila! it should work fine.



Thank you very much for this! +rep for you. :)
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top