blob: 87203a1aa16efb58e2776213c404a647fd94270a [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001SetAttackChats()
2
3FUNKTION:
4 void SetAttackChats(int chance, mixed strs);
5
6DEFINIERT IN:
7 /std/npc/chat.c
8
9ARGUMENTE:
10 chance
11 Prozentuale Wahrscheinlichkeit einer Ausgabe
12 strs
13 Stringarray mit den Monsterchats
14
15BESCHREIBUNG:
16 Der NPC gibt mit der Wahrscheinlichkeit 'chance' einen zufaellig
17 gewaehlten Text aus 'strs' von sich. Die Arrayelemente koennen
18 auch Funktionen ("@@func@@") oder Closures enthalten, die dann
19 aufgerufen werden und deren Rueckgabewerte das Monster dann ausgibt.
20
21RUECKGABEWERT:
22 keiner
23
24BEMERKUNGEN:
25 AttackChats werden nur im Kampf ausgegeben. Ansonsten ist SetChats()
26 zu verwenden.
27
28 'chance' wird in der Property P_ACHAT_CHANCE abgelegt. Um einen NPC
29 voruebergehend 'stillzulegen', kann man P_ACHAT_CHANCE auf 0 setzen.
30
31 Man kann AttackChats nutzen, um Monsterspells zu realisieren. Besser
32 ist es aber, dafuer 'AddSpell' zu verwenden.
33
34BEISPIELE:
35
36 SetAttackChats( 20,
37 ({ "Der Ork tritt Dir in den Hintern.\n",
38 "Der Ork bruellt: Lebend kommst Du hier nicht raus!\n",
39 "Der Ork blutet schon aus mehreren Wunden.\n",
40 "@@knirsch@@" }) );
41
42 string knirsch()
43 {
44 object *ruestung, *tmp, helm;
45
46 ruestung = this_player()->QueryProp(P_ARMOURS); // getragene Ruestung
47 tmp = filter_objects(ruestung, "id", AT_HELMET);
48 // Wenn der Spieler einen Helm traegt, enthaelt 'tmp' jetzt
49 // ein Array mit dem Helmobjekt als einzigem Element
50 if (sizeof(tmp)) helm = tmp[0];
51 if (objectp(helm))
52 {
53 // AC nur dann senken, wenn sie nicht schon 0 ist.
54 if (helm->QueryProp(P_AC)>0) {
55 helm->Damage(1);
56 return "Der Ork beschaedigt Deinen Helm!\n";
57 }
58 return "";
59 }
60 else
61 return ""; // keine Meldung
62 }
63
64SIEHE AUCH:
65 P_ACHAT_CHANCE, SetChats(), /std/npc/chat.c, AddSpell()
66
67LETZTE AENDERUNG:
68 Don, 27.12.2007, 16:35:00 von Arathorn