TestIgnore() ============ FUNKTION -------- :: public int TestIgnore(string|string* arg) DEFINIERT IN ------------ :: /std/player/comm.c ARGUMENTE --------- :: arg String oder Array von Strings, die getestet werden sollen, Format jeweils: [spieler].aktion[.qualifizierer] RUeCKGABEWERT ------------- :: 0, wenn arg nicht ignoriert wird MSG_IGNORED, wenn (min. ein Element von) arg ignoriert wird BESCHREIBUNG ------------ :: Es wird geprueft, ob der Spieler irgendeinen Eintrag auf seiner Liste hat, der dazu fuehrt, dass ignoriert wird. Hierbei kommen je nach den Angaben in folgende Regeln zum Tragen: 1) spieler Wird der Spieler ignoriert? 2) .aktion Ignoriert der Spieler .aktion, d.h. die Aktion komplett (OHNE Qualifizierer)? 3) spieler.aktion Ignoriert der Spieler spieler, .aktion oder spieler.aktion? 4) spieler.aktion.qualifizierer Ignoriert der Spieler spieler, .aktion, spieler.aktion oder spieler.aktion.qualifizierer? 5) .aktion.qualifizierer Ignoriert der Spieler .aktion oder .aktion.qualifizierer? Da TestIgnore() damit durchaus etwas aufwendiger sein kann, sollte man dies nicht unnoetig oft aufrufen. (Braucht man das Ergebnis z.B. kurz spaeter nochmal, koennte man das Ergebnis speichern.) Wird der Qualifizierer nicht gebraucht, sollte man ihn weglassen. BEISPIEL -------- :: if (!this_player()->TestIgnore("andy")) tell_object(this_player(), "Andy teilt Dir mit: Hallo!\n"); // Beispiel fuer eine Ignore-Check fuer Aktion (kratzen) fuer einen // Spieler (this_player()) an einem anderen Spieler (target) if (!target->TestIgnore( ({getuid(this_player()) + ".kratze", getuid(this_player()) + ".kratz"}) )) { tell_object(target, this_player()->Name()+" kratzt dich.\n"); tell_object(this_player(), "Du kratzt "+target->Name()+".\n"); } else tell_object(this_player(), target->Name()+" ignoriert dich.\n"); // allumfassender Ignorier-Check in einer Gilde (Klerus) auf // eine Aktion (kurieren) fuer einen bestimmten Spieler (den caster) // an einem zu kurierenden Spieler (target) if (target->TestIgnore(getuid(caster)+".kuriere.klerus")) tell_object(caster, break_string( target->Name()+" ignoriert deinen Versuch.", 78)); SIEHE AUCH ---------- :: P_IGNORE, AddIgnore, RemoveIgnore, TestIgnoreSimple, /std/player/comm.c 26.04.2014 Zesstra