rendered paste bodyinclude "ScriptPCH.h" enum eNums { LAB_WORK_QUEST = 12557, MUDDY_MIRE_MAGGOT = 38386, WITHERED_BATWING = 38339, AMBERSEED = 38340, CHILLED_SERPENT_MUCUS = 38346, MAGGOT_NPC = 28293, BATWING_NPC = 28294, AMBERSEED_NPC = 28295, MUCUS_NPC = 28296 }; class go_finklesteins_cauldron : public GameObjectScript { public: go_finklesteins_cauldron() : GameObjectScript("go_finklesteins_cauldron") { } bool OnGossipHello(Player* player, GameObject* /*go*/) { if (player->GetQuestStatus(LAB_WORK_QUEST) == QUEST_STATUS_INCOMPLETE) { int32 item_npc = 0; if (player->HasItemCount(MUDDY_MIRE_MAGGOT, 1)) { item_npc = MAGGOT_NPC; player->DestroyItemCount(MUDDY_MIRE_MAGGOT, 1, true); } else if (player->HasItemCount(WITHERED_BATWING, 1)) { item_npc = BATWING_NPC; player->DestroyItemCount(WITHERED_BATWING, 1, true); } else if (player->HasItemCount(AMBERSEED, 1)) { item_npc = AMBERSEED_NPC; player->DestroyItemCount(AMBERSEED, 1, true); } else if (player->HasItemCount(CHILLED_SERPENT_MUCUS, 1)) { item_npc = MUCUS_NPC; player->DestroyItemCount(CHILLED_SERPENT_MUCUS, 1, true); } else { return false; } Quest const* pQuest = sObjectMgr->GetQuestTemplate(LAB_WORK_QUEST); for (uint8 i = 0; i ReqCreatureOrGOId[i]; if (creature == item_npc) { if (CreatureTemplate const* cInfo = sObjectMgr->GetCreatureTemplate(creature)) player->KilledMonster(cInfo, 0); } else { continue; } } // Funny bug where if batwing or amberseed are last objects quest isn't marked complete (hack fix for now) if (pQuest->ReqCreatureOrGOCount[0] == 1 && pQuest->ReqCreatureOrGOCount[1] == 1 && pQuest->ReqCreatureOrGOCount[2] == 1 && pQuest->ReqCreatureOrGOCount[3] == 1) player->SendQuestComplete(LAB_WORK_QUEST); return true; } return false; } }; void AddSC_go_finklesteins_cauldron() { new go_finklesteins_cauldron; }