________________________________________________________________________
[<<] [Inhalt] [>>] III. Beispiele

13. Der Spieler

13.1.   Was genau ist der Spieler in TAG?
13.2.   Mehrere Leben
13.3.   Ein ganzes Team

13.1. Was genau ist der Spieler in TAG?

Der Spieler ist natürlich ein wichtiges Objekt, obwohl er kein Objekt im Sinne von TAG ist. Der Spieler wird nur mittels einiger Flaggen beschrieben. Für Objekte, die beim Spieler sind, gelten BeiMir und angezogen und sein Aufenthaltsort wird mit aRaum und aSitz beschrieben. Die Variable bSitz beschreibt, ob er auf aSitz sitzt, steht oder liegt mit den Werten %sitzen, %stehen und %liegen.

Es gibt kein Objekt 'Spieler' in TAG. Daher müssen alle Besonderheiten, die den Spieler betreffen, im jeweiligen Befehl abgefangen werden, z.B.:
        Bef     drehen
        [...]
        Ausf
          Bed /(aObj = du)
              'Du drehst dich zu deinem Vergnügen ein wenig im
              Kreis herum.'
          Bed /(aObj fest immobil)
              '[Der aObj] [läßt/lassen] sich nicht drehen.'
          Text 'Du drehst [den aObj].'
        EndeAusf

Besondere Regeln, die vielleicht nur in bestimmten Situationen gelten, können in der Aktion Vorher abgefangen werden:

        Aktion Vorher
        Ausf
          Wenn (Gasmaske angezogen) dann
            Bed /(aBef = sagen fragen erzählen) und (Akteur = 0)
                'Man hört nur ein undeutliches Genuschel, wenn du
                durch die Gasmaske sprichst.'
          Ende
        Ende

Wenn sich ein Objekt beim Spieler oder in oder auf einem der Objekte, die beim Spieler sind, befindet, so ist der Stammraum dieses Objekts Null. Dies ist etwas allgemeiner als die Angaben BeiMir und angezogen, die eine konkrete Situation beschreiben.

Anmerkung: In der Eingabe des Spielers wird du und ich als gleichwertig betrachtet. Also bewirkt 'untersuche mich' und 'untersuche dich' dasselbe. Wendet sich der Befehl an einen Akteur, so bezeichnet du den Akteur und ich wird in die Hilfsvariable Du umgewandelt, da ja damit der Spieler gemeint ist. Ein Sonderfall ist, wenn es sich um ein reflexives Verb handelt. Dann wird 'dich' als Bestandteil des Verbs gewertet.

13.2. Mehrere Leben

Manche Spiele (darunter auch Adventure und Zork) geben dem Spieler drei Leben. Meistens wurde der Spieler bei seinen ersten beiden Toden wiederbelebt und an seinen Ausgangspunkt zurückgesetzt. Seine Besitztümer jedoch wurden über alle ihm bereits bekannten Räume verstreut.

In TAG stirbt der Spieler durch den Befehl gestorben. Wird dieser Befehl eingegeben, so ist der Spieler tot, es erscheint die passende Meldung und sein fleischliches Gegenstück an der Tastatur wird gefragt, ob er aufhören, von vorne beginnen oder einen Spielstand laden möchte.

Um dem Spieler mehrere Leben zu geben, könnte man folgende Routine benutzen:

        Flagge  Leben 3
        Raumvar xRaum

        Aktion  Tod
        Ausf
          Dekr Leben
          Wenn (Leben) dann
            Absatz
            Text '*** Du bist jetzt leider tot. ***'
            Absatz
            Wenn (Leben > 1) dann
              Text  'Von irgendwo hörst Du eine Stimme: "Aha, schon
                    wieder ein Möchtegern-Abenteurer. Ihr lauft immer
                    so unbetrübt durch die Unterwelt, und ich muß euch
                    dann wieder zusammenflicken. Also, an die Arbeit."'
            sonst
              Text  '"Du schon wieder!" hörst du die bekannte Stimme.
                    "Hast du schon wieder nicht aufgepaßt? Na schön,
                    einmal kann ich dich gewiß noch in Ordnung
                    bringen."'
            Ende
            Absatz
            Text    'Eine orangefarbene Wolke senkt sich auf dich
                    herab. Du fühlst dich schwer und bleiern und
                    sinkst in einen tiefen Schlaf.

                    Als du aufwachst, befindest Du dich...[#]'

            | Objekte verteilen
            Schleife iObj
              Wenn (iObj beiMir) dann
                wiederhole
                  Zufall xRaum MinRaum MaxRaum
                bis (xRaum besucht)
                Objnach xRaum
              Ende
            Ende

            | Zurück zum Anfang
            GeheZu Unterwelt_Eingang
          sonst
            Text    'Eine Stimme sagt: "Tut mir leid, aber jetzt kann
                    ich nichts mehr für dich tun. Ich konnte ja nicht
                    wissen, daß du *so* ungeschickt bist."'
            Gestorben
          Ende
        EndeAusf

Anstelle des Befehls gestorben setzt man dann Ausf Tod. In dieser Aktion wird geprüft, ob man den Spieler noch einmal wiederbeleben kann, und wenn nicht, wird die übliche Ablebensroutine gestorben aufgerufen. Nach dem Aufruf von Tod sollte eine Stop-Anweisung stehen.

13.3. Ein ganzes Team

Man kann sich auch vorstellen, daß der Spieler nicht nur eine Figur steuert, sondern eine ganze Mannschaft. Das ist bei Rollenspielen immer sehr beliebt: Ein Kämpfer, ein Zauberer, eine Diebin - jeder Charakter hat seine eigenen Fähigkeiten.

Dazu kann der Spieler von einer Person zur anderen schalten.

        ObjVar  Spieler Natalia
        ObjAttr Teammitglied

        Bef     wechseln
        Name    'wechseln'
        Verb    'wechsle'
        Syntax  zu demObj (allg)
        Ausf
          Bed (aObj Teammitglied)
                '[Der aObj] [ist] ganz sicher kein Mitglied unseres
                Archäologen-Teams.'
          Bed /(aObj = Spieler)
                'Du spielst im Moment [den aObj].'
          Bed /(aObj tot)
                'Es tut mir leid, aber [der aObj] leb[t] nicht mehr.'

          | Alle Objekte übertragen
          Schleife iObj
            Wenn (iObj BeiMir) dann
              ObjNach iObj bei Spieler
            sonst
              Wenn (iObj bei aObj) dann
                ObjNach iObj BeiMir
              Ende
            Ende
          Ende

          | Den Raum wechseln
          Wenn /(aSitz = 0) dann
            ObjNach Spieler in aSitz
          sonst
            ObjNach Spieler aRaum
          Ende

          Stammraum aRaum aObj
          MutterObj aSitz aObj

          | Spieler wechseln
          Sei Spieler aObj
          Objnach Spieler nirgendwo
          Sei maxInv Spieler.Last
          Sei maxGew Spieler.Gew
          Sei maxVol Spieler.Vol

          Text  'O.K. Du wechselst zu [dem aObj].'
          Ausf Lage
        EndeAusf

        Obj     Natalia
        Name    'Natalia' f 1
        subst   'natalia' f  'nat' f
        Besch   'Dottoressa Natalia Antonelli arbeitet an der
                ägyptologischen Fakultät der Universität Turin.
                In unserem Team ist sie die Spezialistin für
                Schriftzeichen und die Kultur und Religion des
                zweiten Königreichs.

                Sie ist eine braungebrannte Endzwanzigerin mit
                dunkelbraunen Haaren und einer etwas unattraktiven
                Hornbrille.'
        Erst    'Deine Kollegin Natalia ist hier.'
        Dabei   'Ihre Ausrüstung besteht im Moment aus [liste 2].'
        Attr    Person Teammitglied Transparent
        Vol     60
        Gew     60
        Var     Last 4

        [...]

So könnte man ein Archäologen-Team in eine Pyramide senden. Der Spieler spielt immer eine Person, kann aber zu jeder beliebigen umschalten, auch wenn sie nicht am selben Ort ist. (Diese Bedingung könnte man einfügen, indem man das Allg in der Syntax-Zeile wegließe.)

In einer Schleife über alle Objekte werden dem Spieler alle Objekte der Zielperson gegeben und der jetzigen Spielperson alle Besitztümer des Spielers. (Bei der hier vorgestellten Version werden Sachen, die der Spieler angezogen hat, nicht brücksichtigt.)

Der momentan aktive Spieler ist als Objekt nicht im Spiel, da alle Funktionen vom Spieler übernommen werden. Deshalb muß auch der Spieler ins Spiel zurückgeholt werden, bevor der Spieler zur Person aObj wechselt. Diese wird dann ins nirgendwo befördert, damit es sie nicht zweimal gibt: als Spieler und als Person im Spiel.

Martin Oehm, 04.02.2000 Vorheriges KapitelInhaltsverzeichnisNächstes Kapitel