
AddSpell()
**********


FUNKTION
========

   varargs int AddSpell(string verb, int kosten, mixed ski)


DEFINIERT IN
============

   /std/spellbook.c


ARGUMENTE
=========

   string verb     Name des Spells
   int kosten      normale Kosten (Grundkosten)
   mixed ski       Skillmapping mit allen Eintraegen zum Spell


BESCHREIBUNG
============

   Addiert einen Eintrag fuer den Spell im Spellbook. Wenn dieser
   Spell direkt vom Spieler (SI_SPELLBOOK) oder (normalerweise)
   ueber ein Gildenobjekt aufgerufen wird, wird das Mapping auf
   die Skillinformationen aus Spieler und Gilde addiert und
   beeinflusst damit den Aufruf der letztlichen Spellfunktion.


BEMERKUNGEN
===========

   Siehe das Verhalten von QuerySpell (gilde) zum Zusammenfuegen
   der AddSpell-Informationen aus Gilde und Spellbook. Relevant
   zB fuer Lernrestriktionen.


BEISPIEL
========

   AddSpell("kampfschrei", 30,
        ([SI_SKILLRESTR_LEARN:([P_LEVEL:13]),
          SI_MAGIC_TYPE: ({MT_PSYCHO}),
          SI_SPELL:      ([
            SP_NAME: "Kampfschrei",
            SP_SHOW_DAMAGE:
              ({({ -1, "Dir geschieht jedoch nichts.",
                  "@WEM1 geschieht jedoch nichts.",
                  "@WEM1 geschieht jedoch nichts." }),
                ({  0, "Du kannst darueber aber nur lachen.",
                  "@WER1 kann darueber aber nur lachen.",
                  "@WER1 kann darueber aber nur lachen." }),
                ({ 10, "Dir droehnen die Ohren.",
                  "@WEM1 droehnen die Ohren.",
                  "@WEM1 droehnen die Ohren." })
              })])
        ]));


SIEHE AUCH
==========

   Spellbook Lernen: Learn, SpellSuccess, Erfolg, Misserfolg
   * Verwalten:      QuerySpell
   * Angriff:        TryAttackSpell, TryDefaultAttackSpell,
                     TryGlobalAttackSpell
   * Properties:     P_GLOBAL_SKILLPROPS, P_SB_SPELLS
   Skills Lernen:    LearnSkill, ModifySkill, LimitAbility
   * Nutzung:        UseSpell, UseSkill
   * sonstig:        spruchermuedung, skill_info_liste

5. Okt 2011 Gloinson
