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 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 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 #include 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