void instance_culling_of_stratholme::SetData(uint32 uiType, uint32 uiData) { switch(uiType) { case TYPE_GRAIN_EVENT: m_auiEncounter[TYPE_GRAIN_EVENT] = uiData; if (uiData == SPECIAL) DoUpdateWorldState(WORLD_STATE_CRATES, 1); else if (uiData == IN_PROGRESS) { if (m_uiGrainCrateCount >= 5) return; ++m_uiGrainCrateCount; DoUpdateWorldState(WORLD_STATE_CRATES_COUNT, m_uiGrainCrateCount); if (m_uiGrainCrateCount == 5) { UpdateQuestCredit(); ChromiWhispers(); m_uiRemoveCrateStateTimer = 20000; SetData(TYPE_GRAIN_EVENT, DONE); } } break; case TYPE_ARTHAS_INTRO_EVENT: m_auiEncounter[TYPE_ARTHAS_INTRO_EVENT] = uiData; break; case TYPE_ARTHAS_ESCORT_EVENT: m_auiEncounter[TYPE_ARTHAS_ESCORT_EVENT] = uiData; break; case TYPE_MEATHOOK_EVENT: m_auiEncounter[TYPE_MEATHOOK_EVENT] = uiData; if (uiData == DONE) SetData(TYPE_SALRAMM_EVENT, IN_PROGRESS); break; case TYPE_SALRAMM_EVENT: m_auiEncounter[TYPE_SALRAMM_EVENT] = uiData; if (uiData == DONE) DoUpdateWorldState(WORLD_STATE_WAVE, 0); // Remove WaveCounter break; case TYPE_EPOCH_EVENT: m_auiEncounter[TYPE_EPOCH_EVENT] = uiData; break; case TYPE_MALGANIS_EVENT: m_auiEncounter[TYPE_MALGANIS_EVENT] = uiData; if (uiData == DONE) { DoRespawnGameObject(m_uiDarkRunedChestGUID, 30*MINUTE); DoSpawnChromieIfNeeded(); } break; case TYPE_INFINITE_CORRUPTER_TIME: m_auiEncounter[TYPE_INFINITE_CORRUPTER_TIME] = uiData; if (!uiData) { DoUpdateWorldState(WORLD_STATE_TIME, 0); // Remove Timer DoUpdateWorldState(WORLD_STATE_TIME_COUNTER, 0); } else DoUpdateWorldState(WORLD_STATE_TIME_COUNTER, uiData/(MINUTE*IN_MILLISECONDS)); break; case TYPE_INFINITE_CORRUPTER: m_auiEncounter[TYPE_INFINITE_CORRUPTER] = uiData; switch(uiData) { case IN_PROGRESS: if (!m_auiEncounter[TYPE_INFINITE_CORRUPTER_TIME]) SetData(TYPE_INFINITE_CORRUPTER_TIME, MINUTE*25*IN_MILLISECONDS); DoUpdateWorldState(WORLD_STATE_TIME, 1);// Show Timer break; case DONE: SetData(TYPE_INFINITE_CORRUPTER_TIME, 0); break; case SPECIAL: DoChromieHurrySpeech(); break; case FAIL: SetData(TYPE_INFINITE_CORRUPTER_TIME, 0); if (Creature* pCorrupter = instance->GetCreature(m_uiCorrupterGUID)) if (pCorrupter->isAlive()) pCorrupter->ForcedDespawn(); break; } break; case TYPE_PHASE: m_auiEncounter[TYPE_PHASE] = uiData; break; case TYPE_ENCOUNTER: m_auiEncounter[TYPE_ENCOUNTER] = uiData; break; case TYPE_WING: m_auiEncounter[TYPE_WING] = uiData; break; case TYPE_ZOMBIEFEST: m_auiEncounter[TYPE_ZOMBIEFEST] = uiData; if(uiData == IN_PROGRESS) m_uiZombieTimer = 0; break; case TYPE_ZOMBIE_COUNT: m_uiZombieCount = m_uiZombieCount + uiData; break; } if (uiData == DONE || (uiType == TYPE_INFINITE_CORRUPTER && uiData == FAIL)) { OUT_SAVE_INST_DATA; std::ostringstream saveStream; saveStream << m_auiEncounter[0] << " " << m_auiEncounter[1] << " " << m_auiEncounter[2] << " " << m_auiEncounter[3] << " " << m_auiEncounter[4] << " " << m_auiEncounter[5] << " " << m_auiEncounter[6] << " " << m_auiEncounter[7] << " " << m_auiEncounter[8]; strInstData = saveStream.str(); SaveToDB(); OUT_SAVE_INST_DATA_COMPLETE; } }
void SetData(uint32 type, uint32 data) { Player* pPlayer = GetPlayerInMap(); if (!pPlayer) { sLog->outDebug(LOG_FILTER_TSCR, "TSCR: Instance Old Hillsbrad: SetData (Type: %u Data %u) cannot find any player.", type, data); return; } switch(type) { case TYPE_BARREL_DIVERSION: { if (data == IN_PROGRESS) { if (mBarrelCount >= 5) return; ++mBarrelCount; DoUpdateWorldState(WORLD_STATE_OH, mBarrelCount); sLog->outDebug(LOG_FILTER_TSCR, "TSCR: Instance Old Hillsbrad: go_barrel_old_hillsbrad count %u", mBarrelCount); m_auiEncounter[0] = IN_PROGRESS; if (mBarrelCount == 5) { UpdateQuestCredit(); pPlayer->SummonCreature(DRAKE_ENTRY, 2128.43f, 71.01f, 64.42f, 1.74f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 1800000); m_auiEncounter[0] = DONE; } } break; } case TYPE_THRALL_EVENT: { if (data == FAIL) { if (mThrallEventCount <= 20) { ++mThrallEventCount; m_auiEncounter[1] = NOT_STARTED; sLog->outDebug(LOG_FILTER_TSCR, "TSCR: Instance Old Hillsbrad: Thrall event failed %u times. Resetting all sub-events.", mThrallEventCount); m_auiEncounter[2] = NOT_STARTED; m_auiEncounter[3] = NOT_STARTED; m_auiEncounter[4] = NOT_STARTED; m_auiEncounter[5] = NOT_STARTED; } else if (mThrallEventCount > 20) { m_auiEncounter[1] = data; m_auiEncounter[2] = data; m_auiEncounter[3] = data; m_auiEncounter[4] = data; m_auiEncounter[5] = data; sLog->outDebug(LOG_FILTER_TSCR, "TSCR: Instance Old Hillsbrad: Thrall event failed %u times. Resetting all sub-events.", mThrallEventCount); } } else m_auiEncounter[1] = data; sLog->outDebug(LOG_FILTER_TSCR, "TSCR: Instance Old Hillsbrad: Thrall escort event adjusted to data %u.", data); break; } case TYPE_THRALL_PART1: m_auiEncounter[2] = data; sLog->outDebug(LOG_FILTER_TSCR, "TSCR: Instance Old Hillsbrad: Thrall event part I adjusted to data %u.", data); break; case TYPE_THRALL_PART2: m_auiEncounter[3] = data; sLog->outDebug(LOG_FILTER_TSCR, "TSCR: Instance Old Hillsbrad: Thrall event part II adjusted to data %u.", data); break; case TYPE_THRALL_PART3: m_auiEncounter[4] = data; sLog->outDebug(LOG_FILTER_TSCR, "TSCR: Instance Old Hillsbrad: Thrall event part III adjusted to data %u.", data); break; case TYPE_THRALL_PART4: m_auiEncounter[5] = data; sLog->outDebug(LOG_FILTER_TSCR, "TSCR: Instance Old Hillsbrad: Thrall event part IV adjusted to data %u.", data); break; } }
void SetData(uint32 uiType, uint32 uiData) { Player* pPlayer = GetPlayerInMap(); if (!pPlayer) { debug_log("SD2: Instance Old Hillsbrad: SetData (Type: %u Data %u) cannot find any pPlayer.", uiType, uiData); return; } switch(uiType) { case TYPE_BARREL_DIVERSION: { if (uiData == IN_PROGRESS) { if (m_uiBarrelCount >= 5) return; ++m_uiBarrelCount; DoUpdateWorldState(WORLD_STATE_OH, m_uiBarrelCount); debug_log("SD2: Instance Old Hillsbrad: go_barrel_old_hillsbrad count %u", m_uiBarrelCount); m_auiEncounter[0] = IN_PROGRESS; if (m_uiBarrelCount == 5) { UpdateQuestCredit(); pPlayer->SummonCreature(NPC_DRAKE,2128.43,71.01,64.42,1.74,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,1800000); m_auiEncounter[0] = DONE; } } break; } case TYPE_THRALL_EVENT: { if (uiData == FAIL) { if (m_uiThrallEventCount <= 20) { ++m_uiThrallEventCount; m_auiEncounter[1] = NOT_STARTED; debug_log("SD2: Instance Old Hillsbrad: Thrall event failed %u times. Resetting all sub-events.", m_uiThrallEventCount); m_auiEncounter[2] = NOT_STARTED; m_auiEncounter[3] = NOT_STARTED; m_auiEncounter[4] = NOT_STARTED; m_auiEncounter[5] = NOT_STARTED; } else if (m_uiThrallEventCount > 20) { m_auiEncounter[1] = uiData; m_auiEncounter[2] = uiData; m_auiEncounter[3] = uiData; m_auiEncounter[4] = uiData; m_auiEncounter[5] = uiData; debug_log("SD2: Instance Old Hillsbrad: Thrall event failed %u times. Reset instance required.", m_uiThrallEventCount); } } else m_auiEncounter[1] = uiData; debug_log("SD2: Instance Old Hillsbrad: Thrall escort event adjusted to data %u.",uiData); break; } case TYPE_THRALL_PART1: m_auiEncounter[2] = uiData; debug_log("SD2: Instance Old Hillsbrad: Thrall event part I adjusted to data %u.",uiData); break; case TYPE_THRALL_PART2: m_auiEncounter[3] = uiData; debug_log("SD2: Instance Old Hillsbrad: Thrall event part II adjusted to data %u.",uiData); break; case TYPE_THRALL_PART3: m_auiEncounter[4] = uiData; debug_log("SD2: Instance Old Hillsbrad: Thrall event part III adjusted to data %u.",uiData); break; case TYPE_THRALL_PART4: m_auiEncounter[5] = uiData; debug_log("SD2: Instance Old Hillsbrad: Thrall event part IV adjusted to data %u.",uiData); break; } }