mirror of
https://github.com/Alex-Rachel/TEngine.git
synced 2025-08-14 16:51:28 +00:00
[+] 接入ET8服务端
[+] 接入ET8服务端
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user