Weird Trigger Glitch

jhnam95

Active Member
Reaction score
12
I have a trigger for reload that silences the unit when it is cast. But for some reason, it only silences when the game first starts before I move my unit. If I move my unit, it doesnt get silenced anymore. If I leave it at where it spawned, it will get silenced every time it reloads. Any ideas?

Here's the trigger:

Trigger:
  • Reload
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Reload
    • Actions
      • Player - Set (Owner of (Casting unit)) Current lumber to (((Owner of (Triggering unit)) Current lumber) - (Integer(((Max mana of (Triggering unit)) - (Mana of (Triggering unit))))))
      • Unit - Create 1 Universal Dummy for Player 12 (Brown) at (Position of (Triggering unit)) facing Default building facing degrees
      • Unit - Add Reload Silence to (Last created unit)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Agility of (Casting unit) (Include bonuses)) Greater than 100
        • Then - Actions
          • Unit - Set level of Reload Silence for (Last created unit) to 100
        • Else - Actions
          • Unit - Set level of Reload Silence for (Last created unit) to (Agility of (Casting unit) (Include bonuses))
      • Unit - Order (Last created unit) to Neutral Fire Lord - Soul Burn (Triggering unit)
      • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Owner of (Casting unit)) Current lumber) Greater than or equal to (Integer((Mana of (Casting unit))))
        • Then - Actions
          • Unit - Set mana of (Casting unit) to 100.00%
        • Else - Actions
          • Unit - Set mana of (Casting unit) to ((Mana of (Triggering unit)) + (Real(((Triggering player) Current lumber))))


Mana is current ammo, lumber is spare ammo, and the level of silence determines how long the unit is silenced based on the unit's agility up to 100 agility.
 

Attachments

  • Reload Bug Test Map.w3x
    22.1 KB · Views: 198

tommerbob

Minecraft. :D
Reaction score
110
Well first of all, I didn't read the whole trigger carefully, but I did notice one thing.

(casting unit) and (triggering unit) are identical when responding to that trigger event. They are interchangeable. That might be your problem.
 

Weep

Godspeed to the sound of the pounding
Reaction score
400
Moreover, if you order a unit to cast in a trigger, Casting Unit will be changed to that unit - so, in the bottom part of that trigger, it's checking for the lumber of Player 12 (the owner of the dummy), not of the Triggering Unit. Casting Unit is buggy like that, so Triggering Unit is what you should use.
 

Endless_Trev

New Member
Reaction score
5
also I dont think event response - triggering player works for a unit event, rather you should use owner of triggering unit
 

jhnam95

Active Member
Reaction score
12
Silence range is 99999
I changed all the "casting unit" to "triggering unit" in the trigger. It made no difference. The silence still only works if my unit hasn't moved yet.
 

tommerbob

Minecraft. :D
Reaction score
110
Ok sorry it took me so long to get back to you. Been busy this week. Anyway, I looked at the map, and frankly I have no idea why this problem is happening. I double checked everything in the trigger and object editor, and everything looks fine to me.

Have you tried using just the normal silence spell, and changing the data? Would that work?
 

tommerbob

Minecraft. :D
Reaction score
110
I'm guessing it might be something to do with the dummy caster. But I don't know. :/

Also, just FYI, make sure you remove the point location so that it doesn't leak.

Trigger:
  • Set ReloadLoc = position of (triggering unit)
    • Create 1 Universal Dummy for... at ReloadLoc
    • ....
    • custom script: call RemoveLocation(udg_ReloadLoc)
 

HydraRancher

Truth begins in lies
Reaction score
197
1) Why do you make it cast Soul Burn?

2) Try using instead of your dummy Zone Indicator (Custom Campaign) or something.

3) You find it under Neutral Passive > Campaign > Buildings. Be aware it has 0 mana, so make sure silence has 0 mana cost too.
 

jhnam95

Active Member
Reaction score
12
I really don't see what kind of difference a udg would make... I'll give it a try though.

I don't see the difference between using zone indicator and a dummy unit.
 

tommerbob

Minecraft. :D
Reaction score
110
Change your trigger to the following to remove the memory leak. It doesn't fix your problem, unfortunately, but once you get it working, it won't leak anymore.

Trigger:
  • Reload
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Reload
    • Actions
      • Player - Set (Owner of (Casting unit)) Current lumber to (((Owner of (Triggering unit)) Current lumber) - (Integer(((Max mana of (Triggering unit)) - (Mana of (Triggering unit))))))
      • Set ReloadPoint = (Position of (Triggering unit))
      • Unit - Create 1 Universal Dummy for Player 12 (Brown) at ReloadPoint facing Default building facing degrees
      • Unit - Add Reload Silence to (Last created unit)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Agility of (Casting unit) (Include bonuses)) Greater than 100
        • Then - Actions
          • Unit - Set level of Reload Silence for (Last created unit) to 100
        • Else - Actions
          • Unit - Set level of Reload Silence for (Last created unit) to (Agility of (Casting unit) (Include bonuses))
      • Unit - Order (Last created unit) to Neutral Fire Lord - Soul Burn (Triggering unit)
      • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • ((Owner of (Casting unit)) Current lumber) Greater than or equal to (Integer((Mana of (Casting unit))))
        • Then - Actions
          • Unit - Set mana of (Casting unit) to 100.00%
        • Else - Actions
          • Unit - Set mana of (Casting unit) to ((Mana of (Triggering unit)) + (Real(((Triggering player) Current lumber))))
      • custom script: call RemoveLocation(udg_ReloadPoint)
 
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