bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override { ClearGossipMenuFor(player); npc_barnesAI* pBarnesAI = ENSURE_AI(npc_barnes::npc_barnesAI, creature->AI()); switch (action) { case GOSSIP_ACTION_INFO_DEF+1: AddGossipItemFor(player, GOSSIP_ICON_CHAT, OZ_GOSSIP2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2); SendGossipMenuFor(player, 8971, creature->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF+2: CloseGossipMenuFor(player); pBarnesAI->StartEvent(); break; case GOSSIP_ACTION_INFO_DEF+3: CloseGossipMenuFor(player); pBarnesAI->m_uiEventId = EVENT_OZ; TC_LOG_DEBUG("scripts", "player (%s) manually set Opera event to EVENT_OZ", player->GetGUID().ToString().c_str()); break; case GOSSIP_ACTION_INFO_DEF+4: CloseGossipMenuFor(player); pBarnesAI->m_uiEventId = EVENT_HOOD; TC_LOG_DEBUG("scripts", "player (%s) manually set Opera event to EVENT_HOOD", player->GetGUID().ToString().c_str()); break; case GOSSIP_ACTION_INFO_DEF+5: CloseGossipMenuFor(player); pBarnesAI->m_uiEventId = EVENT_RAJ; TC_LOG_DEBUG("scripts", "player (%s) manually set Opera event to EVENT_RAJ", player->GetGUID().ToString().c_str()); break; } return true; }
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override { ClearGossipMenuFor(player); switch (action) { case GOSSIP_ACTION_INFO_DEF: AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KUR2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); SendGossipMenuFor(player, 9227, creature->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF + 1: AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KUR3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); SendGossipMenuFor(player, 9229, creature->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF + 2: { if (!player->HasItemCount(24573)) { ItemPosCountVec dest; uint32 itemId = 24573; InventoryResult msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, itemId, 1, NULL); if (msg == EQUIP_ERR_OK) { player->StoreNewItem(dest, itemId, true); } else player->SendEquipError(msg, NULL, NULL, itemId); } SendGossipMenuFor(player, 9231, creature->GetGUID()); break; } } return true; }
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override { ClearGossipMenuFor(player); uint32 spellId = 0; switch (action) { case GOSSIP_ACTION_INFO_DEF + 1: spellId = SPELL_ADD_ORANGE; break; case GOSSIP_ACTION_INFO_DEF + 2: spellId = SPELL_ADD_BANANAS; break; case GOSSIP_ACTION_INFO_DEF + 3: spellId = SPELL_ADD_PAPAYA; break; } if (spellId) player->CastSpell(player, spellId, true); creature->AI()->Talk(SAY_DWARF_HELP); creature->DespawnOrUnsummon(); return true; }
bool GossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override { uint32 const action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId); ClearGossipMenuFor(player); DeSpawnVeins();//despawn the alliance veins switch (action) { case GOSSIP_ACTION_INFO_DEF + 1: StartEvent(player); break; case GOSSIP_ACTION_INFO_DEF + 2: FirstBossDead = true; WaveCount = 9; StartEvent(player); break; case GOSSIP_ACTION_INFO_DEF + 3: Retreat(); break; case GOSSIP_ACTION_INFO_DEF: Debug = !Debug; TC_LOG_DEBUG("scripts", "HyjalAI - Debug mode has been toggled"); break; } return true; }
bool GossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override { uint32 const action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId); ClearGossipMenuFor(player); switch (action) { case GOSSIP_ACTION_INFO_DEF: AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KAEL_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); SendGossipMenuFor(player, 12500, me->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF + 1: AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KAEL_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); SendGossipMenuFor(player, 12502, me->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF + 2: AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KAEL_4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); SendGossipMenuFor(player, 12606, me->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF + 3: AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_KAEL_5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4); SendGossipMenuFor(player, 12607, me->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF + 4: SendGossipMenuFor(player, 12608, me->GetGUID()); break; } return true; }
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override { ClearGossipMenuFor(player); InstanceScript* instance = creature->GetInstanceScript(); if (action == GOSSIP_ACTION_INFO_DEF+1) { AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_EPOCH2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2); SendGossipMenuFor(player, GOSSIP_ID_EPOCH2, creature->GetGUID()); } if (action == GOSSIP_ACTION_INFO_DEF+2) { CloseGossipMenuFor(player); if (instance->GetData(TYPE_THRALL_EVENT) == IN_PROGRESS) { instance->SetData(TYPE_THRALL_PART4, IN_PROGRESS); if (instance->GetGuidData(DATA_EPOCH).IsEmpty()) creature->SummonCreature(ENTRY_EPOCH, 2639.13f, 698.55f, 65.43f, 4.59f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 120000); if (Creature* thrall = (ObjectAccessor::GetCreature(*creature, instance->GetGuidData(DATA_THRALL)))) ENSURE_AI(npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, thrall->AI())->StartWP(); } } return true; }
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override { ClearGossipMenuFor(player); if (action == GOSSIP_ACTION_TRADE) player->GetSession()->SendListInventory(creature->GetGUID()); return true; }
bool OnGossipSelect(Player* player, GameObject* go, uint32 sender, uint32 action) override { ClearGossipMenuFor(player); switch (sender) { case GOSSIP_SENDER_MAIN: SendActionMenu(player, go, action); break; } return true; }
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override { ClearGossipMenuFor(player); if (action == GOSSIP_ACTION_INFO_DEF) { CloseGossipMenuFor(player); creature->setFaction(FACTION_HOSTILE_CO); creature->AI()->AttackStart(player); } return true; }
bool GossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override { uint32 const action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId); ClearGossipMenuFor(player); if (action == GOSSIP_SENDER_INFO) { player->CastSpell(player, 23123, false); SendGossipMenuFor(player, 7014, me->GetGUID()); } return true; }
bool GossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override { uint32 const action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId); ClearGossipMenuFor(player); if (action == GOSSIP_ACTION_INFO_DEF + 1) { CloseGossipMenuFor(player); //here we make him run to door, set the charge and run away off to nowhere DestroyDoor(); } return true; }
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override { ClearGossipMenuFor(player); switch (action) { case GOSSIP_ACTION_INFO_DEF: CloseGossipMenuFor(player); ENSURE_AI(npc_expedition_commanderAI, creature->AI())->Phase = 1; break; } return true; }
bool GossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override { uint32 const action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId); ClearGossipMenuFor(player); if (action == GOSSIP_ACTION_INFO_DEF + 1) { CloseGossipMenuFor(player); PlayerGUID = player->GetGUID(); DoAction(0); } return true; }
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override { ClearGossipMenuFor(player); if (action == GOSSIP_ACTION_INFO_DEF+1) { CloseGossipMenuFor(player); if (npc_escortAI* pEscortAI = CAST_AI(npc_shadowfang_prisoner::npc_shadowfang_prisonerAI, creature->AI())) pEscortAI->Start(false, false); } return true; }
bool GossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override { uint32 const action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId); ClearGossipMenuFor(player); if (action == GOSSIP_ACTION_INFO_DEF + 1) { CloseGossipMenuFor(player); Talk(EMOTE_START); StartFollow(player); } return true; }
void sGossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override { ClearGossipMenuFor(player); switch (gossipListId) { case 1: CloseGossipMenuFor(player); me->AI()->Talk(SAY_BARADA_1); me->AI()->DoAction(ACTION_START_EVENT); break; default: break; } }
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override { ClearGossipMenuFor(player); InstanceScript* instance = creature->GetInstanceScript(); switch (action) { case GOSSIP_ACTION_INFO_DEF+1: CloseGossipMenuFor(player); if (instance) { instance->SetData(TYPE_THRALL_EVENT, IN_PROGRESS); instance->SetData(TYPE_THRALL_PART1, IN_PROGRESS); } creature->AI()->Talk(SAY_TH_START_EVENT_PART1); if (npc_escortAI* pEscortAI = CAST_AI(npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, creature->AI())) pEscortAI->Start(true, true, player->GetGUID()); ENSURE_AI(npc_escortAI, (creature->AI()))->SetMaxPlayerDistance(100.0f);//not really needed, because it will not despawn if player is too far ENSURE_AI(npc_escortAI, (creature->AI()))->SetDespawnAtEnd(false); ENSURE_AI(npc_escortAI, (creature->AI()))->SetDespawnAtFar(false); break; case GOSSIP_ACTION_INFO_DEF+2: AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_SKARLOC2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+20); SendGossipMenuFor(player, GOSSIP_ID_SKARLOC2, creature->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF+20: SendGossipMenuFor(player, GOSSIP_ID_SKARLOC3, creature->GetGUID()); creature->SummonCreature(SKARLOC_MOUNT, 2038.81f, 270.26f, 63.20f, 5.41f, TEMPSUMMON_TIMED_DESPAWN, 12000); if (instance) instance->SetData(TYPE_THRALL_PART2, IN_PROGRESS); creature->AI()->Talk(SAY_TH_START_EVENT_PART2); ENSURE_AI(npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, creature->AI())->StartWP(); break; case GOSSIP_ACTION_INFO_DEF+3: CloseGossipMenuFor(player); if (instance) instance->SetData(TYPE_THRALL_PART3, IN_PROGRESS); ENSURE_AI(npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, creature->AI())->StartWP(); break; } return true; }
bool GossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override { uint32 const action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId); ClearGossipMenuFor(player); if (action == GOSSIP_ACTION_INFO_DEF + 1) { CloseGossipMenuFor(player); player->CastSpell(player, SPELL_CREATE_THORIUM_BROTHERHOOD_CONTRACT_DND, false); } if (action == GOSSIP_ACTION_TRADE) player->GetSession()->SendListInventory(me->GetGUID()); return true; }
bool GossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override { ClearGossipMenuFor(player); switch (gossipListId) { case 1: player->PlayerTalkClass->SendCloseGossip(); me->AI()->Talk(SAY_BARADA_1); me->AI()->DoAction(ACTION_START_EVENT); break; default: break; } return false; }
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override { ClearGossipMenuFor(player); if (action == GOSSIP_ACTION_INFO_DEF+1) { CloseGossipMenuFor(player); if (npc_threshwackonatorAI* pThreshAI = CAST_AI(npc_threshwackonator::npc_threshwackonatorAI, creature->AI())) { creature->AI()->Talk(EMOTE_START); pThreshAI->StartFollow(player); } } return true; }
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override { ClearGossipMenuFor(player); switch (action) { case GOSSIP_ACTION_INFO_DEF + 1: SendGossipMenuFor(player, GOSSIP_TEXTID_RAZAEL2, creature->GetGUID()); player->TalkedToCreature(NPC_RAZAEL, creature->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF + 2: SendGossipMenuFor(player, GOSSIP_TEXTID_LYANA2, creature->GetGUID()); player->TalkedToCreature(NPC_LYANA, creature->GetGUID()); break; } return true; }
bool GossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override { uint32 const action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId); ClearGossipMenuFor(player); if (action == GOSSIP_ACTION_INFO_DEF) { ItemPosCountVec dest; uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, ITEM_TEAR_OF_GODDESS, 1); if (msg == EQUIP_ERR_OK) if (Item* item = player->StoreNewItem(dest, ITEM_TEAR_OF_GODDESS, true)) player->SendNewItem(item, 1, true, false, true); SendGossipMenuFor(player, 907, me->GetGUID()); } return true; }
bool GossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override { uint32 const action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId); ClearGossipMenuFor(player); switch (action) { case GOSSIP_ACTION_INFO_DEF + 1: SendGossipMenuFor(player, GOSSIP_TEXTID_RAZAEL2, me->GetGUID()); player->TalkedToCreature(NPC_RAZAEL, me->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF + 2: SendGossipMenuFor(player, GOSSIP_TEXTID_LYANA2, me->GetGUID()); player->TalkedToCreature(NPC_LYANA, me->GetGUID()); break; } return true; }
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override { ClearGossipMenuFor(player); if (action == GOSSIP_ACTION_INFO_DEF) { AddGossipItemFor(player, MENU_ID_PAY_UP_OR_DIE, OPTION_ID_PAY_UP_OR_DIE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1); SendGossipMenuFor(player, GOSSIP_HE_ALREADY_KILLED_ME, creature->GetGUID()); } if (action == GOSSIP_ACTION_INFO_DEF+1) { CloseGossipMenuFor(player); creature->setFaction(FACTION_HOSTILE_FLOON); creature->AI()->Talk(SAY_FLOON_ATTACK, player); creature->AI()->AttackStart(player); } return true; }
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override { ClearGossipMenuFor(player); if (action == GOSSIP_ACTION_INFO_DEF + 1 && IsHolidayActive(HOLIDAY_HALLOWS_END) && !player->HasAura(SPELL_TRICK_OR_TREATED)) { player->CastSpell(player, SPELL_TRICK_OR_TREATED, true); if (urand(0, 1)) player->CastSpell(player, SPELL_TREAT, true); else { uint32 trickspell = 0; switch (urand(0, 13)) { case 0: trickspell = 24753; break; // cannot cast, random 30sec case 1: trickspell = 24713; break; // lepper gnome costume case 2: trickspell = 24735; break; // male ghost costume case 3: trickspell = 24736; break; // female ghostcostume case 4: trickspell = 24710; break; // male ninja costume case 5: trickspell = 24711; break; // female ninja costume case 6: trickspell = 24708; break; // male pirate costume case 7: trickspell = 24709; break; // female pirate costume case 8: trickspell = 24723; break; // skeleton costume case 9: trickspell = 24753; break; // Trick case 10: trickspell = 24924; break; // Hallow's End Candy case 11: trickspell = 24925; break; // Hallow's End Candy case 12: trickspell = 24926; break; // Hallow's End Candy case 13: trickspell = 24927; break; // Hallow's End Candy } player->CastSpell(player, trickspell, true); } CloseGossipMenuFor(player); return true; } CloseGossipMenuFor(player); switch (action) { case GOSSIP_ACTION_TRADE: player->GetSession()->SendListInventory(creature->GetGUID()); break; case GOSSIP_ACTION_INN: player->SetBindPoint(creature->GetGUID()); break; } return true; }
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override { ClearGossipMenuFor(player); switch (action) { case GOSSIP_ACTION_INFO_DEF+1: AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_VEKJIK_ITEM2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2); SendGossipMenuFor(player, GOSSIP_TEXTID_VEKJIK2, creature->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF+2: CloseGossipMenuFor(player); creature->AI()->Talk(SAY_TEXTID_VEKJIK1, player); player->AreaExploredOrEventHappens(QUEST_MAKING_PEACE); creature->CastSpell(player, SPELL_FREANZYHEARTS_FURY, false); break; } return true; }
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override { ClearGossipMenuFor(player); if (action == GOSSIP_ACTION_INFO_DEF+1) { ItemPosCountVec dest; uint8 msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, ITEM_ENTRY_BOMBS, 1); if (msg == EQUIP_ERR_OK) { player->StoreNewItem(dest, ITEM_ENTRY_BOMBS, true); } SendGossipMenuFor(player, 9515, creature->GetGUID()); } if (action == GOSSIP_ACTION_INFO_DEF+2) { CloseGossipMenuFor(player); } return true; }
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override { ClearGossipMenuFor(player); switch (action) { case GOSSIP_ACTION_INFO_DEF+1: AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_AOF2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2); player->PlayerTalkClass->SendGossipMenu(GOSSIP_TEXTID_AVATAR2, creature->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF+2: AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_AOF3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3); player->PlayerTalkClass->SendGossipMenu(GOSSIP_TEXTID_AVATAR3, creature->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF+3: player->CastSpell(player, SPELL_FREYA_CONVERSATION, true); CloseGossipMenuFor(player); break; } return true; }
bool GossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override { uint32 const action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId); ClearGossipMenuFor(player); if (action == GOSSIP_ACTION_INFO_DEF + 1) { CloseGossipMenuFor(player); if (instance) instance->SetData(TYPE_NARALEX_EVENT, IN_PROGRESS); Talk(SAY_MAKE_PREPARATIONS); me->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_ACTIVE); me->SetImmuneToPC(false); Start(false, false, player->GetGUID()); SetDespawnAtFar(false); SetDespawnAtEnd(false); } return true; }
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override { ClearGossipMenuFor(player); InstanceScript* instance = creature->GetInstanceScript(); if (action == GOSSIP_ACTION_INFO_DEF + 1) { CloseGossipMenuFor(player); if (instance) instance->SetData(TYPE_NARALEX_EVENT, IN_PROGRESS); creature->AI()->Talk(SAY_MAKE_PREPARATIONS); creature->setFaction(250); creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); ENSURE_AI(npc_escortAI, (creature->AI()))->Start(false, false, player->GetGUID()); ENSURE_AI(npc_escortAI, (creature->AI()))->SetDespawnAtFar(false); ENSURE_AI(npc_escortAI, (creature->AI()))->SetDespawnAtEnd(false); } return true; }