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