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