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
