blob: 7019447ccd225c7ead06a20f7697ca2e9cee5661 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001is_class_member()
2FUNKTION:
3 int is_class_member(string|string* class);
4
5DEFINIERT IN:
6 /std/thing/description.c
7
8ARGUMENTE:
9 string/string* class - String oder Stringarray der Klasse(n)
10
11BESCHREIBUNG:
12 Es wird getestet, ob das Objekt in eine der in class angegebenen
13 Klassen faellt. In diesen Test werden die folgenden Eigenschaften des
14 Objektes einbezogen:
15
16 1. Die Rasse des Objektes (bei Lebewesen),
17 2. die IDs des Objektes und
18 3. die explizit angegebenen Klassen des Objektes.
19 4. einigen impliziten Klassen, die sich aus den Klassen in 3 ergeben.
20
21 Die moeglichen Klassen sind in /sys/class.h definiert. Momentan stehen
22 folgende Klassen zur Verfuegung:
23
24 CL_AMMUNITION
25 Das Objekt eignet sich als Munition.
26 CL_ANIMAL
27 Das Objekt ist ein Tier.
28 CL_ARACHNID
29 Das Objekt in ein Spinnenwesen.
30 CL_BIGBANG
31 Dieses Objekt kann mehreren Lebewesen auf einmal Schaden zufuegen.
32 CL_BIRD
33 Ein Vogel.
34 CL_CRAWLING
35 Dieses Wesen bewegt sich kriechend.
36 CL_CURSE
37 Das Objekt ist ein Fluch (zB. ein Sprachfluch).
38 CL_DEMON
39 Bei dem Objekt handelt es sich um einen Daemon.
40 CL_DISEASE
41 Eine Krankheit.
42 CL_DRAGON
43 Ein Drache.
44 CL_DWARF
45 Fuer unsere kleinen Gaeste...
46 CL_ELF
47 Elfen aller Art.
48 CL_ELEMENTAL
49 Ein Elementar irgendeiner Art. Material setzen waere angebracht.
50 CL_EXPLOSIVE
51 Bei dem Objekt handelt es sich um einen Sprengstoff.
52 CL_FELINE
53 Felinen und andere katzenartigen Lebewesen.
54 CL_FISH
55 Fische - keine Meeressaeuger!
56 CL_FLYING
57 Dieses Wesen bewegt sich fliegend.
58 CL_FROG
59 Froesche - auch gefroschte Spieler.
60 CL_GHOST
61 Geister und geisterhafte Wesen.
62 CL_GHOUL
63 Ein Ghoul. Er faellt automatisch in die Klasse CL_UNDEAD.
64 CL_GIANT
65 Ein riesiges Lebewesen.
66 CL_GNOME
67 Ein Gnom.
68 CL_GOBLIN
69 Ein Goblin.
70 CL_HOBBIT
71 Ein Hobbit.
72 CL_HOBGOBLIN
73 Ein Hobgoblin. Er faellt automatisch auch in die Klasse CL_GOBLIN.
74 CL_HUMAN
75 Ein Mensch.
76 CL_INORGANIC
77 Anorganische Lebewesen wie Metallmonster
78 CL_INSECT
79 Insekten (Nicht mit Spinnen verwechseln)
80 CL_LIVING
81 Lebewesen im allgemeinen.
82 CL_MAMMAL
83 Saeugetiere.
84 CL_MAMMAL_LAND
85 Landsaeugetiere
86 CL_MAMMAL_WATER
87 Meeressaeuger.
88 CL_ORC
89 Ein Ork.
90 CL_PLANT
91 Pflanzen und pflanzenartige Monster.
92 CL_POISON
93 Das Objekt ist selbst ein Gift
94 CL_POISONOUS
95 Das Objekt kann einen Spieler/NPC vergiften.
96 CL_REPTILE
97 Reptilien.
98 CL_SHADOW
99 Schattenwesen.
100 CL_SKELETON
101 Ein Skelett. Es faellt automatisch in die Klasse CL_UNDEAD.
102 CL_SLIME
103 Fuer Einzeller und aehnliches Schleimgetier
104 CL_SNAKE
105 Schlangen.
106 CL_SWIMMING
107 Dieses Wesen bewegt sich schwimmend.
108 CL_TROLL
109 Ein Troll.
110 CL_UNDEAD
111 Ein untotes Lebewesen.
112 CL_WALKING
113 Dieses Wesen bewegt sich gehend.
114 CL_VAMPIRE
115 Ein Vampir. Er faellt automatisch in die Klasse CL_UNDEAD.
116 CL_ZOMBIE
117 Ein Zombie. Er faellt automatisch in die Klasse CL_UNDEAD.
118
119 Implizite Klassen:
120 Bei einigen Klassen wird im AddClass() automatisch eine oder mehrere
121 weiterer Klassen hinzugefuegt und im RemoveClass() die entsprechenden
122 impliziten Klassen auch automatisch entfernt.
123 Wuenscht man diese impliziten Klassen nicht, muss man nach dem AddClass()
124 diese mittels eines entsprechenden RemoveClass() entfernen.
125 Die impliziten Klassen einer Klasse lassen sich mit Hilfe der Funktion
126 QueryImplicitClasses() in CLASSDB herausfinden:
127 CLASSDB->QueryImplicitClasses(...)
128 Momentan sind dies:
129 CL_ZOMBIE: CL_UNDEAD
130 CL_SKELETON: CL_UNDEAD
131 CL_GHOUL: CL_UNDEAD
132 CL_VAMPIRE: CL_UNDEAD
133 CL_HOBGOBLIN: CL_GOBLIN
134 CL_MAMMAL_LAND: CL_MAMMAL, CL_ANIMAL
135 CL_MAMMAL_WATER: CL_MAMMAL, CL_ANIMAL
136 CL_SNAKE: CL_REPTILE
137 CL_ARACHNID: CL_ANIMAL
138 CL_BIRD: CL_ANIMAL
139 CL_FISH: CL_ANIMAL
140 CL_FROG: CL_ANIMAL
141 CL_INSECT: CL_ANIMAL
142 CL_MAMMAL: CL_ANIMAL
143 CL_REPTILE: CL_ANIMAL
144 CL_SNAKE: CL_ANIMAL
145
146RUeCKGABEWERT:
147 1, wenn das Objekt in eine der angegebenen Klassen faellt, ansonsten 0.
148
149SIEHE AUCH:
150 AddClass(), RemoveClass(), /std/thing/description.c
151 P_CLASS
152
153----------------------------------------------------------------------------
15420.01.2015, Zesstra
155