blob: ab3f39fb1fdb295cac1ddf394362345b00f6c0ff [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001TestIgnore()
Zesstra953f9972017-02-18 15:37:36 +01002************
MG Mud User88f12472016-06-24 23:31:02 +02003
MG Mud User88f12472016-06-24 23:31:02 +02004
Zesstra953f9972017-02-18 15:37:36 +01005FUNKTION
6========
MG Mud User88f12472016-06-24 23:31:02 +02007
Zesstra953f9972017-02-18 15:37:36 +01008 public int TestIgnore(string|string* arg)
MG Mud User88f12472016-06-24 23:31:02 +02009
MG Mud User88f12472016-06-24 23:31:02 +020010
Zesstra953f9972017-02-18 15:37:36 +010011DEFINIERT IN
12============
MG Mud User88f12472016-06-24 23:31:02 +020013
Zesstra953f9972017-02-18 15:37:36 +010014 /std/player/comm.c
MG Mud User88f12472016-06-24 23:31:02 +020015
MG Mud User88f12472016-06-24 23:31:02 +020016
Zesstra953f9972017-02-18 15:37:36 +010017ARGUMENTE
18=========
MG Mud User88f12472016-06-24 23:31:02 +020019
Zesstra953f9972017-02-18 15:37:36 +010020 arg
21 String oder Array von Strings, die getestet werden sollen,
22 Format jeweils: [spieler].aktion[.qualifizierer]
MG Mud User88f12472016-06-24 23:31:02 +020023
Zesstra953f9972017-02-18 15:37:36 +010024
25RUeCKGABEWERT
26=============
27
28 0, wenn arg nicht ignoriert wird
29 MSG_IGNORED, wenn (min. ein Element von) arg ignoriert wird
30
31
32BESCHREIBUNG
33============
34
35 Es wird geprueft, ob der Spieler irgendeinen Eintrag auf seiner Liste
36 hat, der dazu fuehrt, dass <arg> ignoriert wird. Hierbei kommen je nach
37 den Angaben in <arg> folgende Regeln zum Tragen:
38 1) spieler
39 Wird der Spieler ignoriert?
40 2) .aktion
41 Ignoriert der Spieler .aktion, d.h. die Aktion komplett (OHNE
42 Qualifizierer)?
43 3) spieler.aktion
44 Ignoriert der Spieler spieler, .aktion oder spieler.aktion?
45 4) spieler.aktion.qualifizierer
46 Ignoriert der Spieler spieler, .aktion, spieler.aktion oder
47 spieler.aktion.qualifizierer?
48 5) .aktion.qualifizierer
49 Ignoriert der Spieler .aktion oder .aktion.qualifizierer?
50
51 Da TestIgnore() damit durchaus etwas aufwendiger sein kann, sollte
52 man dies nicht unnoetig oft aufrufen. (Braucht man das Ergebnis z.B.
53 kurz spaeter nochmal, koennte man das Ergebnis speichern.) Wird der
54 Qualifizierer nicht gebraucht, sollte man ihn weglassen.
55
56
57BEISPIEL
58========
59
60 if (!this_player()->TestIgnore("andy"))
61 tell_object(this_player(), "Andy teilt Dir mit: Hallo!\n");
62
63 // Beispiel fuer eine Ignore-Check fuer Aktion (kratzen) fuer einen
64 // Spieler (this_player()) an einem anderen Spieler (target)
65 if (!target->TestIgnore( ({getuid(this_player()) + ".kratze",
66 getuid(this_player()) + ".kratz"}) ))
67 {
68 tell_object(target, this_player()->Name()+" kratzt dich.\n");
69 tell_object(this_player(), "Du kratzt "+target->Name()+".\n");
70 }
71 else
72 tell_object(this_player(), target->Name()+" ignoriert dich.\n");
73
74 // allumfassender Ignorier-Check in einer Gilde (Klerus) auf
75 // eine Aktion (kurieren) fuer einen bestimmten Spieler (den caster)
76 // an einem zu kurierenden Spieler (target)
77 if (target->TestIgnore(getuid(caster)+".kuriere.klerus"))
78 tell_object(caster, break_string(
79 target->Name()+" ignoriert deinen Versuch.", 78));
80
81
82SIEHE AUCH
83==========
84
85 P_IGNORE, AddIgnore, RemoveIgnore, TestIgnoreSimple, /std/player/comm.c
MG Mud User88f12472016-06-24 23:31:02 +020086
8726.04.2014 Zesstra