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
