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