Geschrieben um 10:07 am 23.10.2013 | Zitat | Editieren | Löschen | |
Mitglied Master Gumby Beiträge: 107 | Um auch die Eingabe "frag nach <wasauchimmer>" für den Default-Dialogpartner des Spielers verstehen zu können, hab' ich das frag verb folgendermaßen erweitert
Wie man sich schon denken kann, funktioniert es natürlich nicht. (deswegen bin ich da! ;-) Allerdings weiß ich nicht warum. Wenn man die auskommentierte Zeile einkommentiert, ist die Ausgabe des nouns und der Verbs nur "noun: 0 2nd: 0". Das topic-Token kann ich gar nicht ansprechen/ausgeben. Da gibt's schon beim Kompilieren einen Fehler. Weiß irgendwer, wie man das richtig umsetzt? |
Geschrieben um 11:16 am 23.10.2013 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 1062 | Hmm. Sieht eigentlich ganz gut aus. Was funktioniert denn daran nicht? Edit: Ach so, jetzt sehe ich es: Das topic sollte wohl eher mit noun anstatt second angesprochen werden. Bei Deinem neuen Satzmuster ohne creature gibt es nur ein einziges Satzobjekt, und das ist dann das noun. |
Geschrieben um 11:43 am 23.10.2013 | Zitat | Editieren | Löschen | |
Mitglied Master Gumby Beiträge: 107 | Ich versuche die Antworten folgendermaßen zu erzeugen:
Allerdings komme ich so mit der Frage ohne Person immer in den default-Zweig... |
Geschrieben um 11:54 am 23.10.2013 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 1062 | Mischa:
Ja, weil bei der Frage ohne noun (second == nothing) gilt. Du könntest vor der Behandlung der Ask-Tell-Answer-Abteilung testen, ob second einen brauchbaren Wert hat. Wenn nicht, dann wird eben noun untersucht, z.B. so:
|
Geschrieben um 12:21 am 23.10.2013 | Zitat | Editieren | Löschen | |
Mitglied Master Gumby Beiträge: 107 | ChristianB:
Finde ich aber nicht logisch... Ich dachte durch Aufrufen von
würden noun und second auch dementsprechend gesetzt (also noun=frau und second=noun). Aber schonmal danke für den Workaround! :-) |
Geschrieben um 12:23 am 23.10.2013 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 1062 | Zitat:
Stimmt. Das sollte eigentlich so funktionieren. Seltsam. |
Geschrieben um 12:28 am 23.10.2013 | Zitat | Editieren | Löschen | |
Mitglied Prof Gumby Beiträge: 634 | Mischa:
Uh, uh, consulting topics, eines meiner Lieblings-Hassthemen von Inform. Topics werden, egal, ob sie nun das erste oder zweite Objekt im Satz sind, so abgelegt, dass man die Eingabe mit consult_from und consult_words selbst untersuchen muss. Dass bei ##Ask second auf das erste Wort gesetzt wird, ist eine Ausnahme, die in parserm.h fest verdrahtet ist. Über die globale Variable parsed_number und von da weiter über special_number2 gelangt der Wert des ersten Worts zu second, wenn die action ##Ask ist. So geht's also:
|
Geschrieben um 12:43 am 23.10.2013 | Zitat | Editieren | Löschen | |
Mitglied Prof Gumby Beiträge: 634 | Christian:
Dieser Workaround funktioniert aber auch nicht, weil in den von Graham als Konversation gekennzeichneten Aktionen noun bzw. second gesetzt werden, in allen anderen Aktionen, die Topics verwenden, nicht. daswird in parserm.h, __ParseToken, Abscnitt A explizit mit:
abgefragt. Außerdem ist es ja selbst bei ##Ask legal, dass second Null ist: Es kann ja ein nicht erkanntes Wort angegeben werden, wie zum Beispiel "Wyvern" in der Tabelle in §18 im DM4, die den Mischmasch der Konversation in I6 ganz gut illustriert. Das ist ja das Blöde: Es gibt keinen schönen Mechanismus, mit dem man die Konversationsthemen selbst erweitern kann, so dass sie auch die Sonderbehandlung bekommen. Man muss das alles selbst umsetzen. |
Geschrieben um 13:04 am 23.10.2013 | Zitat | Editieren | Löschen | |
Mitglied Master Gumby Beiträge: 107 | Ah! Und wieder wird mir Inform ein wenig klarer! :-) Danke! Und die FindActor() Funktion ist auch genial, so kann man nämlich sogar mehrere Aktoren angeben und zwischen denen (durch else if) priorisieren! :-) |
Geschrieben um 13:18 am 23.10.2013 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 1062 | Mischa:
Echt? Bei mir ist es umgekehrt Danke, Martin, für die Erklärungen. Dennoch bin ich mir ziemlich sicher, dass ich bislang die Topics irgendwie anders durch die Gegend geschubst habe; eher so, wie Mischa es versucht hat. Ich muss das mal in Ruhe nachsehen. |
Geschrieben um 13:26 am 23.10.2013 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 1062 | Okay, ich habe mich falsch erinnert. Ich hab's so gemacht, wie Martin so richtig erklärt hat, zum Beispiel bei der automatischen Suche nach einem Gesprächspartner:
|