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:
hondacrx
2021-12-27 17:39:42 -05:00
parent 0f98aec1cd
commit 9b2d1e67b6
9 changed files with 15 additions and 59 deletions
@@ -1678,7 +1678,6 @@ namespace Framework.Constants
RespawnMinCheckIntervalMs,
RespawnRestartQuietTime,
RestrictedLfgChannel,
SaveRespawnTimeImmediately,
SessionAddDelay,
ShowBanInWorld,
ShowKickInWorld,
+5 -9
View File
@@ -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)
+8 -17
View File
@@ -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; }
-10
View File
@@ -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
-3
View File
@@ -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
+2 -2
View File
@@ -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();
}
-7
View File
@@ -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);
-8
View File
@@ -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.