IF-Forum

» IF-Forum - Autorencafé - Schreiben! - I6 Problem mit "move player to"
AntwortenNeues ThemaNeue Umfrage

I6 Problem mit "move player to"

Geschrieben um 13:42 am 03.06.2012 | Zitat | Editieren | Löschen
Kris
Mitglied
Dr Gumby
Beiträge: 181

Hallo,

drei Objekte (mehr sind auch noch nicht implementiert) sollen folgendes bewirken: Spieler ist im Garten, klettert über den Zaun, landet in Nachbars Garten:



!---------------------------

! Garten

!---------------------------

Object Garten "Garten"

   with description "Der Garten deiner Großeltern ist mit vielen bunten Sommerblumen bepflanzt.

                     Der Garten wird an allen Seiten von einem Zaun begrenzt.",

    has light;

Object -> Zaun "Zaun"

   with name 'zaun' 'alten' 'alter' 'holzzaun',

        dekl 1,

        description "Der alte Holzzaun könnte wieder einmal gestrichen werden.",

        before [;

                Climb: move player to Nachbar;

                        print "Du kletterst über den Zaun...^";

                        rtrue;

                       

                Burn: "Der Zaun ist noch nass weil es gestern geregnet hat.";

                ],

           

    has male static scenery;

!---------------------------

! Nachbargarten

!---------------------------

Object Nachbar "Nachbars Garten"

   with description "Der eingezäunte Garten ist völlig verwachsen, es gibt keinen Ausgang.",

    has light;

   ```

Dabei passiert folgendes: Nachdem der Spieler geklettert ist, wird a) die Runde nicht mit der Raumbeschreibung eingeleitet, b)

fällt die Beschreibung des Ortes weg bei "look" und c) in der Statuszeile wird als Ort "Das Nachbars Garten" angezeigt, also mit Artikel  (sieht man nicht im Script unten):

**Zitat:**
> Release 1 / Serial number 120602 / Inform v6.30 Library 6/10 (deutsch) SD

Garten

Der Garten deiner Großeltern ist mit vielen bunten Sommerblumen bepflanzt. Der Garten wird an allen Seiten von einem Zaun begrenzt.

>x zaun

Der alte Holzzaun könnte wieder einmal gestrichen werden.

>kletter über zaun

Du kletterst über den Zaun...

>l

Nachbars Garten

>

Verbinde ich die beiden Orte mit z.B. e_to funktioniert alles einwandrfei.

Hat jemand eine Idee?

Danke und Gruß

Kris
Geschrieben um 18:48 am 03.06.2012 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

Die Anweisung move x to y ist eine Low-Level-Anweisung, die nur das Objekt im Objektbaum verschiebt, sich aber nicht um andere Dinge, wie zum Beispiel neue Raumbeschreibungen oder neue Lichtverhältnisse kümmert.

Was Du suchst, ist die Library-Routine PlayerTo, der das DM4 sogar den größten Teil eines Kapitels widmet.

Also:


        Climb:

            print "Du kletterst über den Zaun...^";

            PlayerTo(Nachbar);

            rtrue;

    ],
Geschrieben um 19:07 am 03.06.2012 | Zitat | Editieren | Löschen
Kris
Mitglied
Dr Gumby
Beiträge: 181

Tausend Dank!

Ich bin echt zu lange raus...

Gruß

Christof

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