
RemoveWizardFromUID()
*********************


FUNKTION
========

   string* RemoveWizardFromUID(string uid, string wizard);


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

   /secure/master/userinfo.c


ARGUMENTE
=========

   uid
     Die UID, fuer die man einen zustaendigen Magier austragen will.
   wizard
     Der Magier, den man austragen moechte.


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

   Die Funktion loescht die UID 'uid' aus der Liste der UIDs, fuer die
   'wizard' explizit zustaendig ist.

   Berechtigt zum Austragen von Magiern fuer bestimmte UIDs sind alle Magier,
   die (implizit oder explizit) verantwortlich fuer die jeweilige UID sind.
   Man kann sich auch selber austragen. ;-)


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

   Zurueckgeliefert wird ein Array von Strings, jedes Element ist eine UID,
   fuer die dier Magier jetzt explizit eingetragen ist.


BEISPIELE
=========

   master()->RemoveWizardFromUID("p.waterluh","zook");



   string *uids = master()->RemoveWizardFromUID("jof","zook");
   printf("Zook ist nun explizit zustaendig fuer: %s\n",CountUp(uids));


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

   QueryWizardsForUID(), QueryUIDsForWizard()
               AddWizardForUID()

20.02.2007, Zesstra
