diff options
author | Aokromes <Aokromes@users.noreply.github.com> | 2014-03-22 14:22:29 +0100 |
---|---|---|
committer | Aokromes <Aokromes@users.noreply.github.com> | 2014-03-22 14:22:29 +0100 |
commit | a903c335024d0ef4a3d9899587fcd0b10a92b31e (patch) | |
tree | ad877d820c5423f99a92b3d801eec649cd78c60f | |
parent | adc4b3b46b0dd9bf7684ce292270b00e4c4fd8a6 (diff) | |
parent | 38c31711c0a0a87a15d342c21178485ec96b6449 (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.sql | 37 | ||||
-rw-r--r-- | src/server/scripts/Maelstrom/kezan.cpp | 111 |
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(); } |