[+] 接入ET8服务端

[+] 接入ET8服务端
This commit is contained in:
ALEXTANG
2023-07-13 12:23:48 +08:00
parent e0be062006
commit 336d4b2eb9
1316 changed files with 130657 additions and 626 deletions

View File

@@ -0,0 +1,46 @@
using System;
using System.Collections.Generic;
namespace ET.Server
{
[ActorMessageHandler(SceneType.RoomRoot)]
public class FrameMessageHandler: ActorMessageHandler<Scene, FrameMessage>
{
protected override async ETTask Run(Scene root, FrameMessage message)
{
Room room = root.GetComponent<Room>();
FrameBuffer frameBuffer = room.FrameBuffer;
if (message.Frame % (1000 / LSConstValue.UpdateInterval) == 0)
{
long nowFrameTime = room.FixedTimeCounter.FrameTime(message.Frame);
int diffTime = (int)(nowFrameTime - room.Fiber().TimeInfo.ServerFrameTime());
room.Root().GetComponent<ActorLocationSenderComponent>().Get(LocationType.GateSession).Send(message.PlayerId, new Room2C_AdjustUpdateTime() {DiffTime = diffTime});
}
if (message.Frame < room.AuthorityFrame) // 小于AuthorityFrame丢弃
{
Log.Warning($"FrameMessage < AuthorityFrame discard: {message}");
return;
}
if (message.Frame > room.AuthorityFrame + 10) // 大于AuthorityFrame + 10丢弃
{
Log.Warning($"FrameMessage > AuthorityFrame + 10 discard: {message}");
return;
}
OneFrameInputs oneFrameInputs = frameBuffer.FrameInputs(message.Frame);
if (oneFrameInputs == null)
{
Log.Error($"FrameMessageHandler get frame is null: {message.Frame}, max frame: {frameBuffer.MaxFrame}");
return;
}
oneFrameInputs.Inputs[message.PlayerId] = message.Input;
await ETTask.CompletedTask;
}
}
}