21 lines
922 B
C#
21 lines
922 B
C#
namespace ET.Server
|
|
{
|
|
[MessageHandler(SceneType.RoomRoot)]
|
|
public class C2Room_CheckHashHandler: MessageHandler<Scene, C2Room_CheckHash>
|
|
{
|
|
protected override async ETTask Run(Scene root, C2Room_CheckHash message)
|
|
{
|
|
Room room = root.GetComponent<Room>();
|
|
long hash = room.FrameBuffer.GetHash(message.Frame);
|
|
if (message.Hash != hash)
|
|
{
|
|
byte[] bytes = room.FrameBuffer.Snapshot(message.Frame).ToArray();
|
|
Room2C_CheckHashFail room2CCheckHashFail = Room2C_CheckHashFail.Create();
|
|
room2CCheckHashFail.Frame = message.Frame;
|
|
room2CCheckHashFail.LSWorldBytes = bytes;
|
|
room.Root().GetComponent<MessageLocationSenderComponent>().Get(LocationType.GateSession).Send(message.PlayerId, room2CCheckHashFail);
|
|
}
|
|
await ETTask.CompletedTask;
|
|
}
|
|
}
|
|
} |