bool GossipHello_npc_innkeeper(Player *player, Creature *_Creature) { if (_Creature->isQuestGiver()) player->PrepareQuestMenu( _Creature->GetGUID() ); if (isEventActive()&& !player->GetAura(SPELL_TRICK_OR_TREATED,0)) { char* localizedEntry; switch (player->GetSession()->GetSessionDbLocaleIndex()) { case 0: localizedEntry=LOCALE_TRICK_OR_TREAT_0; break; case 2: localizedEntry=LOCALE_TRICK_OR_TREAT_2; break; case 3: localizedEntry=LOCALE_TRICK_OR_TREAT_3; break; case 6: localizedEntry=LOCALE_TRICK_OR_TREAT_6; break; default: localizedEntry=LOCALE_TRICK_OR_TREAT_0; } player->ADD_GOSSIP_ITEM(0, localizedEntry, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+HALLOWEEN_EVENTID); } player->TalkedToCreature(_Creature->GetEntry(),_Creature->GetGUID()); player->SEND_GOSSIP_MENU(_Creature->GetNpcTextId(), _Creature->GetGUID()); return true; }
bool GossipHello_npc_innkeeper(Player* pPlayer, Creature* pCreature) { pPlayer->TalkedToCreature(pCreature->GetEntry(),pCreature->GetGUID()); pPlayer->PrepareGossipMenu(pCreature,0); //send innkeeper menu too if (isEventActive()&& !pPlayer->HasAura(SPELL_TRICK_OR_TREATED, 0)) { const char* localizedEntry; switch (pPlayer->GetSession()->GetSessionDbLocaleIndex()) { case 0: localizedEntry=LOCALE_TRICK_OR_TREAT_0; break; case 2: localizedEntry=LOCALE_TRICK_OR_TREAT_2; break; case 3: localizedEntry=LOCALE_TRICK_OR_TREAT_3; break; case 6: localizedEntry=LOCALE_TRICK_OR_TREAT_6; break; default: localizedEntry=LOCALE_TRICK_OR_TREAT_0; } pPlayer->ADD_GOSSIP_ITEM(0, localizedEntry, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+HALLOWEEN_EVENTID); } pPlayer->SEND_GOSSIP_MENU(pPlayer->GetGossipTextId(pCreature), pCreature->GetGUID()); return true; }
bool GossipSelect_npc_innkeeper(Player* pPlayer, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction) { if (uiAction == GOSSIP_ACTION_INFO_DEF+HALLOWEEN_EVENTID && isEventActive() && !pPlayer->HasAura(SPELL_TRICK_OR_TREATED, 0)) { pPlayer->CastSpell(pPlayer, SPELL_TRICK_OR_TREATED, true); if (urand(0, 1)) pPlayer->CastSpell(pPlayer, SPELL_TREAT, true); else { int32 trickspell=0; switch (rand()%9) // note that female characters can get male costumes and vice versa { case 0: trickspell=24753; // cannot cast, random 30sec break; case 1: trickspell=24713; // lepper gnome costume break; case 2: trickspell=24735; // male ghost costume break; case 3: trickspell=24736; // female ghostcostume break; case 4: trickspell=24710; // male ninja costume break; case 5: trickspell=24711; // female ninja costume break; case 6: trickspell=24708; // male pirate costume break; case 7: trickspell=24709; // female pirate costume break; case 8: trickspell=24723; // skeleton costume break; } pPlayer->CastSpell(pPlayer, trickspell, true); } pPlayer->CLOSE_GOSSIP_MENU(); return true; } //Trininty Gossip core handling dont work... else if (uiAction == GOSSIP_OPTION_VENDOR) { pPlayer->SEND_VENDORLIST(pCreature->GetGUID()); } else if (uiAction == GOSSIP_OPTION_INNKEEPER) { pPlayer->PlayerTalkClass->CloseGossip(); pPlayer->SetBindPoint(pCreature->GetGUID()); } return true; }
bool GossipSelect_npc_innkeeper(Player *player, Creature *_Creature, uint32 sender, uint32 action ) { if (action == GOSSIP_ACTION_INFO_DEF+HALLOWEEN_EVENTID && isEventActive() && !player->GetAura(SPELL_TRICK_OR_TREATED,0)) { player->CLOSE_GOSSIP_MENU(); player->CastSpell(player, SPELL_TRICK_OR_TREATED, true); // either trick or treat, 50% chance if(rand()%2) { player->CastSpell(player, SPELL_TREAT, true); } else { int32 trickspell=0; switch (rand()%9) // note that female characters can get male costumes and vice versa { case 0: trickspell=24753; // cannot cast, random 30sec break; case 1: trickspell=24713; // lepper gnome costume break; case 2: trickspell=24735; // male ghost costume break; case 3: trickspell=24736; // female ghostcostume break; case 4: trickspell=24710; // male ninja costume break; case 5: trickspell=24711; // female ninja costume break; case 6: trickspell=24708; // male pirate costume break; case 7: trickspell=24709; // female pirate costume break; case 8: trickspell=24723; // skeleton costume break; } player->CastSpell(player, trickspell, true); } return true; // prevent Trinity core handling } return false; // the player didn't select "trick or treat" or cheated, normal core handling }