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