修复主从交互bug

This commit is contained in:
DESKTOP-5RP3AKU\Jisol
2024-09-23 03:50:27 +08:00
parent ca64b708ac
commit b65b860b98
55 changed files with 233 additions and 119 deletions

View File

@@ -74,7 +74,7 @@ namespace AppGame.Systems
private void OnNSyncStateDataUpdate(byte[] data)
{
var info = JNStateItemData.Parser.ParseFrom(data);
App.Game.AddState(info);
App.Game.SyncState(info,true,false);
}
@@ -92,7 +92,7 @@ namespace AppGame.Systems
//生效全局回调
allData.Data.Data.ForEach(child =>
{
App.Game.AddState(child);
App.Game.SyncState(child,true,false);
});
}

View File

@@ -4,6 +4,7 @@ using System.Threading.Tasks;
using AppGame.Sync;
using Cysharp.Threading.Tasks;
using DotRecast.Core.Collections;
using Game.Logic.System;
using Google.Protobuf;
using JNGame.Network;
using JNGame.Sync.State.Tile;
@@ -31,6 +32,7 @@ namespace AppGame.Systems.CServer
AddListener((int)NActionEnum.NSyncTileInput,OnNSyncTileInput);
AddListener((int)NActionEnum.NSyncTileAllUpdate,OnNSyncTileAllUpdate);
AddListener((int)NActionEnum.NSyncTileGetTileInfo,OnNSyncTileGetTileInfo);
AddListener((int)NActionEnum.LocalClientDisconnect,OnLocalClientDisconnect);
OnInit_Game();
@@ -38,6 +40,7 @@ namespace AppGame.Systems.CServer
await base.OnInit();
}
public override void OnClose()
{
isInit = false;
@@ -165,5 +168,23 @@ namespace AppGame.Systems.CServer
}
/// <summary>
/// 有客户端断开连接
/// </summary>
private void OnLocalClientDisconnect(JNServerParam args)
{
if (App.Game.Server is null) return;
//只有绑定过ID 的客户端才可以执行操作
if (!ids.ContainsKey(args.Client)) return;
App.Game.Server.GetSystems<DGBasisSystem>().ForEach(child =>
{
child.OnPlayerExitServer(ids[args.Client]);
});
}
}
}

View File

@@ -74,7 +74,7 @@ namespace AppGame.Systems
private void OnNSyncStateDataUpdate(byte[] data)
{
var info = JNStateItemData.Parser.ParseFrom(data);
App.Game.AddState(info);
App.Game.SyncState(info,false,true);
}
/// <summary>
@@ -91,7 +91,7 @@ namespace AppGame.Systems
//生效全局状态
allData.Data.Data.ForEach(child =>
{
App.Game.AddState(child);
App.Game.SyncState(child,false,true);
});
}