
QueryUIDAlias()
***************


FUNKTION
========

   varargs string* QueryUIDsForWizard(string uidalias, int recursive);


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

   /secure/master/userinfo.c


ARGUMENTE
=========

   uidalias
     UID, die expandiert werden soll.
   recursive (optional)
     Gibt an, ob QueryUIDAlias() (indirekt) rekursiv aufgerufen wurde.
     Sollte normalerweise nicht per Hand gesetzt werden.


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

   Die Funktion ermittelt aus einer "Alias-UID" die UID, fuer die sie steht.
   Hierbei werden folgende UID-Aliase beruecksichtigt:
   "region":    d.region.* + region + d.region
   "gilde":     GUILD.gilde, GUILD.gildenspellbook, p.gilde
   "p":         p.* (ohne p.service)
   "p.service": p.service.*
   "magierid":  QueryUIDsForWizard()

   Das Ergebnis dieser Funktion wird laengere Zeit gecachet (bis zu 24h).


RUeCKGABEWERT
=============

   Zurueckgeliefert wird ein Array von Strings, jedes Element ist eine UID.
   Sollte uidaliase keines der o.g. sein, wird ein ({uidalias}) geliefert.


BEISPIELE
=========

   string *uids = master()->QueryUIDAlias("schattenwelt");
   // uids enthaelt nun:
   // ({"d.anfaenger","anfaenger","d.anfaenger.ark","d.anfaenger.ennox",
   //   "d.anfaenger.humni","d.anfaenger.kiria","d.anfaenger.konzepte",
   //   "d.anfaenger.miril"})


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

   QueryWizardsForUID(),
               AddWizardForUID(), RemoveWizardFromUID()

16.12.2007, Zesstra
