eUID jetzt statisch.

... naemlich die des erschaffenden Objektes.

Change-Id: Ibf96198083f977550824296c83a8ceea2895f885
diff --git a/obj/playerdata.c b/obj/playerdata.c
index f3c8c4e..a3c9c29 100644
--- a/obj/playerdata.c
+++ b/obj/playerdata.c
@@ -1,6 +1,6 @@
 // Dieses Ding kriegt die UID vom Clonenden.
-// Der Master exportiert allerdings per export_uid() ggf. eine UID an dieses
-// Objekt.
+// Spielerladen duerfen nur Objekte, welche die gleiche UID wie der Cloner
+// (also dieses Objekt) haben.
 // Abfragen kann es nur das Objekt, welches den Spieler geladen hat.
 
 #pragma no_inherit,no_shadow
@@ -17,7 +17,7 @@
 protected void create()
 {
   ::create();
-  seteuid(0);
+  seteuid(getuid());
   set_next_reset(300);
 }
 
@@ -25,19 +25,20 @@
 {
   pl = 0;
   user = 0;
-  // Das Objekt darf keine EUID mehr haben, damit ROOT-Objekte ihm ggf. eine
-  // neue UID exportieren koennen, damit es einen neuen Spieler laden kann.
-  seteuid(0);
   return 1;
 }
 
 public int LoadPlayer(string name)
 {
+  // Es duerfen nur Objekte mit der gleichen UID wie wir diesen Clone
+  // benutzen! Ansonsten koennten z.B. nicht-ROOT-Objekte einen von einem
+  // ROOT-Objekt erzeugten Clone hiervon nutzen und alles lesen...
+  if (!previous_object()
+      || getuid(previous_object()) != getuid(this_object()))
+    return 0;
   if (query_wiz_level(getuid(previous_object())) < WIZARD_LVL)
     return 0;
 
-  seteuid(getuid());
-
   mixed userinfo=MASTER->get_userinfo(name);
   if (!pointerp(userinfo))
     return 0;