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