InternalModifyAttack()
**********************


InternalModifyAttack(L)
=======================


FUNKTION
========

   protected void InternalModifyAttack(mapping ainfo)


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

   /std/living/combat


ARGUMENTE
=========

   mapping ainfo              Werte aus der Attack


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

   Dient dazu noch Aenderungen am Verhalten der Attack() vornehmen zu
   koennen. Die Parameter werden alle per Referenz uebergeben, Aenderungen
   wirken also direkt in der Attack()!
   Einfach ueberschreiben (aber ::InternalModifyAttack(&ainfo) nicht
   vergessen!

   Aufbau von 'ainfo':
   ([ SI_ENEMY :            object Angreifer,                 (-> Defend)
      SI_SPELL :           0/1/array Spellparameter,          (-> Defend)
      P_WEAPON :           - oder Waffe,
      SI_SKILLDAMAGE_MSG:  string Angriffsmeldungsende an Raum,
      SI_SKILLDAMAGE_MSG2: string Angriffsmeldungsende an Kaempfende,
      SI_SKILLDAMAGE:      int Schaden in Zehntel HP (Skills schon drin)
                                                              (-> Defend),
      SI_SKILLDAMAGE_TYPE: string/string* Schadenstypen,      (-> Defend)
      P_WEAPON_TYPE:       string Waffentyp (combat.h),
      P_WC:                - oder int WC der Waffe/Hand,
      P_NR_HANDS:          - oder int Hands der Waffe/Hand,
   ]);


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

   InternalModifyDefend(L)
   Attack(L)

28.03.2008, Zesstra
