WearFunc()¶
FUNKTION¶
int WearFunc(object ruest, int silent, object user);
DEFINIERT IN¶
eigenen Objekten (fuer /std/clothing/wear)
ARGUMENTE¶
ruest (object)
Die Ruestung/Kleidung, die angezogen werden soll.
silent (int)
Ob dabei eine Meldung ausgegeben wird.
user (object)
Das Lebewesen, welches die Ruestung/Kleidung anziehen will.
BESCHREIBUNG¶
Mit dieser Funktion kann man pruefen, ob sich das Kleidungsstueck bzw.
Ruestung <ruest> von this_player() anziehen laesst oder nicht.
Kann die Ruestung angezogen werden, so muss ein Wert ungleich 0
zurueckgegeben werden.
RUeCKGABEWERT¶
0, wenn sich die Ruestung nicht anziehen laesst, ansonsten ungleich 0.
BEMERKUNGEN¶
Bitte nicht darauf verlassen, dass der Spieler das Objekt auch wirklich
anzieht, wenn man hier 1 zurueckgibt.
Speziell bei Schilden kann das Anziehen trotz eines Rueckgabewertes
!= 0 immer noch schief gehen, wenn der Spieler keine Hand mehr frei hat.
Wenn ihr sicher sein wollt, dass der Spieler ein Objekt angezogen hat,
benutzt bitte InformWear().
Bitte nicht drauf verlassen, dass this_player() das ausziehende Lebewesen
ist.
Die Reihenfolge der Argumente ist etwas unschoen, aber leider wurde <user>
erheblich spaeter hinzugefuegt und es war unmoeglich, einige hundert
Objekte zu aendern.
BEISPIELE¶
Ein Helm, der nur von Elfen getragen werden kann:
inherit "std/armour.c";
#include <properties.h>
create()
{
::create();
SetProp(P_ARMOUR_TYPE, AT_HELMET);
/* zig weitere SetProp's, um den Helm zu konfigurieren */
/* WearFunc() ist im Helm selbst zu finden */
SetProp(P_WEAR_FUNC, this_object());
}
int WearFunc(object me, int silent, object user)
{
if (user->QueryProp(P_RACE) == "Elf")
return 1; /* Elfen duerfen den Helm tragen */
/* Die anderen Rassen sollten zumindest erfahren koennen, wieso
sie den Helm nicht tragen koennen... */
if (!silent)
write( "Der Helm rutscht Dir immer ueber Deine runden "
+"Ohren.\n" );
return 0;
}
Gibt jetzt ein Nicht-Elf "trage helm" ein, so bekommt er die Meldung
"Der Helm rutscht Dir immer ueber Deine runden Ohren.", Elfen dagegen
passt das Teil wie angegossen.
SIEHE AUCH¶
P_WEAR_MSG, P_UNWEAR_MSG, P_WIELD_MSG, P_UNWIELD_MSG
DoWear(), DoUnwear(), InformUnwear(), InformWear()
/std/clothing/wear.c
02.02.2009, Zesstra