import gameToast from "../Network/gameToast" import utils from "../Network/netUtils"; cc.Class({ extends: cc.Component, properties: { }, // LIFE-CYCLE CALLBACKS: onLoad() { cc.view.enableAutoFullScreen(false); cc.game.addPersistRootNode(this.node); let _self = this; async function dappInit() { let dapp = GlobalD.dapp = new Dapp() // gameToast.getInstance().show("loding...",5,()=>{ // console.log("finish toast!"); // },_self); try { const isTestNet = window['isTestNet']; console.log('-----------开始初始化dapp!-----------'); console.log('isTestNet:' + window['isTestNet']); console.log('host: ' + window['dappHost']); console.log('dappWss: ' + window['dappWss']); console.log('-----------以上是相关设置-----------'); await dapp.init(isTestNet) console.log("用户当前钱包地址:" + dapp.getAddress()) // 初始化成功,得到用户当前钱包地址 dapp.onAccountChanged((account) => { console.log('当前钱包地址发生变化', account.address) // 用户钱包地址即为登录账户,使用过程中用户可以切换钱包地址,即游戏要进行当前地址退出登录,新地址重新登录的操作 // this.address = account.address //跳回login 页面 cc.director.loadScene('Login', function () { //重新初始化信息 console.log('onAccountChanged Login'); dappInit(); }.bind(this)); }) dapp.onNetworkChanged((node) => { console.log('当前钱包节点发生变化', node) // 切换网络,一般可以不处理,实际用户端一般不会切换 //跳回login 页面 cc.director.loadScene('Login', function () { //重新初始化信息 console.log('onNetworkChanged Login'); dappInit(); }.bind(this)); }) // 获取用户信息 const { err, res } = await dapp.userInfo() if (err === null) { // 返回成功,见下面消息体 console.log(res) GlobalD.Dapp.UserInfo = res; // GameNet.getInstance().init(res.id, (data) => { // console.log('GameNet:' + data); // }, _self); const dappLoginData = await dapp.getLoginSign(); GlobalD.Dapp.signData = dappLoginData; // console.log("dappLoginData:"+JSON.stringify(dappLoginData)); // let _temp = { // "address": dappLoginData.address, // 签名地址 // "id": dappLoginData.id, // 所属账户ID // "signature": dappLoginData.signature, // 签名文本 // "timestamp": dappLoginData.timestamp // 签名时间戳,需要在1分钟内完成验签,否则本次签名失效 // }; // let _temp = { // "address": "TDw6xsVnDJWsdRBLkWAwXbv4hE2X2JQs5z", // 签名地址 // "id": 1, // 所属账户ID // "signature": "0x09fda37fcad4a9bb7b72f652323881a33847be3a44e4403c7a576b3383df30ec6e5e256f28fbdbac5eb0642f304f331783f36d70b5e6fd576818bc42e14624191c", // 签名文本 // "timestamp": 1641279989 // 签名时间戳,需要在1分钟内完成验签,否则本次签名失效 // }; utils.post(utils.api.loginTokenAndVerification, dappLoginData, (res, value) => { // console.log("loginTokenAndVerification========>", _temp); console.log(res, value); if (value.code == 0) { /** 登录成功获取token */ utils.setToken(value.data.token); /** 登录时候会获取一次游戏端的 userInfo ,后续可以通过userInfo接口获取 */ GlobalD.UserInfo = value.data.userInfo; /** 推送信息 */ utils.get(utils.api.playerPullInfo, {}, (res, playerPullInfoTemp) => { let _playerData = JSON.parse(playerPullInfoTemp.data.playerData); //记录读取的数据到内存里面 // 正常游戏 userData.readData = _playerData; //跳转游戏 cc.find("Canvas").getComponent("Login").loginButton(); utils.init(GlobalD.Dapp.UserInfo.id, (data) => { console.log('utils ws:' + data); }, _self); }) //需要提前拉取一下土地配置,用于初始化地图土地 utils.get(utils.api.landConfig, {}, (res, value) => { if(0 === value.code){ GlobalD.ConfigLand = value.data; }else{ console.warn("未能读取到config土地?"); } }) utils.get(utils.api.userLandList, {}, (res, value) => { if(0 === value.code){ GlobalD.UserLeaseLand = value.data; }else{ console.warn("读取到用户的土地错误?"); } }) } else { console.log(res, value); } }) // utils.get(utils.api.loginToken, { loginId: GlobalD.Dapp.UserInfo.id }, (res, value) => { // if (value.code == 0) { // /** 登录成功获取token */ // utils.setToken(value.data.token); // /** 推送信息 */ // utils.get(utils.api.playerPullInfo, {}, (res, playerPullInfoTemp) => { // let _playerData = JSON.parse(playerPullInfoTemp.data.playerData); // //记录读取的数据到内存里面 // // 正常游戏 // userData.readData = _playerData; // //跳转游戏 // cc.find("Canvas").getComponent("Login").loginButton(); // // GameNet.getInstance().init(GlobalD.Dapp.UserInfo.id, (data) => { // // console.log('GameNet:' + data); // // }, _self); // utils.init(GlobalD.Dapp.UserInfo.id, (data) => { // console.log('utils ws:' + data); // }, _self); // }) // } else { // console.log(res, value); // } // }) } else { //TODO 服务错误 console.log("dappInit userInfo 错误"); console.log(err) } // try { // const data = await dapp.getLoginSign() // console.log(data) // // this.signData = JSON.stringify(data) // } catch (err) { // console.log(err) // alert('为了避免游戏资产被人乱用,还是校验下身份再进入游戏吧') // } } catch (err) { console.log('catch到的错误:' + err) // 初始化失败,运行环境不是钱包环境 } } //初始化调用 dappInit; // dappInit(); utils.get(utils.api.loginToken, { loginId: 4 }, (res, value) => { console.log(res, value); if (value.code == 0) { /** 登录成功获取token */ utils.setToken(value.data.token); /** 登录时候会获取一次游戏端的 userInfo ,后续可以通过userInfo接口获取 */ GlobalD.UserInfo = value.data.userInfo; /** 推送信息 */ utils.get(utils.api.playerPullInfo, {}, (res, playerPullInfoTemp) => { let _playerData = JSON.parse(playerPullInfoTemp.data.playerData); //记录读取的数据到内存里面 // 正常游戏 userData.readData = _playerData; //跳转游戏 cc.find("Canvas").getComponent("Login").loginButton(); utils.init(4, (data) => { console.log('utils ws:' + data); }, _self); }) //需要提前拉取一下土地配置,用于初始化地图土地 utils.get(utils.api.landConfig, {}, (res, value) => { if(0 === value.code){ GlobalD.ConfigLand = value.data; }else{ console.warn("未能读取到config土地?"); } }) utils.get(utils.api.userLandList, {}, (res, value) => { if(0 === value.code){ GlobalD.UserLeaseLand = value.data; }else{ console.warn("读取到用户的土地错误?"); } }) } else { console.log(res, value); } }) }, start() { }, // update (dt) {}, });