- Joined
- May 22, 2013
- Messages
- 109
- Reaction score
- 7
- First Language
- English
- Primarily Uses
The "Button is Being Pressed" doesn't work like "trigger?", it would evaluate to true more times than desired. The bug I mentioned would still be present though, so it is a good idea to grab the fix.Couldn't this be handled by the conditional branch button is being pressed default?
Why? I thought you saw the "Input.trigger?" call since you said:Actually, I thought that's what the OP WAS using.
The problem is not because of a missing wait command or eventing error, it is a bug from the RTP scripts. (That's why I linked to the fix)Input.trigger? checks for a key being pressed down, not being held down. You'd be looking for Input.repeat?
No. Using a Wait command wouldn't fix the problem the OP is having because the event itself is not being processed every frame, as it should.You just need to add a Wait in there (when the condition is true) so it's not checking on every frame.
No. Parallel Process events are not processed every frame due to a bug in RPG Maker VX Ace's default scripts.The event IS being processed, but because the button is not being HIT every frame (as opposed to hit once and held down), the condition is not evaluating to true on every frame. There's only a single frame when it will actually detect it. Hence the need to press several times.
p Graphics.frame_count
def update super check_event_trigger_auto return unless @interpreter @interpreter.setup(@list, @event.id) unless @interpreter.running? @interpreter.update end
def running? @fiber != nil end
def run wait_for_message while @list[@index] do execute_command @index += 1 end Fiber.yield @fiber = nil end
def update @fiber.resume if @fiber end
# Parallel Process Events Execution Bug Fix.# Version 1.0.0# 09/02/15 - DD/MM/YY# www.rpgmakersource.com# forums.rpgmakersource.comclass Game_Interpreter # Overwrites default method with the fixed version. def run wait_for_message while @list[@index] do execute_command @index += 1 end @fiber = nil Fiber.yield endend
No. Parallel Process events are not processed every frame due to a bug in RPG Maker VX Ace's default scripts.
Here's some of the topic where the problem is explained and a solution is provided:
How to corroborate the problem?
The easier way is to make a Parallel Process event report the game's frame count. To do that, simply create a Parallel Process event and add a Call Script command on it with the following:
p Graphics.frame_countWhat causes the bug?
def update super check_event_trigger_auto return unless @interpreter @interpreter.setup(@list, @event.id) unless @interpreter.running? @interpreter.update end
def running? @fiber != nil end
def run wait_for_message while @list[@index] do execute_command @index += 1 end Fiber.yield @fiber = nil end
def update @fiber.resume if @fiber end
# Parallel Process Events Execution Bug Fix.# Version 1.0.0# 09/02/15 - DD/MM/YY# www.rpgmakersource.com# forums.rpgmakersource.comclass Game_Interpreter # Overwrites default method with the fixed version. def run wait_for_message while @list[@index] do execute_command @index += 1 end @fiber = nil Fiber.yield endend
Great! You're welcome :3 (You might want to post in the topic I linked so it comes up again and more people see it, since it seems it is an unkown/ignored problem.)Thanks you code snippet worked like a charm thanks a lot. I will close this topic now.
