aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Letson <velinath@users.noreply.github.com>2017-10-25 15:24:56 -0400
committerAokromes <Aokromes@users.noreply.github.com>2017-10-25 21:24:56 +0200
commitc8a346a23c6cb377f02bd960f578a886b65d6561 (patch)
tree16dee15beecb5a3439cb3efd57a62f5d851aaad3
parentbe0ae9135039a38d3a96b25922d44f181f5aa84f (diff)
DB/Scripts: Greengill Slave
-rw-r--r--sql/updates/world/3.3.5/2017_10_25_02_world.sql19
-rw-r--r--src/server/scripts/EasternKingdoms/eastern_kingdoms_script_loader.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp94
3 files changed, 19 insertions, 96 deletions
diff --git a/sql/updates/world/3.3.5/2017_10_25_02_world.sql b/sql/updates/world/3.3.5/2017_10_25_02_world.sql
new file mode 100644
index 00000000000..f8ee4e5cdac
--- /dev/null
+++ b/sql/updates/world/3.3.5/2017_10_25_02_world.sql
@@ -0,0 +1,19 @@
+-- Greengill Slave
+UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE `entry` IN (25084);
+UPDATE `creature_template` SET `InhabitType` = 3 WHERE `entry` IN (25085);
+
+-- These are reordered from c++-script so that conditions will work on linked events properly.
+DELETE FROM `smart_scripts` WHERE (source_type = 0 AND entryorguid IN (25084,25085));
+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
+(25084, 0, 0, 1, 8, 0, 100, 1, 45109, 0, 0, 0, 11, 45111, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Greengill Slave - On Spellhit \'Orb of Murloc Control\' - Cast \'Enrage\''),
+(25084, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 36, 25085, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Greengill Slave - IC - Load template'),
+(25084, 0, 2, 3, 61, 0, 100, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 19, 25060, 100, 0, 0, 0, 0, 0, 'Greengill Slave - On Spellhit \'Orb of Murloc Control\' - Start Attacking'),
+(25084, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 11, 45110, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Greengill Slave - On Spellhit \'Orb of Murloc Control\' - Cast \'Greengill Slave Freed\''),
+(25084, 0, 4, 0, 1, 0, 100, 1, 30000, 30000, 0, 0, 36, 25084, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Freed Greengill Slave - OOC - reset template'),
+(25084, 0, 5, 0, 7, 0, 100, 0, 0, 0, 0, 0, 41, 5000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Freed Greengill Slave - on evade - despawn');
+
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=25084;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(22, 1, 25084, 0, 0, 9, 0, 11541, 0, 0, 0, 0, 0, '', 'Smart event 2 for Greengill Slave will execute if quest Disrupt the Greengill Coast has been taken.'),
+(22, 1, 25084, 0, 0, 1, 1, 45111, 1, 0, 1, 0, 0, '', 'Smart event 0 for Greengill Slave will execute if creature does not have aura Enrage.'),
+(22, 6, 25084, 0, 0, 31, 1, 3, 25085, 0, 0, 0, 0, '', 'Smart event 5 for Greengill Slave will execute if creature is 25085');
diff --git a/src/server/scripts/EasternKingdoms/eastern_kingdoms_script_loader.cpp b/src/server/scripts/EasternKingdoms/eastern_kingdoms_script_loader.cpp
index e21293278b1..b094e4a63d2 100644
--- a/src/server/scripts/EasternKingdoms/eastern_kingdoms_script_loader.cpp
+++ b/src/server/scripts/EasternKingdoms/eastern_kingdoms_script_loader.cpp
@@ -180,7 +180,6 @@ void AddSC_duskwood();
//void AddSC_eastern_plaguelands();
void AddSC_ghostlands();
void AddSC_hinterlands();
-void AddSC_isle_of_queldanas();
void AddSC_redridge_mountains();
void AddSC_silverpine_forest();
void AddSC_stormwind_city();
@@ -358,7 +357,6 @@ void AddEasternKingdomsScripts()
//AddSC_eastern_plaguelands();
AddSC_ghostlands();
AddSC_hinterlands();
- AddSC_isle_of_queldanas();
AddSC_redridge_mountains();
AddSC_silverpine_forest();
AddSC_stormwind_city();
diff --git a/src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp b/src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp
deleted file mode 100644
index db23c49f437..00000000000
--- a/src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright (C) 2008-2017 TrinityCore <http://www.trinitycore.org/>
- * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/* ScriptData
-SDName: Isle_of_Queldanas
-SD%Complete: 100
-SDComment: Quest support: 11541
-SDCategory: Isle Of Quel'Danas
-EndScriptData */
-
-/* ContentData
-npc_greengill_slave
-EndContentData */
-
-#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "Player.h"
-#include "SpellInfo.h"
-
-/*######
-## npc_greengill_slave
-######*/
-
-enum GreengillSlave
-{
- NPC_DARKSPINE_MYRIDON = 25060,
- QUEST_GREENGILL_COAST = 11541,
- SPELL_ENRAGE = 45111,
- SPELL_ORB_MURLOC_CONTROL = 45109,
- SPELL_GREENGILL_SLAVE_FREED = 45110
-};
-
-class npc_greengill_slave : public CreatureScript
-{
-public:
- npc_greengill_slave() : CreatureScript("npc_greengill_slave") { }
-
- struct npc_greengill_slaveAI : public ScriptedAI
- {
- npc_greengill_slaveAI(Creature* creature) : ScriptedAI(creature) { }
-
- void SpellHit(Unit* caster, SpellInfo const* spellInfo) override
- {
- Player* player = caster->ToPlayer();
-
- if (!player)
- return;
-
- if (spellInfo->Id == SPELL_ORB_MURLOC_CONTROL && !me->HasAura(SPELL_ENRAGE))
- {
- if (player->GetQuestStatus(QUEST_GREENGILL_COAST) == QUEST_STATUS_INCOMPLETE)
- DoCast(player, SPELL_GREENGILL_SLAVE_FREED, true);
-
- DoCast(me, SPELL_ENRAGE);
-
- if (Creature* Myrmidon = me->FindNearestCreature(NPC_DARKSPINE_MYRIDON, 70))
- {
- AddThreat(Myrmidon, 100000.0f);
- AttackStart(Myrmidon);
- }
- }
- }
-
- void UpdateAI(uint32 /*diff*/) override
- {
- DoMeleeAttackIfReady();
- }
- };
-
- CreatureAI* GetAI(Creature* creature) const override
- {
- return new npc_greengill_slaveAI(creature);
- }
-};
-
-void AddSC_isle_of_queldanas()
-{
- new npc_greengill_slave();
-}