mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Core/OutdoorPvP: Move remaining outdoorpvp spawns to db
This commit is contained in:
13
sql/updates/world/master/2022_07_18_03_world.sql
Normal file
13
sql/updates/world/master/2022_07_18_03_world.sql
Normal file
@@ -0,0 +1,13 @@
|
||||
DELETE FROM `gameobject` WHERE `guid` BETWEEN 23303 AND 23313;
|
||||
INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnDifficulties`, `phaseUseFlags`, `PhaseId`, `PhaseGroup`, `terrainSwapMap`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `ScriptName`, `VerifiedBuild`) VALUES
|
||||
(23303, 183104, 530, 0, 0, '0', 0, 0, 0, -1, -3081.65, 5335.03, 17.1853, -2.146750, 0, 0, 0.878817, -0.477159, 0, 0, 1, '', 0),
|
||||
(23304, 183411, 530, 0, 0, '0', 0, 0, 0, -1, -2939.90, 4788.73, 18.9870, 2.775070, 0, 0, 0.983255, 0.182236, 0, 0, 1, '', 0),
|
||||
(23305, 183412, 530, 0, 0, '0', 0, 0, 0, -1, -3174.94, 4440.97, 16.2281, 1.867500, 0, 0, 0.803857, 0.594823, 0, 0, 1, '', 0),
|
||||
(23306, 183413, 530, 0, 0, '0', 0, 0, 0, -1, -3603.31, 4529.15, 20.9077, 0.994838, 0, 0, 0.477159, 0.878817, 0, 0, 1, '', 0),
|
||||
(23307, 183414, 530, 0, 0, '0', 0, 0, 0, -1, -3812.37, 4899.30, 17.7249, 0.087266, 0, 0, 0.043619, 0.999048, 0, 0, 1, '', 0),
|
||||
(23308, 182175, 530, 0, 0, '0', 0, 0, 0, -1, -471.462, 3451.09, 34.6432, 0.174533, 0, 0, 0.087156, 0.996195, 0, 0, 1, '', 0),
|
||||
(23309, 182174, 530, 0, 0, '0', 0, 0, 0, -1, -184.889, 3476.93, 38.2050, -0.017453, 0, 0, 0.008727, -0.999962, 0, 0, 1, '', 0),
|
||||
(23310, 182173, 530, 0, 0, '0', 0, 0, 0, -1, -290.016, 3702.42, 56.6729, 0.034907, 0, 0, 0.017452, 0.999848, 0, 0, 1, '', 0),
|
||||
(23311, 183514, 530, 0, 0, '0', 0, 0, 0, -1, -467.078, 3528.17, 64.7121, 3.14159, 0, 0, 1.000000, 0.000000, 0, 0, 1, '', 0),
|
||||
(23312, 182525, 530, 0, 0, '0', 0, 0, 0, -1, -187.887, 3459.38, 60.0403, -3.12414, 0, 0, 0.999962, -0.008727, 0, 0, 1, '', 0),
|
||||
(23313, 183515, 530, 0, 0, '0', 0, 0, 0, -1, -289.610, 3696.83, 75.9447, 3.12414, 0, 0, 0.999962, 0.008727, 0, 0, 1, '', 0);
|
||||
@@ -34,29 +34,18 @@ uint32 const HP_TowerArtKit_A[HP_TOWER_NUM] = { 65, 62, 67 };
|
||||
uint32 const HP_TowerArtKit_H[HP_TOWER_NUM] = { 64, 61, 68 };
|
||||
uint32 const HP_TowerArtKit_N[HP_TOWER_NUM] = { 66, 63, 69 };
|
||||
|
||||
go_type const HPCapturePoints[HP_TOWER_NUM] =
|
||||
{
|
||||
{ 182175, 530, { -471.462f, 3451.09f, 34.6432f, 0.174533f }, { 0.0f, 0.0f, 0.087156f, 0.996195f } }, // 0 - Broken Hill
|
||||
{ 182174, 530, { -184.889f, 3476.93f, 38.2050f, -0.017453f }, { 0.0f, 0.0f, 0.008727f, -0.999962f } }, // 1 - Overlook
|
||||
{ 182173, 530, { -290.016f, 3702.42f, 56.6729f, 0.034907f }, { 0.0f, 0.0f, 0.017452f, 0.999848f } } // 2 - Stadium
|
||||
};
|
||||
|
||||
go_type const HPTowerFlags[HP_TOWER_NUM] =
|
||||
{
|
||||
{ 183514, 530, { -467.078f, 3528.17f, 64.7121f, 3.14159f }, { 0.0f, 0.0f, 1.000000f, 0.000000f } }, // 0 broken hill
|
||||
{ 182525, 530, { -187.887f, 3459.38f, 60.0403f, -3.12414f }, { 0.0f, 0.0f, 0.999962f, -0.008727f } }, // 1 overlook
|
||||
{ 183515, 530, { -289.610f, 3696.83f, 75.9447f, 3.12414f }, { 0.0f, 0.0f, 0.999962f, 0.008727f } } // 2 stadium
|
||||
};
|
||||
|
||||
uint32 const HP_LANG_CAPTURE_A[HP_TOWER_NUM] = { TEXT_BROKEN_HILL_TAKEN_ALLIANCE, TEXT_OVERLOOK_TAKEN_ALLIANCE, TEXT_STADIUM_TAKEN_ALLIANCE };
|
||||
uint32 const HP_LANG_CAPTURE_H[HP_TOWER_NUM] = { TEXT_BROKEN_HILL_TAKEN_HORDE, TEXT_OVERLOOK_TAKEN_HORDE, TEXT_STADIUM_TAKEN_HORDE };
|
||||
|
||||
OPvPCapturePointHP::OPvPCapturePointHP(OutdoorPvP* pvp, OutdoorPvPHPTowerType type) : OPvPCapturePoint(pvp), m_TowerType(type)
|
||||
OPvPCapturePointHP::OPvPCapturePointHP(OutdoorPvP* pvp, OutdoorPvPHPTowerType type, GameObject* go, ObjectGuid::LowType const& flagSpawnId)
|
||||
: OPvPCapturePoint(pvp), m_TowerType(type), m_flagSpawnId(flagSpawnId)
|
||||
{
|
||||
SetCapturePointData(HPCapturePoints[type].entry, HPCapturePoints[type].map, HPCapturePoints[type].pos, HPCapturePoints[type].rot);
|
||||
AddObject(type, HPTowerFlags[type].entry, HPTowerFlags[type].map, HPTowerFlags[type].pos, HPTowerFlags[type].rot);
|
||||
m_capturePointSpawnId = go->GetSpawnId();
|
||||
m_capturePoint = go;
|
||||
SetCapturePointData(go->GetEntry());
|
||||
}
|
||||
OutdoorPvPHP::OutdoorPvPHP()
|
||||
|
||||
OutdoorPvPHP::OutdoorPvPHP() : m_towerFlagSpawnIds()
|
||||
{
|
||||
m_TypeId = OUTDOOR_PVP_HP;
|
||||
m_AllianceTowersControlled = 0;
|
||||
@@ -73,15 +62,38 @@ bool OutdoorPvPHP::SetupOutdoorPvP()
|
||||
for (uint32 i = 0; i < OutdoorPvPHPBuffZonesNum; ++i)
|
||||
RegisterZone(OutdoorPvPHPBuffZones[i]);
|
||||
|
||||
AddCapturePoint(new OPvPCapturePointHP(this, HP_TOWER_BROKEN_HILL));
|
||||
|
||||
AddCapturePoint(new OPvPCapturePointHP(this, HP_TOWER_OVERLOOK));
|
||||
|
||||
AddCapturePoint(new OPvPCapturePointHP(this, HP_TOWER_STADIUM));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void OutdoorPvPHP::OnGameObjectCreate(GameObject* go)
|
||||
{
|
||||
switch (go->GetEntry())
|
||||
{
|
||||
case 182175:
|
||||
AddCapturePoint(new OPvPCapturePointHP(this, HP_TOWER_BROKEN_HILL, go, m_towerFlagSpawnIds[HP_TOWER_BROKEN_HILL]));
|
||||
break;
|
||||
case 182174:
|
||||
AddCapturePoint(new OPvPCapturePointHP(this, HP_TOWER_OVERLOOK, go, m_towerFlagSpawnIds[HP_TOWER_OVERLOOK]));
|
||||
break;
|
||||
case 182173:
|
||||
AddCapturePoint(new OPvPCapturePointHP(this, HP_TOWER_STADIUM, go, m_towerFlagSpawnIds[HP_TOWER_STADIUM]));
|
||||
break;
|
||||
case 183514:
|
||||
m_towerFlagSpawnIds[HP_TOWER_BROKEN_HILL] = go->GetSpawnId();
|
||||
break;
|
||||
case 182525:
|
||||
m_towerFlagSpawnIds[HP_TOWER_OVERLOOK] = go->GetSpawnId();
|
||||
break;
|
||||
case 183515:
|
||||
m_towerFlagSpawnIds[HP_TOWER_STADIUM] = go->GetSpawnId();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
OutdoorPvP::OnGameObjectCreate(go);
|
||||
}
|
||||
|
||||
void OutdoorPvPHP::HandlePlayerEnterZone(Player* player, uint32 zone)
|
||||
{
|
||||
// add buffs
|
||||
@@ -243,7 +255,7 @@ void OPvPCapturePointHP::ChangeState()
|
||||
for (auto itr = bounds.first; itr != bounds.second; ++itr)
|
||||
itr->second->SetGoArtKit(artkit);
|
||||
|
||||
bounds = map->GetGameObjectBySpawnIdStore().equal_range(m_Objects[m_TowerType]);
|
||||
bounds = map->GetGameObjectBySpawnIdStore().equal_range(m_flagSpawnId);
|
||||
for (auto itr = bounds.first; itr != bounds.second; ++itr)
|
||||
itr->second->SetGoArtKit(artkit2);
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#define OUTDOOR_PVP_HP_
|
||||
|
||||
#include "OutdoorPvP.h"
|
||||
#include <array>
|
||||
|
||||
enum DefenseMessages
|
||||
{
|
||||
@@ -58,12 +59,13 @@ enum OutdoorPvPHPWorldStates
|
||||
class OPvPCapturePointHP : public OPvPCapturePoint
|
||||
{
|
||||
public:
|
||||
OPvPCapturePointHP(OutdoorPvP* pvp, OutdoorPvPHPTowerType type);
|
||||
OPvPCapturePointHP(OutdoorPvP* pvp, OutdoorPvPHPTowerType type, GameObject* go, ObjectGuid::LowType const& flagSpawnId);
|
||||
|
||||
void ChangeState() override;
|
||||
|
||||
private:
|
||||
OutdoorPvPHPTowerType m_TowerType;
|
||||
ObjectGuid::LowType const& m_flagSpawnId;
|
||||
};
|
||||
|
||||
class OutdoorPvPHP : public OutdoorPvP
|
||||
@@ -73,6 +75,8 @@ class OutdoorPvPHP : public OutdoorPvP
|
||||
|
||||
bool SetupOutdoorPvP() override;
|
||||
|
||||
void OnGameObjectCreate(GameObject* go) override;
|
||||
|
||||
void HandlePlayerEnterZone(Player* player, uint32 zone) override;
|
||||
void HandlePlayerLeaveZone(Player* player, uint32 zone) override;
|
||||
|
||||
@@ -88,6 +92,7 @@ class OutdoorPvPHP : public OutdoorPvP
|
||||
private:
|
||||
uint32 m_AllianceTowersControlled; // how many towers are controlled
|
||||
uint32 m_HordeTowersControlled;
|
||||
std::array<ObjectGuid::LowType, HP_TOWER_NUM> m_towerFlagSpawnIds;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -45,15 +45,6 @@ int32 const TF_CAPTURE_BUFF = 33377;
|
||||
uint32 const TF_ALLY_QUEST = 11505;
|
||||
uint32 const TF_HORDE_QUEST = 11506;
|
||||
|
||||
go_type const TFCapturePoints[TF_TOWER_NUM] =
|
||||
{
|
||||
{ 183104, 530, { -3081.65f, 5335.03f, 17.1853f, -2.146750f }, { 0.0f, 0.0f, 0.878817f, -0.477159f } },
|
||||
{ 183411, 530, { -2939.90f, 4788.73f, 18.9870f, 2.775070f }, { 0.0f, 0.0f, 0.983255f, 0.182236f } },
|
||||
{ 183412, 530, { -3174.94f, 4440.97f, 16.2281f, 1.867500f }, { 0.0f, 0.0f, 0.803857f, 0.594823f } },
|
||||
{ 183413, 530, { -3603.31f, 4529.15f, 20.9077f, 0.994838f }, { 0.0f, 0.0f, 0.477159f, 0.878817f } },
|
||||
{ 183414, 530, { -3812.37f, 4899.30f, 17.7249f, 0.087266f }, { 0.0f, 0.0f, 0.043619f, 0.999048f } }
|
||||
};
|
||||
|
||||
struct tf_tower_world_state
|
||||
{
|
||||
int32 n;
|
||||
@@ -103,9 +94,11 @@ OutdoorPvPTF::OutdoorPvPTF()
|
||||
first_digit = 0;
|
||||
}
|
||||
|
||||
OPvPCapturePointTF::OPvPCapturePointTF(OutdoorPvP* pvp, OutdoorPvPTF_TowerType type) : OPvPCapturePoint(pvp), m_TowerType(type), m_TowerState(TF_TOWERSTATE_N)
|
||||
OPvPCapturePointTF::OPvPCapturePointTF(OutdoorPvP* pvp, OutdoorPvPTF_TowerType type, GameObject* go) : OPvPCapturePoint(pvp), m_TowerType(type), m_TowerState(TF_TOWERSTATE_N)
|
||||
{
|
||||
SetCapturePointData(TFCapturePoints[type].entry, TFCapturePoints[type].map, TFCapturePoints[type].pos, TFCapturePoints[type].rot);
|
||||
m_capturePointSpawnId = go->GetSpawnId();
|
||||
m_capturePoint = go;
|
||||
SetCapturePointData(go->GetEntry());
|
||||
}
|
||||
|
||||
void OutdoorPvPTF::SendRemoveWorldStates(Player* player)
|
||||
@@ -275,15 +268,35 @@ bool OutdoorPvPTF::SetupOutdoorPvP()
|
||||
for (uint8 i = 0; i < OutdoorPvPTFBuffZonesNum; ++i)
|
||||
RegisterZone(OutdoorPvPTFBuffZones[i]);
|
||||
|
||||
AddCapturePoint(new OPvPCapturePointTF(this, TF_TOWER_NW));
|
||||
AddCapturePoint(new OPvPCapturePointTF(this, TF_TOWER_N));
|
||||
AddCapturePoint(new OPvPCapturePointTF(this, TF_TOWER_NE));
|
||||
AddCapturePoint(new OPvPCapturePointTF(this, TF_TOWER_SE));
|
||||
AddCapturePoint(new OPvPCapturePointTF(this, TF_TOWER_S));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void OutdoorPvPTF::OnGameObjectCreate(GameObject* go)
|
||||
{
|
||||
switch (go->GetEntry())
|
||||
{
|
||||
case 183104:
|
||||
AddCapturePoint(new OPvPCapturePointTF(this, TF_TOWER_NW, go));
|
||||
break;
|
||||
case 183411:
|
||||
AddCapturePoint(new OPvPCapturePointTF(this, TF_TOWER_N, go));
|
||||
break;
|
||||
case 183412:
|
||||
AddCapturePoint(new OPvPCapturePointTF(this, TF_TOWER_NE, go));
|
||||
break;
|
||||
case 183413:
|
||||
AddCapturePoint(new OPvPCapturePointTF(this, TF_TOWER_SE, go));
|
||||
break;
|
||||
case 183414:
|
||||
AddCapturePoint(new OPvPCapturePointTF(this, TF_TOWER_S, go));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
OutdoorPvP::OnGameObjectCreate(go);
|
||||
}
|
||||
|
||||
bool OPvPCapturePointTF::Update(uint32 diff)
|
||||
{
|
||||
// can update even in locked state if gathers the controlling faction
|
||||
|
||||
@@ -64,7 +64,7 @@ enum TFTowerStates
|
||||
class OPvPCapturePointTF : public OPvPCapturePoint
|
||||
{
|
||||
public:
|
||||
OPvPCapturePointTF(OutdoorPvP* pvp, OutdoorPvPTF_TowerType type);
|
||||
OPvPCapturePointTF(OutdoorPvP* pvp, OutdoorPvPTF_TowerType type, GameObject* go);
|
||||
|
||||
bool Update(uint32 diff) override;
|
||||
void ChangeState() override;
|
||||
@@ -82,6 +82,7 @@ class OutdoorPvPTF : public OutdoorPvP
|
||||
OutdoorPvPTF();
|
||||
|
||||
bool SetupOutdoorPvP() override;
|
||||
void OnGameObjectCreate(GameObject* go) override;
|
||||
void HandlePlayerEnterZone(Player* player, uint32 zone) override;
|
||||
void HandlePlayerLeaveZone(Player* player, uint32 zone) override;
|
||||
bool Update(uint32 diff) override;
|
||||
|
||||
Reference in New Issue
Block a user