getuuid(): UUID aus einer UID erzeugen.

Bislang arbeitete getuuid() nur auf Objekten.
Jetzt kann man ihr aber eine UID als string uebergeben
und sie ermittelt die dazu passende UUID. Sollte es
keine geben (weil der string keine UID eines Spielers
ist), wird der string unveraendert zurueckgeben.

Change-Id: Ia3d46ecb4d40295fe143f6e5ec566bdabc7e47d3
diff --git a/secure/simul_efun/livings.c b/secure/simul_efun/livings.c
index 2d0ffde..355984d 100644
--- a/secure/simul_efun/livings.c
+++ b/secure/simul_efun/livings.c
@@ -23,21 +23,28 @@
     netdead = wizinfo[NETDEAD_MAP] = ([]);
 }
 
-public varargs string getuuid( object ob )
+public varargs string getuuid( object|string ob )
 {
-  if ( !objectp(ob) )
-     ob = previous_object();
+  string uid;
+  if (stringp(ob))
+    uid = ob;
+  else
+  {
+    if ( !objectp(ob) )
+      ob = previous_object();
+    uid = getuid(ob);
+  }
 
-  if ( !query_once_interactive(ob) )
-     return getuid(ob);
-
-  int creation = master()->query_userlist(getuid(ob), USER_CREATION_DATE);
+  // sollte <uid> kein Spieler-UID sein (keine Spieler-UID uebergeben oder
+  // !query_once_interactive(ob)), ist creation 0 und es wird die <uid>
+  // unveraendert zurueckgeben.
+  int creation = master()->query_userlist(uid, USER_CREATION_DATE);
 
   if (!intp(creation))
-     return getuid(ob);
+     return uid;
 
   // Username + "_" + CreationDate
-  return getuid(ob) + "_" + creation;
+  return uid + "_" + creation;
 }
 
 void set_object_living_name(string livname, object obj)