| |
| P_ATTACK_BUSY |
| ************* |
| |
| |
| NAME |
| ==== |
| |
| P_ATTACK_BUSY "attack_busy" |
| |
| |
| DEFINIERT IN |
| ============ |
| |
| /sys/living/combat.h |
| |
| |
| BESCHREIBUNG |
| ============ |
| |
| Ueber diese Property kann festgestellt werden, ob ein Spieler noch |
| Spezialwaffen (zB Flammenkugel) einsetzen kann. |
| |
| |
| |
| Ist der Wert bei Abfrage ungleich 0, dann darf der Spieler in dieser |
| Runde keine Aktion mehr durchfuehren. Mit SetProp(P_ATTACK_BUSY, 1) |
| wird eine Aktion verbraucht. |
| |
| Intern wird relativ fein gerechnet, ein SetProp(P_ATTACK_BUSY, x) |
| wird in das Abziehen von x*100 Punkten umgerechnet. Der Wert freier |
| Aktionen pro Runde berechnet sich wie folgt: |
| |
| |
| |
| Spieler: 100 + QuerySkillAttribute(SA_SPEED) |
| Seher: Spieler + 200 + QueryProp(P_LEVEL) |
| |
| Das Maximum liegt bei 500. |
| Damit betraegt die Anzahl der moeglichen Aktionen pro Runde: Wert/100, |
| also maximal 5 Aktionen pro Runde. |
| |
| Zaubersprueche zaehlen im Normalfall auch als eine Aktion. |
| |
| |
| BEMERKUNGEN |
| =========== |
| |
| Benutzt man P_ATTACK_BUSY fuer eine sich nicht sofort verbrauchende |
| Sache, kann ein Seher dieses Objekt im Normalfall dreimal pro Runde |
| benutzen. Wenn ungewollt, muss das ueber einen Zeitmarker selbst |
| verhindert werden. |
| |
| |
| BEISPIELE |
| ========= |
| |
| (Code eines Objektes ist in |
| /doc/beispiele/testobjekte/attack_busy_sensitive_testobj.c) |
| // einfacher Test auf ATTACK_BUSY und anschliessendes Setzen |
| if (this_player()->QueryProp(P_ATTACK_BUSY)) { |
| write("Du hast dafuer momentan einfach nicht mehr die Puste.\n"); |
| return 1; |
| } |
| this_player()->SetProp(P_ATTACK_BUSY, 1); |
| |
| 7. Mar 2011 Gloinson |