Ok I don't know how helpful this report will be but in my game I have macros that do different things on "Key Down" and "Key Ups". Like you hold the macro down and it toggles something on, and when you release it it is toggled off. They're not repeat macros, I guess is what I'm saying.
NOW TO THE PROBLEM: If a player presses the macro down, then an input() window appears, and they release the key, a key up event is never called. In my game input() and alert() menus can appear during gameplay for many reasons. My movement system uses a "Key Down" to toggle movement for that direction ON, and "Key Up" to toggle the movement OFF. Most games use the repeat macros, I don't. So if during movement an input() window appears for that player, when they release the key they don't stop moving, probably because focus has been moved off the map and ON TO the input() window when it pops up. So their character continues moving on its own til they get rid of the input() window and tap the directional key again.
Numbered Steps to Reproduce Problem:
See code snippet. Use an Interface to assign the 2 verbs to the same macro key, one when the key is pressed down, the other when it is released. I didn't test it but hopefully it is conceptually accurate to the problem I described. I believe the problem is when focus changes from the map to the input window, from when the input window pops up it changes the focus.
Code Snippet (if applicable) to Reproduce Problem:
//hold the key down until the random input() window appears. then release
mob/var/key_down=false
mob/verb
KeyDown()
key_down=true
KeyUp()
key_down=false
mob/proc/Key_checker_loop() spawn
while(src)
if(key_down) src<<"Key is still registered as being down"
spawn if(prob(1)) input(src,"hi","hi") in list("hi","cancel")
sleep(1)
mob/New()
Key_checker_loop()
..()
Does the problem occur:
Every time? Or how often? Yea
In other games? Idk
In other user accounts? Yes
On other computers? Yes
When does the problem NOT occur?
Idk
Did the problem NOT occur in any earlier versions? If so, what was the last version that worked? (Visit http://www.byond.com/download/build to download old versions for testing.)
Idk
Workarounds:
Idk
When a client is holding down a macro, then while they are holding it down an input() window appears for any reason, then they release that macro to respond to that input() window, a "key up" event for that macro is never called.