Lpc Manpages

AddSpecialSpell()

FUNKTION:
     varargs void AddSpecialSpell(int rate, mixed spellfunc,
                                  string TextForEnemy, string TextForOthers,
                                  mixed extra);

DEFINIERT IN:
     /std/npc/combat.c

ARGUMENTE:
     rate
          relative Spellhaeufigkeit, bezogen auf die Gesamtzahl der Spells
     spellfunc
          Spellfunktion oder -closure
     TextForEnemy (optional)
          Meldung an das Spellopfer
     TextForOthers (optional)
          Meldung an alle anderen im Raum
     extra (optional)
          Wird der Spellfunktion als 2. Parameter uebergeben

BESCHREIBUNG:
     Es wird ein Monsterspell definiert, der von der 'Attack'-Funktion des
     Monsters aufgerufen wird, und zwar *vor* dem normalen Angriff.
     Die Wahrscheinlichkeit 'rate' fuer einen Spell ergibt sich relativ
     zu der Summe der 'rate' Werte aller definierten Spells. Die absolute
     Spellrate wird mit der Property P_SPELLRATE gesetzt.
     Der eigentliche Spell wird von der Funktion oder Closure 'spellfunc'
     ausgefuehrt; dieser werden als Parameter das Feindobjekt und der
     optionale Parameter 'extra' uebergeben.
     In den 'TextForOthers' kann man den Name des Opfers mit @WER, @WESSEN,
     @WEM oder @WEN im Nominativ, Genetiv, Dativ oder Akkusativ einsetzen.

RUECKGABEWERT:
     keiner
     
BEMERKUNGEN:
     In /std/npc/spells.c ist eine Sammlung von vorgefertigten Spezialspells.
     
BEISPIELE:
     Blendungsspell:
     
     SetProp(P_SPELLRATE, 20);  // Wahrscheinlichkeit 20 %
     
     AddSpecialSpell( 1, "blenden",
                      "Die Schlange spuckt Dir in die Augen.\n",
                      "Die Schlange spuckt @WEM in die Augen.\n" );
                     
     Mit der Spellfunktion 'blenden':
     
     void blenden(object enemy, mixed extra)
     {
       if (enemy->QueryProp(P_BLIND))  // ist schon blind
         return;
       enemy->SetProp(P_BLIND, 1);
       tell_object(enemy, "Du bist erblindet.\n");
     }
     
     Das Ganze kuerzer, mit 'inherit "std/npc/spells"':
     
     AddSpellBlind( 1, "Die Schlange spuckt Dir in die Augen.\n",
                       "Die Schlange spuckt @WEM in die Augen.\n" );
     
SIEHE AUCH:
     Attack(), P_SPELLRATE, /std/npc/combat.c, /std/npc/spells.c