diff options
| -rw-r--r-- | sql/updates/world/2011_08_24_02_world_spell_script_names.sql | 4 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_quest.cpp | 46 | 
2 files changed, 48 insertions, 2 deletions
diff --git a/sql/updates/world/2011_08_24_02_world_spell_script_names.sql b/sql/updates/world/2011_08_24_02_world_spell_script_names.sql new file mode 100644 index 00000000000..1799d408747 --- /dev/null +++ b/sql/updates/world/2011_08_24_02_world_spell_script_names.sql @@ -0,0 +1,4 @@ +DELETE FROM `spell_script_names` WHERE `spell_id`=54190; +INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) +VALUES +(54190,'spell_q12805_lifeblood_dummy'); diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index 15cee94e909..ae8069747e3 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -859,7 +859,7 @@ public:  enum StoppingTheSpread  { -    NPC_KILL_CREDIT                              = 18240, +    NPC_VILLAGER_KILL_CREDIT                     = 18240,      SPELL_FLAMES                                 = 39199,  }; @@ -881,7 +881,7 @@ class spell_q9874_liquid_fire : public SpellScriptLoader                  if (!caster || !target || (target && target->HasAura(SPELL_FLAMES)))                      return; -                caster->KilledMonsterCredit(NPC_KILL_CREDIT, 0); +                caster->KilledMonsterCredit(NPC_VILLAGER_KILL_CREDIT, 0);                  target->CastSpell(target, SPELL_FLAMES, true);                  target->DespawnOrUnsummon(60000);              } @@ -898,6 +898,47 @@ class spell_q9874_liquid_fire : public SpellScriptLoader          };  }; + +enum SalvagingLifesStength +{ +    NPC_SHARD_KILL_CREDIT                        = 29303, +}; + +class spell_q12805_lifeblood_dummy : public SpellScriptLoader +{ +    public: +        spell_q12805_lifeblood_dummy() : SpellScriptLoader("spell_q12805_lifeblood_dummy") +        { +        } + +        class spell_q12805_lifeblood_dummy_SpellScript : public SpellScript +        { +            PrepareSpellScript(spell_q12805_lifeblood_dummy_SpellScript); + +            void HandleScript(SpellEffIndex /*effIndex*/) +            { +                Player* caster = GetCaster()->ToPlayer(); +                Creature* target = GetHitUnit()->ToCreature(); +                if (!caster || !target) +                    return; + +                caster->KilledMonsterCredit(NPC_SHARD_KILL_CREDIT, 0); +                target->CastSpell(target, uint32(GetEffectValue()), true); +                target->DespawnOrUnsummon(2000); +            } + +            void Register() +            { +                OnEffect += SpellEffectFn(spell_q12805_lifeblood_dummy_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); +            } +        }; + +        SpellScript* GetSpellScript() const +        { +            return new spell_q12805_lifeblood_dummy_SpellScript(); +        }; +}; +  void AddSC_quest_spell_scripts()  {      new spell_q55_sacred_cleansing(); @@ -919,4 +960,5 @@ void AddSC_quest_spell_scripts()      new spell_symbol_of_life_dummy();      new spell_q12659_ahunaes_knife();      new spell_q9874_liquid_fire(); +    new spell_q12805_lifeblood_dummy();  }  | 
