| |
| QuerySkillBonus() |
| ***************** |
| |
| |
| FUNKTION |
| ======== |
| |
| int QuerySkillBonus(object caster, object target, mapping sinfo) |
| |
| |
| DEFINIERT IN |
| ============ |
| |
| beliebigen Objekten |
| |
| |
| ARGUMENTE |
| ========= |
| |
| object caster |
| der Benutzer eines Skills/Spells (Lebewesen) |
| object target |
| das Ziel eines Skills/Spells (beliebiges Objekt oder 0) |
| mapping sinfo |
| das Skillinfomapping |
| |
| |
| BESCHREIBUNG |
| ============ |
| |
| Diese Funktion wird von der Gilde des Casters im Environment und ggf. |
| auch im Ziel eines Skills/Spells gerufen. |
| Die Gilde uebergibt neben Caster und Ziel ein Mapping mit Skillinfos (s. |
| SI Konstanten aus new_skills.h fuer Details), welches alle wesentlichen |
| Informationen ueber den benutzten Skill/Spell enthaelt. |
| |
| QuerySkillBonus() liefert einen Bonus (oder Malus) zurueck, den der |
| Aufrufer als Faktor in der Berechnung des Effekts des Skills |
| beruecksichtigen kann (aber nicht muss). |
| Der Bonus/Malus wird hierbei als ganzzahliger 0.01-Prozentwert aufgefasst |
| (10000 == 100% == keine Veraenderung, 1 == 0.01%). |
| |
| Diese Funktion kann in beliebigen Objekten (re-)definiert werden. Im |
| Falle mobiler Objekte oder anhaltender Effekte ist jedoch eine |
| Balancegenehmigung erforderlich, sofern kampfrelevante Skills beeinflusst |
| werden. |
| Eine flaechendeckende Reduzierung von Skills/Gildenfaehigkeiten ist |
| explizit _nicht_ erwuenscht und soll auf einzelne Raeume und Objekte |
| beschraenkt sein. |
| |
| |
| BEMERKUNGEN |
| =========== |
| |
| Das Mapping <sinfo> kann in dieser Funktion geaendert werden. Dieses kann |
| allerdings sehr weitreichende Folgen haben, speziell bei mangelnden |
| Kenntnissen ueber Interna des Skillsystems. Daher bitte von Aenderungen |
| absehen bzw. vorher mit dem jeweiligen Gildenmagier und/oder der |
| Gildenbalance abklaeren. |
| Die Bedeutung der Werte in <sinfo> kann je nach Gilde variieren. Im |
| Zweifelsfall bitte bei den jeweiligen Gildenmagiern nachfragen. |
| Die Gilde kann diese Funktion rufen, muss aber nicht. Ebenso kann sie das |
| Ergebnis beruecksichtigen, muss aber nicht. |
| |
| |
| BEISPIELE |
| ========= |
| |
| In einem Raum sollen Heilzauber besonders effizient sein: |
| int QuerySkillBonus(object caster, object target, mapping sinfo) { |
| if (pointerp(sinfo[SI_MAGIC_TYPE]) |
| && member(sinfo[SI_MAGIC_TYPE], MT_HEILUNG) > -1) |
| { |
| return 12000 + random(3000); // bonus von 120-150% |
| } |
| return 10000; |
| } |
| |
| |
| SIEHE AUCH |
| ========== |
| |
| gilden-doku |
| <new_skills.h> |
| |
| |
| LETZTE AeNDERUNG |
| ================ |
| |
| 19.08.2013, Zesstra |