blob: 87203a1aa16efb58e2776213c404a647fd94270a [file] [log] [blame]
SetAttackChats()
FUNKTION:
void SetAttackChats(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' einen zufaellig
gewaehlten Text aus 'strs' von sich. Die Arrayelemente koennen
auch Funktionen ("@@func@@") oder Closures enthalten, die dann
aufgerufen werden und deren Rueckgabewerte das Monster dann ausgibt.
RUECKGABEWERT:
keiner
BEMERKUNGEN:
AttackChats werden nur im Kampf ausgegeben. Ansonsten ist SetChats()
zu verwenden.
'chance' wird in der Property P_ACHAT_CHANCE abgelegt. Um einen NPC
voruebergehend 'stillzulegen', kann man P_ACHAT_CHANCE auf 0 setzen.
Man kann AttackChats nutzen, um Monsterspells zu realisieren. Besser
ist es aber, dafuer 'AddSpell' zu verwenden.
BEISPIELE:
SetAttackChats( 20,
({ "Der Ork tritt Dir in den Hintern.\n",
"Der Ork bruellt: Lebend kommst Du hier nicht raus!\n",
"Der Ork blutet schon aus mehreren Wunden.\n",
"@@knirsch@@" }) );
string knirsch()
{
object *ruestung, *tmp, helm;
ruestung = this_player()->QueryProp(P_ARMOURS); // getragene Ruestung
tmp = filter_objects(ruestung, "id", AT_HELMET);
// Wenn der Spieler einen Helm traegt, enthaelt 'tmp' jetzt
// ein Array mit dem Helmobjekt als einzigem Element
if (sizeof(tmp)) helm = tmp[0];
if (objectp(helm))
{
// AC nur dann senken, wenn sie nicht schon 0 ist.
if (helm->QueryProp(P_AC)>0) {
helm->Damage(1);
return "Der Ork beschaedigt Deinen Helm!\n";
}
return "";
}
else
return ""; // keine Meldung
}
SIEHE AUCH:
P_ACHAT_CHANCE, SetChats(), /std/npc/chat.c, AddSpell()
LETZTE AENDERUNG:
Don, 27.12.2007, 16:35:00 von Arathorn