rst gefixt, Files erzeugt
Update autoerzeugter Manapges
Change-Id: I68afa0ee3d81fefa13ebd61df096a31812f2a4d1
diff --git a/doc/efun-mg/add_action b/doc/efun-mg/add_action
new file mode 100644
index 0000000..73555fe
--- /dev/null
+++ b/doc/efun-mg/add_action
@@ -0,0 +1,57 @@
+
+add_action(E)
+*************
+
+
+BEMERKUNGEN
+===========
+
+ 1. Das Verhalten dieser efun wird durch AddCmd aus
+ /std/thing/commands.c komfortabler widergespiegelt. Darauf
+ sollte man zurueckgreifen.
+
+ 2. add_action() sollte immer innerhalb von init() benutzt werden
+
+ 3. das definierende Objekt muss im inventory des Spielers oder
+ environment() des kommandogebenden Lebewesens sein
+
+ 4. im init() spaeter eingetragene Kommandos oder spaeter
+ hinzukommende Objekte werden bei der Kommandoauswertung VOR den
+ alten beruecksichtigt. (Daher bewegt sich das Xtool der Magier
+ regelmaessing neu in das Inventory, um immer "erstes" Objekt zu
+ sein.)
+
+
+BEISPIELE
+=========
+
+ 1. ein Kommando in einem Schirm
+
+ void init() {
+ ::init();
+ add_action("action_oeffne", "oeffne");
+ }
+
+ int action_oeffne(string str) {
+ if(stringp(str) && id(str)) // Argument da und bin ich gemeint?
+ {
+ write("Du oeffnest den Schirm.\n");
+ say(break_string(this_player()->Name(WER)+" oeffnet einen Schirm.",
+ 78));
+ return 1;
+ }
+ notify_fail("Was willst Du oeffnen?\n");
+ return 0;
+ }
+
+ 2. Kommandoblockierer: frueher beliebt um Spieler
+ lahmzulegen, da es _alle_ Kommandos triggert. Heute jedoch
+ dafuer eher P_DISABLE_COMMANDS verwenden. *Achtung*: siehe
+ Implikation von (4) oben.
+
+ add_action("action_nothing", "",1 );
+ ...
+ int action_nothing(string str) {
+ write("Dir sind die Haende gebunden.\n");
+ return 1;
+ }