blob: 40d99a2bd9732d65fd82c5759555850da3c85cd1 [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001
2TakeFlaw()
3**********
4
5
6FUNKTION
7========
8
9 varargs void TakeFlaw(object enemy); (Waffen)
10 varargs void TakeFlaw(mixed dam_types,mapping einfos) (Ruestungen)
11
12
13DEFINIERT IN
14============
15
16 /std/armour/combat.c,
17 /std/weapon/combat.c
18
19
20ARGUMENTE
21=========
22
23 keine
24
25
26BESCHREIBUNG
27============
28
29 Diese Funktion wird in Waffen und Ruestungen waehrend des Kampfes
30 aufgerufen. In einer Waffe erfolgt der Aufruf bei jedem Schlag mit
31 dieser Waffe, bei Ruestungen wird TakeFlaw() in einer zufaellig
32 ausgewaehlten getragenen Ruestung aufgerufen.
33 Waffen bekommen das Gegnerobjekt uebergeben, Ruestungen die erweiterten
34 DefendInfos (s. dort fuer Details). Aufgrund dieser Informationen kann
35 man den Schaden, den ein Gegenstand nimmt, flexibler gestalten (z.B. bei
36 einer Waffe in Abhaengigkeit von P_BODY des Gegners.)
37
38 Soweit man die Funktion nicht ueberlaedt, bewirkt sie nichts weiter als
39 das Erhoehen eines Zaehlers, der mit QueryFlaw() abgefragt werden kann.
40
41
42RUeCKGABEWERT
43=============
44
45 keiner
46
47
48BEMERKUNGEN
49===========
50
51 Die Waffen-/ Ruestungsklasse wird nicht automatisch reduziert! Wenn
52 eine Waffe oder Ruestung sich abnutzen soll, muss man TakeFlaw()
53 ueberladen und dort entsprechend handeln, oder (fuer einfache
54 Faelle) die Property P_QUALITY setzen.
55
56
57BEISPIELE
58=========
59
60 Eine Waffe, deren Waffenklasse alle 20 Schlaege um 1 abnimmt:
61
62 inherit "std/weapon";
63
64 #include <properties.h>
65 #include <combat.h>
66
67 create()
68 {
69 /* Das Uebliche... */
70 }
71
72 TakeFlaw()
73 {
74 int flaw;
75
76 /* erst mal den Zaehler erhoehen... */
77 ::TakeFlaw();
78
79 /* jetzt den aktuellen Zaehlerstand abfragen */
80 flaw = QueryFlaw()[0];
81
82 /* Abzug nur jeden 20. Schlag */
83 if (!(flaw % 20)) {
84 /* So, jetzt fuer den Schaden sorgen. Hierfuer benutzt */
85 /* man am sichersten die eingebaute Funktion Damage() */
86 Damage(1);
87 }
88 }
89
90 Dieses einfache Beispiel haette natuerlich auch ueber ein
91 SetProp(P_QUALITY,20); im create() realisiert werden koennen.
92
93
94SIEHE AUCH
95==========
96
97 QueryFlaw(), Damage(), DefendInfo, P_QUIALITY, /std/armour/combat.c,
98 /std/weapon/combat.c
99
100Last modified: Thu May 22 10:30:10 1997 by Paracelsus