| 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 <arg> ignoriert wird. Hierbei kommen je nach |
| den Angaben in <arg> 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 |
| |