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
