Der Tastenpatch nimmt den Wert -1, wenn keine Taste gedrückt wird. Sobald eine Aktion aus der Keylist ausgeführt wird (KeyDown, KeyUp, Cheat) verändert sich der Variablenwert KURZZEITIG auf die entsprechende Größe und geht dann wieder auf -1.
Ich bin mir nicht sicher. Vielleicht ist der 0.1s wait zu lange und bis zur Fork steht die Variable schon wieder auf -1. Ich hab das ganze jetzt nicht geprüft, aber bei mir steht das MidiTick und ein 0,0s wait in einem eigenen CommonEvent.
Zu dem fünfmal Aufrufen: Eigentlich müsste er es dann ja garnicht aufrufen... Ich weiß nur, dass, wenn man im Spiel F9 für das Variablenverändern drückt, alle Tastatureingaben gespeichert werden. Erst beim Zurückkehren zum Spiel werden diese Tasten vom Tastenpatch verwertet. Vielleicht ist es bei der Message genauso. Man drückt fünf Mal während die Message da ist. Während dessen sind die Tastatureingaben noch gespeichert. Drückt man Enter, verschwindet die Messagebox, der Tastenpatch geht weiter und reagiert erst jetzt auf das zweite Mal drücken, was man ja schon viel früher gemacht hat. Ich hab keine Ahnung ob das stimmt. Da aber keiner antwortet, ist es besser als nix. Jetzt kommen bestimmt noch andere Antworten.
...falls das doch stimmt, würd ich mal die Message-Einstellung so verändern, dass parallele Prozesse erlaubt sind ("Message Style..." --> "Allow other events to continue").