if-de :: Forum Foren-Übersicht
Autor Nachricht
<  Aktion * - Problem
Thalon
BeitragVerfasst am: Di, 19 Okt 2010 - 1:06  Antworten mit Zitat
Neuling
Neuling


Anmeldungsdatum: 03.10.2010
Beiträge: 12
Wohnort: Burg Runenstein

Hallo, ich möchte eine unsichtbare Truhe aus dem Boden ausgraben. Die liegt im Moment im Nirwana und wird dann nach dem graben Befehl in den Raum Wald gesetzt. Soweit klappt das schon ganz gut. Die Truhe erscheint Im Wald und ich kann sie, untersuchen und öffnen, aber wenn ich jetzt nochmal den Befehl graben eingebe, dann wird die ganze Aktion * wiederholt.
Die Zeile "Wenn /(aObj = Truhe3) dann" müsste doch dafür sorgen, dass bis zum "Sonst" von dieser Aktion * nichts mehr beachtet wird. Es wird aber immer wieder der Text "'Du gräbst eine Truhe frei.'" herausgegeben. Wie kann ich das verhindern, sodas beim 2. graben der Text "'Hier hast du schon gegraben.'" erscheint?

Code:

Deko       Erde
Name      'Waldboden' m
Vor       'Wald'
Adj       'nasse' 'feuchte' 'weiche'
Subst     'Erde' f  'Boden' m
Ort        Wald
Besch     'Der Waldboden .....'     
VorAusf
 (nehmen)
  Text    'Du kannst das nicht nehmen. '
  Stop
 (hier_graben)
  Text '...'
  Stop
EndeAusf

Aktion *
Ausf     
   Wenn /(aObj = Truhe) dann
    Wenn (aRaum = Wald) dann
     Wenn (aBef = hier_graben) dann
     Text 'Du gräbst eine Truhe frei.'     
        ObjNach Truhe Wald 
        Sonst
          Wenn (aBef = hier_graben) dann
           Wenn (aObj = Truhe) dann
            Text 'Hier hast du schon gegraben.'
           Ende
          Ende
     Ende
    Ende
   Ende       
  Stop
EndeAusf


Ich bedanke mich schon mal für evtl. Hilfe :0)
_________________
"Kal Vas Xen Flam"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Martin
BeitragVerfasst am: Di, 19 Okt 2010 - 6:57  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 25.08.2002
Beiträge: 677
Wohnort: München

Hmmm. Eine Aktion * ist eigentlich dazu da, in jedem Zug Dinge auszuführen, die unabhängig vom Spielzug des Spielers passieren: Ein Windhauch streicht durch den Wald, NPCs bewegen sich durch die Räume, eine Straßenbahn fährt ihre Linie ab, so etwas. In einer Aktion * sollten also aObj und aBef, die den Spielzug des Spielers beschreiben, nicht vorkommen.

Außerdem ist aObj ja gar nicht die Truhe. Der Befehl heiß ja vermutlich nur "grabe", und dann ist nur aBef belegt. (Oder der Befehl lautet "grabe in der erde", dann ist aBef ja die Erde.)

Außer-außerdem kann die zweite Bedingung (aBef = hier_graben), die im sonst-Ast, nie wahr sein, weil die Bedingung im anderen Ast, die auch (aBef = hier_graben) heißt, schon wahr ist. Wenn man den Code richtig einrückt, wird das klar:
Code:

Aktion *
Ausf     
    Wenn /(aObj = Truhe) dann
        Wenn (aRaum = Wald) dann
            Wenn (aBef = hier_graben) dann
                Text 'Du gräbst eine Truhe frei.'     
                ObjNach Truhe Wald
            Sonst
                Wenn (aBef = hier_graben) dann
                    Wenn (aObj = Truhe) dann
                        Text 'Hier hast du schon gegraben.'
                    Ende
                Ende
            Ende
        Ende
    Ende       
    Stop
EndeAusf


Ich würde das Finden der Truhe direkt beim Raum abfangen:

Code:

Raum    Wald
Name    'Im Wald'
Besch   'Riesige Bäume ...'     
VorAusf
    (hier_graben)
        Bed (Truhe in Nirgendwo)
            'Nach deinem Glückstreffer mit der Truhe
            findest du hier nichts Weiteres mehr.'
        ObjNach Truhe Wald
        Stop 'Du gräbst eine Truhe frei.'
    Stop
EndeAusf

Easy-peasy! :-)

(Es ist leichter, wenn man 'nirgendwo' und 'Nirwana' unterscheidet: Im Nirgendwo sind Objekte, die noch nicht im Spiel sind, im Nirwana sind Objekte, die aus dem Spiel herausgenommen wurden. So kann die Truhe später im Nirwana landen, weil sie etwa in eine Schlucht gefallen oder verbrannt ist, und trotzdem nicht wieder ausgegraben werden.)
_________________
Every silver lining has a cloud.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Thalon
BeitragVerfasst am: Di, 19 Okt 2010 - 10:47  Antworten mit Zitat
Neuling
Neuling


Anmeldungsdatum: 03.10.2010
Beiträge: 12
Wohnort: Burg Runenstein

Juhuuu, es funktioniert! :0)
Oh Mann, so einfach kanns sein.

Habt Dank für die Erleuchtung!
_________________
"Kal Vas Xen Flam"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Alle Zeiten sind GMT + 1 Stunde (MEZ)

Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Seite 1 von 1
if-de :: Forum Foren-Übersicht  >  T.A.G.

Neues Thema eröffnen   Neue Antwort erstellen


 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.



Kontakt: Administrator

Powered by phpBB and NoseBleed v1.05