blob: 3f425a8ca6b7232d6782ed5912963e68a9255e4b [file] [log] [blame]
SetChats()
FUNKTION:
void SetChats(int chance,mixed strs);
DEFINIERT IN:
/std/npc/chat.c
ARGUMENTE:
chance
Prozentuale Wahrscheinlichkeit einer Ausgabe
strs
Stringarray mit den Monsterchats
BESCHREIBUNG:
Der NPC gibt mit der Wahrscheinlichkeit <chance> pro Heartbeat einen
zufaellig gewaehlten Text aus dem Array <strs> von sich.
Die Arrayelemente koennen auch Closures oder
process_string()-Funktionen ("@@func@@") enthalten, die dann
aufgerufen werden und deren Rueckgabewerte das Monster dann ausgibt.
(Fuer keine Ausgabe dann Leerstring "" zurueckgeben!)
In diesen Funktionen ist this_player() das Monster selbst!
Fuer Zeilenumbrueche ist immer selbst zu sorgen.
RUECKGABEWERT:
keiner
BEISPIELE:
Ein einfaches Beispiel:
// Prototype fuer Closure.
static string info1();
void create()
{ ...
SetChats(20,
({"Der Ork sagt: Hau ab, bevor ich Dich fresse.\n",
"Der Ork grinst Dich unverschaemt an.\n",
"Der Ork wedelt mit seinem Saebel vor Deinem Gesicht herum.\n",
"Der Ork droht Dir mit der Faust.\n",
#'info1,
"@@info2@@"}));
}
// Funktion als Closure. Prototype notwendig!
static string info1()
{ if(QueryProp(P_HP)<QueryProp(P_ALIGN))
return"Gleich werde ich von hier fliehen!\n";
return"";
}
// Funktion als process_string().
string info2()
{ return QueryProp(P_HP)==QueryProp(P_MAX_HP)?
"Der Ork grinst: Mir geht es fantastisch!\n":
"Der Ork seufzt: Mir ging es wirklich schon mal besser.\n";
}
BEMERKUNGEN:
Im Kampf werden keine Chats ausgegeben. Es ist dann SetAttackChats()
zu verwenden.
Funktionen als process_string() sollte man nicht mehr verwenden.
<chance> wird in der Property P_CHAT_CHANCE abgelegt. Um einen NPC
voruebergehend 'stillzulegen', kann man P_CHAT_CHANCE auf 0 setzen.
Wenn kein Spieler anwesend ist, haben NPC in der Regel keinen Heartbeat,
weswegen dann auch die Chats ausgeschaltet sind.
Spieler koennen NPC 'stillen', d.h. Chats und AttackChats abschalten.
SIEHE AUCH:
P_CHAT_CHANCE, SetAttackChats(), process_string()
----------------------------------------------------------------------------
Last modified: Sat Jan 18 18:48:06 2003 by Patryn