Autor |
Nachricht |
< Ein Objekt klebt an sich selbst |
|
Verfasst am:
Fr, 11 März 2005 - 0:12
|
|
|
Experte
Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg
|
|
Eine kleine Sache, die mir immer mal wieder begegnet: Wenn ein Objekt an einem anderen befestigt ist, kann man es nicht einfach nehmen, weil laut Parser das Objekt an sich selbst befestigt ist. Dieser Fall müsste dann jedes Mal beim Objekt abgefangen werden. Hier mal ein Beispiel:
Code: | #DAT 'debug.adx'
Raum Testraum
Name 'Testraum'
Besch 'Dies ist der Testraum.'
Obj Tafel
Name 'Tafel' f
Subst 'tafel' f
Attr immobil
Ort Testraum
Obj Zettel
Name 'Haftnotiz' f
Adj 'gelb' 'klein'
Vor 'notiz' 'haft'
Subst 'zettel' m 'notiz' f
Ort an Tafel
ObjVar xObj
Bef teste_Zettel ! Falls debug.adx nicht zur Hand
Name 'Zettel testen'
Verb 'teste'
Syntax dasObj
Ausf
MutterObj xObj Zettel
Text 'Der Zettel befindet sich'
Wenn (Zettel an xObj) Text 'an'
Wenn (Zettel auf xObj) Text 'auf'
Wenn (Zettel in xObj) Text 'in'
Wenn (Zettel unter xObj) Text 'unter'
Wenn (Zettel hinter xObj) Text 'hinter'
Text '[dem xObj].'
EndeAusf |
Code: | TRANSSCRIPT
Dies ist der Testraum.
Du siehst hier eine Tafel.
An der Tafel ist eine Haftnotiz befestigt.
> #trace
[Debug: Tracing aktiviert.]
> #olist
[trace: aBef=olist;]
[debug: Liste aller Objekte]
1 Tafel (Testraum)
2 Haftnotiz (an Tafel)
> teste zettel
[trace: aBef=Zettel testen; aObj=Haftnotiz;]
Der Zettel befindet sich an der Tafel.
> nimm zettel
[trace: aBef=nehmen; aObj=Haftnotiz;]
Das geht nicht: Die Haftnotiz ist an der Haftnotiz befestigt.
> hä? |
Ist das eine Eigenart von T.A.G. oder übersehe ich mal wieder ein wichtiges Detail? |
|
|
|
|
|
Verfasst am:
So, 13 März 2005 - 19:07
|
|
|
Experte
Anmeldungsdatum: 25.08.2002
Beiträge: 677
Wohnort: München
|
|
ChristianB hat folgendes geschrieben: | Ist das eine Eigenart von T.A.G. oder übersehe ich mal wieder ein wichtiges Detail? |
Das ist leider eine Eigenart von T.A.G. Die Beziehung "an" hatte ich eingeführt, um damit so etwas wie angeknotete Seile (die erst explizit losgebunden werden müssen, bevor man sie nehmen kann) oder andere, nicht einfach so entfernbare Objekte (Knopf am Fernseher oder so) darstellen zu können. Das war schon im Amulett/Ur-T.A.G. enthalten. Um alles möglichst offen zu halten, wurden dann fest- und losbinden aus T.A.G. herausgeschmissen, die Möglichkeit ein Objekt "an" einem anderen zu definieren blieb, wurde aber offensichtlich nicht gut gepflegt, wie die Fehlermeldung zeigt. (Noch besser ist die Antwort auf: "nimm Zettel von der Tafel".)
Deshalb musst du hier das Nehmen in einer VorAusf selbst definieren. Das ist etwas blöd, da du so die übliche Überprüfung beim Nehmen (Inventar zu voll?) nicht mitbekommst, ist aber im Moment leider nicht zu ändern. Tut mir leid... _________________ Every silver lining has a cloud. |
|
|
|
|
|
Verfasst am:
So, 13 März 2005 - 19:48
|
|
|
Experte
Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg
|
|
OK, danke, wenn man's weiß ist es ja kein Problem.
Grüße, C. |
|
|
|
|
|