Erst einmal vielen Dank! Ich kann mir schon denken und kann auf alle Fälle verstehen, dass das die Wahrscheinlichkeit senkt; vor allem, weil man sich ja da erstmal anschauen muss, was dieses Script eigentlich so gut -- was ich übrigens selbst nur in sehr begrenztem Maße verstehe (wie begrenzt, wird sich gleich noch offenbaren ^^").
Die Entfernung kann ich beispielsweise mit Event-Scriptbefehlen aus ForeverZer0s Script (Code im Spoiler) abfragen.
Was ich beispielsweise bisher gebastelt habe, sieht so aus:
Das ActionButton-Event:
# Variable 4 = ID dieses Events
Script: $game_variables[4] = @event_id
# Aktiviere den dazugehörigen Parallel Process
# (Befehl aus einem Utility Script)
Script: set_self_switch('A','On',3)
# Message Box über diesem Event, asynchronous
# (die Message wird angezeigt, ohne die Steuerung zu blockieren).
# Warte nach dem letzten Zeichen eine Sekunde (\|\|) bevor die Box
# geschlossen wird (\^)
Text: \p[,async]Tenny mucho mucho Deniro in su trucky-trailer?\|\|\^
Das dazugehörige Parallel Process Event macht Folgendes:
# Prüfe, ob Player noch in der Nähe ist
# (X-Achse: Distanz zu Event mit gespeicherter ID = 2?)
# Wenn nicht, zeige neue Message Box.
# Deaktiviere Parallel Process.
@>Conditional Branch: Script: x_dist?(2, $game_variables[4])
@>
: Else
@>Text: \p[kill,async]Lauf nicht weg!\|\|\^
@>Control Self Switch: A =OFF
: Branch End
# Prüfe, ob Player noch in der Nähe ist
# (Y-Achse: Distanz zu Event mit gespeicherter ID = 2?)
# Wenn nicht, zeige neue Message Box.
# Deaktiviere Parallel Process.
@>Conditional Branch: Script: y_dist?(2, $game_variables[4])
@>
: Else
@>Text: \p[kill,async]Lauf nicht weg!\|\|\^
@>Control Self Switch: A =OFF
: Branch End
Das Argument "kill" im \p-Tag ruft die Event ID aus Variable 4 ab, sodass die neue Message Box den aktuell über dem entsprechenden Event aktuell angezeigten Text abbricht und ersetzt. Wenn ich nur "\p[kill,async]" angebe, liest das Hermes-Script eine leere Message und löscht nur den über dem entsprechenden Event aktuell angezeigten Text.
Das läuft also im Prinzip genau so, wie ich es möchte (wobei meine Frage trotzdem noch ist, ob man das nicht galanter lösen könnte). Aber mit einer sehr entscheidenden Einschränkung:
Ich kann so nur eine einzige Message über dem Event ausgeben, weil der \p[,async]-Tag dazu führt, dass das Event automatisch die darauffolgende Nachricht ebenfalls ausliest, die dann automatisch ihren Vorgänger löscht. Außerdem muss ich die Messages so automatisch enden lassen, der Spieler kann die Message-Box also nicht durch Enter-Tastendruck schließen. Wenn es also bei dieser Lösung bleiben würde -- was nicht schlimm wär --, bräuchte ich die Möglichkeit, in einer async-Message am Ende einen Tastendruck zu verlangen, mit dem dann erst die nächste Message aufgerufen wird.
Zitat von Ghabry
Damit man noch laufen kann wenn eine Message angezeigt wird, würde bei nem Standard-Message-Script folgendes reichen:
Eventuell klappts auhc bei dem Custom script.
In Game_Player update ersetze die unless moving? Zeile mit
unless moving? or ($game_system.map_interpreter.running? and not $game_temp.message_window_showing) or
@move_route_forcing
Das "whitelisted" den Fall "interpreter läuft UND message window ist sichtbar".
...
Das bedeutet also, ich würde für prinzipiell jede Message sagen, dass sie die Steuerung nicht blockieren soll? Kann ich das auch situativ, also bspw. mit einem Script-Befehl im Event machen?
Und: Der Effekt wäre dann, dass der Player noch bewegt werden kann; wie ist das mit dem Enter-Drücken am Ende der Nachricht? Könnte ich, als Spieler, rumlaufen und gleichzeitig durch Enterdrücken die Message Box schließen? Ich werde es bei Gelegenheit einfach mal ausprobieren, aber ich erwarte fast, dass das wie immer wird: Ich mach irgendwas kaputt und brauche Stunden, um herauszufinden, wie ich's wieder baue, sodass ich dann erst überhaupt testen kann.
Du merkst vielleicht, mein Scripting-Wissen ist massiv eingeschränkt; ich bin schon geschmeichelt, dass du mir zutraust zu wissen, was der Unterschied zwischen euklidisch und Manhattan ist. ^^"
Vor allem auch deshalb schonmal und nochmal: Vielen Dank!
--
از جمادی مُردم و نامی شدم — وز نما مُردم بهحیوان سرزدم / مُردم از حیوانی و آدم شدم — پس چه ترسم؟ کی ز مردن کم شدم؟
حمله دیگر بمیرم از بشر — تا برآرم از ملائک بال و پر / وز ملک هم بایدم جستن ز جو — کل شیء هالک الا وجهه
بار دیگر از ملک پران شوم — آنچه اندر وهم ناید آن شوم / پس عدم گردم عدم چو ارغنون — گویدم کانا الیه راجعون