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,67 @@
|
||||
using System;
|
||||
|
||||
namespace ET.Client
|
||||
{
|
||||
[EntitySystemOf(typeof(LSReplayUpdater))]
|
||||
[FriendOf(typeof(LSReplayUpdater))]
|
||||
public static partial class LSReplayUpdaterSystem
|
||||
{
|
||||
[EntitySystem]
|
||||
private static void Awake(this LSReplayUpdater self)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
[EntitySystem]
|
||||
private static void Update(this LSReplayUpdater self)
|
||||
{
|
||||
Room room = self.GetParent<Room>();
|
||||
Fiber fiber = self.Fiber();
|
||||
long timeNow = fiber.TimeInfo.ServerNow();
|
||||
|
||||
int i = 0;
|
||||
while (true)
|
||||
{
|
||||
if (room.AuthorityFrame + 1 >= room.Replay.FrameInputs.Count)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
if (timeNow < room.FixedTimeCounter.FrameTime(room.AuthorityFrame + 1))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
++room.AuthorityFrame;
|
||||
|
||||
OneFrameInputs oneFrameInputs = room.Replay.FrameInputs[room.AuthorityFrame];
|
||||
|
||||
room.Update(oneFrameInputs);
|
||||
room.SpeedMultiply = ++i;
|
||||
|
||||
long timeNow2 = fiber.TimeInfo.ServerNow();
|
||||
if (timeNow2 - timeNow > 5)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void ChangeReplaySpeed(this LSReplayUpdater self)
|
||||
{
|
||||
Room room = self.Room();
|
||||
LSReplayUpdater lsReplayUpdater = room.GetComponent<LSReplayUpdater>();
|
||||
if (lsReplayUpdater.ReplaySpeed == 8)
|
||||
{
|
||||
lsReplayUpdater.ReplaySpeed = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
lsReplayUpdater.ReplaySpeed *= 2;
|
||||
}
|
||||
|
||||
int updateInterval = LSConstValue.UpdateInterval / lsReplayUpdater.ReplaySpeed;
|
||||
room.FixedTimeCounter.ChangeInterval(updateInterval, room.AuthorityFrame);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user