InitialSkillAbility()
=====================

FUNKTION
--------
::

    static int InitialSkillAbility(mapping ski, object pl)

DEFINIERT IN
------------
::

    /std/gilden_ob.c

ARGUMENTE
---------
::

    mapping ski     Der zu lernende Skill
    object  pl      Spieler

BESCHREIBUNG
------------
::

    Gibt den initialen Ability-Wert fuer einen neu zu lernenden Skill (Spell)
    zurueck. Die Standardformel benutzt nur Intelligenz und SI_SKILLLEARN und
    kann in der Gilde ueberschrieben werden.

BEMERKUNGEN
-----------
::

    Der zurueckgegebene Wert wird noch in das Spieler-Skillsystem eingegeben
    und daher kann der real gelernte Wert abweichen

SIEHE AUCH
----------
::

    Skills:         LimitAbility, ModifySkill
    GObj Lernen:    LearnSkill, LearnSpell
    * Anzeigen:     SkillListe
    * Verwalten:    AddSpell (gilde), AddSkill, QuerySpell, QuerySkill
    * Nutzen:       UseSpell (gilde)
    * Properties:   P_GUILD_SKILLS, P_GLOBAL_SKILLPROPS
    Gildenfkt.:     GuildRating
    * Ein/Austritt: beitreten, bei_oder_aus_treten, austreten

3. Okt 2011 Gloinson

