Autor |
Nachricht |
< Kleine Fragen für zwischendurch ... |
|
Verfasst am:
Mo, 22 Sep 2003 - 11:17
|
|
|
Abenteurer
Anmeldungsdatum: 26.08.2002
Beiträge: 278
Wohnort: Leipzig
|
|
Martin hat folgendes geschrieben: | Zitat: | Anstatt meiner default-Meldung kommt nur: '[Dieses Thema überfordert mich.]' |
Diese Meldung kann ich in meiner Lib (15.08.2002) nicht finden. Mir scheint, Du hast hier einen Code wie den für Fragen wie "Was ist ein Graus?" verwendet (DM4, Seite 233), der eine ähnliche Antwort bringt. |
Genau, er hat ginfo.h verwendet, Frank Borgers Übersetzung des Moduls info.h ins Deutsche (http://www.if.frob.de/informis/node32.html), welches aber nichts anderes macht als das Codebeispiel im DM4.
Wenn kein passendes Topic-Objekt existiert, spuckt die TopicScope-Routine die beschriebene Meldung aus. Bis zum default-Ausführungsblock kommt das Spiel erst gar nicht.
Einen Lösungsvorschlag für das Problem habe ich aber leider nicht. (Abgesehen davon, auf ginfo zu verzichten und es auf die "herkömmliche" Art zu machen...) |
|
|
|
|
|
Verfasst am:
Mo, 22 Sep 2003 - 13:37
|
|
|
Experte
Anmeldungsdatum: 25.08.2002
Beiträge: 677
Wohnort: München
|
|
Aha! Ich tippe darauf, dass vergessen wurde, die Grammatikdefinitionen von Ginfo einzubinden:
Code: |
Include "GInfo";
...
Include "GrammarG";
Include "GInfoG";
|
Auf diese Weise würde Ask immer noch so funktionieren, wie in der Lib und wie im DM4 beschrieben. Oder es ist wieder ein Problem, das mit extend ... first gelöst werden kann.
Ich finde den GInfo-Ansatz übrigens wesentlich eleganter als den Consult-Kram. _________________ Every silver lining has a cloud. |
|
|
|
|
|
Verfasst am:
Mo, 22 Sep 2003 - 17:35
|
|
|
Wasserträger
Anmeldungsdatum: 19.08.2003
Beiträge: 34
Wohnort: Lev-Town
|
|
Zitat: | Wenn kein passendes Topic-Objekt existiert, spuckt die TopicScope-Routine die beschriebene Meldung aus. Bis zum default-Ausführungsblock kommt das Spiel erst gar nicht.
|
Da liegt wahrscheinlich das Problem. Allerdings habe ich mich an Frank Borgers 'Eden' orientiert, und meines Erachtens auch nichts anders bzw. falsch gemacht. GInfo und GInfoG sind auch an den richtigen Stellen eingebunden ... :roll: _________________ http://www.interactive-fiction.de.vu/
http://www.pro-board.de/ |
|
|
|
|
|
Verfasst am:
Mo, 22 Sep 2003 - 17:47
|
|
|
Wasserträger
Anmeldungsdatum: 19.08.2003
Beiträge: 34
Wohnort: Lev-Town
|
|
Martin hat folgendes geschrieben: | Oder es ist wieder ein Problem, das mit extend ... first gelöst werden kann. |
Mmh, habe ich gerade mal ausprobiert - wenn ich das so mache, kommt direkt die default-Meldung, auch wenn ich im Spiel nach den 'richtigen' Sachen (in meinem Beispiel nach 'vater') frage. _________________ http://www.interactive-fiction.de.vu/
http://www.pro-board.de/ |
|
|
|
|
|
Verfasst am:
Mo, 22 Sep 2003 - 19:48
|
|
|
Abenteurer
Anmeldungsdatum: 26.08.2002
Beiträge: 278
Wohnort: Leipzig
|
|
Martin hat folgendes geschrieben: | Ich finde den GInfo-Ansatz übrigens wesentlich eleganter als den Consult-Kram. |
Dem schließe ich mich an. Meine Vermutung war nur, das "default" würde mit ginfo.h vielleicht prinzipiell nicht funktionieren. Irrtum meinerseits, Frank Borger verwendet es in "Eden" andauernd.
Im Vergleich zu den Topics im Eden-Quelltext fehlt deinem Tvater zwar die Deklination (dekl 2 müsste passen), aber das kann ja wohl kaum der Fehler sein... |
|
|
|
|
|
Verfasst am:
Mo, 22 Sep 2003 - 20:41
|
|
|
Wasserträger
Anmeldungsdatum: 19.08.2003
Beiträge: 34
Wohnort: Lev-Town
|
|
ChrW hat folgendes geschrieben: | Im Vergleich zu den Topics im Eden-Quelltext fehlt deinem Tvater zwar die Deklination (dekl 2 müsste passen), aber das kann ja wohl kaum der Fehler sein... |
In meinem 'Original' habe ich es auch dekliniert - hier habe ich es weggelassen, da ich darin auch nicht den Fehler gesehen habe. 8)
Was meint ihr mit 'GInfo-Ansatz' ? _________________ http://www.interactive-fiction.de.vu/
http://www.pro-board.de/ |
|
|
|
|
|
Verfasst am:
Mo, 22 Sep 2003 - 23:04
|
|
|
Abenteurer
Anmeldungsdatum: 26.08.2002
Beiträge: 278
Wohnort: Leipzig
|
|
der.Grob hat folgendes geschrieben: | Was meint ihr mit 'GInfo-Ansatz' ? |
Die Idee, Gesprächsthemen als Objekte umzusetzen und den Parser parsen zu lassen, statt es selbst machen zu müssen.
Ich hab mal den Quelltext von Eden heruntergeladen und das Spiel kompiliert. Das Ergebnis: Es passiert genau das Gleiche wie bei dir, es erscheint die "Bin überfordert"-Meldung, wenn man die Schlange bspw. nach Autos fragt, oder den Schöpfer nach Bier. Dass Frank Borger Eden mit der Version von ginfog.h kompiliert hat, die auf seiner Homepage steht, ist unwahrscheinlich.
Schreib ihm doch ne Mail und frag ihn, wie er es gemacht hat.
(Und wenn er antwortet: Poste bitte die "Auflösung" hier. Würde mich interessieren. Mein eigener Lösungsansatz ist nämlich leider ... äh ... sehr unvollkommen.) |
|
|
|
|
|
Verfasst am:
Di, 23 Sep 2003 - 8:00
|
|
|
Wasserträger
Anmeldungsdatum: 19.08.2003
Beiträge: 34
Wohnort: Lev-Town
|
|
ChrW hat folgendes geschrieben: | (Und wenn er antwortet: Poste bitte die "Auflösung" hier. Würde mich interessieren. Mein eigener Lösungsansatz ist nämlich leider ... äh ... sehr unvollkommen.) |
Der stand hier doch eben noch - oder bin ich jetzt total wirr im Kopf? Jedenfalls fand ich deinen Ansatz gar nicht so schlecht. Bei deinem Lösungsansatz taucht jedoch das Problem auf, dass die default-Meldung zwar erscheint, allerdings erst nachdem man nach einer 'richtigen' Sache gefragt hat. Fragt man zuerst nach etwas anderem, kommt gar keine Meldung. Ich hab' dann ein bisserl rumprobiert, war aber irgendwie zu müde, um auf ein sinnvolles Ergebnis zu kommen. Wenn meine Versuche gleich immer noch erfolglos bleiben, mail ich ihn mal an ... _________________ http://www.interactive-fiction.de.vu/
http://www.pro-board.de/ |
|
|
|
|
|
Verfasst am:
Di, 23 Sep 2003 - 10:12
|
|
|
Abenteurer
Anmeldungsdatum: 26.08.2002
Beiträge: 278
Wohnort: Leipzig
|
|
Stand tatsächlich schon da, ich hatte den Vorschlag wieder entfernt, weil er halt nicht immer funktioniert. Der Vollständigkeit halber:
Code: | [ TopicScope;
switch(scope_stage)
{
1: rfalse;
2: ScopeWithin(Topics); rtrue;
3: <<ask noun>>;
}
]; |
Laut dem DM4 ruft der Parser TopicScope mit scope_stage=3 auf, wenn beim Parsen ein Fehler auftrat, z.B. weil kein entsprechendes Topic existiert. Wenn dort, wie bisher in der ginfog.h, eine Meldung steht, wird diese angezeigt und fertig.
Meine Idee war, stattdessen "ask" von Hand aufzurufen, einfach nur mit dem Nomen, ohne Angabe von "second". Dann müsste, dachte ich, die default-Meldung kommen. Tut sie aber erst, wenn man vorher schon mal nach einem "richtigen" Topic gefragt hat. Wo ist mein Denkfehler? |
|
|
|
|
|
Verfasst am:
Mi, 24 Sep 2003 - 20:08
|
|
|
Wasserträger
Anmeldungsdatum: 19.08.2003
Beiträge: 34
Wohnort: Lev-Town
|
|
|
|
|
|
|
Verfasst am:
Mo, 29 Sep 2003 - 14:03
|
|
|
Neuling
Anmeldungsdatum: 29.09.2003
Beiträge: 13
Wohnort: Bayreuth
|
|
Ich bitte um Entschuldigung für die urlaubsbedingt verzögerte Reaktion und für ein nachträglich eingefügtes und ganz offensichtlich ungenügend dokumentiertes* Feature von GInfo:
Mit der (vor Einbinden von GInfo.h einzufügenden) Definition
Code: |
Constant KEEP_OLD_TOPIC_SYNTAX;
|
bleiben alle 'alten' Grammatikzeilen der Konversations- und Konsultationsverben 'im Spiel'. Dann funktioniert auch das mit dem default-Zweig.
Definiert man die Konstante nicht, werden die alten Zeilen weggelassen. Dann muss der Parser tatsächlich auf jedes Topic vorbereitet werden oder noch andere Grammatikextensions bekommen.
* Im Informissimus steht's (noch) nicht, wohl aber in der Doku zu GInfo. Eine Frage an dieser Stelle: Gibt es jemand außer mir, der mit der Datei GInfo.nw etwas anfangen kann? |
|
|
|
|
|
Verfasst am:
Mo, 29 Sep 2003 - 15:33
|
|
|
Wasserträger
Anmeldungsdatum: 19.08.2003
Beiträge: 34
Wohnort: Lev-Town
|
|
|
|
|
|
|
Verfasst am:
Mi, 1 Okt 2003 - 16:26
|
|
|
Abenteurer
Anmeldungsdatum: 26.08.2002
Beiträge: 278
Wohnort: Leipzig
|
|
Danke für deine Hilfe und für ginfo!
frob hat folgendes geschrieben: | Gibt es jemand außer mir, der mit der Datei GInfo.nw etwas anfangen kann? |
Hmm, also ich nicht. |
|
|
|
|
|