Lpc Manpages

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))
       {
         helm->SetProp(P_AC, helm->QueryProp(P_AC)-1);
         helm->SetProp(P_DAMAGED, helm->QueryProp(P_DAMAGED)+1);  // wichtig!!
         return "Der Ork beschaedigt Deinen Helm!\n";
       }
       else
         return ""; // keine Meldung
     }

SIEHE AUCH:
     P_ACHAT_CHANCE, SetChats(), /std/npc/chat.c, AddSpell()