void BattleGroundRL::StartingEventOpenDoors() { for(uint32 i = BG_RL_OBJECT_DOOR_1; i <= BG_RL_OBJECT_DOOR_2; i++) DoorOpen(i); for(uint32 i = BG_RL_OBJECT_BUFF_1; i <= BG_RL_OBJECT_BUFF_2; i++) SpawnBGObject(i, 60); }
void BattlegroundAB::StartingEventOpenDoors() { // spawn neutral banners for (int banner = BG_AB_OBJECT_BANNER_NEUTRAL, i = 0; i < 5; banner += 8, ++i) SpawnBGObject(banner, RESPAWN_IMMEDIATELY); for (int i = 0; i < BG_AB_DYNAMIC_NODES_COUNT; ++i) { //randomly select buff to spawn uint8 buff = urand(0, 2); SpawnBGObject(BG_AB_OBJECT_SPEEDBUFF_STABLES + buff + i * 3, RESPAWN_IMMEDIATELY); } DoorOpen(BG_AB_OBJECT_GATE_A); DoorOpen(BG_AB_OBJECT_GATE_H); // Achievement: Let's Get This Done StartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, AB_EVENT_START_BATTLE); }
void BattlegroundNA::StartingEventOpenDoors() { for (uint32 i = BG_NA_OBJECT_DOOR_1; i <= BG_NA_OBJECT_DOOR_2; ++i) DoorOpen(i); for (uint32 i = BG_NA_OBJECT_BUFF_1; i <= BG_NA_OBJECT_BUFF_2; ++i) SpawnBGObject(i, 60); }
void BattlegroundWS::StartingEventOpenDoors() { for (uint32 i = BG_WS_OBJECT_DOOR_A_1; i <= BG_WS_OBJECT_DOOR_A_6; ++i) DoorOpen(i); for (uint32 i = BG_WS_OBJECT_DOOR_H_1; i <= BG_WS_OBJECT_DOOR_H_4; ++i) DoorOpen(i); for (uint32 i = BG_WS_OBJECT_A_FLAG; i <= BG_WS_OBJECT_BERSERKBUFF_2; ++i) SpawnBGObject(i, RESPAWN_IMMEDIATELY); SpawnBGObject(BG_WS_OBJECT_DOOR_A_5, RESPAWN_ONE_DAY); SpawnBGObject(BG_WS_OBJECT_DOOR_A_6, RESPAWN_ONE_DAY); SpawnBGObject(BG_WS_OBJECT_DOOR_H_3, RESPAWN_ONE_DAY); SpawnBGObject(BG_WS_OBJECT_DOOR_H_4, RESPAWN_ONE_DAY); // players joining later are not eligibles }
void BattleGroundBE::StartingEventOpenDoors() { for(uint32 i = BG_BE_OBJECT_DOOR_1; i <= BG_BE_OBJECT_DOOR_2; i++) DoorOpen(m_BgObjects[i]); for(uint32 i = BG_BE_OBJECT_BUFF_1; i <= BG_BE_OBJECT_BUFF_2; i++) SpawnBGObject(m_BgObjects[i], 60); }
void BattlegroundRV::PostUpdateImpl(uint32 diff) { if(GetStatus() != STATUS_IN_PROGRESS) return; if (getTimer() < diff) { switch (getState()) { case BG_RV_STATE_OPEN_FENCES: setTimer(BG_RV_PILAR_TO_FIRE_TIMER); setState(BG_RV_STATE_CLOSE_FIRE); break; case BG_RV_STATE_CLOSE_FIRE: for (uint8 i = BG_RV_OBJECT_FIRE_1; i <= BG_RV_OBJECT_FIREDOOR_2; ++i) DoorClose(i); setTimer(BG_RV_FIRE_TO_PILAR_TIMER); setState(BG_RV_STATE_OPEN_PILARS); break; case BG_RV_STATE_OPEN_PILARS: for (uint8 i = BG_RV_OBJECT_PILAR_1; i <= BG_RV_OBJECT_PULLEY_2; ++i) DoorOpen(i); setTimer(BG_RV_PILAR_TO_FIRE_TIMER); setState(BG_RV_STATE_OPEN_FIRE); SwitchDynLos(); break; case BG_RV_STATE_OPEN_FIRE: // FIXME: after 3.2.0 it's only decorative and should be opened only one time at battle start for (uint8 i = BG_RV_OBJECT_FIRE_1; i <= BG_RV_OBJECT_FIREDOOR_2; ++i) DoorOpen(i); setTimer(BG_RV_FIRE_TO_PILAR_TIMER); setState(BG_RV_STATE_CLOSE_PILARS); break; case BG_RV_STATE_CLOSE_PILARS: for (uint8 i = BG_RV_OBJECT_PILAR_1; i <= BG_RV_OBJECT_PULLEY_2; ++i) DoorOpen(i); setTimer(BG_RV_PILAR_TO_FIRE_TIMER); setState(BG_RV_STATE_CLOSE_FIRE); SwitchDynLos(); break; } } else setTimer(getTimer() - diff); }
void BattlegroundRV::Update(uint32 diff) { Battleground::Update(diff); if (getTimer() < diff) { uint32 i; switch(getState()) { case BG_RV_STATE_OPEN_FENCES: { setTimer(BG_RV_PILAR_TO_FIRE_TIMER); setState(BG_RV_STATE_CLOSE_FIRE); break; } case BG_RV_STATE_CLOSE_FIRE: for (i = BG_RV_OBJECT_FIRE_1; i <= BG_RV_OBJECT_FIREDOOR_2; ++i) DoorClose(i); setTimer(BG_RV_FIRE_TO_PILAR_TIMER); setState(BG_RV_STATE_OPEN_PILARS); break; case BG_RV_STATE_OPEN_PILARS: for (i = BG_RV_OBJECT_PILAR_1; i <= BG_RV_OBJECT_PULLEY_2; ++i) DoorOpen(i); setTimer(BG_RV_PILAR_TO_FIRE_TIMER); setState(BG_RV_STATE_OPEN_FIRE); break; case BG_RV_STATE_OPEN_FIRE: for (i = BG_RV_OBJECT_FIRE_1; i <= BG_RV_OBJECT_FIREDOOR_2; ++i) DoorOpen(i); setTimer(BG_RV_FIRE_TO_PILAR_TIMER); setState(BG_RV_STATE_CLOSE_PILARS); break; case BG_RV_STATE_CLOSE_PILARS: uint32 i; for (i = BG_RV_OBJECT_PILAR_1; i <= BG_RV_OBJECT_PULLEY_2; ++i) DoorOpen(i); setTimer(BG_RV_PILAR_TO_FIRE_TIMER); setState(BG_RV_STATE_CLOSE_FIRE); break; } } else setTimer(getTimer() - diff); }
void BattlegroundWS::StartingEventOpenDoors() { for (uint32 i = BG_WS_OBJECT_DOOR_A_1; i <= BG_WS_OBJECT_DOOR_A_4; ++i) DoorOpen(i); for (uint32 i = BG_WS_OBJECT_DOOR_H_1; i <= BG_WS_OBJECT_DOOR_H_2; ++i) DoorOpen(i); SpawnBGObject(BG_WS_OBJECT_DOOR_A_5, RESPAWN_ONE_DAY); SpawnBGObject(BG_WS_OBJECT_DOOR_A_6, RESPAWN_ONE_DAY); SpawnBGObject(BG_WS_OBJECT_DOOR_H_3, RESPAWN_ONE_DAY); SpawnBGObject(BG_WS_OBJECT_DOOR_H_4, RESPAWN_ONE_DAY); for (uint32 i = BG_WS_OBJECT_A_FLAG; i <= BG_WS_OBJECT_BERSERKBUFF_2; ++i) SpawnBGObject(i, RESPAWN_IMMEDIATELY); // players joining later are not egible StartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, WS_EVENT_START_BATTLE); }
void BattlegroundDS::StartingEventOpenDoors() { for (uint32 i = BG_DS_OBJECT_DOOR_1; i <= BG_DS_OBJECT_DOOR_2; ++i) DoorOpen(i); for (uint32 i = BG_DS_OBJECT_BUFF_1; i <= BG_DS_OBJECT_BUFF_2; ++i) SpawnBGObject(i, 60); setWaterFallTimer(urand(BG_DS_WATERFALL_TIMER_MIN, BG_DS_WATERFALL_TIMER_MAX)); setWaterFallStatus(BG_DS_WATERFALL_STATUS_OFF); SpawnBGObject(BG_DS_OBJECT_WATER_2, RESPAWN_IMMEDIATELY); DoorOpen(BG_DS_OBJECT_WATER_2); // Turn off collision if (GameObject* gob = GetBgMap()->GetGameObject(BgObjects[BG_DS_OBJECT_WATER_1])) gob->SetGoState(GO_STATE_ACTIVE); }
void BattlegroundDS::StartingEventOpenDoors() { for(uint32 i = BG_DS_OBJECT_DOOR_1; i <= BG_DS_OBJECT_DOOR_2; ++i) DoorOpen(i); for(uint32 i = BG_DS_OBJECT_BUFF_1; i <= BG_DS_OBJECT_BUFF_2; ++i) SpawnBGObject(i, 60); SpawnBGObject(BG_DS_OBJECT_WATER_1, RESPAWN_ONE_DAY); SpawnBGObject(BG_DS_OBJECT_WATER_2, RESPAWN_IMMEDIATELY); DoorOpen(BG_DS_OBJECT_WATER_2); setWaterFallTimer(urand(BG_DS_WATERFALL_TIMER_MIN, BG_DS_WATERFALL_TIMER_MAX)); setWaterFallStatus(BG_DS_WATERFALL_STATUS_OFF); setPipeKnockBackTimer(BG_DS_PIPE_KNOCKBACK_FIRST_DELAY); setPipeKnockBackCount(0); }
void BattleGroundIC::StartingEventOpenDoors() { OpenDoorEvent(BG_EVENT_DOOR); // used for activating teleport effects + opening tower gates for (int i = BG_IC_GO_T_ALLIANCE_WEST; i <= BG_IC_GO_T_HORDE_FRONT; ++i) DoorOpen(m_BgObjects[i]); // make teleporters clickable MakeInteractive(IC_EVENT_ADD_TELEPORT, 0, true); }
void BattlegroundDS::StartingEventOpenDoors() { for (uint32 i = BG_DS_OBJECT_DOOR_1; i <= BG_DS_OBJECT_DOOR_2; ++i) DoorOpen(i); for (uint32 i = BG_DS_OBJECT_BUFF_1; i <= BG_DS_OBJECT_BUFF_2; ++i) SpawnBGObject(i, 60); SpawnBGObject(BG_DS_OBJECT_WATER_1, RESPAWN_ONE_DAY); SpawnBGObject(BG_DS_OBJECT_WATER_2, RESPAWN_IMMEDIATELY); DoorOpen(BG_DS_OBJECT_WATER_2); m_knockback = 15 * IN_MILLISECONDS; m_teleport = 5 * IN_MILLISECONDS; m_waterFallStatus = 0; m_waterFall = urand(BG_DS_WATERFALL_TIMER_MIN, BG_DS_WATERFALL_TIMER_MAX); m_dynamicLOSid = GetBgMap()->AddDynLOSObject(1291.56f, 790.837f, BG_DS_WATERFALL_RADIUS); }
void BattleGroundNA::Update(time_t diff) { BattleGround::Update(diff); // after bg start we get there if (GetStatus() == STATUS_WAIT_JOIN && GetPlayersSize()) { ModifyStartDelayTime(diff); if (!(m_Events & 0x01)) { m_Events |= 0x01; for(uint32 i = BG_NA_OBJECT_DOOR_1; i <= BG_NA_OBJECT_DOOR_4; i++) SpawnBGObject(i, RESPAWN_IMMEDIATELY); SetStartDelayTime(START_DELAY1); SendMessageToAll(LANG_ARENA_ONE_MINUTE); } // After 30 seconds, warning is signalled else if (GetStartDelayTime() <= START_DELAY2 && !(m_Events & 0x04)) { m_Events |= 0x04; SendMessageToAll(LANG_ARENA_THIRTY_SECONDS); } // After 15 seconds, warning is signalled else if (GetStartDelayTime() <= START_DELAY3 && !(m_Events & 0x08)) { m_Events |= 0x08; SendMessageToAll(LANG_ARENA_FIFTEEN_SECONDS); } // delay expired (1 minute) else if (GetStartDelayTime() <= 0 && !(m_Events & 0x10)) { m_Events |= 0x10; for(uint32 i = BG_NA_OBJECT_DOOR_1; i <= BG_NA_OBJECT_DOOR_2; i++) DoorOpen(i); SendMessageToAll(LANG_ARENA_BEGUN); SetStatus(STATUS_IN_PROGRESS); SetStartDelayTime(0); for(std::map<uint64, BattleGroundPlayer>::const_iterator itr = GetPlayers()->begin(); itr != GetPlayers()->end(); ++itr) { Player *plr = objmgr.GetPlayer(itr->first); if(plr) plr->RemoveAurasDueToSpell(SPELL_ARENA_PREPARATION); } } } /*if(GetStatus() == STATUS_IN_PROGRESS) { // update something }*/ }
void BattleGroundNA::StartingEventOpenDoors() { for (uint32 i = BG_NA_OBJECT_DOOR_1; i <= BG_NA_OBJECT_DOOR_2; ++i) DoorOpen(i); for (uint32 i = BG_NA_OBJECT_BUFF_1; i <= BG_NA_OBJECT_BUFF_2; ++i) SpawnBGObject(i, 60); m_TimeElapsedSinceBeggining = 0; }
void BattlegroundBE::StartBattleground() { BattlegroundMap::StartBattleground(); for (uint32 i = BG_BE_OBJECT_DOOR_1; i <= BG_BE_OBJECT_DOOR_2; ++i) DoorOpen(i); for (uint32 i = BG_BE_OBJECT_BUFF_1; i <= BG_BE_OBJECT_BUFF_2; ++i) SpawnGameObject(i, 60); }
void BattlegroundRV::StartingEventOpenDoors() { // Buff respawn SpawnBGObject(BG_RV_OBJECT_BUFF_1, 90); SpawnBGObject(BG_RV_OBJECT_BUFF_2, 90); // Open Fences DoorOpen(BG_RV_OBJECT_FENCE_1); DoorOpen(BG_RV_OBJECT_FENCE_2); // Elevators DoorOpen(BG_RV_OBJECT_ELEVATOR_1); DoorOpen(BG_RV_OBJECT_ELEVATOR_2); setState(BG_RV_STATE_OPEN_FENCES); setTimer(BG_RV_FIRST_TIMER); // Should be false at first, TogglePillarCollision will do it. SetPillarCollision(true); TogglePillarCollision(); }
void BattlegroundRV::PostUpdateImpl(uint32 diff) { if (getTimer() < diff) { switch (getState()) { case BG_RV_STATE_OPEN_FENCES: setTimer(BG_RV_PILAR_TO_FIRE_TIMER); setState(BG_RV_STATE_CLOSE_FIRE); break; case BG_RV_STATE_CLOSE_FIRE: for (uint8 i = BG_RV_OBJECT_FIRE_1; i <= BG_RV_OBJECT_FIREDOOR_2; ++i) DoorClose(i); setTimer(BG_RV_FIRE_TO_PILAR_TIMER); setState(BG_RV_STATE_OPEN_PILARS); break; case BG_RV_STATE_OPEN_PILARS: for (uint8 i = BG_RV_OBJECT_PILAR_1; i <= BG_RV_OBJECT_PULLEY_2; ++i) DoorOpen(i); TogglePillarCollision(false); setTimer(BG_RV_PILAR_TO_FIRE_TIMER); setState(BG_RV_STATE_OPEN_FIRE); break; case BG_RV_STATE_OPEN_FIRE: // FIXME: after 3.2.0 it's only decorative and should be opened only one time at battle start for (uint8 i = BG_RV_OBJECT_FIRE_1; i <= BG_RV_OBJECT_FIREDOOR_2; ++i) DoorOpen(i); setTimer(BG_RV_FIRE_TO_PILAR_TIMER); setState(BG_RV_STATE_CLOSE_PILARS); break; case BG_RV_STATE_CLOSE_PILARS: for (uint8 i = BG_RV_OBJECT_PILAR_1; i <= BG_RV_OBJECT_PULLEY_2; ++i) DoorOpen(i); TogglePillarCollision(true); setTimer(BG_RV_PILAR_TO_FIRE_TIMER); setState(BG_RV_STATE_CLOSE_FIRE); break; } } else setTimer(getTimer() - diff); }
void BattlegroundRL::StartingEventOpenDoors() { for (uint32 i = BG_RL_OBJECT_DOOR_1; i <= BG_RL_OBJECT_DOOR_2; ++i) DoorOpen(i); for (uint32 i = BG_RL_OBJECT_BUFF_1; i <= BG_RL_OBJECT_BUFF_2; ++i) SpawnBGObject(i, 60); for (uint32 i = BG_RL_OBJECT_READYMARKER_1; i <= BG_RL_OBJECT_READYMARKER_2; ++i) DelObject(i); }
void BattlegroundKT::StartingEventOpenDoors() { for (uint8 i = BG_KT_OBJECT_A_DOOR; i <= BG_KT_OBJECT_H_DOOR; ++i) DoorOpen(i); for (uint8 i = BG_KT_OBJECT_ORB_1; i <= BG_KT_OBJECT_ORB_4; ++i) SpawnBGObject(i, RESPAWN_IMMEDIATELY); // Players that join the battleground after it starts are not eligible to get the achievement. StartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, BG_KT_EVENT_START_BATTLE); }
void BattlegroundBFG::StartingEventOpenDoors() { // Spawn neutral banners. for (uint8 banner = GILNEAS_BG_OBJECT_BANNER_NEUTRAL, i = 0; i < 3; banner += 8, ++i) SpawnBGObject(banner, RESPAWN_IMMEDIATELY); // Spawn buffs (randomly select the one to spawn). for (uint8 i = 0; i < GILNEAS_BG_DYNAMIC_NODES_COUNT; ++i) { uint8 buff = urand(0, 2); SpawnBGObject(GILNEAS_BG_OBJECT_SPEEDBUFF_LIGHTHOUSE + buff + i * 3, RESPAWN_IMMEDIATELY); } // Open the doors. DoorOpen(GILNEAS_BG_OBJECT_GATE_A); DoorOpen(GILNEAS_BG_OBJECT_GATE_H); // Achievement: Newbs to Plowshares. StartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, BG_EVENT_START_BATTLE); }
void BattlegroundWS::StartingEventOpenDoors() { DoorOpen(BG_WS_OBJECT_DOOR_A_1); DoorOpen(BG_WS_OBJECT_DOOR_A_2); GetBGObject(BG_WS_OBJECT_DOOR_A_3)->RemoveFromWorld(); GetBGObject(BG_WS_OBJECT_DOOR_A_4)->RemoveFromWorld(); GetBGObject(BG_WS_OBJECT_DOOR_A_5)->RemoveFromWorld(); GetBGObject(BG_WS_OBJECT_DOOR_A_6)->RemoveFromWorld(); DoorOpen(BG_WS_OBJECT_DOOR_H_1); DoorOpen(BG_WS_OBJECT_DOOR_H_2); GetBGObject(BG_WS_OBJECT_DOOR_H_3)->RemoveFromWorld(); GetBGObject(BG_WS_OBJECT_DOOR_H_4)->RemoveFromWorld(); GetBGObject(BG_WS_OBJECT_DOOR_H_5)->RemoveFromWorld(); GetBGObject(BG_WS_OBJECT_DOOR_H_6)->RemoveFromWorld(); for (uint32 i = BG_WS_OBJECT_A_FLAG; i <= BG_WS_OBJECT_BERSERKBUFF_2; ++i) SpawnBGObject(i, RESPAWN_IMMEDIATELY); // players joining later are not egible StartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, WS_EVENT_START_BATTLE); }
void BattlegroundDS::PostUpdateImpl(uint32 diff) { if (GetStatus() != STATUS_IN_PROGRESS) return; if (getPipeKnockBackCount() < BG_DS_PIPE_KNOCKBACK_TOTAL_COUNT) { if (getPipeKnockBackTimer() < diff) { for (uint32 i = BG_DS_NPC_PIPE_KNOCKBACK_1; i <= BG_DS_NPC_PIPE_KNOCKBACK_2; ++i) if (Creature* waterSpout = GetBgMap()->GetCreature(BgCreatures[i])) waterSpout->CastSpell(waterSpout, BG_DS_SPELL_FLUSH, true); setPipeKnockBackCount(getPipeKnockBackCount() + 1); setPipeKnockBackTimer(BG_DS_PIPE_KNOCKBACK_DELAY); } else setPipeKnockBackTimer(getPipeKnockBackTimer() - diff); } if (getWaterFallTimer() < diff) { if (getWaterFallStatus() == BG_DS_WATERFALL_STATUS_OFF) // Add the water { DoorClose(BG_DS_OBJECT_WATER_2); setWaterFallTimer(BG_DS_WATERFALL_WARNING_DURATION); setWaterFallStatus(BG_DS_WATERFALL_STATUS_WARNING); } else if (getWaterFallStatus() == BG_DS_WATERFALL_STATUS_WARNING) // Active collision and perform knockback { if (Creature* waterSpout = GetBgMap()->GetCreature(BgCreatures[BG_DS_NPC_WATERFALL_KNOCKBACK])) waterSpout->CastSpell(waterSpout, BG_DS_SPELL_WATER_SPOUT, true); if (GameObject* gob = GetBgMap()->GetGameObject(BgObjects[BG_DS_OBJECT_WATER_1])) gob->SetGoState(GO_STATE_READY); setWaterFallTimer(BG_DS_WATERFALL_DURATION); setWaterFallStatus(BG_DS_WATERFALL_STATUS_ON); } else //if (getWaterFallStatus() == BG_DS_WATERFALL_STATUS_ON) // Remove collision and water { // turn off collision if (GameObject* gob = GetBgMap()->GetGameObject(BgObjects[BG_DS_OBJECT_WATER_1])) gob->SetGoState(GO_STATE_ACTIVE); DoorOpen(BG_DS_OBJECT_WATER_2); setWaterFallTimer(urand(BG_DS_WATERFALL_TIMER_MIN, BG_DS_WATERFALL_TIMER_MAX)); setWaterFallStatus(BG_DS_WATERFALL_STATUS_OFF); } } else setWaterFallTimer(getWaterFallTimer() - diff); }
void BattlegroundIC::StartingEventOpenDoors() { //after 20 seconds they should be despawned DoorOpen(BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR01); DoorOpen(BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR01); DoorOpen(BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR02); DoorOpen(BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR02); DoorOpen(BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR03); DoorOpen(BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR03); DoorOpen(BG_IC_GO_DOODAD_HU_PORTCULLIS01_1); DoorOpen(BG_IC_GO_DOODAD_HU_PORTCULLIS01_2); DoorOpen(BG_IC_GO_DOODAD_VR_PORTCULLIS01_1); DoorOpen(BG_IC_GO_DOODAD_VR_PORTCULLIS01_2); for (uint8 i = 0; i < MAX_FORTRESS_TELEPORTERS_SPAWNS; ++i) GetBGObject(BG_IC_Teleporters[i].type)->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); for (uint8 i = 0; i < MAX_FORTRESS_TELEPORTER_EFFECTS_SPAWNS; ++i) GetBGObject(BG_IC_TeleporterEffects[i].type)->SetGoState(GO_STATE_ACTIVE); }
void BattlegroundIC::StartingEventOpenDoors() { //after 20 seconds they should be despawned DoorOpen(BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR01); DoorOpen(BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR01); DoorOpen(BG_IC_GO_DOODAD_HU_PORTCULLIS01_1); DoorOpen(BG_IC_GO_DOODAD_HU_PORTCULLIS01_2); DoorOpen(BG_IC_GO_DOODAD_VR_PORTCULLIS01_1); DoorOpen(BG_IC_GO_DOODAD_VR_PORTCULLIS01_2); for(uint8 i = 0; i < MAX_FORTRESS_TELEPORTERS_SPAWNS; i++) { if(!AddObject(BG_IC_Teleporters[i].type, BG_IC_Teleporters[i].entry, BG_IC_Teleporters[i].x, BG_IC_Teleporters[i].y, BG_IC_Teleporters[i].z, BG_IC_Teleporters[i].o, 0, 0, 0, 0, RESPAWN_ONE_DAY)) sLog->outError("Isle of Conquest | Starting Event Open Doors: There was an error spawning gameobject %u", BG_IC_Teleporters[i].entry); } if(Creature* halford = GetBGCreature(BG_IC_NPC_HIGH_COMMANDER_HALFORD_WYRMBANE)) halford->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE); if(Creature* agmar = GetBGCreature(BG_IC_NPC_OVERLORD_AGMAR)) agmar->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE); }
bool CCar::bfAssignObject(CScriptEntityAction *tpEntityAction) { CScriptObjectAction &l_tObjectAction = tpEntityAction->m_tObjectAction; if (l_tObjectAction.m_bCompleted || !xr_strlen(l_tObjectAction.m_caBoneName)) return((l_tObjectAction.m_bCompleted = true) == false); s16 l_sBoneID = smart_cast<IKinematics*>(Visual())->LL_BoneID(l_tObjectAction.m_caBoneName); if (is_Door(l_sBoneID)) { switch(l_tObjectAction.m_tGoalType) { case MonsterSpace::eObjectActionActivate : { if (!DoorOpen(l_sBoneID)) return((l_tObjectAction.m_bCompleted = true) == false); break; } case MonsterSpace::eObjectActionDeactivate : { if (!DoorClose(l_sBoneID)) return((l_tObjectAction.m_bCompleted = true) == false); break; } case MonsterSpace::eObjectActionUse : { if (!DoorSwitch(l_sBoneID)) return((l_tObjectAction.m_bCompleted = true) == false); break; } default : return ((l_tObjectAction.m_bCompleted = true) == false); } return (false); } SCarLight* light=NULL; if (m_lights.findLight(l_sBoneID,light)) { switch(l_tObjectAction.m_tGoalType) { case MonsterSpace::eObjectActionActivate : { light->TurnOn(); return ((l_tObjectAction.m_bCompleted = true) == false); } case MonsterSpace::eObjectActionDeactivate : { light->TurnOff(); return ((l_tObjectAction.m_bCompleted = true) == false); } case MonsterSpace::eObjectActionUse : { light->Switch(); return ((l_tObjectAction.m_bCompleted = true) == false); } default : return ((l_tObjectAction.m_bCompleted = true) == false); } } return (false); }
void BattlegroundRV::StartingEventOpenDoors() { // Buff respawn SpawnBGObject(BG_RV_OBJECT_BUFF_1, 90); SpawnBGObject(BG_RV_OBJECT_BUFF_2, 90); // Elevators DoorOpen(BG_RV_OBJECT_ELEVATOR_1); DoorOpen(BG_RV_OBJECT_ELEVATOR_2); setState(BG_RV_STATE_OPEN_FENCES); setTimer(BG_RV_FIRST_TIMER); // Add all DynLoS to the map m_DynLos[0] = GetBgMap()->AddDynLOSObject(763.632385f, -306.162384f, 25.909504f, BG_RV_PILLAR_SMALL_RADIUS, BG_RV_PILLAR_SMALL_HEIGHT); m_DynLos[1] = GetBgMap()->AddDynLOSObject(763.611145f, -261.856750f, 25.909504f, BG_RV_PILLAR_SMALL_RADIUS, BG_RV_PILLAR_SMALL_HEIGHT); m_DynLos[2] = GetBgMap()->AddDynLOSObject(723.644287f, -284.493256f, 24.648525f, BG_RV_PILLAR_BIG_RADIUS, BG_RV_PILLAR_BIG_RADIUS); m_DynLos[3] = GetBgMap()->AddDynLOSObject(802.211609f, -284.493256f, 24.648525f, BG_RV_PILLAR_BIG_RADIUS, BG_RV_PILLAR_BIG_HEIGHT); // Activate the small ones for (uint8 i = 0; i <= 1; i++) GetBgMap()->SetDynLOSObjectState(m_DynLos[i], true); }
void BattlegroundNA::StartingEventOpenDoors() { for (uint32 i = BG_NA_OBJECT_DOOR_1; i <= BG_NA_OBJECT_DOOR_2; ++i) DoorOpen(i); doordelete = 2 * IN_MILLISECONDS; for (uint32 i = BG_NA_OBJECT_BUFF_1; i <= BG_NA_OBJECT_BUFF_2; ++i) SpawnBGObject(i, 60); for (uint32 i = BG_NA_OBJECT_READYMARKER_1; i <= BG_NA_OBJECT_READYMARKER_2; ++i) DelObject(i); }
void BattlegroundDS::StartingEventOpenDoors () { for (uint32 i = BG_DS_OBJECT_DOOR_1; i <= BG_DS_OBJECT_DOOR_2; ++i) DoorOpen(i); for (uint32 i = BG_DS_OBJECT_BUFF_1; i <= BG_DS_OBJECT_BUFF_2; ++i) SpawnBGObject(i, 60); setWaterFallTimer(urand(BG_DS_WATERFALL_TIMER_MIN, BG_DS_WATERFALL_TIMER_MAX)); setWaterFallActive(false); for (uint32 i = BG_DS_OBJECT_WATER_1; i <= BG_DS_OBJECT_WATER_2; ++i) SpawnBGObject(i, getWaterFallTimer()); }
void BattleGroundSA::StartShips() { if (shipsStarted) return; DoorOpen(m_BgObjects[BG_SA_BOAT_ONE]); DoorOpen(m_BgObjects[BG_SA_BOAT_TWO]); for (int i = BG_SA_BOAT_ONE; i <= BG_SA_BOAT_TWO; i++) { for (BattleGroundPlayerMap::const_iterator itr = GetPlayers().begin(); itr != GetPlayers().end();itr++) { if (Player* p = sObjectMgr.GetPlayer(itr->first)) { UpdateData data; WorldPacket pkt; GetBGObject(i)->BuildValuesUpdateBlockForPlayer(&data, p); data.BuildPacket(&pkt); p->GetSession()->SendPacket(&pkt); } } } shipsStarted = true; }
void BattlegroundSA::StartShips() { if (ShipsStarted) return; DoorOpen(BG_SA_BOAT_ONE); DoorOpen(BG_SA_BOAT_TWO); for (int i = BG_SA_BOAT_ONE; i <= BG_SA_BOAT_TWO; i++) { for (BattlegroundPlayerMap::const_iterator itr = GetPlayers().begin(); itr != GetPlayers().end(); ++itr) { if (Player* p = ObjectAccessor::FindPlayer(itr->first)) { UpdateData data(p->GetMapId()); WorldPacket pkt; GetBGObject(i)->BuildValuesUpdateBlockForPlayer(&data, p); data.BuildPacket(&pkt); p->SendDirectMessage(&pkt); } } } ShipsStarted = true; }