LoginHelper.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using System;
  2. namespace ET
  3. {
  4. public static class LoginHelper
  5. {
  6. public static async ETVoid Login(Scene zoneScene, string address, string account)
  7. {
  8. try
  9. {
  10. // 创建一个ETModel层的Session
  11. R2C_Login r2CLogin;
  12. using (Session session = zoneScene.GetComponent<NetKcpComponent>().Create(NetworkHelper.ToIPEndPoint(address)))
  13. {
  14. r2CLogin = (R2C_Login) await session.Call(new C2R_Login() { Account = account, Password = "111111" });
  15. }
  16. // 创建一个gate Session,并且保存到SessionComponent中
  17. Session gateSession = zoneScene.GetComponent<NetKcpComponent>().Create(NetworkHelper.ToIPEndPoint(r2CLogin.Address));
  18. zoneScene.AddComponent<SessionComponent>().Session = gateSession;
  19. G2C_LoginGate g2CLoginGate = (G2C_LoginGate)await gateSession.Call(
  20. new C2G_LoginGate() { Key = r2CLogin.Key, GateId = r2CLogin.GateId});
  21. Log.Info("登陆gate成功!");
  22. await Game.EventSystem.Publish(new EventType.LoginFinish() {ZoneScene = zoneScene});
  23. }
  24. catch (Exception e)
  25. {
  26. Log.Error(e);
  27. }
  28. }
  29. }
  30. }