| Geschrieben um 06:44 am 28.05.2006 | Zitat | Editieren | Löschen | |
Mitglied Bachelor Gumby Beiträge: 42 | <td valign="top"><div class="post"><p>Ich habe ein Problem mit dem in der normal.adv definierten Befehl graben. Es gibt dort zwei Definitionen:</p> <p>“`</p> <p>Bef hier_graben</p> <p>Name ‘graben’</p> <p>Verb ‘grabe’ ‘buddele’ ‘wühle’</p> <p>Syntax in demObj</p> <p>Ausf</p> <p> Text ‘Der Boden hier ist zum Graben ungeeignet.’</p> <p>EndeAusf</p> <p>Bef graben</p> <p>Name ‘graben’</p> <p>Verb ‘grabe’ ‘buddele’ ‘buddel’ ‘wühle’</p> <p>Syntax in demObj mit demObj (evtl BeiMir)</p> <p>Ausf</p> <p> Text ‘Dort lässt sich nicht gut graben.’</p> <p>EndeAusf</p> <p>“`</p> <p>Mein Objekt sieht so aus:</p> <p>“`</p> <p>Deko Sand</p> <p>Name ‘Sand’ m</p> <p>Subst ‘sand’ m</p> <p>Adj ‘fein’</p> <p>Ort …</p> <p>Besch ‘…’</p> <p>Vorausf</p> <p> (nehmen)</p> <p> Text ‘…’</p> <p> Stop</p> <p> (hier_graben)</p> <p> Text ‘…’</p> <p> Stop</p> <p>EndeAusf</p> <p>“`</p> <p>So wird aber auf die Eingabe “grab im sand” nur die Meldung “Dort lässt sich nicht gut graben.” ausgegeben. Warum wird hier_graben nicht ausgeführt? Wenn ich den Befehl graben aus der normal.adv einkommentiere, funktioniert es.</p> </div></td> |
| Geschrieben um 10:06 am 28.05.2006 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 707 | Dadurch, dass du das zweite Objekt bei graben mit evtl markiert hast, trifft deine Eingabe “grabe im Sand” sowohl auf hier_graben als auch auf graben zu. Mit evtl gibst du an, dass ein Objekt angegeben werden kann, aber nicht muss. Du hast zwei Möglichkeiten, das Problem zu umgehen: 1) Entferne das evtl aus der Klammer. Dann hast du zwei unterschiedliche Befehle, zwischen denen du immer unterscheiden kannst. Nachteil: Du musst bei einem Objekt, das auf graben reagieren soll, immer beide Varianten abfangen. 2) Schmeiß die Definition von hier_graben raus. Dann hast du einen Befehl, der sowohl auf “grabe im Sand” als auch auf “grabe mit der Schaufel im Sand” reagiert. Nachteil: Du musst in deinem Code immer (aObj = nichts) abfangen, damit du zwischen den beiden Fällen unterscheiden kannst. Ich würde, glaube ich, Methode zwei bevorzugen. |