| is_class_member() |
| FUNKTION: |
| int is_class_member(string|string* class); |
| |
| DEFINIERT IN: |
| /std/thing/description.c |
| |
| ARGUMENTE: |
| string/string* class - String oder Stringarray der Klasse(n) |
| |
| BESCHREIBUNG: |
| Es wird getestet, ob das Objekt in eine der in class angegebenen |
| Klassen faellt. In diesen Test werden die folgenden Eigenschaften des |
| Objektes einbezogen: |
| |
| 1. Die Rasse des Objektes (bei Lebewesen), |
| 2. die IDs des Objektes und |
| 3. die explizit angegebenen Klassen des Objektes. |
| 4. einigen impliziten Klassen, die sich aus den Klassen in 3 ergeben. |
| |
| Die moeglichen Klassen sind in /sys/class.h definiert. Momentan stehen |
| folgende Klassen zur Verfuegung: |
| |
| CL_AMMUNITION |
| Das Objekt eignet sich als Munition. |
| CL_ANIMAL |
| Das Objekt ist ein Tier. |
| CL_ARACHNID |
| Das Objekt in ein Spinnenwesen. |
| CL_BIGBANG |
| Dieses Objekt kann mehreren Lebewesen auf einmal Schaden zufuegen. |
| CL_BIRD |
| Ein Vogel. |
| CL_CRAWLING |
| Dieses Wesen bewegt sich kriechend. |
| CL_CURSE |
| Das Objekt ist ein Fluch (zB. ein Sprachfluch). |
| CL_DEMON |
| Bei dem Objekt handelt es sich um einen Daemon. |
| CL_DISEASE |
| Eine Krankheit. |
| CL_DRAGON |
| Ein Drache. |
| CL_DWARF |
| Fuer unsere kleinen Gaeste... |
| CL_ELF |
| Elfen aller Art. |
| CL_ELEMENTAL |
| Ein Elementar irgendeiner Art. Material setzen waere angebracht. |
| CL_EXPLOSIVE |
| Bei dem Objekt handelt es sich um einen Sprengstoff. |
| CL_FELINE |
| Felinen und andere katzenartigen Lebewesen. |
| CL_FISH |
| Fische - keine Meeressaeuger! |
| CL_FLYING |
| Dieses Wesen bewegt sich fliegend. |
| CL_FROG |
| Froesche - auch gefroschte Spieler. |
| CL_GHOST |
| Geister und geisterhafte Wesen. |
| CL_GHOUL |
| Ein Ghoul. Er faellt automatisch in die Klasse CL_UNDEAD. |
| CL_GIANT |
| Ein riesiges Lebewesen. |
| CL_GNOME |
| Ein Gnom. |
| CL_GOBLIN |
| Ein Goblin. |
| CL_HOBBIT |
| Ein Hobbit. |
| CL_HOBGOBLIN |
| Ein Hobgoblin. Er faellt automatisch auch in die Klasse CL_GOBLIN. |
| CL_HUMAN |
| Ein Mensch. |
| CL_INORGANIC |
| Anorganische Lebewesen wie Metallmonster |
| CL_INSECT |
| Insekten (Nicht mit Spinnen verwechseln) |
| CL_LIVING |
| Lebewesen im allgemeinen. |
| CL_MAMMAL |
| Saeugetiere. |
| CL_MAMMAL_LAND |
| Landsaeugetiere |
| CL_MAMMAL_WATER |
| Meeressaeuger. |
| CL_ORC |
| Ein Ork. |
| CL_PLANT |
| Pflanzen und pflanzenartige Monster. |
| CL_POISON |
| Das Objekt ist selbst ein Gift |
| CL_POISONOUS |
| Das Objekt kann einen Spieler/NPC vergiften. |
| CL_REPTILE |
| Reptilien. |
| CL_SHADOW |
| Schattenwesen. |
| CL_SKELETON |
| Ein Skelett. Es faellt automatisch in die Klasse CL_UNDEAD. |
| CL_SLIME |
| Fuer Einzeller und aehnliches Schleimgetier |
| CL_SNAKE |
| Schlangen. |
| CL_SWIMMING |
| Dieses Wesen bewegt sich schwimmend. |
| CL_TROLL |
| Ein Troll. |
| CL_UNDEAD |
| Ein untotes Lebewesen. |
| CL_WALKING |
| Dieses Wesen bewegt sich gehend. |
| CL_VAMPIRE |
| Ein Vampir. Er faellt automatisch in die Klasse CL_UNDEAD. |
| CL_ZOMBIE |
| Ein Zombie. Er faellt automatisch in die Klasse CL_UNDEAD. |
| |
| Implizite Klassen: |
| Bei einigen Klassen wird im AddClass() automatisch eine oder mehrere |
| weiterer Klassen hinzugefuegt und im RemoveClass() die entsprechenden |
| impliziten Klassen auch automatisch entfernt. |
| Wuenscht man diese impliziten Klassen nicht, muss man nach dem AddClass() |
| diese mittels eines entsprechenden RemoveClass() entfernen. |
| Die impliziten Klassen einer Klasse lassen sich mit Hilfe der Funktion |
| QueryImplicitClasses() in CLASSDB herausfinden: |
| CLASSDB->QueryImplicitClasses(...) |
| Momentan sind dies: |
| CL_ZOMBIE: CL_UNDEAD |
| CL_SKELETON: CL_UNDEAD |
| CL_GHOUL: CL_UNDEAD |
| CL_VAMPIRE: CL_UNDEAD |
| CL_HOBGOBLIN: CL_GOBLIN |
| CL_MAMMAL_LAND: CL_MAMMAL, CL_ANIMAL |
| CL_MAMMAL_WATER: CL_MAMMAL, CL_ANIMAL |
| CL_SNAKE: CL_REPTILE |
| CL_ARACHNID: CL_ANIMAL |
| CL_BIRD: CL_ANIMAL |
| CL_FISH: CL_ANIMAL |
| CL_FROG: CL_ANIMAL |
| CL_INSECT: CL_ANIMAL |
| CL_MAMMAL: CL_ANIMAL |
| CL_REPTILE: CL_ANIMAL |
| CL_SNAKE: CL_ANIMAL |
| |
| RUeCKGABEWERT: |
| 1, wenn das Objekt in eine der angegebenen Klassen faellt, ansonsten 0. |
| |
| SIEHE AUCH: |
| AddClass(), RemoveClass(), /std/thing/description.c |
| P_CLASS |
| |
| ---------------------------------------------------------------------------- |
| 20.01.2015, Zesstra |
| |