RemoveSkillAttributeModifier()¶
FUNKTION¶
public int RemoveSkillAttributeModifier(object caster, string atrname)
DEFINIERT IN¶
/std/living/skill_attributes.c
ARGUMENTE¶
<atrname> string
Name des Skill-Attributes, von dem der Modifikator geloescht
werden soll.
(Definiert in /sys/living/skill_attributes.h)
<caster> object
Objekt, dessen Modifikator wieder entfernt werden soll.
BESCHREIBUNG¶
Entfernt den Modifikator, den Object <caster> gesetzt hat, wieder. Dies
ist nur notwendig, wenn der Effekt vor Ablauf der Gueltigkeit des
Modifikators aufgehoben werden soll.
RUECKGABEWERT¶
SA_MOD_REMOVED wenn der Modifikator geloescht wurde
SA_MOD_NOT_FOUND wenn der Modifikator nicht gefunden wurde
Wenn man nur wissen will, ob die Operation erfolgreich war, empfiehlt es
sich, auf == SA_MOD_REMOVED zu pruefen.
BEISPIELE¶
// eine Waffe setzt im InformWield() einen Bonus auf SA_DAMAGE fuer 10min
protected void InformWield(object pl, int silent) {
if (objectp(pl)) {
if (pl->ModifySkillAttribute(SA_DAMAGE, 20, 600) == SA_MOD_OK)
// Erfolgsmeldung an Spieler
else
// Misserfolgsmeldung an Spieler.
}
}
// wenn der Spieler die Waffe vor Ablauf der 600s wegstecken will, muss
// der Bonus natuerlich auch wieder raus
protected void InformUnwield(object pl, int silent) {
if (objectp(pl))
pl->RemoveSkillAttributeModifier(this_object(), SA_DAMAGE);
// falls kein solcher Mod mehr gesetzt war, liefert RSAM()
// SA_MOD_NOT_FOUND zurueck. Auswertung des Rueckgabewertes ist
// vernachlaessigt.
}
SIEHE AUCH¶
Skills Lernen: LearnSkill, ModifySkill, LimitAbility
* Nutzung: UseSpell, UseSkill
* Abfragen: QuerySkill, QuerySkillAbility
* Modifikation: ModifySkillAttribute, QuerySkillAttribute,
QuerySkillAttributeModifier
* Properties: P_SKILL_ATTRIBUTES, P_SKILL_ATTRIBUTE_OFFSETS
* sonstig: spruchermuedung, skill_info_liste
* Properties: P_NEWSKILLS
13.08.2008, Zesstra