Core/WorldStates: Add generic worldstates for team in instance
Port From (https://github.com/TrinityCore/TrinityCore/commit/c1eb91c1c174870026cf4750bafc8d04d182ade0)
This commit is contained in:
@@ -2994,6 +2994,9 @@ namespace Framework.Constants
|
|||||||
CurrentPvpSeasonId = 3191,
|
CurrentPvpSeasonId = 3191,
|
||||||
PreviousPvpSeasonId = 3901,
|
PreviousPvpSeasonId = 3901,
|
||||||
|
|
||||||
|
TeamInInstanceAlliance = 4485,
|
||||||
|
TeamInInstanceHorde = 4486,
|
||||||
|
|
||||||
BattlefieldWgVehicleH = 3490,
|
BattlefieldWgVehicleH = 3490,
|
||||||
BattlefieldWgMaxVehicleH = 3491,
|
BattlefieldWgMaxVehicleH = 3491,
|
||||||
BattlefieldWgVehicleA = 3680,
|
BattlefieldWgVehicleA = 3680,
|
||||||
|
|||||||
+13
-6
@@ -4755,14 +4755,15 @@ namespace Game.Maps
|
|||||||
{
|
{
|
||||||
public InstanceMap(uint id, long expiry, uint InstanceId, Difficulty spawnMode, int instanceTeam) : base(id, expiry, InstanceId, spawnMode)
|
public InstanceMap(uint id, long expiry, uint InstanceId, Difficulty spawnMode, int instanceTeam) : base(id, expiry, InstanceId, spawnMode)
|
||||||
{
|
{
|
||||||
scriptTeam = instanceTeam;
|
|
||||||
|
|
||||||
//lets initialize visibility distance for dungeons
|
//lets initialize visibility distance for dungeons
|
||||||
InitVisibilityDistance();
|
InitVisibilityDistance();
|
||||||
|
|
||||||
// the timer is started by default, and stopped when the first player joins
|
// the timer is started by default, and stopped when the first player joins
|
||||||
// this make sure it gets unloaded if for some reason no player joins
|
// this make sure it gets unloaded if for some reason no player joins
|
||||||
m_unloadTimer = (uint)Math.Max(WorldConfig.GetIntValue(WorldCfg.InstanceUnloadDelay), 1);
|
m_unloadTimer = (uint)Math.Max(WorldConfig.GetIntValue(WorldCfg.InstanceUnloadDelay), 1);
|
||||||
|
|
||||||
|
Global.WorldStateMgr.SetValue(WorldStates.TeamInInstanceAlliance, instanceTeam == TeamId.Alliance ? 1 : 0, false, this);
|
||||||
|
Global.WorldStateMgr.SetValue(WorldStates.TeamInInstanceHorde, instanceTeam == TeamId.Horde ? 1 : 0, false, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void InitVisibilityDistance()
|
public override void InitVisibilityDistance()
|
||||||
@@ -5179,9 +5180,16 @@ namespace Game.Maps
|
|||||||
return mapDiff != null ? mapDiff.GetRaidDuration() : 0;
|
return mapDiff != null ? mapDiff.GetRaidDuration() : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int GetTeamIdInInstance() { return scriptTeam; }
|
public int GetTeamIdInInstance()
|
||||||
|
{
|
||||||
public Team GetTeamInInstance() { return scriptTeam == TeamId.Alliance ? Team.Alliance : Team.Horde; }
|
if (Global.WorldStateMgr.GetValue(WorldStates.TeamInInstanceAlliance, this) != 0)
|
||||||
|
return TeamId.Alliance;
|
||||||
|
if (Global.WorldStateMgr.GetValue(WorldStates.TeamInInstanceHorde, this) != 0)
|
||||||
|
return TeamId.Horde;
|
||||||
|
return TeamId.Neutral;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Team GetTeamInInstance() { return GetTeamIdInInstance() == TeamId.Alliance ? Team.Alliance : Team.Horde; }
|
||||||
|
|
||||||
public uint GetScriptId()
|
public uint GetScriptId()
|
||||||
{
|
{
|
||||||
@@ -5203,7 +5211,6 @@ namespace Game.Maps
|
|||||||
|
|
||||||
InstanceScript i_data;
|
InstanceScript i_data;
|
||||||
uint i_script_id;
|
uint i_script_id;
|
||||||
int scriptTeam;
|
|
||||||
InstanceScenario i_scenario;
|
InstanceScenario i_scenario;
|
||||||
bool m_resetAfterUnload;
|
bool m_resetAfterUnload;
|
||||||
bool m_unloadWhenEmpty;
|
bool m_unloadWhenEmpty;
|
||||||
|
|||||||
Reference in New Issue
Block a user