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