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