QuerySkillAbility()
*******************


FUNKTION
========

   public varargs int QuerySkillAbility(string sname, string gilde)


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

   /std/living/skills.c


ARGUMENTE
=========

   string sname        Name des abzufragenden Skill
   string gilde         Gilde, unter der der Skill gesucht werden soll


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

   Diese Funktion liefert einen Wert zurueck, der aussagt, wie gut das
   Lebewesen den Skill 'sname' beherrscht (Key SI_SKILLABILITY im
   Skillmapping).
   Dieser Wert kann zwischen -MAX_ABILITY und MAX_ABILITY liegen,
   normal ist 0 bis MAX_ABILITY (10000 - Skill perfektioniert).


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

   Skills Lernen:  LearnSkill, ModifySkill, LimitAbility
   * Nutzung:      UseSpell, UseSkill
   * Abfragen:     QuerySkill
   * Modifikation: ModifySkillAttribute, QuerySkillAttribute,
                   QuerySkillAttributeModifier, RemoveSkillAttributeModifier
     * Properties: P_SKILL_ATTRIBUTES, P_SKILL_ATTRIBUTE_OFFSETS
   * sonstig:      spruchermuedung, skill_info_liste
   * Properties:   P_NEWSKILLS

5. Okt 2011 Gloinson
