blob: 90e8a66f4361affa636e161a1d82f0050b690143 [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001
MG Mud User88f12472016-06-24 23:31:02 +02002SetAttackChats()
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 void SetAttackChats(int chance, mixed strs);
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/npc/chat.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=========
20
21 chance
22 Prozentuale Wahrscheinlichkeit einer Ausgabe
23 strs
24 Stringarray mit den Monsterchats
25
26
27BESCHREIBUNG
28============
29
30 Der NPC gibt mit der Wahrscheinlichkeit 'chance' einen zufaellig
31 gewaehlten Text aus 'strs' von sich. Die Arrayelemente koennen
32 auch Funktionen ("@@func@@") oder Closures enthalten, die dann
33 aufgerufen werden und deren Rueckgabewerte das Monster dann ausgibt.
34
35
36RUECKGABEWERT
37=============
38
39 keiner
40
41
42BEMERKUNGEN
43===========
44
45 AttackChats werden nur im Kampf ausgegeben. Ansonsten ist SetChats()
46 zu verwenden.
47
48
49
50 'chance' wird in der Property P_ACHAT_CHANCE abgelegt. Um einen NPC
51 voruebergehend 'stillzulegen', kann man P_ACHAT_CHANCE auf 0 setzen.
52
53
54
55 Man kann AttackChats nutzen, um Monsterspells zu realisieren. Besser
56 ist es aber, dafuer 'AddSpell' zu verwenden.
57
58
59BEISPIELE
60=========
61
62 SetAttackChats( 20,
63 ({ "Der Ork tritt Dir in den Hintern.\n",
64 "Der Ork bruellt: Lebend kommst Du hier nicht raus!\n",
65 "Der Ork blutet schon aus mehreren Wunden.\n",
66 "@@knirsch@@" }) );
67
68
69
70 string knirsch()
71 {
72 object *ruestung, *tmp, helm;
73
74
75
76 ruestung = this_player()->QueryProp(P_ARMOURS); // getragene Ruestung
77 tmp = filter_objects(ruestung, "id", AT_HELMET);
78 // Wenn der Spieler einen Helm traegt, enthaelt 'tmp' jetzt
79 // ein Array mit dem Helmobjekt als einzigem Element
80 if (sizeof(tmp)) helm = tmp[0];
81 if (objectp(helm))
82 {
83 // AC nur dann senken, wenn sie nicht schon 0 ist.
84 if (helm->QueryProp(P_AC)>0) {
85 helm->Damage(1);
86 return "Der Ork beschaedigt Deinen Helm!\n";
87 }
88 return "";
89 }
90 else
91 return ""; // keine Meldung
92 }
93
94
95SIEHE AUCH
96==========
97
98 P_ACHAT_CHANCE, SetChats(), /std/npc/chat.c, AddSpell()
99
100
101LETZTE AENDERUNG
102================
103
104 Don, 27.12.2007, 16:35:00 von Arathorn