Core/Scripts: start fight with hardcode in scripts by sending pet trainers to DB from Core (#571)

* Core/Scripts: start fight with hardcode in scripts by sending pet trainers to DB from Core

* fix build(forget about it lol azetorh don't have this commit)
This commit is contained in:
Кирилл
2017-08-20 18:31:59 +03:00
committed by Yehonal
parent 20fed1bc48
commit fa78d2d83e
2 changed files with 30 additions and 42 deletions

View File

@@ -1824,61 +1824,34 @@ class npc_wormhole : public CreatureScript
enum PetTrainer
{
TEXT_ISHUNTER = 5838,
TEXT_NOTHUNTER = 5839,
TEXT_PETINFO = 13474,
TEXT_CONFIRM = 7722
PET_UNLEARN = 6520,
YES_PLEASE_DO = 0
};
#define GOSSIP_PET1 "How do I train my pet?"
#define GOSSIP_PET2 "I wish to untrain my pet."
#define GOSSIP_PET_CONFIRM "Yes, please do."
class npc_pet_trainer : public CreatureScript
{
public:
npc_pet_trainer() : CreatureScript("npc_pet_trainer") { }
bool OnGossipHello(Player* player, Creature* creature)
struct npc_pet_trainerAI : public ScriptedAI
{
if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
npc_pet_trainerAI(Creature* creature) : ScriptedAI(creature) { }
if (player->getClass() == CLASS_HUNTER)
void sGossipSelect(Player* player, uint32 menuId, uint32 gossipListId) override
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_PET1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
if (player->GetPet() && player->GetPet()->getPetType() == HUNTER_PET)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_PET2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
player->PlayerTalkClass->SendGossipMenu(TEXT_ISHUNTER, creature->GetGUID());
return true;
if (menuId == PET_UNLEARN && gossipListId == YES_PLEASE_DO)
{
player->ResetPetTalents();
player->PlayerTalkClass->SendCloseGossip();
}
}
player->PlayerTalkClass->SendGossipMenu(TEXT_NOTHUNTER, creature->GetGUID());
return true;
}
};
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
CreatureAI* GetAI(Creature* creature) const override
{
player->PlayerTalkClass->ClearMenus();
switch (action)
{
case GOSSIP_ACTION_INFO_DEF + 1:
player->PlayerTalkClass->SendGossipMenu(TEXT_PETINFO, creature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF + 2:
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_PET_CONFIRM, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
player->PlayerTalkClass->SendGossipMenu(TEXT_CONFIRM, creature->GetGUID());
}
break;
case GOSSIP_ACTION_INFO_DEF + 3:
{
player->ResetPetTalents();
player->CLOSE_GOSSIP_MENU();
}
break;
}
return true;
return new npc_pet_trainerAI(creature);
}
};