Index: trunk/src/game/Unit.cpp
===================================================================
--- trunk/src/game/Unit.cpp (revision 44)
+++ trunk/src/game/Unit.cpp (revision 55)
@@ -478,7 +478,4 @@
     }
 
-    //Script Event damage Deal
-    if( GetTypeId()== TYPEID_UNIT && ((Creature *)this)->AI())
-        ((Creature *)this)->AI()->DamageDeal(pVictim, damage);
     //Script Event damage taken
     if( pVictim->GetTypeId()== TYPEID_UNIT && ((Creature *)pVictim)->AI() )
Index: trunk/src/game/Spell.cpp
===================================================================
--- trunk/src/game/Spell.cpp (revision 53)
+++ trunk/src/game/Spell.cpp (revision 55)
@@ -945,4 +945,7 @@
             ((Creature*)unit)->AI()->SpellHit(m_caster ,m_spellInfo);
     }
+
+    if(m_caster->GetTypeId() == TYPEID_UNIT && ((Creature*)m_caster)->AI())
+        ((Creature*)m_caster)->AI()->SpellHitTarget(unit, m_spellInfo);
 }
 
Index: trunk/src/game/CreatureAI.h
===================================================================
--- trunk/src/game/CreatureAI.h (revision 44)
+++ trunk/src/game/CreatureAI.h (revision 55)
@@ -83,10 +83,4 @@
         virtual void EnterEvadeMode() = 0;
 
-        // Called at any heal cast/item used (call non implemented)
-        virtual void HealBy(Unit * /*healer*/, uint32 /*amount_healed*/) {}
-
-        // Called at any Damage to any victim (before damage apply)
-        virtual void DamageDeal(Unit * /*done_to*/, uint32 & /*damage*/) {}
-
         // Called at any Damage from any attacker (before damage apply)
         virtual void DamageTaken(Unit *done_by, uint32 & /*damage*/) { AttackedBy(done_by); }
@@ -111,4 +105,7 @@
         // Called when hit by a spell
         virtual void SpellHit(Unit*, const SpellEntry*) {}
+
+        // Called when spell hits a target
+        virtual void SpellHitTarget(Unit* target, const SpellEntry*) {} 
 
         // Called when vitim entered water and creature can not enter water
Index: trunk/src/bindings/scripts/sql/Updates/r57_trinity.sql
===================================================================
--- trunk/src/bindings/scripts/sql/Updates/r57_trinity.sql (revision 53)
+++ trunk/src/bindings/scripts/sql/Updates/r57_trinity.sql (revision 55)
@@ -37,3 +37,3 @@
 INSERT INTO `spell_script_target` VALUES ('42577', '1', '24136');
 
-UPDATE `creature_template` SET `lootid` = `entry`, `ScriptName` = 'npc_zulaman_hostage' WHERE `entry` IN (23790, 23999, 24024, 24001);
+UPDATE `creature_template` SET `ScriptName` = 'npc_zulaman_hostage' WHERE `entry` IN (23790, 23999, 24024, 24001);
Index: trunk/src/bindings/scripts/include/sc_creature.h
===================================================================
--- trunk/src/bindings/scripts/include/sc_creature.h (revision 44)
+++ trunk/src/bindings/scripts/include/sc_creature.h (revision 55)
@@ -30,10 +30,4 @@
     void EnterEvadeMode();
 
-    //Called at any heal cast/item used (call non implemented in Trinity)
-    void HealBy(Unit *healer, uint32 amount_healed) {}
-
-    // Called at any Damage to any victim (before damage apply)
-    void DamageDeal(Unit *done_to, uint32 &damage) {}
-
     // Called at any Damage from any attacker (before damage apply)
     void DamageTaken(Unit *done_by, uint32 &damage) {}
@@ -58,5 +52,8 @@
 
     // Called when hit by a spell
-    void SpellHit(Unit*, const SpellEntry*) {}
+    void SpellHit(Unit* caster, const SpellEntry*) {}
+
+    // Called when spell hits a target
+    void SpellHitTarget(Unit* target, const SpellEntry*) {}
 
     // Called when creature is spawned or respawned (for reseting variables)
