12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- using System;
- namespace ET.Server
- {
-
-
-
- [MessageHandler(SceneType.Game)]
- public class C2G_LoginGameHandler : AMRpcHandler<C2G_LoginGame, G2C_LoginGame>
- {
- protected override async ETTask Run(Session session, C2G_LoginGame request, G2C_LoginGame response, Action reply)
- {
- if (session.DomainScene().SceneType != SceneType.Game)
- {
- Log.Error($"Game 请求的Scene错误...SceneType={session.DomainScene().SceneType}");
- session.Dispose();
- return;
- }
-
- Scene scene = session.DomainScene();
- string account = scene.GetComponent<GameSessionKeyComponent>().Get(request.Key);
- if (account == null)
- {
- response.Error = ErrorCore.ERR_ConnectGateKeyError;
- response.Message = "Game key验证失败!";
- reply();
- return;
- }
-
-
- session.RemoveComponent<SessionAcceptTimeoutComponent>();
- GamePlayerComponent gamePlayerComponent = scene.GetComponent<GamePlayerComponent>();
- Player player = gamePlayerComponent.AddChild<Player, string>(account);
-
-
- session.AddComponent<SessionPlayerComponent>().PlayerId = player.Id;
- session.AddComponent<MailBoxComponent, MailboxType>(MailboxType.GameSession);
- response.Player = PlayerHelper.PlayerToProto(player);
- response.IsInRoom = player.RoomID > 0;
- reply();
- await ETTask.CompletedTask;
- }
- }
- }
|