aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAokromes <Aokromes@users.noreply.github.com>2014-03-22 14:22:29 +0100
committerAokromes <Aokromes@users.noreply.github.com>2014-03-22 14:22:29 +0100
commita903c335024d0ef4a3d9899587fcd0b10a92b31e (patch)
treead877d820c5423f99a92b3d801eec649cd78c60f
parentadc4b3b46b0dd9bf7684ce292270b00e4c4fd8a6 (diff)
parent38c31711c0a0a87a15d342c21178485ec96b6449 (diff)
Merge pull request #11667 from Mihapro/Q14069
DB/Quest: Good Help is Hard to Find script
-rw-r--r--sql/updates/world/2014_03_03_00_world_quest_14069.sql37
-rw-r--r--src/server/scripts/Maelstrom/kezan.cpp111
2 files changed, 37 insertions, 111 deletions
diff --git a/sql/updates/world/2014_03_03_00_world_quest_14069.sql b/sql/updates/world/2014_03_03_00_world_quest_14069.sql
new file mode 100644
index 00000000000..6186c0d1b7f
--- /dev/null
+++ b/sql/updates/world/2014_03_03_00_world_quest_14069.sql
@@ -0,0 +1,37 @@
+-- Good Help is Hard to Find (14069) quest script
+DELETE FROM `conditions` WHERE `SourceGroup` = 34830;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(18, 34830, 66306, 0, 7, 9, 0, 14069, 0, 0, 0, 0, 0, '', 'Requires Good Help is Hard to Find quest active for spellclick');
+
+DELETE FROM `npc_spellclick_spells` WHERE `npc_entry` = 34830;
+INSERT INTO `npc_spellclick_spells` (`npc_entry`, `spell_id`, `cast_flags`, `user_type`) VALUES
+(34830, 66306, 1, 0);
+
+DELETE FROM `creature_text` WHERE `entry` = 34830;
+INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES
+(34830, 0, 0, 'Don''t tase me, mon!', 12, 0, 100, 0, 0, 0, 'Defiant Troll'),
+(34830, 0, 1, 'I report you to HR!', 12, 0, 100, 0, 0, 0, 'Defiant Troll'),
+(34830, 0, 2, 'I''m going. I''m going!', 12, 0, 100, 0, 0, 0, 'Defiant Troll'),
+(34830, 0, 3, 'Oops, break''s over.', 12, 0, 100, 0, 0, 0, 'Defiant Troll'),
+(34830, 0, 4, 'Sorry, mon. It won''t happen again.', 12, 0, 100, 0, 0, 0, 'Defiant Troll'),
+(34830, 0, 5, 'What I doin'' wrong? Don''t I get a lunch and two breaks a day, mon?', 12, 0, 100, 0, 0, 0, 'Defiant Troll'),
+(34830, 0, 6, 'Work was bettah in da Undermine!', 12, 0, 100, 0, 0, 0, 'Defiant Troll');
+
+UPDATE `creature_template` SET `AIName` = "SmartAI", `ScriptName` = '' WHERE `entry` = 34830;
+
+DELETE FROM `smart_scripts` WHERE `entryorguid` IN (34830, 3483000, 3483001, 3483002, 3483003, 3483004);
+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
+(34830, 0, 0, 1, 11, 0, 100, 0, 0, 0, 0, 0, 11, 45111, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Defiant Troll - on spawn - cast Enrage on self (45111)'),
+(34830, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 87, 3483001, 3483002, 3483003, 3483004, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Defiant Troll - linked - random actionlist/emote state'),
+(3483001, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 17, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Defiant Troll - actionlist - emote state'),
+(3483002, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 17, 12, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Defiant Troll - actionlist - emote state'),
+(3483003, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 17, 26, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Defiant Troll - actionlist - emote state'),
+(3483004, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 17, 378, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Defiant Troll - actionlist - emote state'),
+(34830, 0, 5, 0, 8, 0, 100, 1, 66306, 0, 0, 0, 80, 3483000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Defiant Troll - on spellhit (66306) - run actionlist (3483000)'),
+(3483000, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 83, 16777216, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Defiant Troll - actionlist - remove npc_spellclick_spells flag'),
+(3483000, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 28, 45111, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Defiant Troll - actionlist - remove Enrage (45111)'),
+(3483000, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 17, 26, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Defiant Troll - actionlist - set emote state (26)'),
+(3483000, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 33, 34830, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Defiant Troll - actionlist - give quest credit (34830)'),
+(3483000, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Defiant Troll - actionlist - say text 0'),
+(3483000, 9, 5, 0, 0, 0, 100, 0, 2000, 2000, 0, 0, 89, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Defiant Troll - actionlist - set random movement'),
+(3483000, 9, 6, 0, 0, 0, 100, 0, 4000, 4000, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Defiant Troll - actionlist - despawn');
diff --git a/src/server/scripts/Maelstrom/kezan.cpp b/src/server/scripts/Maelstrom/kezan.cpp
index c20ed30ea74..7deae4267eb 100644
--- a/src/server/scripts/Maelstrom/kezan.cpp
+++ b/src/server/scripts/Maelstrom/kezan.cpp
@@ -13,117 +13,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedGossip.h"
-#include "Player.h"
-
-/*####
-## npc_defiant_troll (http://www.wowhead.com/quest=14069)
-####*/
-
-enum DefiantTrollEnum
-{
- DEFFIANT_KILL_CREDIT = 34830,
- SPELL_LIGHTNING_VISUAL = 45870,
- SPELL_ENRAGE = 45111,
- QUEST_GOOD_HELP_IS_HARD_TO_FIND = 14069,
- GO_DEPOSIT = 195489,
- SAY_WORK = 0
-};
-
-class npc_defiant_troll : public CreatureScript
-{
-public:
- npc_defiant_troll() : CreatureScript("npc_defiant_troll") { }
-
- CreatureAI* GetAI(Creature* creature) const OVERRIDE
- {
- return new npc_defiant_trollAI(creature);
- }
-
- struct npc_defiant_trollAI : public ScriptedAI
- {
- npc_defiant_trollAI(Creature* creature) : ScriptedAI(creature) { }
-
- uint32 rebuffTimer;
- bool work;
-
- void Reset () OVERRIDE
- {
- rebuffTimer = 0;
- work = false;
- me->CastSpell(me, SPELL_ENRAGE, true);
- }
-
- void MovementInform(uint32 /*type*/, uint32 id) OVERRIDE
- {
- if (id == 1)
- work = true;
- }
-
- bool IsWorking() const { return work; }
-
- void UpdateAI(uint32 diff) OVERRIDE
- {
- if (IsWorking())
- me->HandleEmoteCommand(EMOTE_ONESHOT_WORK_MINING);
-
- if (rebuffTimer <= diff)
- {
- Reset();
-
- switch (urand(0, 2))
- {
- case 0:
- me->HandleEmoteCommand(EMOTE_STATE_EXCLAIM);
- break;
- case 1:
- me->HandleEmoteCommand(EMOTE_STATE_DANCE);
- break;
- case 2:
- me->HandleEmoteCommand(EMOTE_ONESHOT_NONE);
- break;
- }
- rebuffTimer = 120000; // Rebuff again in 2 minutes
- }
- else
- rebuffTimer -= diff;
-
- if (!UpdateVictim())
- return;
-
- //DoMeleeAttackIfReady();
- }
- };
-
- bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
- {
- if (player->GetQuestStatus(QUEST_GOOD_HELP_IS_HARD_TO_FIND) == QUEST_STATUS_INCOMPLETE && !CAST_AI(npc_defiant_troll::npc_defiant_trollAI, creature->AI())->IsWorking())
- {
- player->CastSpell(creature, SPELL_LIGHTNING_VISUAL, true);
- player->KilledMonsterCredit(DEFFIANT_KILL_CREDIT, creature->GetGUID());
- creature->AI()->Talk(SAY_WORK);
- creature->RemoveAllAuras();
-
- if (GameObject* deposit = creature->FindNearestGameObject(GO_DEPOSIT, 20))
- creature->GetMotionMaster()->MovePoint(1, deposit->GetPositionX() - 1.0f, deposit->GetPositionY(), deposit->GetPositionZ());
-
- if (player->GetQuestStatus(QUEST_GOOD_HELP_IS_HARD_TO_FIND) == QUEST_STATUS_COMPLETE)
- player->RemoveAura(SPELL_LIGHTNING_VISUAL);
-
- player->CLOSE_GOSSIP_MENU();
-
- return true;
- }
-
- player->CLOSE_GOSSIP_MENU();
-
- return false;
- }
-};
-
void AddSC_kezan()
{
- new npc_defiant_troll();
}