LoginModel.ts 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. import { gameMethod } from "../../../common/gameMethod";
  2. import Config from "../../../Config";
  3. import GameController from "../../../GameController";
  4. import EventMng from "../../../manager/EventMng";
  5. import { ReqPlatLogin } from "../../../shared/plat/PtlPlatLogin";
  6. import { ReqPlayerLogin } from "../../../shared/player/PtlPlayerLogin";
  7. import ThinkingDataMgr from "../../../utils/ThinkingDataMgr";
  8. import { GameEvent, LoadEvent, NetworkEvent } from "../../const/EventConst";
  9. import { DayTipsKey, GameErrCode, PlatformType, ReportRoleType } from "../../const/TypeConst";
  10. import GameDataCenter from "../../GameDataCenter";
  11. import { LoginModelData, PlayerInfo } from "./LoginModelData";
  12. export default class LoginModel extends LoginModelData {
  13. KEY_ACCOUNT = 'login';
  14. KEY_POLICY = 'policy_agree';
  15. KEY_LAST_LOGIN_TIME = 'KEY_LAST_LOGIN_TIME';
  16. uuid: string
  17. // 设定进入游戏的服务器ID
  18. enterGameSid: string = ""
  19. constructor() {
  20. super('login');
  21. this.enterGameSid = ""
  22. }
  23. //隐私协议政策
  24. savePolicy(val: boolean) {
  25. this.Set(this.KEY_POLICY, val ? "1" : "0")
  26. this.Save()
  27. }
  28. getPolicy(): boolean {
  29. let result = this.Query(this.KEY_POLICY, '1');
  30. if (Config.policy == "0") {
  31. result = this.Query(this.KEY_POLICY, '0');
  32. }
  33. return result == "1"
  34. }
  35. /**缓存账号到本地 */
  36. saveAccount(account: string) {
  37. this.Set(this.KEY_ACCOUNT, account);
  38. this.Save();
  39. }
  40. /**从本地读取缓存账号 */
  41. getAccount() {
  42. return this.Query(this.KEY_ACCOUNT, '');
  43. }
  44. // 平台登录
  45. async sendPlatLoginGame(param: ReqPlatLogin) {
  46. let ret = await GameDataCenter.loginServer.ReqApi("plat/PlatLogin", param);
  47. if (ret.isSucc) {
  48. EventMng.emit(LoadEvent.LOAD_PROGRESS, 0.5, "login")
  49. GameDataCenter.plat.instance.openId = ret.res.openId;
  50. GameDataCenter.plat.instance.loginParams = [ret.res.token]
  51. GameDataCenter.plat.instance.login()
  52. } else {
  53. if (gameMethod.isEmpty(ret.err) || gameMethod.isEmpty(ret.err.message)) {
  54. GameDataCenter.plat.showErrDialog(GameErrCode.errGameLoginPlayer)
  55. EventMng.emit(GameEvent.LOGIN_ACCOUNT_FAIL);
  56. }
  57. }
  58. }
  59. // 账号登录
  60. async sendLoginGame(param: ReqPlayerLogin) {
  61. let ret = await GameDataCenter.loginServer.ReqApi("player/PlayerLogin", param);
  62. if (ret.isSucc) {
  63. CC_PREVIEW && console.log("玩家登录成功", ret);
  64. this.playerInfo = ret.res as PlayerInfo
  65. GameDataCenter.gameServer.Init(ret.res.wsUrl);
  66. await GameDataCenter.gameServer.Connect();
  67. EventMng.emit(GameEvent.LOGIN_ACCOUNT_SUCC);
  68. EventMng.emit(NetworkEvent.NET_MSG_REGISTER);
  69. } else {
  70. if (gameMethod.isEmpty(ret.err) || gameMethod.isEmpty(ret.err.message)) {
  71. GameDataCenter.plat.showErrDialog(GameErrCode.errGameLoginPlayer)
  72. EventMng.emit(GameEvent.LOGIN_ACCOUNT_FAIL);
  73. }
  74. }
  75. }
  76. // 点击进入游戏按钮,并进入游戏
  77. async sendEnterGame(sid: string) {
  78. let ret = await GameDataCenter.gameServer.ReqApi("user/UserLogin", {
  79. uid: this.playerInfo.uid,
  80. sid: sid,
  81. token: this.playerInfo.token
  82. });
  83. if (ret.isSucc) {
  84. GameDataCenter.user.setUserInfo(ret.res);
  85. GameController.network.stopRequest = false
  86. ThinkingDataMgr.TDLogin(this.uuid);//数数数据上传
  87. if (ret.res && ret.res.regtime == ret.res.lastlogin) {
  88. GameDataCenter.plat.instance.reportRole(ReportRoleType.create)
  89. }
  90. GameDataCenter.plat.instance.reportRole(ReportRoleType.online)
  91. EventMng.emit(GameEvent.LOGIN_USER_SUCC);
  92. // GameDataCenter.zhaocai.upRedState()
  93. //电魂角色上报
  94. if (window['dhSDK']) {
  95. window['dhSDK'].uploadRoleInfo({
  96. type: "LOGIN_GAME", // 登录游戏服时传LOGIN_GAME,创角时传CREATE_ROLE,升级时传LEVEL_UP,充值成功时传PAY_SUCCESS
  97. areaId: parseInt(GameDataCenter.user.userInfo?.sid), // 游戏大区ID,若游戏无大区概念,可不填,默认值为 1,表示初始大区编号
  98. areaName: this.playerInfo.qufuList[GameDataCenter.user.userInfo?.sid].name, // 游戏大区名称
  99. roleId: GameDataCenter.user.uuid, // 角色ID,若游戏无角色概念,可不填,默认值同 accountId 账号ID
  100. roleName: GameDataCenter.user.userInfo?.name, // 角色名
  101. roleLevel: GameDataCenter.user.userInfo?.level, // 角色等级,若游戏无角色及等级概念,可填关卡等级或不填,默认值为 1
  102. roleVipLevel: 1, // 角色VIP等级
  103. }, (params: any) => {
  104. console.log(params);
  105. });
  106. }
  107. } else {
  108. // if (gameMethod.isEmpty(ret.err) || gameMethod.isEmpty(ret.err.message)) {
  109. // GameDataCenter.plat.showErrDialog(GameErrCode.errGameLoginUser)
  110. // EventMng.emit(GameEvent.LOGIN_USER_FAIL);
  111. // }
  112. }
  113. }
  114. }