FindPotion()

FUNKTION

varargs int FindPotion(string s);

DEFINIERT IN

/std/player/potion.c

ARGUMENTE

string s
  Ausgabetext. Wenn 0/Leerstring, wird Default verwendet.

BESCHREIBUNG

Diese Funktion gibt einem aufrufenden Spieler eventuell diesen ZT.

Das aufrufende Spielerobjekt muss dafuer:
* diesen ZT im Potionmaster in seiner Liste eingetragen haben
* diesen ZT in der Liste der bekannten Traenke haben (durch
  Orakel also fuer ihn auch freigeschaltet)
* darf keine Playerkills haben (P_KILLS)
* darf nicht im Editiermodus sein
* darf kein Geist sein (Ausnahme: Geisterschloss)

Wenn alle Kriterien erfolgreich erfuellt sind, wird 's' oder
"Du findest einen Zaubertrank, den Du sofort trinkst." ausgegeben
und dem Spieler ggf die Wahl der Attribute gegeben.

RUeCKGABEWERT

0 bei Nichtvergabe, 1 bei erfolgreicher Vergabe.

BEISPIELE

string detail_papiere() {
  if (this_player()->FindPotion(
    break_string("Beim Rumwuehlen in den Papieren entdeckst Du einen "
                 "kleinen Zaubertrank, den Du sofort trinkst.", 78)))
    return "";
    // Es muss ein String zurueckgegeben werden, da man sonst
    // die Fehlermeldung "Sowas siehst du hier nicht." bekommt
  else
    return "Die Papiere sind alle unbeschriftet.\n";
}

HINWEISE

Zaubertraenke duerfen nicht in Raeumen eingetragen werden, die in der
Parawelt liegen oder nur ueber Paraweltraeume zugaenglich sind.

Der Auswahldialog fuer die Attribute wird an this_interactive()
ausgegeben, d.h. das Kommando, das zum Aufruf von FindPotion() fuehrt,
muss von dem Spielerobjekt eingegeben werden, an dem FindPotion()
gerufen wird. Das bedeutet konkreter: Bei einem ZT, bei dem ein zweiter
Spieler ein Kommando eingibt, damit ein anderer Spieler einen ZT findet,
funktioniert nicht.

SIEHE AUCH

Sonstiges: zaubertraenke, /secure/potionmaster.c, /room/orakel.c
Verwandt:  AddKnownPotion(), RemoveKnownPotion(), InList()
Props:     P_POTIONROOMS, P_KNOWN_POTIONROOMS
Befehl:    traenke (fuer Magier zum Einschalten des Findens von ZTs)

19 Nov 2020 Arathorn