blob: bf01ae921ca6c8b04ba1db07994b2aaafd33d8e7 [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001
2RemoveFunc()
3************
4
5
6FUNKTION
7========
8
9 int RemoveFunc(object ruest, int info, object user);
10
11
12DEFINIERT IN
13============
14
15 eigenen Objekten (fuer /std/clothing/wear)
16
17
18ARGUMENTE
19=========
20
21 ruest (object)
22 Die Ruestung/Kleidung, die ausgezogen werden soll.
23 info (int)
24 Bei (info&M_SILENT) wird keine Meldung ueber das Ausziehen
25 ausgegeben.
26 Bei (info&M_NOCHECK) wird die Kleidung ausgezogen, egal was diese
27 Funktion zurueckgibt. Dies tritt insbesondere dann auf, wenn der
28 Spieler, der die Ruestung traegt, stirbt und die Ruestung in
29 die Leiche bewegt wird.
30 user (object)
31 Das Lebewesen, welches die Ruestung/Kleidung gerade traegt und sie
32 ausziehen will.
33
34
35BESCHREIBUNG
36============
37
38 Mit dieser Funktion kann man pruefen, ob sich das Kleidungsstueck bzw.
39 Ruestung <ruest> von this_player() ausziehen laesst oder nicht.
40 Kann die Ruestung ausgezogen werden, so muss ein Wert ungleich 0
41 zurueckgegeben werden.
42
43
44
45 Diese Funktion meldet nur einen _Wunsch_ an. Dieser kann ignoriert
46 werden (z.B. bei bestimmten Bewegungen, Tod des Spielers etc.).
47 Unabhaengig vom Wert dieser Funktion kann das Ausziehen noch Scheitern
48 oder Erzwungen werden.
49 Wenn ihr sicher sein wollt, dass der Spieler ein Objekt angezogen hat,
50 benutzt bitte InformUnwear().
51
52
53RUeCKGABEWERT
54=============
55
56 0, wenn sich die Ruestung nicht ausziehen laesst, ansonsten ungleich 0.
57
58
59BEMERKUNGEN
60===========
61
62 Verfluchte Ruestungen, die sich erst nach Entfernung des Fluches wieder
63 ausziehen lassen, sollte man besser mit P_CURSED realisieren (man spart
64 die RemoveFunc() ein).
65 Bitte nicht drauf verlassen, dass this_player() das ausziehende Lebewesen
66 ist.
67 Die Reihenfolge der Argumente ist etwas unschoen, aber leider wurde <user>
68 erheblich spaeter hinzugefuegt und es war unmoeglich, einige hundert
69 Objekte zu aendern.
70
71
72BEISPIELE
73=========
74
75 Ein Umhang, den man nur mit guter Einstellung wieder ausziehen kann:
76
77 inherit "std/armour.c";
78
79 #include <properties.h>
80 #include <moving.h>
81
82 create()
83 {
84 ::create();
85
86 SetProp(P_ARMOUR_TYPE, AT_CLOAK);
87 /* zig weitere SetProp's, um den Umhang zu konfigurieren */
88
89 /* RemoveFunc() ist im Umhang selbst zu finden */
90 SetProp(P_REMOVE_FUNC, this_object());
91 }
92
93 int RemoveFunc(object me, int info, object user)
94 {
95 if (user->QueryProp(P_ALIGN) >= 0 || (info&M_NOCHECK))
96 return 1; /* gute Charaktere koennen den Umhang ausziehen */
97
98 /* Ansonsten geben wir evtl. einen entsprechenden Hinweis aus: */
99 if (!(info&M_SILENT))
100 write( "Der Umhang wird von Deiner Bosheit so sehr "
101 +"angezogen, dass Du ihn\nnicht mehr ausziehen kannst!\n");
102 return 0;
103 }
104
105
106SIEHE AUCH
107==========
108
109 P_WEAR_MSG, P_UNWEAR_MSG, P_WIELD_MSG, P_UNWIELD_MSG
110 DoUnwear(), DoWear(), InformWear(), InformUnwear()
111 /std/clothing/wear.c
112
11302.07.2013, Zesstra