Core/Spawns: Exterminate CONFIG_SAVE_RESPAWN_TIME_IMMEDIATELY with extreme prejudice. (It didn't work anyway.)
Port From (https://github.com/TrinityCore/TrinityCore/commit/d5e58cef694d3db65f0a27b93099ae4e517685a4)
This commit is contained in:
@@ -1678,7 +1678,6 @@ namespace Framework.Constants
|
||||
RespawnMinCheckIntervalMs,
|
||||
RespawnRestartQuietTime,
|
||||
RestrictedLfgChannel,
|
||||
SaveRespawnTimeImmediately,
|
||||
SessionAddDelay,
|
||||
ShowBanInWorld,
|
||||
ShowKickInWorld,
|
||||
|
||||
@@ -208,7 +208,7 @@ namespace Game.Entities
|
||||
uint respawnDelay = m_respawnDelay;
|
||||
m_respawnTime = Math.Max(GameTime.GetGameTime() + respawnDelay, m_respawnTime);
|
||||
|
||||
SaveRespawnTime(0, false);
|
||||
SaveRespawnTime();
|
||||
}
|
||||
|
||||
TempSummon summon = ToTempSummon();
|
||||
@@ -1802,12 +1802,8 @@ namespace Game.Entities
|
||||
else
|
||||
m_respawnTime = GameTime.GetGameTime() + respawnDelay;
|
||||
}
|
||||
|
||||
// always save boss respawn time at death to prevent crash cheating
|
||||
if (WorldConfig.GetBoolValue(WorldCfg.SaveRespawnTimeImmediately) || IsWorldBoss())
|
||||
SaveRespawnTime();
|
||||
else if (!m_respawnCompatibilityMode)
|
||||
SaveRespawnTime(0, false);
|
||||
|
||||
SaveRespawnTime();
|
||||
|
||||
ReleaseFocus(null, false); // remove spellcast focus
|
||||
DoNotReacquireTarget(); // cancel delayed re-target
|
||||
@@ -2265,7 +2261,7 @@ namespace Game.Entities
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void SaveRespawnTime(uint forceDelay = 0, bool saveToDb = true)
|
||||
public void SaveRespawnTime(uint forceDelay = 0)
|
||||
{
|
||||
if (IsSummon() || m_spawnId == 0 || (m_creatureData != null && !m_creatureData.dbData))
|
||||
return;
|
||||
@@ -2277,7 +2273,7 @@ namespace Game.Entities
|
||||
}
|
||||
|
||||
long thisRespawnTime = forceDelay != 0 ? GameTime.GetGameTime() + forceDelay : m_respawnTime;
|
||||
GetMap().SaveRespawnTime(SpawnObjectType.Creature, m_spawnId, GetEntry(), thisRespawnTime, GetMap().GetZoneId(GetPhaseShift(), GetHomePosition()), GridDefines.ComputeGridCoord(GetHomePosition().GetPositionX(), GetHomePosition().GetPositionY()).GetId(), saveToDb && m_creatureData != null && m_creatureData.dbData);
|
||||
GetMap().SaveRespawnTime(SpawnObjectType.Creature, m_spawnId, GetEntry(), thisRespawnTime, GetMap().GetZoneId(GetPhaseShift(), GetHomePosition()), GridDefines.ComputeGridCoord(GetHomePosition().GetPositionX(), GetHomePosition().GetPositionY()).GetId());
|
||||
}
|
||||
|
||||
public bool CanCreatureAttack(Unit victim, bool force = true)
|
||||
|
||||
@@ -566,7 +566,7 @@ namespace Game.Entities
|
||||
SetRespawnTime(Time.Week);
|
||||
else
|
||||
m_respawnTime = (now > linkedRespawntime ? now : linkedRespawntime) + RandomHelper.IRand(5, Time.Minute); // else copy time from master and add a little
|
||||
SaveRespawnTime(); // also save to DB immediately
|
||||
SaveRespawnTime();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -625,7 +625,7 @@ namespace Game.Entities
|
||||
|
||||
// Set respawn timer
|
||||
if (!m_respawnCompatibilityMode && m_respawnTime > 0)
|
||||
SaveRespawnTime(0, false);
|
||||
SaveRespawnTime();
|
||||
|
||||
if (IsSpawned())
|
||||
{
|
||||
@@ -875,22 +875,13 @@ namespace Game.Entities
|
||||
|
||||
// if option not set then object will be saved at grid unload
|
||||
// Otherwise just save respawn time to map object memory
|
||||
if (WorldConfig.GetBoolValue(WorldCfg.SaveRespawnTimeImmediately))
|
||||
SaveRespawnTime();
|
||||
SaveRespawnTime();
|
||||
|
||||
if (!m_respawnCompatibilityMode)
|
||||
{
|
||||
// Respawn time was just saved if set to save to DB
|
||||
// If not, we save only to map memory
|
||||
if (!WorldConfig.GetBoolValue(WorldCfg.SaveRespawnTimeImmediately))
|
||||
SaveRespawnTime(0, false);
|
||||
|
||||
// Then despawn
|
||||
if (m_respawnCompatibilityMode)
|
||||
DestroyForNearbyPlayers();
|
||||
else
|
||||
AddObjectToRemoveList();
|
||||
return;
|
||||
}
|
||||
|
||||
DestroyForNearbyPlayers(); // old UpdateObjectVisibility()
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1274,7 +1265,7 @@ namespace Game.Entities
|
||||
|
||||
public Transport ToTransport() { return GetGoInfo().type == GameObjectTypes.MapObjTransport ? (this as Transport) : null; }
|
||||
|
||||
public override void SaveRespawnTime(uint forceDelay = 0, bool savetodb = true)
|
||||
public void SaveRespawnTime(uint forceDelay = 0)
|
||||
{
|
||||
if (m_goData != null && (forceDelay != 0 || m_respawnTime > GameTime.GetGameTime()) && m_spawnedByDefault)
|
||||
{
|
||||
@@ -1285,7 +1276,7 @@ namespace Game.Entities
|
||||
}
|
||||
|
||||
long thisRespawnTime = forceDelay != 0 ? GameTime.GetGameTime() + forceDelay : m_respawnTime;
|
||||
GetMap().SaveRespawnTime(SpawnObjectType.GameObject, m_spawnId, GetEntry(), thisRespawnTime, GetZoneId(), GridDefines.ComputeGridCoord(GetPositionX(), GetPositionY()).GetId(), m_goData.dbData && savetodb);
|
||||
GetMap().SaveRespawnTime(SpawnObjectType.GameObject, m_spawnId, GetEntry(), thisRespawnTime, GetZoneId(), GridDefines.ComputeGridCoord(GetPositionX(), GetPositionY()).GetId());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2821,8 +2821,6 @@ namespace Game.Entities
|
||||
|
||||
public virtual uint GetLevelForTarget(WorldObject target) { return 1; }
|
||||
|
||||
public virtual void SaveRespawnTime(uint forceDelay = 0, bool saveToDB = true) { }
|
||||
|
||||
public ZoneScript GetZoneScript() { return m_zoneScript; }
|
||||
|
||||
public void AddToNotify(NotifyFlags f) { m_notifyflags |= f; }
|
||||
|
||||
@@ -965,12 +965,7 @@ namespace Game.Maps
|
||||
obj.ResetMap();
|
||||
|
||||
if (remove)
|
||||
{
|
||||
// if option set then object already saved at this moment
|
||||
if (!WorldConfig.GetBoolValue(WorldCfg.SaveRespawnTimeImmediately))
|
||||
obj.SaveRespawnTime();
|
||||
DeleteFromWorld(obj);
|
||||
}
|
||||
}
|
||||
|
||||
public void RemoveFromMap(Transport obj, bool remove)
|
||||
@@ -1002,12 +997,7 @@ namespace Game.Maps
|
||||
|
||||
obj.ResetMap();
|
||||
if (remove)
|
||||
{
|
||||
// if option set then object already saved at this moment
|
||||
if (!WorldConfig.GetBoolValue(WorldCfg.SaveRespawnTimeImmediately))
|
||||
obj.SaveRespawnTime();
|
||||
DeleteFromWorld(obj);
|
||||
}
|
||||
}
|
||||
|
||||
bool CheckGridIntegrity<T>(T obj, bool moved) where T : WorldObject
|
||||
|
||||
@@ -280,9 +280,6 @@ namespace Game.Maps
|
||||
if (obj.IsTypeId(TypeId.Corpse))
|
||||
continue;
|
||||
|
||||
// if option set then object already saved at this moment
|
||||
if (!WorldConfig.GetBoolValue(WorldCfg.SaveRespawnTimeImmediately))
|
||||
obj.SaveRespawnTime();
|
||||
//Some creatures may summon other temp summons in CleanupsBeforeDelete()
|
||||
//So we need this even after cleaner (maybe we can remove cleaner)
|
||||
//Example: Flame Leviathan Turret 33139 is summoned when a creature is deleted
|
||||
|
||||
@@ -651,7 +651,7 @@ namespace Game
|
||||
{
|
||||
// For dynamic spawns, save respawn time here
|
||||
if (!creature.GetRespawnCompatibilityMode())
|
||||
creature.SaveRespawnTime(0, false);
|
||||
creature.SaveRespawnTime();
|
||||
|
||||
creature.AddObjectToRemoveList();
|
||||
}
|
||||
@@ -673,7 +673,7 @@ namespace Game
|
||||
{
|
||||
// For dynamic spawns, save respawn time here
|
||||
if (!go.GetRespawnCompatibilityMode())
|
||||
go.SaveRespawnTime(0, false);
|
||||
go.SaveRespawnTime();
|
||||
|
||||
go.AddObjectToRemoveList();
|
||||
}
|
||||
|
||||
@@ -623,13 +623,6 @@ namespace Game
|
||||
Values[WorldCfg.MaxOverspeedPings] = 2;
|
||||
}
|
||||
|
||||
Values[WorldCfg.SaveRespawnTimeImmediately] = GetDefaultValue("SaveRespawnTimeImmediately", true);
|
||||
if (!(bool)Values[WorldCfg.SaveRespawnTimeImmediately])
|
||||
{
|
||||
Log.outWarn(LogFilter.ServerLoading, "SaveRespawnTimeImmediately triggers assertions when Disabled, overridden to Enabled");
|
||||
Values[WorldCfg.SaveRespawnTimeImmediately] = true;
|
||||
}
|
||||
|
||||
Values[WorldCfg.Weather] = GetDefaultValue("ActivateWeather", true);
|
||||
|
||||
Values[WorldCfg.DisableBreathing] = GetDefaultValue("DisableWaterBreath", (int)AccountTypes.Console);
|
||||
|
||||
@@ -262,14 +262,6 @@ RealmsStateUpdateDelay = 10
|
||||
|
||||
PlayerLimit = 0
|
||||
|
||||
#
|
||||
# SaveRespawnTimeImmediately
|
||||
# Description: Save respawn time for creatures at death and gameobjects at use/open.
|
||||
# Default: 1 - (Enabled, Save respawn time immediately)
|
||||
# 0 - (Disabled, Save respawn time at grid unloading)
|
||||
|
||||
SaveRespawnTimeImmediately = 1
|
||||
|
||||
#
|
||||
# MaxOverspeedPings
|
||||
# Description: Maximum overspeed ping count before character is disconnected.
|
||||
|
||||
Reference in New Issue
Block a user