diff --git a/doc/sphinx/lfun/HitFunc.rst b/doc/sphinx/lfun/HitFunc.rst
new file mode 100644
index 0000000..cf90ff0
--- /dev/null
+++ b/doc/sphinx/lfun/HitFunc.rst
@@ -0,0 +1,94 @@
+HitFunc()
+=========
+
+FUNKTION
+--------
+::
+
+     int HitFunc(object enemy);
+
+DEFINIERT IN
+------------
+::
+
+     eigenen Objekten, fuer /std/weapon/combat.c
+
+ARGUMENTE
+---------
+::
+
+     enemy
+          Der Gegner, gegen den die Waffe eingesetzt wird.
+
+BESCHREIBUNG
+------------
+::
+
+     Die Waffe kann anhand des Gegners enemy entscheiden, ob ein
+     Schadensbonus oder auch ein Schadensmalus wirksam wird. Dieser Bonus
+     wird zu dem normalen Schaden der Waffe hinzuaddiert.
+
+RUeCKGABEWERT
+-------------
+::
+
+     Der Schadensbonus bzw. der Abschlag.
+
+BEMERKUNGEN
+-----------
+::
+
+     Wenn durch den Bonus die Genehmigungsgrenzen der Balance
+     ueberschritten werden koennen, muss man seinen Regionsmagier und
+     die Objekt-Balance konsultieren!
+
+     Werte der HitFunc sollten immer ueber ein random() zurueckgegeben 
+     werden!
+
+     Diese Funktion sollte die Waffe nicht zerstoeren! Falls ihr im Kampf eine
+     Waffe (ggf. in Abhaengigkeit vom Gegner) zerstoeren wollt, nutzt dazu
+     bitte TakeFlaw(). 
+
+BEISPIELE
+---------
+::
+
+     Eine Waffe, die gegen Orks besonders gut wirkt:
+
+     inherit "std/weapon";
+
+     #include <properties.h>
+     #include <combat.h>
+     #include <class.h>
+
+     create(){
+       if(!clonep(this_object())) {
+           set_next_reset(-1);
+           return;
+       }
+       ::create();
+       /* 
+       zig SetProp's, um die Waffe zu konfigurieren
+       HitFunc() ist in der Waffe selbst definiert 
+       */
+       SetProp(P_HIT_FUNC, this_object());
+     }
+
+     int HitFunc(object enemy)
+     {
+       /* laesst sich der Gegner als Ork ansprechen? */
+       if (enemy->is_class_member(CL_ORC))
+         return random(10+random(50)); /* Ja => Schaden erhoehen */
+
+       return 0;   /* ansonsten keinen zusaetzlichen Schaden anrichten */
+     }
+
+SIEHE AUCH
+----------
+::
+
+     QueryDefend(), /std/weapon.c
+     TakeFlaw()
+
+11.08.2007, Zesstra
+
