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
