Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*######
- ## npc_thrall_warchief
- ######*/
- #define QUEST_6566 6566
- #define SPELL_CHAIN_LIGHTNING 16033
- #define SPELL_SHOCK 16034
- //TODO: verify abilities/timers
- struct MANGOS_DLL_DECL npc_thrall_warchiefAI : public ScriptedAI
- {
- npc_thrall_warchiefAI(Creature* pCreature) : ScriptedAI(pCreature) { Reset(); }
- uint32 ChainLightning_Timer;
- uint32 Shock_Timer;
- bool CalledHelp;
- void Reset()
- {
- ChainLightning_Timer = 2000;
- Shock_Timer = 8000;
- CalledHelp = false;
- }
- void UpdateAI(const uint32 diff)
- {
- if (!m_creature->SelectHostileTarget() || !m_creature->getVictim() || m_creature->isInCombat())
- return;
- if (!CalledHelp)
- {
- m_creature->CallForHelp(50);
- CalledHelp = true;
- }
- if (ChainLightning_Timer < diff)
- {
- DoCastSpellIfCan(m_creature->getVictim(),SPELL_CHAIN_LIGHTNING);
- ChainLightning_Timer = 9000;
- }else ChainLightning_Timer -= diff;
- if (Shock_Timer < diff)
- {
- DoCastSpellIfCan(m_creature->getVictim(),SPELL_SHOCK);
- Shock_Timer = 15000;
- }else Shock_Timer -= diff;
- DoMeleeAttackIfReady();
- }
- };
- CreatureAI* GetAI_npc_thrall_warchief(Creature* pCreature)
- {
- return new npc_thrall_warchiefAI(pCreature);
- }
- bool GossipHello_npc_thrall_warchief(Player* pPlayer, Creature* pCreature)
- {
- if (pCreature->isQuestGiver())
- pPlayer->PrepareQuestMenu(pCreature->GetGUID());
- if (pPlayer->GetQuestStatus(QUEST_6566) == QUEST_STATUS_INCOMPLETE)
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Please share your wisdom with me, Warchief.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
- pPlayer->SEND_GOSSIP_MENU(pPlayer->GetGossipTextId(pCreature), pCreature->GetGUID());
- return true;
- }
- bool GossipSelect_npc_thrall_warchief(Player* pPlayer, Creature* pCreature, uint32 uiSender, uint32 uiAction)
- {
- switch(uiAction)
- {
- case GOSSIP_ACTION_INFO_DEF+1:
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "What discoveries?", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
- pPlayer->SEND_GOSSIP_MENU(5733, pCreature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+2:
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Usurper?", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
- pPlayer->SEND_GOSSIP_MENU(5734, pCreature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+3:
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "With all due respect, Warchief - why not allow them to be destroyed? Does this not strengthen our position?", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4);
- pPlayer->SEND_GOSSIP_MENU(5735, pCreature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+4:
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "I... I did not think of it that way, Warchief.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5);
- pPlayer->SEND_GOSSIP_MENU(5736, pCreature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+5:
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "I live only to serve, Warchief! My life is empty and meaningless without your guidance.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+6);
- pPlayer->SEND_GOSSIP_MENU(5737, pCreature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+6:
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Of course, Warchief!", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+7);
- pPlayer->SEND_GOSSIP_MENU(5738, pCreature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+7:
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->AreaExploredOrEventHappens(QUEST_6566);
- break;
- }
- return true;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement