FUNKTION:
        object find_player(string uid)

BESCHREIBUNG:
        Findet den Spieler mit dem Namen bzw. der User-ID <uid>.
        
        Akzeptiert auch die UUID statt einer UID. In diesem Fall erfolgt aber
        nur eine Pruefung, ob die UID des gefundenen Spielers zur angegebenen
        UUID passt (d.h. "jof_-1" wuerde dann ggf. auch das Spielerobjekt Jof
        zurueckliefern, wenn das die UUID "Jof_1234" hat).

        Rueckgabewert ist das Spielerobjekt (wenn Spieler anwesend),
        ansonsten 0.

BEISPIEL:

        object ob;
        ob = find_player("deepthought");

        if(ob)
          tell_object(ob,"Tach Du!\n");

        oder auch 

        if(ob = find_player("deepthought"))
          tell_object(ob,"Tach Du!\n");

ANMERKUNGEN:

        Via find_player() werden auch unsichtbare Magier gefunden. In 
        Objekten, die fuer Spieler gedacht sind, muss dies dann extra
        per Abfrage auf if(ob->QueryProp(P_INVIS)) getestet werden.

        Netztote Spieler und Monster werden nicht gefunden da find_player
        den Namen aus set_living_name() verwendet, der in player.c ge-
        setzt wird.
        
SIEHE AUCH:
        find_living(E), set_living_name(E), find_object(E), find_netdead(E)

----------------------------------------------------------------------------
Letzte Aenderung: 06.01.2009, Zesstra 
