So wie in axt2 soll man es gerade nicht machen ...

Change-Id: I8fe3f26313589af8888e58fb91d0dab349d3428e
diff --git a/obj/axt2.c b/obj/axt2.c
index a8eb3aa..83937d9 100644
--- a/obj/axt2.c
+++ b/obj/axt2.c
@@ -1,11 +1,13 @@
 /*
-  Manchmal moechte man ja einem NPC eine ordentliche Waffe geben, die dann
-  aber fuer Spieler nicht so geeignet oder schlicht zu gut waere. In diesem
-  Fall ist eine Moeglichkeit, die Waffenwerte abhaengig von demjenigen zu
-  setzen, der sie gerade dabeihat.
+  Eine andere Moeglichkeit, eine Waffe nur fuer einen NPC zur Verfuegung zu
+  stellen ist ein wenig frustrierender fuer Spieler. Man sollte Beispiele
+  wie dieses nicht ungeprueft uebernehmen. Waffen, die kein Spieler zuecken
+  kann, stossen meist nicht auf sehr hohen Enthusiasmus beim Spieler, die
+  betreffende Gegend mehrmals zu aufzusuchen.
 */
 inherit "/std/weapon";
 
+#include <new_skills.h>
 #include __PATH__(1)"defs.h"
 
 
@@ -25,23 +27,16 @@
   SetProp(P_GENDER, FEMALE);
   AddId(({"axt"}));
 
-  /* Dies ist Kawumms persoenliche Axt, und mit der macht er mehr Schaden als
-     jeder andere. Gleichzeitig ist dies ein Beispiel dafuer, wie man eine
-     Prop mit einer Closure setzt. Da F_QUERY_METHOD angegeben ist, wird die
-     eingebundene Inline-Function jedesmal ausgefuehrt, wenn der Wert von P_WC
-     abgefragt wird, also z.B. auch bei jedem Attack().
-     Der umgekehrte Fall waere, wenn wir F_SET_METHOD verwenden, dann wuerde
-     die Inline-Function ausgefuehrt, wenn jemand SetProp(P_WC) aufruft. */
-  Set(P_WC, function int() {
-    if (load_name(ENV()) == __PATH__(1)"npc/zwerg5")
-      return 180;
-    return 100;
-  }, F_QUERY_METHOD);
-
+  SetProp(P_WC, 180);
   SetProp(P_WEAPON_TYPE, WT_AXE);
   SetProp(P_DAM_TYPE, DT_SLASH);
   SetProp(P_NR_HANDS, 1);
 
+  /* "Restriktionen" bezieht sich hier konkret auf das Zuecken der Waffe.
+     In diesem Beispiel wird das anhand der Function wield_check()
+     ueberprueft, die sich in DIESEM Objekt befinden muss: */
+  SetProp(P_RESTRICTIONS, ([SR_FUN: "wield_check"]));
+
   SetProp(P_VALUE, 200);
   SetProp(P_WEIGHT, 3250);
   SetProp(P_SIZE, 90);
@@ -49,3 +44,13 @@
   SetProp(P_MATERIAL, ([MAT_STEEL:100]));
 }
 
+public string wield_check() {
+  /* Wir pruefen direkt, ob derjenige, der die Axt im Inventory hat, der
+     legale Besitzer ist. Diese Axt funktioniert also z.B. nicht mehr,
+     wenn man einen anderen NPC damit ausruesten moechte. */
+  if (load_name(ENV()) != __PATH__(1)"npc/zwerg4")
+    return BSLF(
+      "Dies ist Kawumms persoenliche Axt. Sie ist so dermassen unhandlich, "
+      "dass Du sie nicht zuecken kannst.");
+  return 0;
+}