Реализация квеста http://ru.wowhead.com/?quest=11608
Code
--- a/src/bindings/scripts/scripts/northrend/borean_tundra.cpp Mon Dec 14 15:25:43 2009 +0300
+++ b/src/bindings/scripts/scripts/northrend/borean_tundra.cpp Mon Dec 14 22:57:57 2009 +0300
@@ -1768,6 +1768,52 @@
return new npc_imprisoned_beryl_sorcererAI(pCreature);
}
+/*######
+## mob_seaforium_depth_charge
+######*/
+
+enum eSeaforium
+{
+ SPELL_EXPLOSION = 45502,
+};
+
+const uint32 nerubar_sinkhole[4] =
+{
+ 25402, 25403, 25404, 25405
+};
+
+struct TRINITY_DLL_DECL mob_seaforium_depth_chargeAI : public ScriptedAI
+{
+ mob_seaforium_depth_chargeAI(Creature *c) : ScriptedAI(c) {}
+
+ uint32 Explosion_Timer;
+
+ void Reset()
+ {
+ Explosion_Timer = 5000;
+ }
+
+ void UpdateAI(const uint32 uiDiff)
+ {
+ if (Explosion_Timer <= uiDiff)
+ {
+ if (TempSummon *summon = (TempSummon*)m_creature)
+ if (Unit *pTemp = summon->GetSummoner())
+ if (pTemp->GetTypeId() == TYPEID_PLAYER)
+ for (uint8 i = 0; i <= 3; ++i)
+ if (m_creature->FindNearestCreature(nerubar_sinkhole[i], 10.0f, true))
+ CAST_PLR(pTemp)->KilledMonsterCredit(nerubar_sinkhole[i],0);
+ DoCast(m_creature, SPELL_EXPLOSION, true);
+ m_creature->DisappearAndDie();
+ }
+ else Explosion_Timer -= uiDiff;
+ }
+};
+CreatureAI* GetAI_mob_seaforium_depth_charge(Creature *pCreature)
+{
+ return new mob_seaforium_depth_chargeAI (pCreature);
+}
+
void AddSC_borean_tundra()
{
Script *newscript;
@@ -1886,4 +1932,9 @@
newscript->Name = "npc_imprisoned_beryl_sorcerer";
newscript->GetAI = &GetAI_npc_imprisoned_beryl_sorcerer;
newscript->RegisterSelf();
+
+ newscript = new Script;
+ newscript->Name = "mob_seaforium_depth_charge";
+ newscript->GetAI = &GetAI_mob_seaforium_depth_charge;
+ newscript->RegisterSelf();
}
Запрос под последнюю сконверченную базу ytdb:
Code
UPDATE `creature_template` SET `ScriptName` = 'mob_seaforium_depth_charge' WHERE `entry` =25401;