
RemoveResistanceModifier()
**************************


FUNKTION
========

   varargs void RemoveResistanceModifier(string add);


DEFINIERT IN
============

   /std/living/combat.c


ARGUMENTE
=========

   string add:
    Ein eventueller Identifikator fuer einen gesetzten Modifikator.


BESCHREIBUNG
============

   Die von einem Objekt im Zielobjekt gesetzte Resistenz wird geloescht,
   der Schluessel add wird dazu benutzt, eine bestimmte Resistenz zu
   loeschen (so kann ein setzendes Objekt mehrere verschiedene Re-
   sistenzen setzen und selektiv loeschen).


BEISPIELE
=========

   // unser Oel aus AddResistanceModifier() verbrennt endgueltig
   varargs void trigger_sensitive_attack() {
    ...
    if(environment() && living(environment())) {
     environment()->RemoveResistanceModifier("oel");
     tell_object(environment(),"Das Oel verbrennt endgueltig.\n");
    }
    remove();
   }


SIEHE AUCH
==========

   Modifikatoren:     AddResistanceModifier, P_RESISTANCE_MODIFIER
   simple Resistenz:  P_RESISTANCE, P_VULNERABILITY
   Hauptmapping:      P_RESISTANCE_STRENGTHS
   Berechnung:        CheckResistance(), UpdateResistanceStrengths()
   anderes:           balance, /std/armour/combat.c, /std/living/combat.c

29.Apr 2002, Gloinson@MG
