Core/Misc: Implemented spawn tracking
Port From (https://github.com/TrinityCore/TrinityCore/commit/c9099c87567ead635811ef71b990ae7f19103509)
This commit is contained in:
@@ -994,6 +994,52 @@ namespace Game.Networking.Packets
|
||||
}
|
||||
}
|
||||
|
||||
class SpawnTrackingUpdate : ClientPacket
|
||||
{
|
||||
public List<SpawnTrackingRequestInfo> SpawnTrackingRequests = new();
|
||||
|
||||
public SpawnTrackingUpdate(WorldPacket packet) : base(packet) { }
|
||||
|
||||
public override void Read()
|
||||
{
|
||||
var spawnTrackingRequestCount = _worldPacket.ReadUInt32();
|
||||
for (var i = 0; i < spawnTrackingRequestCount; i++)
|
||||
{
|
||||
var spawnTrackingRequestInfo = new SpawnTrackingRequestInfo();
|
||||
spawnTrackingRequestInfo.Read(_worldPacket);
|
||||
SpawnTrackingRequests.Add(spawnTrackingRequestInfo);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class QuestPOIUpdateResponse : ServerPacket
|
||||
{
|
||||
public List<SpawnTrackingResponseInfo> SpawnTrackingResponses = new();
|
||||
|
||||
public QuestPOIUpdateResponse() : base(ServerOpcodes.QuestPoiUpdateResponse, ConnectionType.Instance) { }
|
||||
|
||||
public override void Write()
|
||||
{
|
||||
_worldPacket.WriteInt32(SpawnTrackingResponses.Count);
|
||||
|
||||
foreach (SpawnTrackingResponseInfo spawnTrackingResponseInfo in SpawnTrackingResponses)
|
||||
spawnTrackingResponseInfo.Write(_worldPacket);
|
||||
}
|
||||
}
|
||||
|
||||
class ForceSpawnTrackingUpdate : ServerPacket
|
||||
{
|
||||
public uint QuestID;
|
||||
|
||||
public ForceSpawnTrackingUpdate() : base(ServerOpcodes.ForceSpawnTrackingUpdate, ConnectionType.Instance) { }
|
||||
|
||||
public override void Write()
|
||||
{
|
||||
_worldPacket.WriteUInt32(QuestID);
|
||||
}
|
||||
}
|
||||
|
||||
//Structs
|
||||
public class QuestGiverInfo
|
||||
{
|
||||
@@ -1533,4 +1579,40 @@ namespace Game.Networking.Packets
|
||||
MawPower.Value.Write(data);
|
||||
}
|
||||
}
|
||||
|
||||
struct SpawnTrackingRequestInfo
|
||||
{
|
||||
public int ObjectTypeMask;
|
||||
public int ObjectID;
|
||||
public uint SpawnTrackingID;
|
||||
|
||||
public void Read(WorldPacket data)
|
||||
{
|
||||
ObjectTypeMask = data.ReadInt32();
|
||||
ObjectID = data.ReadInt32();
|
||||
SpawnTrackingID = data.ReadUInt32();
|
||||
}
|
||||
}
|
||||
|
||||
class SpawnTrackingResponseInfo
|
||||
{
|
||||
public uint SpawnTrackingID;
|
||||
public int ObjectID;
|
||||
public int PhaseID;
|
||||
public int PhaseGroupID;
|
||||
public int PhaseUseFlags;
|
||||
public bool Visible = true;
|
||||
|
||||
public void Write(WorldPacket data)
|
||||
{
|
||||
data.WriteUInt32(SpawnTrackingID);
|
||||
data.WriteInt32(ObjectID);
|
||||
data.WriteInt32(PhaseID);
|
||||
data.WriteInt32(PhaseGroupID);
|
||||
data.WriteInt32(PhaseUseFlags);
|
||||
|
||||
data.WriteBit(Visible);
|
||||
data.FlushBits();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user