RemoveFunc()¶
FUNKTION¶
int RemoveFunc(object ruest, int info, object user);
DEFINIERT IN¶
eigenen Objekten (fuer /std/clothing/wear)
ARGUMENTE¶
ruest (object)
Die Ruestung/Kleidung, die ausgezogen werden soll.
info (int)
Bei (info&M_SILENT) wird keine Meldung ueber das Ausziehen
ausgegeben.
Bei (info&M_NOCHECK) wird die Kleidung ausgezogen, egal was diese
Funktion zurueckgibt. Dies tritt insbesondere dann auf, wenn der
Spieler, der die Ruestung traegt, stirbt und die Ruestung in
die Leiche bewegt wird.
user (object)
Das Lebewesen, welches die Ruestung/Kleidung gerade traegt und sie
ausziehen will.
BESCHREIBUNG¶
Mit dieser Funktion kann man pruefen, ob sich das Kleidungsstueck bzw.
Ruestung <ruest> von this_player() ausziehen laesst oder nicht.
Kann die Ruestung ausgezogen werden, so muss ein Wert ungleich 0
zurueckgegeben werden.
Diese Funktion meldet nur einen _Wunsch_ an. Dieser kann ignoriert
werden (z.B. bei bestimmten Bewegungen, Tod des Spielers etc.).
Unabhaengig vom Wert dieser Funktion kann das Ausziehen noch Scheitern
oder Erzwungen werden.
Wenn ihr sicher sein wollt, dass der Spieler ein Objekt angezogen hat,
benutzt bitte InformUnwear().
RUeCKGABEWERT¶
0, wenn sich die Ruestung nicht ausziehen laesst, ansonsten ungleich 0.
BEMERKUNGEN¶
Verfluchte Ruestungen, die sich erst nach Entfernung des Fluches wieder
ausziehen lassen, sollte man besser mit P_CURSED realisieren (man spart
die RemoveFunc() ein).
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 Umhang, den man nur mit guter Einstellung wieder ausziehen kann:
inherit "std/armour.c";
#include <properties.h>
#include <moving.h>
create()
{
::create();
SetProp(P_ARMOUR_TYPE, AT_CLOAK);
/* zig weitere SetProp's, um den Umhang zu konfigurieren */
/* RemoveFunc() ist im Umhang selbst zu finden */
SetProp(P_REMOVE_FUNC, this_object());
}
int RemoveFunc(object me, int info, object user)
{
if (user->QueryProp(P_ALIGN) >= 0 || (info&M_NOCHECK))
return 1; /* gute Charaktere koennen den Umhang ausziehen */
/* Ansonsten geben wir evtl. einen entsprechenden Hinweis aus: */
if (!(info&M_SILENT))
write( "Der Umhang wird von Deiner Bosheit so sehr "
+"angezogen, dass Du ihn\nnicht mehr ausziehen kannst!\n");
return 0;
}
SIEHE AUCH¶
P_WEAR_MSG, P_UNWEAR_MSG, P_WIELD_MSG, P_UNWIELD_MSG
DoUnwear(), DoWear(), InformWear(), InformUnwear()
/std/clothing/wear.c
02.07.2013, Zesstra