/** 引导到微信 */ import JsbSystem from "../../../mk/system/JsbSystem"; import { DataEventId } from "../../data/GameData"; import { GuideState } from "../../data/module/GuideToWxData"; const { ccclass, property } = cc._decorator; @ccclass export default class GuideToWx extends cc.Component { @property(cc.Sprite) sp_money: cc.Sprite = null; @property(cc.Sprite) sp_getMoney: cc.Sprite = null; @property(cc.Sprite) sp_fill: cc.Sprite = null; @property(cc.Node) node_target: cc.Node = null; @property(cc.Node) hand: cc.Node = null; @property(cc.VideoPlayer) videoPlayer: cc.VideoPlayer = null; @property(cc.Node) nodeStateArr: cc.Node[] = []; /** 进度条进度 */ private fillPer = 0; /** 根据金额获取index */ private moneyIndex = 0; private checkCloseGuide = false; private lastTimeSpan = -1; async start() { // this.node_target.opacity = 0; // this.hand.active = false; this.moneyIndex = this.getIndexByMoney(); let path = 'module/guideToWx/texture/money_' + this.moneyIndex; this.sp_money.spriteFrame = await mk.loader.load(path, cc.SpriteFrame); // let response = await mk.http.sendData('getAddServiceState', {}); // mk.console.logSingle('GuideToWx getAddServiceState ', response); // if (response.errcode != 0) { // return // } // console.log("state >> ", response.data.state) // switch (response.data.state) { // case 0: // let state = mk.storage.getStorage('GuideState'); // if (!state) { // state = '0'; // } // gData.guideToWxData.guideState = parseInt(state); // break; // case 1: // gData.guideToWxData.guideState = GuideState.canGetMoney; // let stateN = mk.storage.getStorage('canGetMoney'); // if (!stateN) { // mk.storage.setStorage('canGetMoney', 1); // mk.data.sendDataEvent(DataEventId.guideToWx, "二维码"); // } // break; // case 2: // gData.guideToWxData.guideState = GuideState.gotMoney; // break; // } // await mk.time.WaitForSeconds(0.3); // this.setState(); this.videoPlayer.node.on("completed", this.onCompleted, this); if (!mk.guide.isGuiding()) { this.playVideo(); } else { this.checkCloseGuide = true; } } playVideo() { this.videoPlayer.node.active = true; mk.audio.setPauseMusic(); this.videoPlayer.play(); } update() { if (this.checkCloseGuide) { if (!mk.guide.isGuiding()) { this.checkCloseGuide = false; this.playVideo(); } } // if (this.lastTimeSpan != -1) { // let pass = Date.now() - this.lastTimeSpan; // mk.console.logSingle('GuideToWx pass ', pass); // if (pass >= 10000) { // gData.guideToWxData.guideState = 3; // mk.storage.setStorage('GuideState', gData.guideToWxData.guideState); // this.setState(); // } // this.lastTimeSpan = -1; // } } async setState() { this.nodeStateArr.forEach(element => { element.active = true; }); this.node_target.opacity = 0; this.node_target.active = true; let nodeState: cc.Node = null; let path = ''; switch (gData.guideToWxData.guideState) { case GuideState.none: this.fillPer = 0; path = 'module/guideToWx/texture/addService'; nodeState = this.nodeStateArr[0]; break; case GuideState.sendApply: this.fillPer = 0.33; path = 'module/guideToWx/texture/addService'; nodeState = this.nodeStateArr[1]; break; case GuideState.waitForPass: this.fillPer = 0.66; path = 'module/guideToWx/texture/addService'; nodeState = this.nodeStateArr[2]; break; case GuideState.canGetMoney: this.fillPer = 1; path = 'module/guideToWx/texture/get_' + this.moneyIndex; nodeState = this.nodeStateArr[3]; break; case GuideState.gotMoney: this.fillPer = 1; path = 'module/guideToWx/texture/getSuccess'; this.node_target.active = false; this.nodeStateArr[3].active = true; break; } this.sp_getMoney.spriteFrame = await mk.loader.load(path, cc.SpriteFrame); cc.tween(this.sp_fill) .to(0.5, { fillRange: this.fillPer }) .start(); if (nodeState) { this.node_target.x = nodeState.x; cc.tween(nodeState).delay(0.5) .to(0.25, { scale: 1.2 }) .to(0.25, { scale: 1 }) .call(() => { nodeState.active = false; this.hand.active = true; }) .start(); } cc.tween(this.node_target) .delay(1.5) .to(0.5, { opacity: 255 }) .start(); } getIndexByMoney() { let index = 0; switch (parseFloat(gData.guideToWxData.money)) { case 0.3: index = 0; break; case 0.5: index = 1; break; case 0.8: index = 2; break; case 1: index = 3; break; } return index; } async clickService() { mk.audio.playEffect('button'); JsbSystem.WXLaunchMiniProgram(gData.guideToWxData.ghId, gData.guideToWxData.ghIdPath); let value = mk.storage.getStorage('addServer') if (!value) { mk.storage.setStorage('addServer', 1); mk.data.sendDataEvent(DataEventId.guideToWx, `添加客服`); mk.data.sendXYEvent('addService', '添加客服'); } return if (gData.guideToWxData.guideState == GuideState.none || gData.guideToWxData.guideState == GuideState.sendApply || gData.guideToWxData.guideState == GuideState.waitForPass) { this.lastTimeSpan = Date.now(); mk.console.logSingle('GuideToWx lastTimeSpan ', this.lastTimeSpan); JsbSystem.WXLaunchMiniProgram(gData.guideToWxData.ghId, gData.guideToWxData.ghIdPath); let value = mk.storage.getStorage('addServer') if (!value) { mk.storage.setStorage('addServer', 1); mk.data.sendDataEvent(DataEventId.guideToWx, `添加客服`); mk.data.sendXYEvent('addService', '添加客服'); } } else if (gData.guideToWxData.guideState == GuideState.canGetMoney) { let response = await mk.http.sendData('customerServiceCash', {}); mk.console.logSingle('GuideToWx customerServiceCash ', response); if (response.errcode != 0) { if (response.data.count) { gData.tipPanelData.openCashFailTip(response.data.count); } else { mk.tip.pop('提现排队中,多看视频优先提现'); } return; } mk.data.sendDataEvent(DataEventId.guideToWx, `领取${gData.guideToWxData.money}元`); gData.receiptNotice.receip_rmb = parseFloat(gData.guideToWxData.money); mk.ui.openPanel('module/receiptNotice/receiptNotice'); gData.guideToWxData.guideState = GuideState.gotMoney; this.setState(); } else if (gData.guideToWxData.guideState == GuideState.gotMoney) { mk.tip.pop('您已经领取成功!', 1); } } clickClose() { mk.audio.playEffect('button'); mk.ui.closePanel(this.node.name); } onDisable() { mk.audio.setResumeMusic(); this.videoPlayer.node.off("completed", this.onCompleted, this); } onCompleted() { this.videoPlayer.play(); } }