ID:1767725
 
Resolved
Popups did not properly reset the keyboard by calling the appropriate key-up verbs.
BYOND Version:507
Operating System:Windows 7 Home Premium 64-bit
Web Browser:Firefox 35.0
Applies to:Webclient
Status: Resolved (507.1276)

This issue has been resolved.
.
Movement is really a separate issue and should have its own report. I'd need detail to know what was going on though.

I don't use a @byond.com email address. My address is [email protected], so you should resend the file there.

I strongly recommend however that you isolate alert() to tell if it's the issue directly or not. Using the webclient will not make any difference when it comes to Bump() behavior, which is strictly server-side.
Sounds to me like the issue is with your macros and movement, rather than alert(). Since I won't be able to get to this right away, I think you need to put in some debugging to narrow down what the actual problem is. Take a look at when your movement routines are being called (and how) in DS and in the webclient, and when Bump() is called.

Again, the webclient will have zero impact on Bump() directly, but it could have an impact on how movement keys in your game are interpreted. Even then, the webclient has been tested quite a lot with macros in many different projects, so I wonder if your movement system is doing something different than most others I've seen.
Cloud Magic wrote:
There isn't an issue with my macros, I have customized macros that work properly in Dream Maker but improperly in the Web Client. My Macros are set so that when I hold

->
^

I have an EAST direction when going northwest in the dream maker client, regardless if I hit the two keys at the same time or 1 second apart from one another.

If I hit NORTH first in the web client, my icon_state will have the NORTH state if I'm hitting the EAST arrow 1 second after. Otherwise, it functions normally.

Two things: First, Dream Maker is the editor; Dream Seeker plays the games. Second, I don't really follow what you're saying about the arrow keys. Is your movement system setup so that you press North and East independently and it combines to move northeast?

The error is that when bump is called it goes into a loop. That's what it is outputting when I bump into the mob. That's what I was trying to tell you to test out, walk the mob into the green NPC and see that Bump() is called not once but endless times. Then run it in Dream Maker, it will only be called once.

My movement code is in Movements.dmi and implements forum_account's keyboard lib.

A .dmi file is an icon file, not code; that's .dm. The webclient has been tested with FA's lib, but when I can I'll take a look and see what's going on in your code.

Offhand, I'm wondering if maybe the problem is that the key is not registering as having released. This is something you should be able to test on your own before I check it out.
I did take a quick look at your code, and from the looks of it I think I'm right about my hunch. This has nothing to do with alert(), and everything to do with macros. I still recommend you add debugging so you can see if the keys have been properly released or not, because that's the place to look.
Cloud Magic wrote:
But why would this bug only occur in the web client? Is something wrong with macros in 5.7 possibly?

--Not sure if your post is saying you confirm or deny the possibility of a BYOND bug

There's almost certainly a bug involved. My concern is narrowing down the actual cause. I believe the true cause is that when an alert appears--or probably any other prompt--key releases aren't registering properly. I know DS can clear the key map outright; JavaScript doesn't have the option of checking the current key-down state, but it still should be able to register the key-up.

I added debugs lummox so you can observe what the issue is because I'm not finding it exactly, it looks like when movement keys are called and I bump the NPC mob, the bump output is still being outputted tons of times.

Keys are outputted when both pressed and held. Bump is outputted. For some reason when the keys are mashed at the character he falls into a bump loop even though the keys are stopped being held, is what I've observed. THIS MEANS THAT movement most likely is falling into a loop in the web client with step() when it is used to traverse multiple directions at once The direction of the key pressed is outputted once, and it is also outputted over and over when the key is held. When Bump() is called "Bump outputted" displays.

I would recommend also adding output for when a key is released. I'll need to do that when I get to looking at this issue anyway (I'm on site work for the moment), but if you can confirm my theory it would help a lot.

If I'm wasting your time, terribly sorry.

Nope, you're not. I don't have time to get to this right away so I'm just hoping we can get more specific info so I'll know better where to look when the time comes.
Lummox JR resolved issue with message:
Popups did not properly reset the keyboard by calling the appropriate key-up verbs.