Core/Misc: Some refactoring
Port From (https://github.com/TrinityCore/TrinityCore/commit/94a79bac7a06aa0f931e9d651928de7eea0a8b5c)
This commit is contained in:
@@ -209,7 +209,7 @@ namespace Game.Chat
|
||||
if (data != null)
|
||||
{
|
||||
data.rotation.toEulerAnglesZYX(out float yaw, out float pitch, out float roll);
|
||||
handler.SendSysMessage(CypherStrings.SpawninfoSpawnidLocation, data.spawnId, data.spawnPoint.GetPositionX(), data.spawnPoint.GetPositionY(), data.spawnPoint.GetPositionZ());
|
||||
handler.SendSysMessage(CypherStrings.SpawninfoSpawnidLocation, data.SpawnId, data.SpawnPoint.GetPositionX(), data.SpawnPoint.GetPositionY(), data.SpawnPoint.GetPositionZ());
|
||||
handler.SendSysMessage(CypherStrings.SpawninfoRotation, yaw, pitch, roll);
|
||||
}
|
||||
|
||||
|
||||
@@ -645,9 +645,9 @@ namespace Game.Chat.Commands
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!GridDefines.IsValidMapCoord(goData.spawnPoint) || Global.ObjectMgr.IsTransportMap(goData.spawnPoint.GetMapId()))
|
||||
if (!GridDefines.IsValidMapCoord(goData.MapId, goData.SpawnPoint) || Global.ObjectMgr.IsTransportMap(goData.MapId))
|
||||
{
|
||||
handler.SendSysMessage(CypherStrings.InvalidTargetCoord, goData.spawnPoint.GetPositionX(), goData.spawnPoint.GetPositionY(), goData.spawnPoint.GetMapId());
|
||||
handler.SendSysMessage(CypherStrings.InvalidTargetCoord, goData.SpawnPoint.GetPositionX(), goData.SpawnPoint.GetPositionY(), goData.MapId);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -657,7 +657,7 @@ namespace Game.Chat.Commands
|
||||
else
|
||||
player.SaveRecallPosition(); // save only in non-flight case
|
||||
|
||||
player.TeleportTo(goData.spawnPoint);
|
||||
player.TeleportTo(new WorldLocation(goData.MapId, goData.SpawnPoint));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -580,31 +580,37 @@ namespace Game.Chat.Commands
|
||||
|
||||
uint zoneId = player.GetZoneId();
|
||||
string zoneName = GetZoneName(zoneId, locale);
|
||||
for (SpawnObjectType type = 0; type < SpawnObjectType.Max; type++)
|
||||
for (SpawnObjectType type = 0; type < SpawnObjectType.NumSpawnTypes; type++)
|
||||
{
|
||||
if (range != 0)
|
||||
handler.SendSysMessage(CypherStrings.ListRespawnsRange, type, range);
|
||||
else
|
||||
handler.SendSysMessage(CypherStrings.ListRespawnsZone, type, zoneName, zoneId);
|
||||
|
||||
handler.SendSysMessage(CypherStrings.ListRespawnsListheader);
|
||||
List<RespawnInfo> respawns = new();
|
||||
map.GetRespawnInfo(respawns, (SpawnObjectTypeMask)(1 << (int)type));
|
||||
foreach (RespawnInfo ri in respawns)
|
||||
{
|
||||
SpawnData data = Global.ObjectMgr.GetSpawnData(ri.type, ri.spawnId);
|
||||
SpawnMetadata data = Global.ObjectMgr.GetSpawnMetadata(ri.type, ri.spawnId);
|
||||
if (data == null)
|
||||
continue;
|
||||
|
||||
uint respawnZoneId = map.GetZoneId(PhasingHandler.EmptyPhaseShift, data.spawnPoint);
|
||||
if (range != 0)
|
||||
uint respawnZoneId = 0;
|
||||
SpawnData edata = data.ToSpawnData();
|
||||
if (edata != null)
|
||||
{
|
||||
if (!player.IsInDist(data.spawnPoint, range))
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (zoneId != respawnZoneId)
|
||||
continue;
|
||||
respawnZoneId = map.GetZoneId(PhasingHandler.EmptyPhaseShift, edata.SpawnPoint);
|
||||
if (range != 0)
|
||||
{
|
||||
if (!player.IsInDist(edata.SpawnPoint, range))
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (zoneId != respawnZoneId)
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
uint gridY = ri.gridId / MapConst.MaxGrids;
|
||||
@@ -652,28 +658,28 @@ namespace Game.Chat.Commands
|
||||
foreach (var pair in Global.ObjectMgr.GetAllCreatureData())
|
||||
{
|
||||
SpawnData data = pair.Value;
|
||||
if (data.spawnPoint.GetMapId() != mapId)
|
||||
if (data.MapId != mapId)
|
||||
continue;
|
||||
|
||||
CreatureTemplate cTemp = Global.ObjectMgr.GetCreatureTemplate(data.Id);
|
||||
if (cTemp == null)
|
||||
continue;
|
||||
|
||||
if (showAll || data.spawnPoint.IsInDist2d(player, 5000.0f))
|
||||
handler.SendSysMessage($"Type: {data.type} | SpawnId: {data.spawnId} | Entry: {data.Id} ({cTemp.Name}) | X: {data.spawnPoint.GetPositionX():3} | Y: {data.spawnPoint.GetPositionY():3} | Z: {data.spawnPoint.GetPositionZ():3}");
|
||||
if (showAll || data.SpawnPoint.IsInDist2d(player, 5000.0f))
|
||||
handler.SendSysMessage($"Type: {data.type} | SpawnId: {data.SpawnId} | Entry: {data.Id} ({cTemp.Name}) | X: {data.SpawnPoint.GetPositionX():3} | Y: {data.SpawnPoint.GetPositionY():3} | Z: {data.SpawnPoint.GetPositionZ():3}");
|
||||
}
|
||||
foreach (var pair in Global.ObjectMgr.GetAllGameObjectData())
|
||||
{
|
||||
SpawnData data = pair.Value;
|
||||
if (data.spawnPoint.GetMapId() != mapId)
|
||||
if (data.MapId != mapId)
|
||||
continue;
|
||||
|
||||
GameObjectTemplate goTemp = Global.ObjectMgr.GetGameObjectTemplate(data.Id);
|
||||
if (goTemp == null)
|
||||
continue;
|
||||
|
||||
if (showAll || data.spawnPoint.IsInDist2d(player, 5000.0f))
|
||||
handler.SendSysMessage($"Type: {data.type} | SpawnId: {data.spawnId} | Entry: {data.Id} ({goTemp.name}) | X: {data.spawnPoint.GetPositionX():3} | Y: {data.spawnPoint.GetPositionY():3} | Z: {data.spawnPoint.GetPositionZ():3}");
|
||||
if (showAll || data.SpawnPoint.IsInDist2d(player, 5000.0f))
|
||||
handler.SendSysMessage($"Type: {data.type} | SpawnId: {data.SpawnId} | Entry: {data.Id} ({goTemp.name}) | X: {data.SpawnPoint.GetPositionX():3} | Y: {data.SpawnPoint.GetPositionY():3} | Z: {data.SpawnPoint.GetPositionZ():3}");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -172,7 +172,7 @@ namespace Game.Chat
|
||||
|
||||
CreatureData data = Global.ObjectMgr.GetCreatureData(target.GetSpawnId());
|
||||
if (data != null)
|
||||
handler.SendSysMessage(CypherStrings.NpcinfoPhases, data.phaseId, data.phaseGroup);
|
||||
handler.SendSysMessage(CypherStrings.NpcinfoPhases, data.PhaseId, data.PhaseGroup);
|
||||
|
||||
PhasingHandler.PrintToChat(handler, target.GetPhaseShift());
|
||||
|
||||
@@ -233,14 +233,14 @@ namespace Game.Chat
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player.GetMapId() != data.spawnPoint.GetMapId())
|
||||
if (player.GetMapId() != data.MapId)
|
||||
{
|
||||
handler.SendSysMessage(CypherStrings.CommandCreatureatsamemap, lowguid);
|
||||
return false;
|
||||
}
|
||||
|
||||
Global.ObjectMgr.RemoveCreatureFromGrid(lowguid, data);
|
||||
data.spawnPoint.Relocate(player);
|
||||
data.SpawnPoint.Relocate(player);
|
||||
Global.ObjectMgr.AddCreatureToGrid(lowguid, data);
|
||||
|
||||
// update position in DB
|
||||
@@ -659,9 +659,9 @@ namespace Game.Chat
|
||||
{
|
||||
ulong guid = map.GenerateLowGuid(HighGuid.Creature);
|
||||
CreatureData data = Global.ObjectMgr.NewOrExistCreatureData(guid);
|
||||
data.spawnId = guid;
|
||||
data.SpawnId = guid;
|
||||
data.Id = id;
|
||||
data.spawnPoint.Relocate(chr.GetTransOffsetX(), chr.GetTransOffsetY(), chr.GetTransOffsetZ(), chr.GetTransOffsetO());
|
||||
data.SpawnPoint.Relocate(chr.GetTransOffsetX(), chr.GetTransOffsetY(), chr.GetTransOffsetZ(), chr.GetTransOffsetO());
|
||||
data.spawnGroupData = new();
|
||||
|
||||
Creature creaturePassenger = trans.CreateNPCPassenger(guid, data);
|
||||
|
||||
Reference in New Issue
Block a user