STANDARDOBJEKT FUER WAFFEN
ueberarbeitet am 5.7.2003 von Fuchur
BENUTZUNG
inherit "std/weapon";
#include <combat.h>
#include <properties.h>
BESCHREIBUNG
Basisklasse fuer alle Waffen im Spiel. Sie ist von /std/thing
abgeleitet und enthaelt alle zusaetzlichen Funktionen fuer
den Kampf.
PROPERTIES:
P_WC
Waffenklasse der Waffe, bestimmt den angerichteten Schaden.
Beim Setzen von P_WC sind die Grenzen einzuhalten, die in
der Hilfe zu waffen_ruestungen festgelegt sind.
P_WEAPON_TYPE
Art der Waffe, zum Beispiel Schwert, Messer...
(siehe /sys/combat.h)
P_DAM_TYPE
Art des Schadens, zum Beispiel stechen, schlagen...
(siehe /sys/combat.h)
P_NR_HANDS
Anzahl der Haende, die benoetigt werden um die Waffe
zu benutzen.
P_WEAPON_HIT
Enthaelt das Objekt, in dem die HitFunc() aufgerufen werden soll.
P_WEAPON_DEFEND
Enthaelt das Objekt, in dem die WeaponDefendFunc() aufgerufen
werden soll.
P_WEAPON_RESTRICTIONS
Enthaelt Restriktionen fuer Spieler, die die Waffe zuecken koennen
sollen.
EVENTS:
ET_WIELD
Wird erzeugt, wenn eine Waffe gezueckt wird.
ET_UNWIELD
Wird erzeugt, wenn eine Waffe weggesteckt wird.
FUNKTIONEN:
object QueryWieldedBy()
Liefert das Objekt, von dem die Waffe gezueckt wird.
Will man Waffen eine eigene HitFunc() oder WeaponDefendFunc()
geben, so muss diese der Waffe vorher bekannt gegeben werden.
Diese Funktionen koennen in einem beliebigen Objekt enthalten sein.
int HitFunc(object enemy)
Damit kann man die Waffe auf verschiedene Bedingungen anders
reagieren lassen. Der Returnwert wird zum Schaden hinzuaddiert.
int WeaponDefendFunc(int dam, string *dtl, int spell, object enemy)
Paradewaffen oder aehnliches lassen sich damit realisieren. Der
Returnwert wird zum Schutz hinzuaddiert.
Vor der Programmierung von Waffen sollten die Regeln fuer Waffenwerte
gelesen werden. Die Regeln darin sind verbindlich und sollten nur
in Ausnahmefaellen und mit Absprache mit dem Erzmagier fuer
Waffen/Ruestungen/Monster ueberschritten werden.
SIEHE AUCH:
P_WC, P_WEAPON_TYPE, P_DAM_TYPE, P_NR_HANDS, P_WEAPON_HIT,
P_WEAPON_DEFEND, P_WEAPON_RESTRICTIONS,
ET_WIELD, ET_UNWIELD,
QueryWieldedBy(L), HitFunc(L), WeaponDefendFunc(L)
waffen_ruestungen(WL)
|