All pastes #2107684 Raw Edit

Lab Work Fix (by Alex Mercer)

public cpp v1 · immutable
#2107684 ·published 2012-01-30 08:41 UTC
rendered paste body
include "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;}