using Fort23.Core; using NetCore.Protocol.MemoryPack; using Protocol.Protocol.MemoryPack.MemoryMessage; namespace GameLogic.NetworkClient { public static class GameNetworkSendAssemble { public static async CTask SendToServer(MemoryRequest memoryRequest, System.Action callBack) { MemoryResponse memoryResponse = null; CTask task = CTask.Create(false); SendRequestBuffer sendRequestBuffer = new SendRequestBuffer(); sendRequestBuffer.MemoryRequest = memoryRequest; sendRequestBuffer.callBack = delegate(MemoryResponse response) { memoryResponse = response; task.SetResult(); callBack?.Invoke(response); }; GameNetworkClient.Instance.SendToServer(sendRequestBuffer); await task; return memoryResponse; } /// /// 登录 /// public static async CTask SendLogin(string account, string password) { MemoryRequest memoryRequest = new MemoryRequest(); memoryRequest.GameSendType = GameSendType.Login; memoryRequest.LoginRequest = new LoginRequest(); memoryRequest.LoginRequest.account = account; memoryRequest.LoginRequest.password = password; return await SendToServer(memoryRequest, null); } } }