diff options
4 files changed, 28 insertions, 181 deletions
diff --git a/sql/updates/world/2013_07_04_02_world_misc.sql b/sql/updates/world/2013_07_04_02_world_misc.sql index 3c6bcea5600..95d836122d8 100644 --- a/sql/updates/world/2013_07_04_02_world_misc.sql +++ b/sql/updates/world/2013_07_04_02_world_misc.sql @@ -1,4 +1,3 @@ UPDATE `creature_template` SET `ScriptName` = REPLACE(`ScriptName`, 'mob_', 'npc_') WHERE `ScriptName` LIKE 'mob\_%'; UPDATE `creature_template` SET `ScriptName` = REPLACE(`ScriptName`, 'mobs_', 'npc_') WHERE `ScriptName` LIKE 'mobs\_%'; UPDATE `spell_script_names` SET `ScriptName`='spell_trash_npc_glacial_strike' WHERE `ScriptName`='spell_trash_mob_glacial_strike'; - diff --git a/sql/updates/world/2013_07_05_01_world_creature_template.sql b/sql/updates/world/2013_07_05_01_world_creature_template.sql index 6a8500c852c..117df2273a9 100644 --- a/sql/updates/world/2013_07_05_01_world_creature_template.sql +++ b/sql/updates/world/2013_07_05_01_world_creature_template.sql @@ -201,4 +201,4 @@ update `creature_template` set exp=2 where `entry` in (37234, 37399, 37401, 37402, 37403, 37404, 37407, 37409, 37410, 37412, 37415, 37416, 37419, 37420, 37422, 37426, 37427, 37431, 37435, 37442, 37444, 37450, 37451, 37468, 37469, 37470, 37473, 37475, 37479, 37480, 37481, -37483, 37484, 37485, 37486);
\ No newline at end of file +37483, 37484, 37485, 37486); diff --git a/sql/updates/world/2013_07_05_02_world_misc.sql b/sql/updates/world/2013_07_05_02_world_misc.sql new file mode 100644 index 00000000000..435a37613c3 --- /dev/null +++ b/sql/updates/world/2013_07_05_02_world_misc.sql @@ -0,0 +1,27 @@ +-- Into the Pit (thx to KirkHammett) +SET @ENTRY := 30174; +SET @SPELL_SMASH := 54458; +SET @SPELL_DSHOUT := 54459; +SET @SPELL_CHARGE := 54460; + +UPDATE `creature_template` SET `AIName`='SmartAI', `faction_A`=2128, `faction_H`=2128 WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid` =@ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,0,1,0,100,0,0,0,0,0,2,31,0,0,0,0,0,1,0,0,0,0,0,0,0,'Hyldsmeet Warbear - OOC - Set Faction'), +(@ENTRY,0,1,0,0,0,100,0,3000,6000,7000,12000,11,@SPELL_SMASH,1,0,0,0,0,2,0,0,0,0,0,0,0,'Hyldsmeet Warbear - In Combat - Cast Smash'), +(@ENTRY,0,2,0,0,0,100,0,1000,35000,70000,95000,11,@SPELL_DSHOUT,1,0,0,0,0,2,0,0,0,0,0,0,0,'Hyldsmeet Warbear - In Combat - Cast Demoralizing Shout'), +(@ENTRY,0,3,0,0,0,100,0,5000,9000,11000,17000,11,@SPELL_CHARGE,1,0,0,0,0,2,0,0,0,0,0,0,0,'Hyldsmeet Warbear - In Combat - Cast Charge'); + +-- Some errors startup errors +UPDATE `creature_equip_template` SET `itemEntry1`=12883 WHERE `entry`=29927 AND `id`=1; + +UPDATE `creature_template` SET `npcflag`=3 WHERE `entry`=37416; +UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37346; +UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37364; +UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37269; +UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37369; +UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37268; +UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37335; +UPDATE `creature_template` SET `npcflag`=2 WHERE `entry`=37483; +UPDATE `creature_template` SET `npcflag`=4194306 WHERE `entry`=37310; +UPDATE `creature_template` SET `npcflag`=4194306 WHERE `entry`=37426; diff --git a/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp b/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp index be0f4b47fed..14444e3bd87 100644 --- a/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp +++ b/src/server/scripts/EasternKingdoms/zone_eversong_woods.cpp @@ -255,182 +255,6 @@ public: }; /*###### -## npc_second_trial_controller -######*/ - -class npc_second_trial_controller : public CreatureScript -{ -public: - npc_second_trial_controller() : CreatureScript("npc_second_trial_controller") { } - - bool OnQuestAccept(Player* /*player*/, Creature* creature, Quest const* quest) - { - // One Player exclusive quest, wait for user go activation - if (quest->GetQuestId() == QUEST_SECOND_TRIAL) - CAST_AI(npc_second_trial_controller::master_kelerun_bloodmournAI, creature->AI())->questPhase = 1; - - return true; - } - - bool OnGossipHello(Player* player, Creature* creature) - { - // quest only available if not already started - // Quest_template flag is set to : QUEST_FLAGS_EVENT - // Escort quests or any other event-driven quests. If player in party, all players that can accept this quest will receive confirmation box to accept quest. - // !not sure if this really works! - - if (CAST_AI(npc_second_trial_controller::master_kelerun_bloodmournAI, creature->AI())->questPhase == 0) - { - player->PrepareQuestMenu(creature->GetGUID()); - player->SendPreparedQuest(creature->GetGUID()); - } - - player->SEND_GOSSIP_MENU(creature->GetEntry(), creature->GetGUID()); - return true; - } - - CreatureAI* GetAI(Creature* creature) const - { - return new master_kelerun_bloodmournAI (creature); - } - - struct master_kelerun_bloodmournAI : public ScriptedAI - { - master_kelerun_bloodmournAI(Creature* creature) : ScriptedAI(creature) {} - - uint8 questPhase; - uint8 paladinPhase; - uint32 timer; - - uint64 paladinGuid[4]; - - void Reset() - { - questPhase = 0; - timer = 60000; - paladinPhase = 0; - for (uint8 i = 0; i < 4; ++i) - paladinGuid[i] = 0; - } - - void EnterCombat(Unit* /*who*/) {} - - void UpdateAI(uint32 diff) - { - // Quest accepted but object not activated, object despawned (if in sync 1 minute!) - if (questPhase == 1) - { - if (timer <= diff) - Reset(); - else - timer -= diff; - } - // fight the 4 paladin mobs phase - else if (questPhase == 2) - { - if (timer <= diff) - { - if (Creature* paladinSpawn = Unit::GetCreature((*me), paladinGuid[paladinPhase])) - { - CAST_AI(npc_second_trial_paladin::npc_secondTrialAI, paladinSpawn->AI())->Activate(me->GetGUID()); - - switch (paladinPhase) - { - case 0: - Talk(TEXT_SECOND_TRIAL_1); - break; - case 1: - Talk(TEXT_SECOND_TRIAL_2); - break; - case 2: - Talk(TEXT_SECOND_TRIAL_3); - break; - case 3: - Talk(TEXT_SECOND_TRIAL_4); - break; - } - } - else - Reset(); - - questPhase = 4; - timer = OFFSET_NEXT_ATTACK; - } - else - timer -= diff; - } - - if (!UpdateVictim()) - return; - - DoMeleeAttackIfReady(); - } - - void StartEvent() - { - if (questPhase == 1) - { // no player check, quest can be finished as group, so no complex PlayerGUID/group search code - for (uint8 i = 0; i < 4; ++i) - if (Creature* summoned = DoSpawnCreature(PaladinEntry[i], SpawnPosition[i].x, SpawnPosition[i].y, SpawnPosition[i].z, SpawnPosition[i].o, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 180000)) - paladinGuid[i] = summoned->GetGUID(); - - timer = OFFSET_NEXT_ATTACK; - questPhase = 2; - } - } - - void SecondTrialKill() - { - if (questPhase > 0) - { - ++paladinPhase; - - if (paladinPhase < 4) - questPhase = 2; - else - Reset(); // Quest Complete, QuestComplete handler is - } - } - - void SummonedCreatureDespawn(Creature* /*c*/) {} - }; -}; - -void npc_second_trial_paladin::npc_secondTrialAI::JustDied(Unit* Killer) -{ - if (Killer->GetTypeId() == TYPEID_PLAYER) - { - if (Creature* summoner = Unit::GetCreature((*me), summonerGuid)) - CAST_AI(npc_second_trial_controller::master_kelerun_bloodmournAI, summoner->AI())->SecondTrialKill(); - - // last kill quest complete for group - if (me->GetEntry() == CHAMPION_SUNSTRIKER) - { - if (Killer->GetTypeId() == TYPEID_PLAYER) - Killer->ToPlayer()->GroupEventHappens(QUEST_SECOND_TRIAL, Killer); - } - } -} - -/*###### -## go_second_trial -######*/ -class go_second_trial : public GameObjectScript -{ -public: - go_second_trial() : GameObjectScript("go_second_trial") { } - - bool OnGossipHello(Player* /*player*/, GameObject* go) - { - // find spawn :: master_kelerun_bloodmourn - if (Creature* creature = go->FindNearestCreature(MASTER_KELERUN_BLOODMOURN, 30.0f)) - CAST_AI(npc_second_trial_controller::master_kelerun_bloodmournAI, creature->AI())->StartEvent(); - - return true; - } -}; - -/*###### ## npc_apprentice_mirveda ######*/ @@ -629,9 +453,6 @@ public: void AddSC_eversong_woods() { - new npc_second_trial_controller(); - new npc_second_trial_paladin(); - new go_second_trial(); new npc_apprentice_mirveda(); new npc_infused_crystal(); } |