blob: 498519ba84d617c26ff571928143a9725e41fe2e [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001TakeFlaw()
Zesstra953f9972017-02-18 15:37:36 +01002**********
MG Mud User88f12472016-06-24 23:31:02 +02003
MG Mud User88f12472016-06-24 23:31:02 +02004
Zesstra953f9972017-02-18 15:37:36 +01005FUNKTION
6========
MG Mud User88f12472016-06-24 23:31:02 +02007
Zesstra953f9972017-02-18 15:37:36 +01008 varargs void TakeFlaw(object enemy); (Waffen)
Arathorn613fc5a2019-10-06 21:27:06 +02009 varargs void TakeFlaw(string* dam_types,mapping einfos) (Ruestungen)
MG Mud User88f12472016-06-24 23:31:02 +020010
MG Mud User88f12472016-06-24 23:31:02 +020011
Zesstra953f9972017-02-18 15:37:36 +010012DEFINIERT IN
13============
MG Mud User88f12472016-06-24 23:31:02 +020014
Zesstra953f9972017-02-18 15:37:36 +010015 /std/armour/combat.c,
16 /std/weapon/combat.c
MG Mud User88f12472016-06-24 23:31:02 +020017
MG Mud User88f12472016-06-24 23:31:02 +020018
Zesstra953f9972017-02-18 15:37:36 +010019ARGUMENTE
20=========
MG Mud User88f12472016-06-24 23:31:02 +020021
Zesstra953f9972017-02-18 15:37:36 +010022 keine
MG Mud User88f12472016-06-24 23:31:02 +020023
MG Mud User88f12472016-06-24 23:31:02 +020024
Zesstra953f9972017-02-18 15:37:36 +010025BESCHREIBUNG
26============
27
28 Diese Funktion wird in Waffen und Ruestungen waehrend des Kampfes
29 aufgerufen. In einer Waffe erfolgt der Aufruf bei jedem Schlag mit
30 dieser Waffe, bei Ruestungen wird TakeFlaw() in einer zufaellig
31 ausgewaehlten getragenen Ruestung aufgerufen.
32 Waffen bekommen das Gegnerobjekt uebergeben, Ruestungen die erweiterten
33 DefendInfos (s. dort fuer Details). Aufgrund dieser Informationen kann
34 man den Schaden, den ein Gegenstand nimmt, flexibler gestalten (z.B. bei
35 einer Waffe in Abhaengigkeit von P_BODY des Gegners.)
36
37 Soweit man die Funktion nicht ueberlaedt, bewirkt sie nichts weiter als
38 das Erhoehen eines Zaehlers, der mit QueryFlaw() abgefragt werden kann.
39
40
41RUeCKGABEWERT
42=============
43
44 keiner
45
46
47BEMERKUNGEN
48===========
49
50 Die Waffen-/ Ruestungsklasse wird nicht automatisch reduziert! Wenn
51 eine Waffe oder Ruestung sich abnutzen soll, muss man TakeFlaw()
52 ueberladen und dort entsprechend handeln, oder (fuer einfache
53 Faelle) die Property P_QUALITY setzen.
54
55
56BEISPIELE
57=========
58
59 Eine Waffe, deren Waffenklasse alle 20 Schlaege um 1 abnimmt:
60
Arathorn613fc5a2019-10-06 21:27:06 +020061 inherit "/std/weapon";
Zesstra953f9972017-02-18 15:37:36 +010062
63 #include <properties.h>
64 #include <combat.h>
65
Arathorn613fc5a2019-10-06 21:27:06 +020066 protected void create() {
Zesstra953f9972017-02-18 15:37:36 +010067 /* Das Uebliche... */
68 }
69
Arathorn613fc5a2019-10-06 21:27:06 +020070 varargs void TakeFlaw(object enemy) {
71 /* erstmal den Zaehler erhoehen... */
72 ::TakeFlaw(enemy);
Zesstra953f9972017-02-18 15:37:36 +010073
74 /* jetzt den aktuellen Zaehlerstand abfragen */
Arathorn613fc5a2019-10-06 21:27:06 +020075 int flaw = QueryFlaw()[0];
Zesstra953f9972017-02-18 15:37:36 +010076
77 /* Abzug nur jeden 20. Schlag */
78 if (!(flaw % 20)) {
79 /* So, jetzt fuer den Schaden sorgen. Hierfuer benutzt */
80 /* man am sichersten die eingebaute Funktion Damage() */
81 Damage(1);
MG Mud User88f12472016-06-24 23:31:02 +020082 }
Zesstra953f9972017-02-18 15:37:36 +010083 }
MG Mud User88f12472016-06-24 23:31:02 +020084
Zesstra953f9972017-02-18 15:37:36 +010085 Dieses einfache Beispiel haette natuerlich auch ueber ein
86 SetProp(P_QUALITY,20); im create() realisiert werden koennen.
MG Mud User88f12472016-06-24 23:31:02 +020087
MG Mud User88f12472016-06-24 23:31:02 +020088
Zesstra953f9972017-02-18 15:37:36 +010089SIEHE AUCH
90==========
MG Mud User88f12472016-06-24 23:31:02 +020091
Arathorn613fc5a2019-10-06 21:27:06 +020092 QueryFlaw(), Damage(), DefendInfo, P_QUALITY, /std/armour/combat.c,
Zesstra953f9972017-02-18 15:37:36 +010093 /std/weapon/combat.c
MG Mud User88f12472016-06-24 23:31:02 +020094
MG Mud User88f12472016-06-24 23:31:02 +020095Last modified: Thu May 22 10:30:10 1997 by Paracelsus