void instance_scholomance::OnPlayerEnter(Player* pPlayer) { // Summon Gandling if can DoSpawnGandlingIfCan(true); if (GetData(TYPE_RATTLEGORE) == DONE) DoRespawnEntranceRoom(pPlayer); }
void instance_scholomance::SetData(uint32 uiType, uint32 uiData) { switch (uiType) { case TYPE_KIRTONOS: // This door is initially closed by DB-scripts, so only use it in case of FAIL, DONE, or on aggro after wipe if (m_auiEncounter[uiType] != FAIL && uiData == IN_PROGRESS) return; m_auiEncounter[uiType] = uiData; DoUseDoorOrButton(GO_GATE_KIRTONOS); break; case TYPE_RATTLEGORE: m_auiEncounter[uiType] = uiData; if (uiData == DONE) { if (Player* pPlayer = GetPlayerInMap()) DoRespawnEntranceRoom(pPlayer); } break; case TYPE_RAS_FROSTWHISPER: m_auiEncounter[uiType] = uiData; DoUseDoorOrButton(GO_GATE_RAS); break; case TYPE_MALICIA: // TODO this code can be simplified, when it is known which event-ids correspond to which room m_auiEncounter[uiType] = uiData; DoUseDoorOrButton(m_mGandlingData[EVENT_ID_MALICIA].m_doorGuid); break; case TYPE_THEOLEN: m_auiEncounter[uiType] = uiData; DoUseDoorOrButton(m_mGandlingData[EVENT_ID_THEOLEN].m_doorGuid); break; case TYPE_POLKELT: m_auiEncounter[uiType] = uiData; DoUseDoorOrButton(m_mGandlingData[EVENT_ID_POLKELT].m_doorGuid); break; case TYPE_RAVENIAN: m_auiEncounter[uiType] = uiData; DoUseDoorOrButton(m_mGandlingData[EVENT_ID_RAVENIAN].m_doorGuid); break; case TYPE_ALEXEI_BAROV: m_auiEncounter[uiType] = uiData; DoUseDoorOrButton(m_mGandlingData[EVENT_ID_BAROV].m_doorGuid); break; case TYPE_ILLUCIA_BAROV: m_auiEncounter[uiType] = uiData; DoUseDoorOrButton(m_mGandlingData[EVENT_ID_ILLUCIA].m_doorGuid); break; case TYPE_GANDLING: m_auiEncounter[uiType] = uiData; // Close the door to main room, because the encounter will take place only in the main hall and random around all the 6 rooms DoUseDoorOrButton(GO_GATE_GANDLING); break; } // Summon Gandling if (uiData == DONE) DoSpawnGandlingIfCan(false); if (uiData == DONE) { 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] << " " << m_auiEncounter[9]; m_strInstData = saveStream.str(); SaveToDB(); OUT_SAVE_INST_DATA_COMPLETE; } }
void instance_scholomance::OnPlayerEnter(Player* pPlayer) { // Summon Gandling if can DoSpawnGandlingIfCan(true); }