| |
| TakeFlaw() |
| ********** |
| |
| |
| FUNKTION |
| ======== |
| |
| varargs void TakeFlaw(object enemy); (Waffen) |
| varargs void TakeFlaw(string* dam_types,mapping einfos) (Ruestungen) |
| |
| |
| DEFINIERT IN |
| ============ |
| |
| /std/armour/combat.c, |
| /std/weapon/combat.c |
| |
| |
| ARGUMENTE |
| ========= |
| |
| keine |
| |
| |
| BESCHREIBUNG |
| ============ |
| |
| Diese Funktion wird in Waffen und Ruestungen waehrend des Kampfes |
| aufgerufen. In einer Waffe erfolgt der Aufruf bei jedem Schlag mit |
| dieser Waffe, bei Ruestungen wird TakeFlaw() in einer zufaellig |
| ausgewaehlten getragenen Ruestung aufgerufen. |
| Waffen bekommen das Gegnerobjekt uebergeben, Ruestungen die erweiterten |
| DefendInfos (s. dort fuer Details). Aufgrund dieser Informationen kann |
| man den Schaden, den ein Gegenstand nimmt, flexibler gestalten (z.B. bei |
| einer Waffe in Abhaengigkeit von P_BODY des Gegners.) |
| |
| Soweit man die Funktion nicht ueberlaedt, bewirkt sie nichts weiter als |
| das Erhoehen eines Zaehlers, der mit QueryFlaw() abgefragt werden kann. |
| |
| |
| RUeCKGABEWERT |
| ============= |
| |
| keiner |
| |
| |
| BEMERKUNGEN |
| =========== |
| |
| Die Waffen-/ Ruestungsklasse wird nicht automatisch reduziert! Wenn |
| eine Waffe oder Ruestung sich abnutzen soll, muss man TakeFlaw() |
| ueberladen und dort entsprechend handeln, oder (fuer einfache |
| Faelle) die Property P_QUALITY setzen. |
| |
| |
| BEISPIELE |
| ========= |
| |
| Eine Waffe, deren Waffenklasse alle 20 Schlaege um 1 abnimmt: |
| |
| inherit "/std/weapon"; |
| |
| #include <properties.h> |
| #include <combat.h> |
| |
| protected void create() { |
| /* Das Uebliche... */ |
| } |
| |
| varargs void TakeFlaw(object enemy) { |
| /* erstmal den Zaehler erhoehen... */ |
| ::TakeFlaw(enemy); |
| |
| /* jetzt den aktuellen Zaehlerstand abfragen */ |
| int flaw = QueryFlaw()[0]; |
| |
| /* Abzug nur jeden 20. Schlag */ |
| if (!(flaw % 20)) { |
| /* So, jetzt fuer den Schaden sorgen. Hierfuer benutzt */ |
| /* man am sichersten die eingebaute Funktion Damage() */ |
| Damage(1); |
| } |
| } |
| |
| Dieses einfache Beispiel haette natuerlich auch ueber ein |
| SetProp(P_QUALITY,20); im create() realisiert werden koennen. |
| |
| |
| SIEHE AUCH |
| ========== |
| |
| QueryFlaw(), Damage(), DefendInfo, P_QUALITY, /std/armour/combat.c, |
| /std/weapon/combat.c |
| |
| Last modified: Thu May 22 10:30:10 1997 by Paracelsus |