Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/doc/lfun/SpellAttack b/doc/lfun/SpellAttack
new file mode 100644
index 0000000..0e24fd9
--- /dev/null
+++ b/doc/lfun/SpellAttack
@@ -0,0 +1,71 @@
+SpellAttack()
+
+FUNKTION:
+ void SpellAttack(object enemy)
+
+ARGUMENTE:
+ enemy: Der Feind.
+
+BESCHREIBUNG:
+ Diese Funktion wird in jedem Heartbeat eines NPCs ausgefuehrt,
+ falls nicht P_DISABLE_ATTACK gesetzt ist (Paralyse).
+ Standardmaessig tut diese Funktion nichts, aber man kann sie
+ ueberschreiben, damit in jedem Heartbeat Angriffe mit Spells
+ ausgefuehrt werden.
+
+ Man sollte hierbei ein random() einbauen, damit der NPC nicht
+ in jedem Heartbeat auch wirklich einen Angriff ausfuehrt.
+ Ausserdem sollte man auch fuer eventuelle Ausgaben sorgen.
+
+RUECKGABEWERT:
+ Keiner.
+
+BEMERKUNG:
+ Die AttackChats, die mittels SetAttackChats gesetzt werden
+ koennen, macht im Grunde nichts anderes, aber Chats sind halt
+ keine Angriffe. :-)
+
+BEISPIELE:
+ Im Grunde ist dieses simple Beispiel eine Nachbildung von
+ Attack-Chats und soll dementsprechend nur der Anschauung dienen.
+
+ void SpellAttack(object enemy)
+ {
+ // mit 80% Wahrscheinlichkeit wird nichts gemacht.
+ switch(random(5))
+ {
+ case 0:
+ write("Der Ork tritt Dir in den Hintern.\n");
+ return;
+ case 1:
+ write("Der Ork bruellt: Lebend kommst Du hier nicht raus!\n");
+ return;
+ case 2:
+ write("Der Ork blutet schon aus mehreren Wunden.\n");
+ return;
+ case 3:
+ write(knirsch(enemy));
+ return;
+ default:
+ return;
+ }
+ }
+
+ string knirsch(object enemy)
+ {
+ if (objectp(enemy))
+ helm = enemy->QueryArmourByType(AT_HELMET);
+ if (objectp(helm))
+ {
+ helm->Damage(1);
+ return "Der Ork beschaedigt Deinen Helm!\n";
+ }
+ else
+ return ""; // keine Meldung
+ }
+
+SIEHE AUCH:
+ "Attack", "SetAttackChats", /std/npc/combat.c
+
+LETZTE AENDERUNG:
+ Don, 27.02.2003, 12:50:00 von Hirudo