Ah okay, damit kann ich ja was anfangen.

Das Problem (weshalb auch nie eine Fehlermeldung kommt) liegt darin, dass während des Anzeigens einer Message keine Events im Hintergrund ablaufen dürfen. Darum wird dein PP nie ausgeführt. Ich habe jetzt die Möglichkeit eingebaut, einem Parallelen Prozess zu sagen, dass er auch während einer Message ausgeführt werden darf. Hierfür musst du als ersten Event-Command ein Comment mit folgendem Inhalt in das Event einfügen.
Code:
!RunWhileMessage
(Groß- und Kleinschreibung ist egal, das ! muss aber an den Anfang)

Ansonsten funktioniert mein Script zwar, ich habe aber gemerkt das dieses "Die nächste Message wird wieder angezeigt" etwas unflexibel ist. Evtl. willst du ja, das nicht nur eine sondern mehrere Textboxen geschlossen werden. Daher habe ich drei Methoden eingebaut:

Code:
# Messages werden ab jetzt nicht mehr angezeigt. Bereits angezeigte Messages
# werden ausgeblendet
$game_message.dont_display_messages
# Messages werden ab jetzt wieder angezeigt
$game_message.continue_display_messages
# blendet die aktuelle Message aus, zeigt die nächste aber wieder an
$game_message.break_current_message
Der Code ist hier (über Main einfügen):
Code:
module BreakTextDisplay
  def update
    super
    if $game_message.break_display_text
      @fiber &&= Fiber.new do
        @gold_window.close
        close_and_wait
        $game_message.visible = false
        @fiber = nil
      end
    end
  end
end
class Window_Message
  include BreakTextDisplay
end
class Game_Message
  attr_reader :break_display_text
  def dont_display_messages
    @break_display_text = :dont_display
    @texts.clear
  end
  def break_current_message
    @break_display_text = :break_current
    @texts.clear
  end
  def continue_display_messages
    @break_display_text = nil
  end
  alias add_new_messages_ifnot_break add
  def add *args
    return if @break_display_text == :dont_display
    if @break_display_text == :break_current
      @break_display_text = nil
    else
      add_new_messages_ifnot_break(*args)
    end
  end
end
class Game_Interpreter
  alias wait_for_message_unless_commented wait_for_message
  def wait_for_message
    wait_for_message_unless_commented if should_wait_for_message?
  end
  def should_wait_for_message?
    return @should_wait_for_message unless @should_wait_for_message.nil?
    return false if @list.nil?
    @should_wait_for_message = (@list.reduce("") {|txt, c| 
      if (c.code == 108 || c.code == 408) then (txt<<c.parameters.first) else break txt end
    }) !~ /\!RunWhileMessage/i
  end
end