1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- using System;
- namespace ET.Server
- {
- [MessageHandler(SceneType.Gate)]
- public class C2G_LoginGateHandler: AMRpcHandler<C2G_LoginGate, G2C_LoginGate>
- {
- protected override async ETTask Run(Session session, C2G_LoginGate request, G2C_LoginGate response, Action reply)
- {
- Scene scene = session.DomainScene();
- long userId = scene.GetComponent<GateTokenInfoComponent>().Get(request.Token);
- if (userId <= 0)
- {
- Log.Debug($"Gate token 登陆超时");
- response.Error = ErrorCore.ERR_ConnectGateKeyError;
- response.Message = "Gate token 登陆超时";
- reply();
- session.Disconnect().Coroutine();
- return;
- }
- // 移除session自动超时组件
- session.RemoveComponent<SessionAcceptTimeoutComponent>();
- PlayerComponent playerComponent = scene.GetComponent<PlayerComponent>();
- Player player = playerComponent.AddChild<Player, long>(userId);
- playerComponent.Add(player);
- session.AddComponent<SessionPlayerComponent>().PlayerId = player.Id;
- session.AddComponent<MailBoxComponent, MailboxType>(MailboxType.GateSession);
- response.Player = new ET.Player()
- {
- id = "1",
- uid = "1",
- name = "nickname",
- level = 1,
- exp = 1,
- vip = 0,
- hp = 1000,
- mp = 0,
- fightPower = 5,
- gold = 66,
- diamond = 77,
- energy = 0,
- };
- reply();
- await ETTask.CompletedTask;
- }
- }
- }
|