austreten()
***********


FUNKTION
========

   varargs int austreten(int loss)


ARGUMENTE
=========

   int loss       Prozentsatz, um den sich die Gildenskills verschlechtern


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

   /std/gilden_ob.c


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

   Austrittsfunktion der Gilde. Prueft die Restriktionen der Gilde und
   laesst this_player() ggf austreten. Das Austreten aus der Standard-
   gilde ist dabei nicht moeglich.

   Der Gildenmaster loest ggf ein EVT_GUILD_CHANGE aus. Dabei werden
   E_OBJECT, E_GUILDNAME, E_LAST_GUILDNAME entsprechend gesetzt.

   Der Gildenmaster senkt auch die Skill/Spell-Faehigkeiten um 'loss' bzw.
   normalerweise mindestens 20%.

   Durch Ueberschreiben koennen hier zB Abschiedsmeldungen gesendet werden.


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

   GObj Lernen:    LearnSkill, LearnSpell, InitialSkillAbility
   * Anzeigen:     SkillListe
   * Verwalten:    AddSpell (gilde), AddSkill, QuerySpell, QuerySkill
   * Nutzen:       UseSpell (gilde)
   * Properties:   P_GUILD_SKILLS, P_GLOBAL_SKILLPROPS
   Gildenfkt.:
   * Ein/Austritt: beitreten, bei_oder_aus_treten
   * Props dafuer: P_GUILD_RESTRICTIONS

3. Okt 2011 Gloinson
