Abilty Disconnecting Owner of Casting Unit

Pyroflame

New Member
Reaction score
4
This is a very strange problem I have encountered. Basically, what is happening, a triggered ability is disconnecting the owner of the casting unit on Battle.net. This of course does not occur when using the ability while not on Battle.net. Here are my triggers:

Trigger:
  • Break Down Start
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Break Down (real)
    • Actions
      • Trigger - Turn on Break Down Death Check <gen>
      • Unit - Hide ThePlagueHero
      • Unit - Pause ThePlagueHero
      • Set TempPoint = (Position of (Triggering unit))
      • For each (Integer A) from 1 to ((2 + (2 x (Level of Break Down (real) for (Triggering unit)))) + AbsorbedZombies), do (Actions)
        • Loop - Actions
          • Unit - Create 1 Zombie for (Owner of (Triggering unit)) at TempPoint facing (Facing of (Triggering unit)) degrees
          • Set TempUnit = (Last created unit)
          • Unit - Add a 31.00 second Generic expiration timer to TempUnit
          • Unit - Add Zombie Commands to TempUnit
          • Unit Group - Add TempUnit to BreakDownZombies
          • Unit - Create 1 Dummy (Illusion) for (Owner of (Triggering unit)) at TempPoint facing Default building facing degrees
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
          • Unit - Add Break Down to (Last created unit)
          • Unit - Set level of Break Down for (Last created unit) to (Level of Break Down (real) for (Triggering unit))
          • Unit - Order (Last created unit) to Undead Necromancer - Unholy Frenzy TempUnit
      • Custom script: call RemoveLocation(udg_TempPoint)
      • Selection - Select BreakDownZombies for (Owner of (Triggering unit))
      • Wait 30.00 seconds
      • Trigger - Turn off Break Down Death Check <gen>
      • Set TempPoint = (Position of (Random unit from BreakDownZombies))
      • Unit - Move ThePlagueHero instantly to TempPoint
      • Unit - Unhide ThePlagueHero
      • Unit - Unpause ThePlagueHero
      • Selection - Add ThePlagueHero to selection for Player 9 (Gray)
      • Unit Group - Pick every unit in BreakDownZombies and do (Unit - Remove (Picked unit) from the game)
      • Custom script: call RemoveLocation(udg_TempPoint)


ThePlagueHero is a unit variable that is unchanged after it is defined to be the hero that gray uses.

Break Down (real) is the ability name.

Break Down is the buff that is cast onto the zombies created with the trigger when Break Down (real) is cast. It is based off of Unholy Frenzy and is nothing more than just a "dummy buff", all damaging fields of the ability are set to 0.

AbsorbedZombies is an integer variable that increases on the last trigger, it is how many zombies ThePlagueHero has absorbed with.

BreakDownZombies is the unit group the created zombie is put into to test if the unit group ever becomes empty.

The trigger that this trigger turns on is this:

Trigger:
  • Break Down Death Check
    • Events
      • Unit - A unit Dies
    • Conditions
      • ((Triggering unit) is in BreakDownZombies) Equal to True
    • Actions
      • Unit Group - Remove (Triggering unit) from BreakDownZombies
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (BreakDownZombies is empty) Equal to True
        • Then - Actions
          • Set TempPoint = (Position of (Triggering unit))
          • Unit - Move ThePlagueHero instantly to TempPoint
          • Unit - Unhide ThePlagueHero
          • Unit - Unpause ThePlagueHero
          • Unit - Kill ThePlagueHero
          • Custom script: call RemoveLocation(udg_TempPoint)
        • Else - Actions


If you can't tell yet, the ability I have created is somewhat of a clone of the Pandaerian Brewmaseter's level 6 ultimate in a melee game of warcraft, Fire, Earth, and Storm. I had to trigger it however, because mine is dynamic and the units it summons must be able to be increased by the variable AbsorbedZombies.

AbsorbedZombies is increased by the Absorb Zombie cast trigger here:

Trigger:
  • Absorb Zombie
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Absorb Zombie (real)
    • Actions
      • Set AbsorbUP = (AbsorbUP + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • AbsorbUP Equal to 2
        • Then - Actions
          • Set AbsorbedZombies = (AbsorbedZombies + 1)
          • Set AbsorbUP = 0
        • Else - Actions
      • Set AbsorbedZombie = (Target unit of ability being cast)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Unit-type of AbsorbedZombie) Equal to Zombie
        • Then - Actions
          • Unit - Pause AbsorbedZombie
          • Wait 0.45 seconds
          • Set TempReal = (Life of AbsorbedZombie)
          • Unit - Set life of ThePlagueHero to ((Life of ThePlagueHero) + (TempReal x (Real((Level of Absorb Zombie (real) for ThePlagueHero)))))
          • Unit - Unpause AbsorbedZombie
          • Unit - Explode AbsorbedZombie
          • Hero - Modify Strength of (Triggering unit): Add (3 x (Level of Absorb Zombie (real) for (Triggering unit)))
          • Hero - Modify Agility of (Triggering unit): Add (3 x (Level of Absorb Zombie (real) for (Triggering unit)))
          • Hero - Modify Intelligence of (Triggering unit): Add (3 x (Level of Absorb Zombie (real) for (Triggering unit)))
          • Wait 1.00 seconds
          • Animation - Play ThePlagueHero's stand animation
        • Else - Actions
          • Game - Display to (Player group((Owner of (Triggering unit)))) the text: The Abomination can...
          • Unit - Order (Triggering unit) to Stop


This Break Down spell works amazing well, how it should, when not connected to Battle.net. The unit casts it, the trigger runs, everything works as it is supposed to. However, when connected to Battle.net, when the owner of the unit casts the ability and then he gets disconnected from the game (not a crash, literally a disconnect). The trigger still fires, as it would when not connected to Battle.net, but it just disconnects the owner of the casting unit.

The caster can disconnect even before using Absorb Zombie to increased the AbsorbedZombie variable.

Definitely plus reputation to the one that can tell me why this trigger is disconnecting the owner of the casting unit. Thank you very much.
 

Rushhour

New Member
Reaction score
46
Hm there is nothing ovious, but you should test some things:
Selecting and deselecting units is done locally, that means it is different for every player. But when refering to selected units you need to syncronize the selections. The GUI-functions do so.
But this could be somehow a problem. Dunno :/

I have no experience with hiding and unhiding units, but you should make sure that you never remove a hidden unit directly, but kill it before (or unhide).

Displaying text is also local, but there is no problem with these functions to my knowledge that could cause a desync.

Try to edit the show/hide unit actions and the selection actions

Ok a last thing "could" be the waits, they aren't 100% accurate and maybe this causes a problem? For the 30 second wait you can easily use a timer and a trigger that catches this expiring timer.

Btw: Selection - Add ThePlagueHero to selection for Player 9 (Gray)
Why always Player 9 ? Is this wanted? ;D
 

Nenad

~Choco Coronet~ Omnomnom
Reaction score
137
Instead of Hiding the unit, you can try and Cache it (save it) and then remove it from the game, see if it works x)
 

Pyroflame

New Member
Reaction score
4
Hm there is nothing ovious, but you should test some things:
Selecting and deselecting units is done locally, that means it is different for every player. But when refering to selected units you need to synchronize the selections. The GUI-functions do so.
But this could be somehow a problem. Dunno :/

I have no experience with hiding and unhiding units, but you should make sure that you never remove a hidden unit directly, but kill it before (or unhide).

Displaying text is also local, but there is no problem with these functions to my knowledge that could cause a desync.

Try to edit the show/hide unit actions and the selection actions

Ok a last thing "could" be the waits, they aren't 100% accurate and maybe this causes a problem? For the 30 second wait you can easily use a timer and a trigger that catches this expiring timer.

Btw: Selection - Add ThePlagueHero to selection for Player 9 (Gray)
Why always Player 9 ? Is this wanted? ;D

Synchronize the selecting and deselecting of units? I'm sorry, but I'm not sure what you mean by that.

I was always unhiding the unit before killing it 30 seconds later, but yes, I didn't know that would be a possible problem beforehand.

The text is only displayed on the Absorb Zombie trigger, not the first Break Down trigger which when ran is disconnecting the owner of the casting unit.

I'll try removing the hide/unhide and selections actions and see what happens. It is only disconnecting the owner of the casting unit, like, Gray can share control with you, and you cast it, and it will disconnect Gray.

I'm not really worried about the waits at the moment.

And yes, that is always intended, ThePlagueHero is always Gray's hero.

Thanks for your post!

Instead of Hiding the unit, you can try and Cache it (save it) and then remove it from the game, see if it works x)

Sure, if that's what is causing the disconnecting, I'll be sure to look into doing that.
 

Pyroflame

New Member
Reaction score
4
Good news, I disabled the hide/unhide functions, and the selection functions, and no disconnect! I'll going to rienstate the hide/unhide but keep the selection function disabled still and see what happens from there.

EDIT: Fixed.

Removing Selection - Select BreakDownZombies for (Owner of (Triggering unit)) fixed the problem. Gray no longer disconnects. Instead I used Selection - Add TempUnit to selection for Player 9 (Gray) for when the unit is created so that it is still the same effect for the most part.

+Reputation for the both of you.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      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