blob: 3f425a8ca6b7232d6782ed5912963e68a9255e4b [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001SetChats()
2
3FUNKTION:
4 void SetChats(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> pro Heartbeat einen
17 zufaellig gewaehlten Text aus dem Array <strs> von sich.
18 Die Arrayelemente koennen auch Closures oder
19 process_string()-Funktionen ("@@func@@") enthalten, die dann
20 aufgerufen werden und deren Rueckgabewerte das Monster dann ausgibt.
21 (Fuer keine Ausgabe dann Leerstring "" zurueckgeben!)
22 In diesen Funktionen ist this_player() das Monster selbst!
23 Fuer Zeilenumbrueche ist immer selbst zu sorgen.
24
25RUECKGABEWERT:
26 keiner
27
28BEISPIELE:
29 Ein einfaches Beispiel:
30 // Prototype fuer Closure.
31 static string info1();
32 void create()
33 { ...
34 SetChats(20,
35 ({"Der Ork sagt: Hau ab, bevor ich Dich fresse.\n",
36 "Der Ork grinst Dich unverschaemt an.\n",
37 "Der Ork wedelt mit seinem Saebel vor Deinem Gesicht herum.\n",
38 "Der Ork droht Dir mit der Faust.\n",
39 #'info1,
40 "@@info2@@"}));
41 }
42 // Funktion als Closure. Prototype notwendig!
43 static string info1()
44 { if(QueryProp(P_HP)<QueryProp(P_ALIGN))
45 return"Gleich werde ich von hier fliehen!\n";
46 return"";
47 }
48 // Funktion als process_string().
49 string info2()
50 { return QueryProp(P_HP)==QueryProp(P_MAX_HP)?
51 "Der Ork grinst: Mir geht es fantastisch!\n":
52 "Der Ork seufzt: Mir ging es wirklich schon mal besser.\n";
53 }
54
55BEMERKUNGEN:
56 Im Kampf werden keine Chats ausgegeben. Es ist dann SetAttackChats()
57 zu verwenden.
58 Funktionen als process_string() sollte man nicht mehr verwenden.
59 <chance> wird in der Property P_CHAT_CHANCE abgelegt. Um einen NPC
60 voruebergehend 'stillzulegen', kann man P_CHAT_CHANCE auf 0 setzen.
61 Wenn kein Spieler anwesend ist, haben NPC in der Regel keinen Heartbeat,
62 weswegen dann auch die Chats ausgeschaltet sind.
63 Spieler koennen NPC 'stillen', d.h. Chats und AttackChats abschalten.
64
65SIEHE AUCH:
66 P_CHAT_CHANCE, SetAttackChats(), process_string()
67
68----------------------------------------------------------------------------
69Last modified: Sat Jan 18 18:48:06 2003 by Patryn