Dokumentation zu: GiveQuest(L)

HR Image


FUNKTION:
        int GiveQuest(object pl, mixed id, mixed msg) // im Questmaster
        int GiveQuest(mixed id, mixed msg)            // im Spieler

DEFINIERT IN:
        /secure/questmaster.c
        /sys/questmaster.h
        /std/player/quests.c

ARGUMENTE:

        pl  - Objekt des Spielers
        id  - Nummer (int) der Quest (optional Name (string) bei alten Quests)
        msg - Ebenenmeldung.

FUNKTION:
        Gibt dem Spieler eine Quest
        Wenn msg 0 oder "" ist, wird eine Standard-Ebenenmeldung ausgegeben.
        Wenn nichts ausgegeben werden soll, muss "__silent__" uebergeben
        werden.
        ACHTUNG! Der Rueckgabewert von GiveQuest() sollte _immer_ ausgewertet
        und sowohl erfolgreiche als auch misslungene Questversuche geloggt
        werden. Dazu gibt es ein extra Verzeichnis /log/quests/.
        Das Loggen geschieht mittels log_file().

RÜCKGABEWERTE:
         1 - Setzen OK
        -1 - Spieler hat Quest schon
        -2 - Quest nicht angemeldet
        -3 - Unberechtigter Zugriff
        -4 - Quest nicht aktiv
        -5 - Problem mit P_QUESTS des Spielers

BEISPIELE:

        1.) Es wird eine Standardmeldung erzeugt:
            [Abenteuer] Shin hat gerade ein Abenteuer bestanden: Die
                   Speisekarte des Menschenfressers
        #include <questmaster.h>
        #include "../files.h"

        // Im files.h sollte QUEST_ID definiert sein. Das ist eine Kennzahl,
        // die beim Anmelden der Quest beim Questmaster bzw. in /room/quests
        // vergeben wird.

        void questvergabe(object pl)
        {
          // ACHTUNG! Rueckgabewert auswerten und loggen!
          QM->GiveQuest(pl, QUEST_ID, 0)
        }

        2.) Je nachdem, ob der Spieler die Quest schon geloest hatte,
            wird keine oder eine eigene Meldung ausgegeben
        #include "../files.h" // fuer QUEST_ID

        void questvergabe(object pl)
        {
          string msg;

          // Die Quest wurde vom Spieler noch nicht geloest
          if (!pl->QueryQuest(QUEST_ID))
            msg = "Der Koenig von Nimmerland verkuendet: " +
                  pl->name(WER, NAME_DEF|NAME_CAP) + " hat mich geheilt!!";
          // ansonsten:
          else
            msg = "__silent__";
          // Questvergabe - ACHTUNG! Rueckgabewert auswerten und loggen!
          pl->GiveQuest(QUEST_ID, msg)
        }

SIEHE AUCH:
        log_file(S), questmaster(s), QueryQuest(l)


Start » Magierhandbuch » Docu » Lfun » GiveQuest Letzte Generierung: 25.04.2021, 01:58
Email an: mud@wl.mud.de
Valid HTML 4.01!