Is this broken or am I crazy? [D.va flight]

I have a script to make D.va fly indefinitely while Shift is held down:

variables
{
	player:
		2: CoolingOff
		3: Diva
}

rule("D.va - Booster Flight / UNSTABLE")
{
	event
	{
		Ongoing - Each Player;
		All;
		D.Va;
	}

	conditions
	{
		Is Game In Progress == True;
		Is In Alternate Form(Event Player) == False;
		Is Button Held(Event Player, Button(Ability 1)) == True;
		Is Using Ability 1(Event Player) == False;
		Event Player.Diva > 0;
		Event Player.CoolingOff == False;
	}

	actions
	{
		Stop Holding Button(Event Player, Button(Ability 1));
		Start Holding Button(Event Player, Button(Ability 1));
	}
}
  • Diva = A “fuel” bar. Basically meaning keep doing this while you have fuel.
  • CoolingOff = If your fuel bar went completely empty, you go into a 10 second overheat state where you can’t use Shift. This is true while you are overheated.
    (I set Diva to 100 and CoolingOff to False at the start of a game.)

The thing is… Whenever I use Shift on D.va it will never re-trigger the boosters on the first button press hold. So if you just spawned, you hold down Shift, you will do 1 booster dash and afterwards fall to the ground. If you press it a second time and hold it down at this point, everything works beautifully where you continually fly until your fuel runs out.

Everything will work until you re-enter your mech again. Then the same thing will happen, where your first booster use will not continue to trigger until you press and hold from the second time onward. From what I tested, it works correctly indefinitely after the first booster use per mech.

I’ve been trying to fix this for a good while now and at this point I’m about to claw my eyes out… Am I crazy or is Workshop broken here?

Try adding this action between Stop Holding Button and Start Holding Button:

Wait Until(Is Using Ability 1(Event Player) == False, 99999)

Also,

Workshop could be broken since Blizzard doesn’t bother to fix any bug.


Edit: Never mind, it still doesn’t work after spawning. Sorry.

try adding a small wait from 0.016 to 0.1 seconds, that usually fix’s stuff like this. (so it’ll wait until its not using it when it should, then an slight extra amount of time, hopefully enough to prevent overwatch from braking because of it triggering again too soon)

This makes no change, the issue still persists on the first boost after entering a mech and works exactly the same (With the very slight added delay) afterwards.

thats a shame… i would try to find a solution but i have no wifi for the next day or 2 so cant help sorry.

1 Like