using System; using ETModel; namespace ETHotfix { [MessageHandler(AppType.Gate)] public class C2G_LoginGateHandler : AMRpcHandler { protected override async void Run(Session session, C2G_LoginGate message, Action reply) { G2C_LoginGate response = new G2C_LoginGate(); try { string account = Game.Scene.GetComponent().Get(message.Key); if (account == null) { response.Error = ErrorCode.ERR_ConnectGateKeyError; response.Message = "Gate key验证失败!"; reply(response); return; } Player player = ComponentFactory.Create(account); Game.Scene.GetComponent().Add(player); session.AddComponent().Player = player; await session.AddComponent(ActorType.GateSession).AddLocation(); response.PlayerId = player.Id; reply(response); session.Send(new G2C_TestHotfixMessage() { Info = "recv hotfix message success" }); } catch (Exception e) { ReplyError(response, e, reply); } } } }