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
