Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sehr lange Dialoge irgendwie "abkürzen"



Norpoleon
11.02.2016, 23:09
Also, ich muss für ein Projekt irgendwie die Möglichkeit einbauen, sehr lange Dialoge abzukürzen.

Mir schwebt vor, nach jeder Textbox eine Auswahl einzubauen, ob man den Dialog weiterverfolgen oder ihn abbrechen will.
Wie mache ich das am geschicktesten & mit relativ wenig Aufwand? (:

Ich verwende den 2003er RPG Maker.

BDraw
11.02.2016, 23:27
Du könntest in einem separaten parallelen Prozess eine Tastenabfrage laufen lassen, die bei Tastendruck einen Switch aktiviert. Den fragst du dann nach jeder Textbox ab und wenn er an ist, springst du ans Ende deines Dialogs (was bspw. mit Hilfe eines Labels am Ende ginge). Die Abfrage kannst du ja in einem Commen Event machen, dann musst du nur das CE jedes mal Callen anstatt die ganze Abfrage zu setzen.

Das setzt natürlich voraus, dass du vorher bei den Message Optionen einstellst, dass Events weiterlaufen, während eine Textbox aktiv ist.

Nicht getestet, müsste aber eigentlich funktionieren.

Eddy131
11.02.2016, 23:28
Das einzige das mir einfällt (hatte ich dir ja schon so ähnlich per PN geschickt) ist eine Auswahl nach jedem Textfenster einzufügen mit den beiden Optionen weiter auf "Enter" und abbrechen auf "Esc".
Vorteil wäre, dass man die Dialoge immer noch ganz normal weiterklicken kann wie gehabt und das es recht schnell zu implementieren ist, einfach einmal erstellen und dann überall nach einem Dialogfenster per Strg+C einfügen.
Man müsste nur überprüfen, wie das aussehen würde, wenn da immer oben ein Dialogfenster mit der Auswahl angezeigt wird.
Noch ein Vorteil daran wäre, dass man immer vor Augen hat, dass man die langen Texte jederzeit überspringen kann.
Problem: So könnte man aber auch wichtige Stellen verpassen, weil man denkt, dass da nichts interessantes mehr kommt.
Daher am besten Handlungswichtige Dialoge davon ausnehmen, so mein Vorschlag.

Kelven
12.02.2016, 08:35
Warum möchtest du denn eine Möglichkeit zum Überspringen einbauen?


Das einzige das mir einfällt (hatte ich dir ja schon so ähnlich per PN geschickt) ist eine Auswahl nach jedem Textfenster einzufügen mit den beiden Optionen weiter auf "Enter" und abbrechen auf "Esc".
Das würde mich mehr stören als jeder Mammutdialog. Das reißt einen ja nach jedem Satz aus dem Spiel raus.

torteloni
12.02.2016, 13:08
Das setzt natürlich voraus, dass du vorher bei den Message Optionen einstellst, dass Events weiterlaufen, während eine Textbox aktiv ist.

Müsste man ja nicht mal machen. Während eines 0.0s wait zwischen den Textboxen dürften doch Events weiterlaufen.

BDraw
12.02.2016, 13:24
Es geht darum, dass der Spieler ja auch Gelegenheit haben muss, die Taste zu drücken. Das Wait hilft da nicht - der Spieler müsste dann genau dieses 0.0 abpassen, damit der Tastendruck registriert wird. Die Taste muss aber parallel zum Anzeigen des Texts abgefragt werden.

Eddy131
12.02.2016, 13:31
Das würde mich mehr stören als jeder Mammutdialog. Das reißt einen ja nach jedem Satz aus dem Spiel raus.
Das ist es ja was mich meinte, das man schauen muss wie das aussieht.
Stört es sehr?
Oder fügt es sich in's Bild ein und wird irgendwann nur noch am Rande wahrgenommen werden?
Das müsste man dann halt ausprobieren.
Eine bessere Möglichkeit fällt mir beim Maker nicht ein, wobei BDraws Möglchkeit wohl eleganter wäre, wenn es so klappt.
Ist ja im Prinzip meine Lösung, nur dass das Auswahlfenster nicht angezeigt wird.

Norpoleon
12.02.2016, 15:14
@BDraw: Wie stelle ich beim 2003er ein, dass Events weiterlaufen sollen, während eine Textbox aktiv ist?

BDraw
12.02.2016, 15:35
In den Message Options - da, wo du auch einstellst, ob die Textbox oben, mittig oder unten angezeigt werden soll.

Norpoleon
12.02.2016, 18:06
Achso. (:



@> Conditional Branch: Switch [0278:text abbruch] is ON
@> Jump to Label: 101
@>
: Else
@>
: Branch End


Das Label 101 ist jeweils immer am Ende eines Dialogs. Der Switch "text abbruch" wird mit einem Parallel Process auf on gestellt, sobald man Esc drückt.

Ist das so richtig?

Leana
12.02.2016, 18:32
Sehr lange Dialoge, die nicht handlungsrelevant sind, finde ich gar nicht gut. Dass man sie eventuell abbrechen kann, macht es auch nicht besser, weil man ja nie weiß, welche Informationen verloren gehen. Aus Spielersicht ist es schöner, wenn man die Möglichkeit hat, Informationen themenbezogen abzurufen. Z.B. die Beschreibung des Kampfsystems: Anstelle eines sehr langen Dialoges kann man den Text in die Bereiche "Kampfbildschirm", "Technik" usw. aufteilen. Auch bei normalen Gesprächen gibt es immer Möglichkeiten, den Dialog zu gliedern. Der Aufwand dafür ist btw. geringer, als wenn du nach jeder Textbox eine Abfrage reinpackst ;)

Eddy131
12.02.2016, 18:42
Sehr lange Dialoge, die nicht handlungsrelevant sind, finde ich gar nicht gut. Dass man sie eventuell abbrechen kann, macht es auch nicht besser, weil man ja nie weiß, welche Informationen verloren gehen. Aus Spielersicht ist es schöner, wenn man die Möglichkeit hat, Informationen themenbezogen abzurufen. Z.B. die Beschreibung des Kampfsystems: Anstelle eines sehr langen Dialoges kann man den Text in die Bereiche "Kampfbildschirm", "Technik" usw. aufteilen. Auch bei normalen Gesprächen gibt es immer Möglichkeiten, den Dialog zu gliedern. Der Aufwand dafür ist btw. geringer, als wenn du nach jeder Textbox eine Abfrage reinpackst ;)
Das Problem hier ist, das es bei den Gesprächen um Philosophische Texte handelt und zum Worldbuilding beitragen, also nicht direkt Handlungsrelevant, aber auch schwer in kleinere Abschnitte einteilbar sind.
Primär soll hier die Möglichkeit geschaffen werden, die Texte beim zweiten durchlesen abkürzen zu können (viele schauen ja, ob die Person beim zweiten mal was anderes sagt. Bei langen Gesprächen ist es ärgerlich jedes mal alles neu durchklicken zu müssen.).
Das kurz zur Erklärung des Problems ;)

Cepanks
12.02.2016, 19:02
BDraws Lösung erscheint mir auch um einiges angenehmer für den Spieler. Bei einer Ja/Nein-Auswahl nach jeder Textbox müsste ich bei 5 Boxen 10-mal 9-mal die Bestätigungstaste drücken, wenn ich alles lesen will.


Das Label 101 ist jeweils immer am Ende eines Dialogs. Der Switch "text abbruch" wird mit einem Parallel Process auf on gestellt, sobald man Esc drückt.

Ist das so richtig?
Esc ist eine blöde Wahl, weil das auch gedrückt werden kann, um den Text regulär weiterzuschalten.

Leana
12.02.2016, 19:48
Das Problem hier ist, das es bei den Gesprächen um Philosophische Texte handelt und zum Worldbuilding beitragen, also nicht direkt Handlungsrelevant, aber auch schwer in kleinere Abschnitte einteilbar sind.
Da ich den Text nicht kenne, kann ich dazu nichts sagen. Und spekulieren will ich nicht.


(viele schauen ja, ob die Person beim zweiten mal was anderes sagt. Bei langen Gesprächen ist es ärgerlich jedes mal alles neu durchklicken zu müssen.).
Das ist richtig und deshalb würde ich den Spieler in diesem Fall fragen, ob er den Text/Dialog überhaupt noch mal lesen will. Wenn es trotzdem die Möglichkeit gibt, dass man das Gespräch abbrechen kann, werde ich mich natürlich nicht darüber beschweren :D

Eddy131
12.02.2016, 20:28
BDraws Lösung erscheint mir auch um einiges angenehmer für den Spieler. Bei einer Ja/Nein-Auswahl nach jeder Textbox müsste ich bei 5 Boxen 10-mal 9-mal die Bestätigungstaste drücken, wenn ich alles lesen will.
Und sonst doch auch?
Ob ich nach einer Textbox Enter drücke um die nächste Textbox zu sehen oder ob ich Enter drücke um die nächste Textbox zu sehen und dabei ein kleines Auswahlfenster erscheint macht vom Klickaufwand her keinen Unterschied.
Und man könnte es ja so gestalten, das das steht "weiter" und "Text überspringen" oder etwas in der Art.


Esc ist eine blöde Wahl, weil das auch gedrückt werden kann, um den Text regulär weiterzuschalten.
Esc ist wie ich finde die einzig vernünftige Wahl dafür.
Bei den meisten Makerspielen (>> 90%) gibt es nur Enter und Esc (bzw. Leertaste und die Tasten darüber), wobei Enter normalerweise bestätigen ist und Esc abbrechen, vergleichbar mit A und B beim GameBoy.
(manchmal gibt es noch Shift, aber das ist meist nur zum laufen da.)
Da finde ich es nur logisch dann auch mit Esc das Gespräch zu überspringen.


Das ist richtig und deshalb würde ich den Spieler in diesem Fall fragen, ob er den Text/Dialog überhaupt noch mal lesen will. Wenn es trotzdem die Möglichkeit gibt, dass man das Gespräch abbrechen kann, werde ich mich natürlich nicht darüber beschweren :D
Das wär auch eine Möglichkeit, die man nutzen könnte, stimmt :)
Wobei man da aber jedesmal eine Zusätzliche Abfrage wegklicken müsste, was nervig sein könnte, wenn man Text wirklich nochmal lesen möchte.
Außerdem wäre das ein größerer Aufwand beim Erstellen, weil man so mit mehreren Event-Seiten arbeiten müsste, wenn man die Frage nicht direkt schon beim ersten mal gestellt bekommen möchte - und das wäre definitv nervig, wenn mich jeder erst mal fragt, ob ich mir seine Antwort wirklich anhören möchte.

Norpoleon
12.02.2016, 20:48
Ich denke auch, dass die meisten Leute allein schon intuitiv Escape zum Abbrechen der Dialoge nutzen würden.
Da ich keine Patches verwende, bin ich natürlich sehr eingeschränkt bei der Wahl der Tasten.

Aber ansonsten ist der Code so okay, oder?
Dann würde ich nämlich damit beginnen, ihn überall einzubauen. (:

Cepanks
12.02.2016, 21:00
Ich denke auch, dass die meisten Leute allein schon intuitiv Escape zum Abbrechen der Dialoge nutzen würden.
Da ich keine Patches verwende, bin ich natürlich sehr eingeschränkt bei der Wahl der Tasten.

Aber ansonsten ist der Code so okay, oder?
Dann würde ich nämlich damit beginnen, ihn überall einzubauen. (:
Probier's doch einfach mal in einem Testevent aus und wenn es nicht tut wie es soll, sehen wir weiter. :)

Eddy: Huh? Nein, mit Auswahl muss man öfters drücken, weil es automatisch mehr Textboxen gibt. Es gibt im 2k3 kein "kleines Auswahlfenster". Eine Box hat Platz für vier Zeilen Text, da zählen die Auswahlmöglichkeiten mit dazu.

Es gäbe also entweder die Möglichkeit:

Lorem ipsum dolor und wie sie alle heißen. Ja, das hier ist Blindtext, den ich mir gerade live aus den Fingern sauge,
um auf eine Mindestmenge an Zeichen zu kommen. Andere beliebte Varianten des Blindtexts im deutschen sind etwa
das erste Kapitel von Kafkas "Der Prozess". Jemand musste Josef K. verleumdet haben, denn ohne dass er etwas
Böses getan hätte, wurde er eines Morgens verhaftet.


>Weiter
>Abbrechen


oder man beschränkt den tatsächlichen Text auf zwei Zeilen, damit die Auswahl noch in der Box Platz hat. Das reduziert die Anzahl an Textboxen insgesamt dann aber auch nicht...:

Lorem ipsum dolor und wie sie alle heißen. Ja, das hier ist Blindtext, den ich mir gerade live aus den Fingern sauge,
um auf eine Mindestmenge an Zeichen zu kommen.
>Weiter
>Abbrechen

Andere beliebte Varianten des Blindtexts im deutschen sind etwa das erste Kapitel von Kafkas "Der Prozess".
Jemand musste Josef K. verleumdet haben, denn ohne dass er etwas Böses getan hätte, wurde er eines Morgens verhaftet.
>Weiter
>Abbrechen

Norpoleon
12.02.2016, 21:08
Ja, das ist genau der Grund, warum diese Variante schonmal flachfällt.
Ich müsste einfach viel zu viel Text nachträglich auf zwei Zeilen bringen.

Leana
12.02.2016, 21:34
Das ist richtig und deshalb würde ich den Spieler in diesem Fall fragen, ob er den Text/Dialog überhaupt noch mal lesen will. Wenn es trotzdem die Möglichkeit gibt, dass man das Gespräch abbrechen kann, werde ich mich natürlich nicht darüber beschweren :D

Das wär auch eine Möglichkeit, die man nutzen könnte, stimmt :)
Wobei man da aber jedesmal eine Zusätzliche Abfrage wegklicken müsste, was nervig sein könnte, wenn man Text wirklich nochmal lesen möchte.
Außerdem wäre das ein größerer Aufwand beim Erstellen, weil man so mit mehreren Event-Seiten arbeiten müsste, wenn man die Frage nicht direkt schon beim ersten mal gestellt bekommen möchte - und das wäre definitv nervig, wenn mich jeder erst mal fragt, ob ich mir seine Antwort wirklich anhören möchte.
Pro Dialog brauchst du 1 zusätzliche Eventseite und die lässt sich im RM2k3 mit 2 Klicks (Copy der Dialogseite & Paste) erstellen. Abfrage ergänzen und fertig.

@Norpoleon
Da ESC bei Textboxen die gleiche Wirkung wie Enter hat, könnte es sein, dass du diese Taste nicht abfragen kannst. Deshalb ist es besser, wie von Cepanks schon vorgeschlagen, das ganze erstmal in einem Testevent auszuprobieren.

Eddy131
12.02.2016, 21:45
Eddy: Huh? Nein, mit Auswahl muss man öfters drücken, weil es automatisch mehr Textboxen gibt. Es gibt im 2k3 kein "kleines Auswahlfenster". Eine Box hat Platz für vier Zeilen Text, da zählen die Auswahlmöglichkeiten mit dazu.

Es gäbe also entweder die Möglichkeit:


Lorem ipsum dolor und wie sie alle heißen. Ja, das hier ist Blindtext, den ich mir gerade live aus den Fingern sauge,
um auf eine Mindestmenge an Zeichen zu kommen. Andere beliebte Varianten des Blindtexts im deutschen sind etwa
das erste Kapitel von Kafkas "Der Prozess". Jemand musste Josef K. verleumdet haben, denn ohne dass er etwas
Böses getan hätte, wurde er eines Morgens verhaftet.




>Weiter


>Abbrechen



oder man beschränkt den tatsächlichen Text auf zwei Zeilen, damit die Auswahl noch in der Box Platz hat. Das reduziert die Anzahl an Textboxen insgesamt dann aber auch nicht...:


Lorem ipsum dolor und wie sie alle heißen. Ja, das hier ist Blindtext, den ich mir gerade live aus den Fingern sauge,
um auf eine Mindestmenge an Zeichen zu kommen.


>Weiter


>Abbrechen




Andere beliebte Varianten des Blindtexts im deutschen sind etwa das erste Kapitel von Kafkas "Der Prozess".
Jemand musste Josef K. verleumdet haben, denn ohne dass er etwas Böses getan hätte, wurde er eines Morgens verhaftet.


>Weiter


>Abbrechen



Ah, ok.
Jetzt versteh ich was du meinst.
Ich dachte das wäre so wie beim MV (und soweit ich es in den Tutorial-Videos gesehen habe ist das zumindest auch im VX so), dass oben rechts über der eigentlichen Textbox ein kleines Fenster mit den Auswahlmöglichkeiten auftaucht.
Hab das bisher auch nur so in den meisten Maker-Spielen gesehen, und ich habe auch einige 2k/3 Spiele gespielt.
Daher ging ich davon aus, dass es so bei allen Makern der Standard ist.

@Leana: Falls es nur einen Dialog gibt hast du recht.
Aber es gibt auch Texte mit bis zu 4 Fragen, die man dem NPC stellen kann, und dann bräuchte man für jede Kombination von Dialog schon mal gelesen(1) | noch nicht gelesen(0) eine eigene Event-Seite.

0000
0001
0010
0011
0100
... und so weiter.
Damit kommt auf bis zu 16 Seiten und die muss man auch noch richtig verknüpfen mit Bedingungen etc.
Dann wird es schon recht kompliziert und unübersichtlich - besonders, wenn man nachträglich was ändern möchte.

Leana
12.02.2016, 23:50
@Leana: Falls es nur einen Dialog gibt hast du recht.
Aber es gibt auch Texte mit bis zu 4 Fragen, die man dem NPC stellen kann, und dann bräuchte man für jede Kombination von Dialog schon mal gelesen(1) | noch nicht gelesen(0) eine eigene Event-Seite.

0000
0001
0010
0011
0100
... und so weiter.
Damit kommt auf bis zu 16 Seiten und die muss man auch noch richtig verknüpfen mit Bedingungen etc.
Dann wird es schon recht kompliziert und unübersichtlich - besonders, wenn man nachträglich was ändern möchte.
Eddy, du denkst zu kompliziert :D
Normalerweise macht man diese Gelesen-/Nichtgelesen-Auswahl nur zu Beginn eines Dialoges und nicht bei "Unterdialogen". Aber selbst in diesem Fall lässt sich das Ganze leicht lösen (zumindest beim RM2k3):
Im Dialog-Event wird für jeden "Unterdialog" jeweils 1 Eventseite erstellt und diese Eventseite ruft man dann bei Bedarf auf. So muss man nur überprüfen, ob der Text schon gelesen wurde. Bei "Nein" -> zugehörige Eventseite aufrufen, bei "Ja" Abfrage und falls Antwort = Ja -> Eventseite aufrufen.

Eddy131
13.02.2016, 00:01
Eddy, du denkst zu kompliziert :D
Normalerweise macht man diese Gelesen-/Nichtgelesen-Auswahl nur zu Beginn eines Dialoges und nicht bei "Unterdialogen". Aber selbst in diesem Fall lässt sich das Ganze leicht lösen (zumindest beim RM2k3):
Im Dialog-Event wird für jeden "Unterdialog" jeweils 1 Eventseite erstellt und diese Eventseite ruft man dann bei Bedarf auf. So muss man nur überprüfen, ob der Text schon gelesen wurde. Bei "Nein" -> zugehörige Eventseite aufrufen, bei "Ja" Abfrage und falls Antwort = Ja -> Eventseite aufrufen.
Stimmt, so könnte es auch gehen!
Dann hat man nur die Abfrage und 2 Eventseiten für jede Dialogauswahl.
Das macht es etwas einfacher.
Vor allem da ich nie mit dem 2k/3 gearbeitet habe (bzw. wenn, dann ist das schon so lange her, das ich es schon wieder vergessen habe ^^ ) und nicht weiß wie das System da genau funktioniert.
Ich gehe wohl immer viel zu schnell davon aus, dass die Maker sich alle so ähnlich wie der VX und der MV verhalten, da der Unterschied zwischen denen von der Benutzung her auch kaum Unterschiede hat.

Norpoleon
13.02.2016, 11:38
So wie ich mir das vorgestellt habe, funktioniert es leider nicht. \:
Jetzt wird nach jeder Textbox abgebrochen, egal welche Taste man drückt.



@> Conditional Branch: Switch [0278:text abbruch] is ON
@> Jump to Label: 101
@>
: Else
@>
: Branch End


Das Label 101 ist jeweils immer am Ende eines Dialogs. Der Switch "text abbruch" wird mit einem Parallel Process auf on gestellt, sobald man Esc drückt.

Irgendwas übersehe ich da doch. Muss ich den Switch auf "toggle on/ off" stellen?

Linkey
13.02.2016, 12:36
Wenn du den Switch nicht wieder ausstellst, ist die Bedingung natürlich immer wahr. D.h. du musst ihn wieder auf "off" stellen, nachdem der Text abgebrochen wurde.

Norpoleon
13.02.2016, 14:37
Hm, wo genau im Code muss ich denn das "Control Switches turn off" setzen, damit es funktioniert?
Ich habe viel rumprobiert; irgendwie komme ich nicht drauf. \:

BDraw
13.02.2016, 15:35
Am Ende des Dialogs, bspw. nach dem Label.

Wobei mir gerade auffällt, dass du noch einen Switch am Anfang des Dialogs brauchst, um den Parallel Process zu starten - sonst fragt der die Taste ja immer ab und aktiviert möglicherweise den Switch auch außerhalb einer Textbox.
Den Switch kannst du dann bereits im Parallel Process ausschalten, nachdem der andere eingeschaltet wurde.

G-Brothers
13.02.2016, 16:39
Klingt jetzt vielleicht doof, aber: Wer die Dialoge unterhaltsam/interessant genug schreibt und inszeniert brauch auch keine Funktion zum Abkürzen. o_o"
Du gibst ja damit indirekt zu, dass deine Dialoge irrelevant und uninteressant sind. X\
Das gleiche auch bei überspringbaren Intros - hat so gut wie jedes Makerspiel und ich hinterfrage es jedes mal wieder.

Sabaku
13.02.2016, 16:43
Klingt jetzt vielleicht doof, aber: Wer die Dialoge unterhaltsam/interessant genug schreibt und inszeniert brauch auch keine Funktion zum Abkürzen. o_o"
Du gibst ja damit indirekt zu, dass deine Dialoge irrelevant und uninteressant sind. X\
Das gleiche auch bei überspringbaren Intros - hat so gut wie jedes Makerspiel und ich hinterfrage es jedes mal wieder.

Wer Dialoge in einem Spiel beim ersten Mal überspringt ist ja auch selber doof. Aber beim zweiten oder dritten Durchlauf/ bei mehrfach-Game Over finde ich die Möglichkeit Dialoge zu überspringen durchaus sinnvoll. Du kannst halt so interessante Dialoge schreiben wie du willst, aber wenn man gezwungen ist, sich das ganze öfter hintereinander reinzuziehen, oder alles mittlerweile auswendig kennt, hilft das halt auch nicht mehr .

BDraw
13.02.2016, 16:45
Klingt jetzt vielleicht doof, aber: Wer die Dialoge unterhaltsam/interessant genug schreibt und inszeniert brauch auch keine Funktion zum Abkürzen. o_o"
Du gibst ja damit indirekt zu, dass deine Dialoge irrelevant und uninteressant sind. X\
Das gleiche auch bei überspringbaren Intros - hat so gut wie jedes Makerspiel und ich hinterfrage es jedes mal wieder.
Finde ich überhaupt nicht. Ich bin sehr glücklich und dankbar, dass zumindest Vorspulfunktionen in kommerziellen Spielen allmählich Standard werden. Nicht, weil ich die Texte so furchtbar finde, sondern, weil ich evtl. versehentlich den NPC nochmal angeklickt habe, weil ich nen alten Save geladen habe, weil ich im NG+ bin und einfach nicht alles mehrfach hören möchte.

Ich finde, man muss nicht explizit fragen "Möchtest du skippen?", da das durchaus suggeriert, dass die folgende Szene unwichtig ist. Aber die Möglichkeit, gerade längere Sachen beschleunigen zu können ist super. Und da der Maker ja leider von Haus aus sehr beschränkt in seinem Message-System ist, ist Skippen da leider die einzige Möglichkeit.

Norpoleon
13.02.2016, 17:00
@G-Brothers: "Irrelevant" will ich nicht sagen, aber viele der Dialoge sind weniger für die Handlung relevant, sie sollen vielmehr zum Worldbuilding beitragen. Dass man selber entscheiden kann, ob man diese Dialoge nun wegklickt oder sie durchliest, finde ich eigentlich okay.

BDraw
13.02.2016, 17:10
Hab's gerade mal im Maker getestet. Theoretisch funktioniert es soweit, aber aus irgendeinem Grund klappt es nicht, den Jump to Label-Befehl aus einem Call Event heraus auszuführen, wenn das Label sich im "übergeordneten" Event befindet - ergo: Abfragen direkt nach jeder Textbox.
Auch ist etwas irritierend, dass der Text erst abgebrochen wird, nachdem der Spieler die aktuelle Textbox bestätigt hat, aber das geht leider mit dem Standardsystem nicht anders (und aus eigener Erfahrung weiß ich, dass eigene Messagesysteme mit dem Maker eine Katastrophe sind, da man den Text entweder vorgefertigt als Pic anzeigen oder jeden Buchstaben einzeln dem Maker als Zahl füttern muss (womit Texte erst in Zahlenstränge "übersetzt" werden müssen...) Waren sie schon mit PicPointer-Patch, ohne darf ich's mir echt nicht vorstellen).

Cepanks
13.02.2016, 17:46
Tschuut tschuut, hier kommt der Neue-Maker-Propaganda-Zug.

Dieses und ähnliche Probleme wären in Makerversionen >= XP übrigens mit einigen wenigen Zeilen Code zu lösen. :^)

Tschuut.

Norpoleon
13.02.2016, 17:49
Erstmal danke für die Hilfe. ((:

@BDraw: Also bei mir sieht das ganze jetzt so aus:



@> Control Switches: [0279:text abbruch2] = ON
@> Show Choices: Wer bist du?, Was machst du hier?, Tschüss.
: When [Wer bist du?]
@> Text: Lloyd: Ich bin Lloyd & ich verteidige diese
: : -wunderschöne- Stadt.
@> Conditional Branch: Switch [0278:text abbruch] is ON
@> Jump to Label: 101
@>
: Else
@>
: Branch End
@> Label: 101
@> Control Switches: [0278:text abbruch] = OFF

etc.
"text abbruch" ist ein Parallel Process mit dem switch "text abbruch2". In "text abbruch" wird bei Drücken von Escape der Switch "text abbruch" auf "off" gestellt. Ich kriege es hin, dass beim ersten Mal Dialog-Abspielen der Dialog mit Esc abzubrechen ist; beim zweiten Mal funktioniert es schon nicht mehr. Irgendwas ist da noch nicht richtig.

@Cepanks: Was soll ich sagen? Ich steh auf Knoten im Kopf. \:

StorMeye
13.02.2016, 19:53
Anstelle von Esc fände ich die Laufen-Tasten sogar noch besser. D. h. dass der Dialog aufhört, wenn man sich von der Person entfernt. Ist wahrscheinlich auch nicht ganz einfach zu programmieren...

BDraw
13.02.2016, 21:05
@Norpoleon:
Zusammenfassung:
Das CE ist ein PP, der auf Switch #2 reagiert. In dem PP wird eine Taste abgefragt und bei Druck wird Switch #1 eingeschaltet. Außerdem wird Switch #2 ausgestellt.
Das eigentliche Event schaltet erst Switch #1 ein, dann kommt der Text. Nach jeder Textbox wird abgefragt, ob Switch #1 an ist - wenn ja, wird zu einem Label gesprungen, das ganz am Ende platziert ist und dem nur noch folgt, dass Switch #1 ausgeschaltet wird.
Wenn dein Script beim ersten Mal klappt aber dann nicht mehr, hast du irgendwo einen Switch nicht wieder aus- bzw. eingeschaltet.

@StorMeye:
Wie gesagt, so nicht möglich. Die Textbox muss in jedem Fall zuerst vom Spieler weitergeklickt werden. Einfaches "rauslaufen", wie Pokémon das bspw. mit Schildern gemacht hat, geht nicht. Klar kann man jede beliebige Taste zum abbrechen nehmen, aber die Textbox muss erst zuende angezeigt werden. Das Script sorgt insofern genau genommen nicht für einen Abbruch der aktuellen Textbox, sondern verhindert nur das anzeigen weiterer Textboxen.

Eddy131
13.02.2016, 22:30
@StorMeye:
Wie gesagt, so nicht möglich. Die Textbox muss in jedem Fall zuerst vom Spieler weitergeklickt werden. Einfaches "rauslaufen", wie Pokémon das bspw. mit Schildern gemacht hat, geht nicht. Klar kann man jede beliebige Taste zum abbrechen nehmen, aber die Textbox muss erst zuende angezeigt werden. Das Script sorgt insofern genau genommen nicht für einen Abbruch der aktuellen Textbox, sondern verhindert nur das anzeigen weiterer Textboxen.
Aber könnte man durch einen Keypatch die Funktion der Enter-Taste nicht einfach auf die Richtungstasten kopieren?
Dadurch würde man die aktuelle Textbox beenden und weitere Abbrechen und danach würden die Tasten wieder zur normalen Belegung zurückkehren.
Falls man die Tasten im laufenden Spiel ändern kann, wäre das eine Möglichkeit.
Oder - aber das wäre ja dann wieder ein ganz anderer Fall - wenn man mit Bildern arbeitet, die die Textboxen ersetzen (also Bilder, die jeweils aus einer Textbox bestehen der Reihe nach anzeigen lassen).
Dann wäre das ganz einfach umsetzbar (neben dem Mehraufwand der Textbox-Bilder).

BDraw
13.02.2016, 23:08
Aber könnte man durch einen Keypatch die Funktion der Enter-Taste nicht einfach auf die Richtungstasten kopieren?
Dadurch würde man die aktuelle Textbox beenden und weitere Abbrechen und danach würden die Tasten wieder zur normalen Belegung zurückkehren.
Hab den springenden Punkt mal Fett markiert. Du müsstest dann trotzdem erst eine Pfeiltaste drücken, loslassen, und dann nochmal drücken um dich zu bewegen.

Klar könnte man alle Texte im Vorfeld als Bild im Grafikprogramm erstellen und so das Maker-Messagesystem komplett umgehen, aber das bedeutet auch, dass man nichts mal eben ändern kann. Jeder Tippfehler würde heißen, eine völlig neue Grafik erstellen und importieren müssen - davon, dass das ein ziemliches Chaos im Pic-Ordner gäbe mal abgesehen.
Aber klar, damit könnte man was sehr schönes bauen was sich exakt so verhält, wie man will, inkl. Skip, Fast Forward, einstellbarer Textgeschwindigkeit, etc. Ist bloß die Frage, ob man sich den dauerhaften Mehraufwand wirklich antun will.
Bedenk allerdings, dass "einfach" hier auch sehr relativ ist: Wenn du bspw. möchtest, dass der Text nicht von Anfang an komplett erscheint, musst du schon wieder tricksen und mehrere Bilder verwenden; darüber hinaus wäre eine transparente Textbox damit nicht möglich. Um nur mal die Nachteile anzureißen, da gibt's noch einige mehr.

Unmöglich ist das mit ein paar Tricks alles nicht, explodiert aber sehr schnell entweder vom Aufwand oder von der Beeinträchtigung der Komfortabilität beim Makern Aufwand her.

Eddy131
14.02.2016, 00:14
Hab den springenden Punkt mal Fett markiert. Du müsstest dann trotzdem erst eine Pfeiltaste drücken, loslassen, und dann nochmal drücken um dich zu bewegen.

Klar könnte man alle Texte im Vorfeld als Bild im Grafikprogramm erstellen und so das Maker-Messagesystem komplett umgehen, aber das bedeutet auch, dass man nichts mal eben ändern kann. Jeder Tippfehler würde heißen, eine völlig neue Grafik erstellen und importieren müssen - davon, dass das ein ziemliches Chaos im Pic-Ordner gäbe mal abgesehen.
Aber klar, damit könnte man was sehr schönes bauen was sich exakt so verhält, wie man will, inkl. Skip, Fast Forward, einstellbarer Textgeschwindigkeit, etc. Ist bloß die Frage, ob man sich den dauerhaften Mehraufwand wirklich antun will.
Bedenk allerdings, dass "einfach" hier auch sehr relativ ist: Wenn du bspw. möchtest, dass der Text nicht von Anfang an komplett erscheint, musst du schon wieder tricksen und mehrere Bilder verwenden; darüber hinaus wäre eine transparente Textbox damit nicht möglich. Um nur mal die Nachteile anzureißen, da gibt's noch einige mehr.

Unmöglich ist das mit ein paar Tricks alles nicht, explodiert aber sehr schnell entweder vom Aufwand oder von der Beeinträchtigung der Komfortabilität beim Makern Aufwand her.
Da kenn ich micht nicht gut genug mit aus, wie der Patch funktioniert.
Könnte mir aber vorstellen, dass auch drückenlassen ausreichend ist: Man nimmt den Pfeiltasten ja nicht die Funktion die Figur zu bewegen, sondern fügt der Taste die Funktion hinzu, den Text abzubrechen.
Ob man dann weiterläuft oder man dennoch die Taste wieder drücken müsste, müsste man dann testen.

Und die alten Maker können Bilder nicht halbtransparent anzeigen lassen?
Und selbst wenn, hat man dennoch wesentlich mehr Möglichkeiten als die 2-3 (?) Standardeinstellungen des Makers.
Selbst beim MV ist man da ziemlich eingeschränkt :Rahmen + Wiederholendes Muster im Hintergrund. Dazu noch halbdurchsichter Schatten im Hintergrund oder komplett ohne, also nur mit Text.
Ansonsten immer eckig, immer die selbe Größe und nur an 3 festen Punkten erscheinbar.
Die alten Versionen werden da nicht besser sein (eher eingeschränkter)
Mit Bildern kann man sich da viel mehr austoben.
Und wenn man einmal die Routine drin hat, dann ist das nicht viel aufwendiger als mit den Hauseigenen Mitteln.
Bei History of Planet Bryyo wurde das zum Beispiel so gemacht, und es ist ziemlich gut geworden.

Was letztlich die beste Methode ist, bleibt denke ich Geschmackssache ;)

BDraw
14.02.2016, 01:48
Drückenlassen funktioniert nicht ;) Sonst wäre es bspw. möglich, dass der Spieler Enter gedrückt hält und dadurch den NPC direkt nochmal anspricht. Der Tastenpatch würde da auch nicht helfen, da der die Tasten selbst nicht beeinflusst, er erlaubt es lediglich, über Switches und Variablen alle Tasten abzufragen. Mag natürlich sein, dass DynRPG da eher was reißen kann (sehr wahrscheinlich sogar), aber das hat dann ja nichts mit makern im herkömmlichen Sinne zu tun (was nicht heißen soll, dass das keine valide Lösung ist, sondern, dass das den Rahmen der Diskussion hier und das Wissen aller bisher beteiligten deutlich sprengt).

Was ich mit der Transparenz meinte: Wenn du möchtest, dass dein Text Buchstabe für Buchstabe erscheint, geht dies mit vorgefertigten Text-Bildern nur, indem du ein zweites Bild darüberlegst, was die Zeichen ersteinmal verdeckt. Dieses kannst du dann bewegen, um es aussehen zu lassen, als würden die Buchstaben nach und nach erscheinen. Da du hier aber mehrere Bilder übereinander legst fällt die Transparenz weg, da das nur funktioniert, wenn das verdeckende Bild auch wirklich komplett undurchsichtig ist.
Ein weiteres Problem bei der Methode sind Zeilenumbrüche: Wenn du nicht willst, dass unschöne Wartezeiten nach kürzeren Zeilen entstehen, musst du dem maker theoretisch für jede Zeile vorher sagen, wie breit sie ist. Da Zeichen bei der Schrifart des Makers immer die selbe Breite haben, musst du somit zwar nur die Zeichen zählen, aber es ist eben ein weiterer Punkt, der es verkompliziert, eine einfache Textbox anzuzeigen.

Zeichen zählen, für jeden einzelnen Text das Grafikprogramm öffnen, das ganze passend speichern, importieren, anzeigen, etc. sind für sich alles sehr kleine Aktionen, aber in der Summe ist das deutlich aufwendiger als im Maker einfach den Show Message-Befehl anzuklicken und gut ist, zumal das ja alles von vorne losgeht, wenn man später merkt, dass man sich vertippt hat oder einen Dialog ändern möchte. Dazu kommt, dass Sachen wie einzelne Variablen für Heldennamen, Items, etc. auslesen auch so ohne weiteres nicht mehr geht. Da hilft Routine auch nichts, der Workflow ist zu gut Deutsch beschissen.

Wenn ich mir überlege wie viel Arbeit so ein Spiel ist (und wie viele Projekte gecancelt werden), würde ich mir sehr gut überlegen, wie wichtig mir solche Features sind, die dem 0815-Spieler vermutlich ziemlich egal sind, einem selbst aber dauerhaft in den Füßen liegen werden.
Ab dem RMXP aufwärts (oder Rm2k3 mit DynRPG?) mag das anders aussehen, da man das da deutlich komfortabler einmal über RGSS regelt und gut ist, aber beim 2k/3 für sich lohnt sich ein eigenes Messagesystem imho einfach nicht. Außer man macht eine Visual Novel, und dann ist der Maker da eigentlich auch nicht für geeignet.

Norpoleon
14.02.2016, 12:11
@BDraw: Ich habe deinen Code soweit umgesetzt; allerdings bricht der Dialog jetzt immer nach der ersten Textbox ab, egal welche Taste man drückt.



@> Control Switches: [0278:text abbruch] = ON
@> Show Choices: Wer bist du?, Was machst du hier?, Tschüss.
: When [Wer bist du?]
@> Text: Lloyd: Ich bin Lloyd & ich verteidige diese
: : -wunderschöne- Stadt.
@> Conditional Branch: Switch [0278:text abbruch] is ON
@> Jump to Label: 101
@>
: Else
@>
: Branch End
...
@> Label: 101
@> Control Switches: [0278:text abbruch] = OFF
@>
: Branch End


Das dazugehörige CE ist ein PP mit dem Switch "text abbruch 2". In ihm wird bei Druck auf Esc der Switch "text abbruch" auf on gestellt & danach "text abbruch 2" auf off.

Leana
14.02.2016, 12:31
Laut deinem Posting setzt du vor dem Dialog den Switch "text abbruch" auf on, du musst aber "text abbruch 2" auf on stellen.

Eddy131
14.02.2016, 13:06
@BDraw: Ich sagte ja nicht, dass es einfacher ist, nur, dass manche Punkte damit besser gehen bzw. erst so machbar sind (ohne selbst viel Programmieren zu müssen) ;)
Ich denke, sollte ich Textboxen als Bilder anzeige lassen, dann würde ich einfach immer die gesamte Textbox erscheinen lassen und so Spielereien wie einzeln erscheinende Buchstaben weglassen.
Da wäre der Aufwand definitiv zu groß.
Aber sonst ist es doch genau so einfach wie mit dem Maker-eigenen System: Ein Bild als Schablone fertig haben ohne Text und dann schreib ich da mit dem Grafikprogramm direkt den Text rein und speicher es immer so.
Da ich damit testweise schon gearbeitet habe, weiß ich, dass der Aufwand nur unerheblich größer ist, wenn man einmal die Schablone fertig hat.
Und auch Änderungen beim Text lassen sich schnell machen: Entweder man speichert die Bilder alle noch zusätzlich in der Bearbeitbaren Version und hat damit die Textboxen direkt auf dem Bild um sie zu ändern und ersetzt es dann oder man schreibt den korrigierten Text einfach wieder neu in die Schablone rein und ersetzt das Bild.

Wie gesagt, man muss nur schauen mit welchen "Einschränkungen" man leben kann (nach und nach erscheinender Text VS Individuelle Rahmenform wären 2 Punkte).

Es wäre schön, wenn der Maker einem da mehr Möglichkeiten an die Hand geben würde.
Aber da er das nicht tut muss man mit dem Leben, was da ist oder sich eben wesentlich mehr Aufwand machen. ;)

Norpoleon
14.02.2016, 16:14
@Leana: Habe es mal so probiert, wie du gesagt hast. Danach kann man den Text mit Escape nicht mehr abbrechen. Da ja schonmal angesprochen wurde, dass Escape vielleicht nicht die beste Taste für mein Vorhaben ist, habe ich es auch mal mit allen anderen Tasten versucht; funktioniert leider auch nicht.

@Eddy: Die Idee mit den Bildern ist zwar eine Überlegung wert, allerdings würde mit meinem Grafik-Programm ( ich habe nur Paint anzubieten \: ) bei der Größe der Schrift alles sehr verschwommen aussehen & das will ich den Augen der Leser eher nicht antun.

Außerdem: Es gibt ja auch noch eine im Maker verbaute Methode, das Weiterklicken der Dialoge zu bescheleunigen: Halten der Shift-Taste. ((:

Eddy131
14.02.2016, 16:20
@Eddy: Die Idee mit den Bildern ist zwar eine Überlegung wert, allerdings würde mit meinem Grafik-Programm ( ich habe nur Paint anzubieten \: ) bei der Größe der Schrift alles sehr verschwommen aussehen & das will ich den Augen der Leser eher nicht antun.

Außerdem: Es gibt ja auch noch eine im Maker verbaute Methode, das Weiterklicken der Dialoge zu bescheleunigen: Halten der Shift-Taste. ((:
Gimp ist ein kostenloses, sehr umfangreiches und gutes Programm zum Bilder bearbeiten ;)

Und es geht ja nicht primär um die Geschwindigkeit, sondern weil das manche schöner finden, wenn sich der Text erst aufbaut und nicht sofort da ist.

Nagasaki
14.02.2016, 18:47
Geht das mit Shift nicht nur im Testplay? Oder verwechsel ich das jetzt mit Strg?

Norpoleon
15.02.2016, 15:28
@Nagasaki: Verdammt! Du hast recht. Das geht wirklich nur in Tesplays. Ich hatte als Back-up-Plan gehofft, dass ich den Spielern einfach sage, dass sie mit Shift die Dialoge beschleunigen können & gut ist. \:

@Eddy: Mit Gimp bin ich leider nie warm geworden. Da müsste ich mir erstmal viel Neues draufpacken, um damit was anständiges herzustellen.

@Topic: Hat noch wer eine zündende Idee? Irgendwie steige ich selber nicht mehr ganz durch. \:

Eddy131
15.02.2016, 18:35
@Eddy: Mit Gimp bin ich leider nie warm geworden. Da müsste ich mir erstmal viel Neues draufpacken, um damit was anständiges herzustellen.
Falls du was Kostenloses nutzen willst könnte ich dir Piskel (http://www.piskelapp.com/) empfehlen (Gibt auch eine Offline-Version).
Ist zwar primär für Animationen, kann man aber genausogut für normlae Grafiken nutzen.

An Günstigen alternativen mangelt es auch nicht.
Meine Persönlichen Favoriten sind PyxelEdit (http://pyxeledit.com/) (Beta-Version, 9$) und Aseprite (http://www.aseprite.org/) (Final, bekommt aber regelmäßig Aktualisierungen, 10$), das erste davon nutze ich auch selber.
Es gibt für beide Probeversionen.
Bei PyxelEdit handelt es sich um eine ältere abgespeckte Version, bei Aseprite um eine Vollständige Version ohne der Möglichkeit zu speichern.
Schau sie dir einfach mal an, vielleicht gefällt dir da ja was :)

Linkey
16.02.2016, 07:42
@Grafikprogramm: Wenn du lediglich mit Paint gearbeitet hast, nimm doch einfach Paint.Net - das ist kostenlos, ermöglicht nahezu alles was auch die tollen Programme GIMP usw. liefern und ist über Plugins erweiterbar. Außerdem - meiner Meinung nach - sehr einsteigerfreundlich

@Problem:
Poste doch bitte mal dein komplettes Dialog Event (Screenshots mit allen Einstellungen usw.) und das CE. Dann kann man dort mal reinschauen und gucken, ob du dort irgendwo einen Fehler gemacht hast.

Norpoleon
16.02.2016, 14:12
Danke für die Grafikprogramme; da ist einiges gutes dabei, das auch ich verstehe. (:

@Linkey: Schaut mal, ob irgendein Fehler mir durchgeflutscht ist oder ähnliches.

http://abload.de/img/cygoscreenshotdialogewibg5.png

http://abload.de/img/cygoscreenshotdialoge0exn5.png

http://abload.de/img/cygoscreenshotdialoge3ixml.png

Quetschi
16.02.2016, 17:22
Du fragst im CE nicht ab welche Taste gedrückt wird, sondern setzt text abbruch einfach auf ON.Dementsprechend ist text abbruch immer aktiv sobald du dieses CE aktivierst, welches sich im selben Zug auch direkt wieder ausschaltet. Die letzten beiden Befehle mit den Switches müsstest du in eine Abfrage packen ob die richtige Taste fürs Abbrechen des Dialogs gedrückt wurde.
Bei Esc also bspw:

KeyInput [0001]
If [0001] = 6
abbruch = ON
abbruch2 =OFF

Leana
16.02.2016, 17:49
Du musst im CE folgendes machen:

- Variable 0001 auf 0 setzen
- KeyInput ohne Wait, zudem darf nur die ESC-Taste gültig sein
- Variable 0001 auf ESC-Taste (Wert 6) prüfen
- falls erfüllt -> "textabbruch" auf on und "textabbruch2" auf off

Funktioniert, habs gerade getestet.

Norpoleon
16.02.2016, 19:24
Hm, auch auf einer Testmap bekomme ich es nicht zum laufen. Mittlerweile müsste es alleine durch Zufall einmal geklappt haben. \:

Das heißt es läuft, wenn ich vorher auf Escape drücke ( das Menü aufrufe ) & dann den Dialog aufrufe.

Der Code sieht jetzt so aus:


@> Control Variables: [0212:keyinput dialog abbr] = 0
@> Key Input Processing: [0212:keyinput dialog abbr], Wait
@> Conditional Branch: Variable [0212:keyinput dialog abbr] == 6
@> Control Switches: [0278:text abbruch] = ON
@> Control Switches: [0279:text abbruch2] = OFF
@>
: Else
@>
: Branch End

Leana
16.02.2016, 19:53
Hm, auch auf einer Testmap bekomme ich es nicht zum laufen. Mittlerweile müsste es alleine durch Zufall einmal geklappt haben. \:

Das heißt es läuft, wenn ich vorher auf Escape drücke ( das Menü aufrufe ) & dann den Dialog aufrufe.

Der Code sieht jetzt so aus:


@> Control Variables: [0212:keyinput dialog abbr] = 0
@> Key Input Processing: [0212:keyinput dialog abbr], Wait
@> Conditional Branch: Variable [0212:keyinput dialog abbr] == 6
@> Control Switches: [0278:text abbruch] = ON
@> Control Switches: [0279:text abbruch2] = OFF
@>
: Else
@>
: Branch End

Deine Tastenabfrage (Key Input Processing) wartet immer noch auf eine Eingabe (-> Wait). Du musst den Haken bei "wait until key pressed" (so heißt die Option im alten RM2k3) entfernen.

Norpoleon
16.02.2016, 19:56
Achso, das meinst du mit "ohne Wait". (((:
Ich habe vorher einfach alle Waits 0.0 gelöscht.

Es scheint jetzt zu funktionieren. Danke. (:

Eddy131
16.02.2016, 21:02
Dann warte ich auf die neue Version vom Community-Projekt ^^