IF-Forum

» IF-Forum - Autorencafé - Schreiben! - Graben
AntwortenNeues ThemaNeue Umfrage

Graben

Geschrieben um 06:44 am 28.05.2006 | Zitat | Editieren | Löschen
Lukas
Mitglied
Bachelor Gumby
Beiträge: 42

Ich habe ein Problem mit dem in der normal.adv definierten Befehl graben. Es gibt dort zwei Definitionen:


Bef     hier_graben

Name    'graben'

Verb    'grabe' 'buddele' 'wühle'

Syntax  in demObj

Ausf

  Text  'Der Boden hier ist zum Graben ungeeignet.'

EndeAusf

Bef     graben

Name    'graben'

Verb    'grabe' 'buddele' 'buddel' 'wühle'

Syntax  in demObj mit demObj (evtl BeiMir)

Ausf

  Text  'Dort lässt sich nicht gut graben.'

EndeAusf

Mein Objekt sieht so aus:


Deko Sand

Name 'Sand' m

Subst 'sand' m

Adj 'fein'

Ort ...

Besch '...'

Vorausf

       (nehmen)

       Text '...'

       Stop

       (hier_graben)

       Text '...'

       Stop

EndeAusf

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.

Geschrieben um 10:06 am 28.05.2006 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

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.

AntwortenNeues ThemaNeue Umfrage
Powered by Spam Board SVN © 2007 - 2021
Impressum / Datenschutz