void outdoor_pvp_eastern_plaguelands::SetData(uint32 uiType, uint32 uiData) { switch(uiType) { case TYPE_CROWNGUARD_CONTROLLER: m_uiCrownguardController = uiData; break; case TYPE_EASTWALL_CONTROLLER: m_uiEastwallController = uiData; break; case TYPE_NORTHPASS_CONTROLLER: m_uiNorthpassController = uiData; break; case TYPE_PLAGUEWOOD_CONTROLLER: m_uiPlaguewoodController = uiData; break; } // update states UpdateZoneWorldState(); if (uiData) { OUT_SAVE_PVP_DATA; std::ostringstream saveStream; saveStream << m_uiCrownguardController << " " << m_uiEastwallController << " " << m_uiNorthpassController << " " << m_uiPlaguewoodController; strInstData = saveStream.str(); SaveToDB(); OUT_SAVE_PVP_DATA_COMPLETE; } }
void worldmap_eastern_kingdoms::ProcessCaptureEvent(uint32 uiCaptureType, uint32 uiTeam, uint32 uiTower) { switch(uiTower) { case TOWER_ID_CROWNGUARD: break; case TOWER_ID_EASTWALL: break; case TOWER_ID_NORTHPASS: break; case TOWER_ID_PLAGUEWOOD: // remove old state UpdateZoneWorldState(m_uiPlaguewoodWorldState, 0); // update data SetData(TYPE_PLAGUEWOOD_STATE, uiCaptureType); SetData(TYPE_PLAGUEWOOD_CONTROLLER, uiTeam); // send new state UpdateZoneWorldState(m_uiPlaguewoodWorldState, 1); break; } }
void worldmap_eastern_kingdoms::SetData(uint32 uiType, uint32 uiData) { switch(uiType) { case TYPE_CROWNGUARD_CONTROLLER: m_uiCrownguardController = uiData; break; case TYPE_EASTWALL_CONTROLLER: m_uiEastwallController = uiData; break; case TYPE_NORTHPASS_CONTROLLER: m_uiNorthpassController = uiData; break; case TYPE_PLAGUEWOOD_CONTROLLER: if (uiData == ALLIANCE) { if (GetData(TYPE_PLAGUEWOOD_STATE) == NEUTRAL) { // in neutral case the team id is the opposite team // the team who captured the tower and set it to neutral --m_uiTowersHorde; m_uiPlaguewoodWorldState = WORLD_STATE_PLAGUEWOOD_NEUTRAL; // unsummon flightmaster DoUnsummonFlightMaster(); } else if (GetData(TYPE_PLAGUEWOOD_STATE) == PROGRESS) { m_uiPlaguewoodWorldState = WORLD_STATE_PLAGUEWOOD_PROG_ALY; // increase tower count only if the controller is changed if (uiData != GetData(TYPE_PLAGUEWOOD_CONTROLLER)) { DoSummonFlightMasterIfCan(); ++m_uiTowersAlly; } } // contested states are also sent by the opposite team // alliance contests horde tower else if (GetData(TYPE_PLAGUEWOOD_STATE) == CONTESTED) m_uiPlaguewoodWorldState = WORLD_STATE_NORTHPASS_CONT_HORDE; else if (GetData(TYPE_PLAGUEWOOD_STATE) == WIN) m_uiPlaguewoodWorldState = WORLD_STATE_NORTHPASS_ALY; } else if (uiData == HORDE) { if (GetData(TYPE_PLAGUEWOOD_STATE) == NEUTRAL) { // in neutral case the team id is the opposite team // the team who captured the tower and set it to neutral --m_uiTowersAlly; m_uiPlaguewoodWorldState = WORLD_STATE_PLAGUEWOOD_NEUTRAL; // unsummon flightmaster DoUnsummonFlightMaster(); } if (GetData(TYPE_PLAGUEWOOD_STATE) == PROGRESS) { m_uiPlaguewoodWorldState = WORLD_STATE_PLAGUEWOOD_PROG_HORDE; // increase tower count only if the controller is changed if (uiData != GetData(TYPE_PLAGUEWOOD_CONTROLLER)) { DoSummonFlightMasterIfCan(); ++m_uiTowersHorde; } } // contested states are also sent by the opposite team // horde contests alliance tower else if (GetData(TYPE_PLAGUEWOOD_STATE) == CONTESTED) m_uiPlaguewoodWorldState = WORLD_STATE_NORTHPASS_CONT_ALY; else if (GetData(TYPE_PLAGUEWOOD_STATE) == WIN) m_uiPlaguewoodWorldState = WORLD_STATE_NORTHPASS_HORDE; } // set controller only for progress and neutral if (GetData(TYPE_PLAGUEWOOD_STATE) == PROGRESS) m_uiPlaguewoodController = uiData; else if (GetData(TYPE_PLAGUEWOOD_STATE) == NEUTRAL) m_uiPlaguewoodController = 0; break; case TYPE_CROWNGUARD_STATE: m_uiCrownguardState = uiData; break; case TYPE_EASTWALL_STATE: m_uiEastwallState = uiData; break; case TYPE_NORTHPASS_STATE: m_uiNorthpassState = uiData; break; case TYPE_PLAGUEWOOD_STATE: m_uiPlaguewoodState = uiData; break; } // update buffs for (uint8 i = 0; i < 4; i++) { // buff alliance if (m_uiTowersAlly == m_aPlaguelandsTowerBuffs[i].uiTowers) DoProcessTeamBuff(ALLIANCE, m_aPlaguelandsTowerBuffs[i].uiSpellIdAlly); // buff horde if (m_uiTowersHorde == m_aPlaguelandsTowerBuffs[i].uiTowers) DoProcessTeamBuff(HORDE, m_aPlaguelandsTowerBuffs[i].uiSpellIdHorde); } // debuff players if towers == 0; spell to remove will be always the first if (m_uiTowersHorde == 0) DoProcessTeamBuff(HORDE, m_aPlaguelandsTowerBuffs[0].uiSpellIdHorde, true); if (m_uiTowersAlly == 0) DoProcessTeamBuff(ALLIANCE, m_aPlaguelandsTowerBuffs[0].uiSpellIdAlly, true); // update states counters // the map tower states are updated in the ProcessCaptureEvent function UpdateZoneWorldState(WORLD_STATE_TOWER_COUNT_ALY, m_uiTowersAlly); UpdateZoneWorldState(WORLD_STATE_TOWER_COUNT_HORDE, m_uiTowersHorde); }