blob: 3d22075e33300d965294ace60c7acc14c01d07ed [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001HitFunc()
2
3FUNKTION:
4 int HitFunc(object enemy);
5
6DEFINIERT IN:
7 eigenen Objekten, fuer /std/weapon/combat.c
8
9ARGUMENTE:
10 enemy
11 Der Gegner, gegen den die Waffe eingesetzt wird.
12
13BESCHREIBUNG:
14 Die Waffe kann anhand des Gegners enemy entscheiden, ob ein
15 Schadensbonus oder auch ein Schadensmalus wirksam wird. Dieser Bonus
16 wird zu dem normalen Schaden der Waffe hinzuaddiert.
17
18RUeCKGABEWERT:
19 Der Schadensbonus bzw. der Abschlag.
20
21BEMERKUNGEN:
22 Wenn durch den Bonus die Genehmigungsgrenzen der Balance
23 ueberschritten werden koennen, muss man seinen Regionsmagier und
24 die Objekt-Balance konsultieren!
25
26 Werte der HitFunc sollten immer ueber ein random() zurueckgegeben
27 werden!
28
29 Diese Funktion sollte die Waffe nicht zerstoeren! Falls ihr im Kampf eine
30 Waffe (ggf. in Abhaengigkeit vom Gegner) zerstoeren wollt, nutzt dazu
31 bitte TakeFlaw().
32
33BEISPIELE:
34 Eine Waffe, die gegen Orks besonders gut wirkt:
35
36 inherit "std/weapon";
37
38 #include <properties.h>
39 #include <combat.h>
40 #include <class.h>
41
42 create(){
43 if(!clonep(this_object())) {
44 set_next_reset(-1);
45 return;
46 }
47 ::create();
48 /*
49 zig SetProp's, um die Waffe zu konfigurieren
50 HitFunc() ist in der Waffe selbst definiert
51 */
52 SetProp(P_HIT_FUNC, this_object());
53 }
54
55 int HitFunc(object enemy)
56 {
57 /* laesst sich der Gegner als Ork ansprechen? */
58 if (enemy->is_class_member(CL_ORC))
59 return random(10+random(50)); /* Ja => Schaden erhoehen */
60
61 return 0; /* ansonsten keinen zusaetzlichen Schaden anrichten */
62 }
63
64SIEHE AUCH:
65 QueryDefend(), /std/weapon.c
66 TakeFlaw()
67----------------------------------------------------------------------------
6811.08.2007, Zesstra