blob: 594c1640d1e476c71739b5cda959960a1adf01b5 [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001
MG Mud User88f12472016-06-24 23:31:02 +02002TakeFlaw()
Zesstra953f9972017-02-18 15:37:36 +01003**********
MG Mud User88f12472016-06-24 23:31:02 +02004
MG Mud User88f12472016-06-24 23:31:02 +02005
Zesstra953f9972017-02-18 15:37:36 +01006FUNKTION
7========
MG Mud User88f12472016-06-24 23:31:02 +02008
Zesstra953f9972017-02-18 15:37:36 +01009 varargs void TakeFlaw(object enemy); (Waffen)
Arathorn613fc5a2019-10-06 21:27:06 +020010 varargs void TakeFlaw(string* dam_types,mapping einfos) (Ruestungen)
MG Mud User88f12472016-06-24 23:31:02 +020011
MG Mud User88f12472016-06-24 23:31:02 +020012
Zesstra953f9972017-02-18 15:37:36 +010013DEFINIERT IN
14============
MG Mud User88f12472016-06-24 23:31:02 +020015
Zesstra953f9972017-02-18 15:37:36 +010016 /std/armour/combat.c,
17 /std/weapon/combat.c
MG Mud User88f12472016-06-24 23:31:02 +020018
MG Mud User88f12472016-06-24 23:31:02 +020019
Zesstra953f9972017-02-18 15:37:36 +010020ARGUMENTE
21=========
MG Mud User88f12472016-06-24 23:31:02 +020022
Zesstra953f9972017-02-18 15:37:36 +010023 keine
MG Mud User88f12472016-06-24 23:31:02 +020024
MG Mud User88f12472016-06-24 23:31:02 +020025
Zesstra953f9972017-02-18 15:37:36 +010026BESCHREIBUNG
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
Arathorn613fc5a2019-10-06 21:27:06 +020062 inherit "/std/weapon";
Zesstra953f9972017-02-18 15:37:36 +010063
64 #include <properties.h>
65 #include <combat.h>
66
Arathorn613fc5a2019-10-06 21:27:06 +020067 protected void create() {
Zesstra953f9972017-02-18 15:37:36 +010068 /* Das Uebliche... */
69 }
70
Arathorn613fc5a2019-10-06 21:27:06 +020071 varargs void TakeFlaw(object enemy) {
72 /* erstmal den Zaehler erhoehen... */
73 ::TakeFlaw(enemy);
Zesstra953f9972017-02-18 15:37:36 +010074
75 /* jetzt den aktuellen Zaehlerstand abfragen */
Arathorn613fc5a2019-10-06 21:27:06 +020076 int flaw = QueryFlaw()[0];
Zesstra953f9972017-02-18 15:37:36 +010077
78 /* Abzug nur jeden 20. Schlag */
79 if (!(flaw % 20)) {
80 /* So, jetzt fuer den Schaden sorgen. Hierfuer benutzt */
81 /* man am sichersten die eingebaute Funktion Damage() */
82 Damage(1);
MG Mud User88f12472016-06-24 23:31:02 +020083 }
Zesstra953f9972017-02-18 15:37:36 +010084 }
MG Mud User88f12472016-06-24 23:31:02 +020085
Zesstra953f9972017-02-18 15:37:36 +010086 Dieses einfache Beispiel haette natuerlich auch ueber ein
87 SetProp(P_QUALITY,20); im create() realisiert werden koennen.
MG Mud User88f12472016-06-24 23:31:02 +020088
MG Mud User88f12472016-06-24 23:31:02 +020089
Zesstra953f9972017-02-18 15:37:36 +010090SIEHE AUCH
91==========
MG Mud User88f12472016-06-24 23:31:02 +020092
Arathorn613fc5a2019-10-06 21:27:06 +020093 QueryFlaw(), Damage(), DefendInfo, P_QUALITY, /std/armour/combat.c,
Zesstra953f9972017-02-18 15:37:36 +010094 /std/weapon/combat.c
MG Mud User88f12472016-06-24 23:31:02 +020095
MG Mud User88f12472016-06-24 23:31:02 +020096Last modified: Thu May 22 10:30:10 1997 by Paracelsus