Lpc Manpages

FUNKTION:
    mixed DefendOther(int dam, mixed dam_type, mixed spell, object enemy)

DEFINIERT IN:
    /std/living/combat.c

ARGUMENTE:
    dam       Hoehe des Schadens den der Angreifer machen will
    dam_type  Array mit der Art des Schadens den der Angreifer machen will
              (siehe DamageTypes in  /sys/combat.h)
    spell     Wenn der Schaden durch einen Spell erzeugt wird, Informationen
              zum Spell, sonst 0
    enemy     Der Angreifer

BESCHREIBUNG:
    DefendOther kann von Verteidigern dazu benutzt werden die Art oder die
    Intensitaet des Schadens den der Angreifer verursachen will zu veraendern,
    ganz aufzuheben oder sogar umzukehren.

RUECKGABEWERT:
    ({ dam, dam_type, spell }) Die modifizierten Werte werden dann im 
    angegriffenen Objekt ganz normal weiter verarbeitet.

BEMERKUNGEN:

BEISPIEL:
    Eine reine infovariante (z.b. fuer debugging)
    mixed DefendOther(int dam, mixed dam_type, mixed spell, object enemy) {
      tell_object(enemy, sprintf("%s teilt Dir mit: Ich soll %s gegen Deinen "+
        "Angriff mit Schaden %d vom Typ %s verursacht vom Spell %O "+
        "verteidigen\n", name(), previous_object(name(WEN)), dam, 
        implode(dam_type, " "), spell));
      return ({ dam, dam_type, spell });
    }

    // Feuerballe gehen an den Absender zurueck
    mixed DefendOther(int dam, mixed dam_type, mixed spell, object enemy) {
      if (mappingp(spell) && spell[SP_NAME] == "Feuerball") {
        tell_object(enemy, "Dein Feuerball kommt zurueck.\n");
        enemy->do_damage(dam);
        return 0;
      }
      return ({dam, dam_type, spell});
    }

    // schlagschaden wird neutralisiert
    mixed DefendOther(int dam, mixed dam_type, mixed spell, object enemy) {
      if (member_array(DT_BLUDGEON, dam_type)>-1)
        dam = 0;
      return ({dam, dam_type, spell});
    }
    
SIEHE AUCH:
    P_DEFENDERS, AddDefend, InformDefend, Defend