// Learn TypeScript: // - https://docs.cocos.com/creator/manual/en/scripting/typescript.html // Learn Attribute: // - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html // Learn life-cycle callbacks: // - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html import GameManager from "./GameManager"; import MapConroler from "./Map"; import NumberToImage from "./NumberToImage"; import { MiniGameManager } from "./Sdk/MiniGameManager"; import { MiniGameSdk } from "./Sdk/MiniGameSdk"; import { LQCollideSystem } from "./lq_collide_system/lq_collide_system"; import AudioManager from "./module/Music/AudioManager"; import Utils from "./module/Pay/Utils"; const { ccclass, property } = cc._decorator; @ccclass export default class JiaZai extends cc.Component { // 缓存 shop 预制体 删除 // private static cachedShopPrefab: cc.Prefab | null = null; // 缓存 shop 节点 删除 // private shopNode: cc.Node | null = null; // 缓存 reward 预制体 private static cachedRewardPrefab: cc.Prefab | null = null; // 缓存 reward 奖励窗口 节点 private RewardNode: cc.Node | null = null; //缓存月卡 //// private static cachedMonthlyCardPrefab: cc.Prefab | null = null; // 缓存月卡节点 //// private monthlyCardNode: cc.Node | null = null; // 缓存 预制体 private static cachedActionPrefab: cc.Prefab | null = null; // 缓存 新手活动节点 节点 //// private actionpNode: cc.Node | null = null; private static cachedAvatarPrefab: cc.Prefab | null = null; private AvatarNode: cc.Node | null = null; private static cachedDailyQuestsPrefab: cc.Prefab | null = null; private dailyQuestsNode: cc.Node | null = null; private static cachedWinStreakPrefab: cc.Prefab | null = null; private winStreakNode: cc.Node | null = null; @property(cc.EditBox) custom: cc.EditBox = null; @property({ type: [cc.SpriteAtlas], tooltip: "方块颜色" }) Block_Color: Array = []; @property(cc.SpriteAtlas) liuGuang: cc.SpriteAtlas = null; @property(cc.SpriteAtlas) avatarUI: cc.SpriteAtlas = null; @property(cc.Node) level: cc.Node = null; // @property(cc.Node) // coin: cc.Node = null; // 健康值 @property(cc.Prefab) health: cc.Prefab = null; @property(cc.Node) Stamina: cc.Node = null; scheduleCallback: any; private heath: any; // 用于存储heath预制体 private lastPauseClickTime: number = 0; // 用于记录上次点击的时间戳 // 弹窗倒计时调度器 private heathScheduleCallback: Function = null; @property(cc.Node) setUi: cc.Node = null; scheduleCallback2: any; scheduleCallback3: any; private isFirstLaunch: boolean = true; // 添加首次启动标志 //// newbieGift: any; // 用于存储heath预制体 dailyQuestsShow: boolean = false; // 每日任务加载 winStreakShow: boolean = false; // 连胜活动是否展示 // //月卡 // @property(cc.Node) // monthCardBtn: cc.Node = null; // @property(cc.Node) // monthCardBtn2: cc.Node = null; // @property(cc.Node) // monthCardTime: cc.Node = null; // @property(cc.Node) // monthCard: cc.Node = null; //月卡领取 删除 // @property(cc.Node) // getcard: cc.Node = null; @property(cc.Node) cardTime: cc.Node = null; // LIFE-CYCLE CALLBACKS: private onShowListener: () => void; private onHideListener: () => void; // LIFE-CYCLE CALLBACKS: onLoad() { if (cc.fx.GameConfig.GM_INFO.otherUid != "") { this.getShareInfo(); } this.node.getChildByName("zhuanchang").zIndex = 1000; this.closeLoad(); this.checkShare(); this.closeAvatar(); this.setShareInfo(); this.checkTasks(); // this.checkDailyQuests(); //console.log("进入首页获取的share", cc.fx.GameConfig.GM_INFO.otherUid, cc.fx.GameConfig.GM_INFO.otherLevel); cc.game.setFrameRate(63); LQCollideSystem.is_enable = true; //新手礼包 //// this.newbieGift = false; //// this.Stamina.parent.getChildByName("xinshou").active = false; this.winStreakShow = false; //// this.checkStarter_pack(); //每日任务 this.dailyQuestsShow = false; // //console.log("加载关卡配置2"); // window.initMgr(); GameManager._instance.Block_Color = this.Block_Color; let version = cc.fx.GameTool.getWechatGameVersion(); if (version == "开发版" || version == "体验版") { this.node.getChildByName("Load").getChildByName("New EditBox").active = true; } else if (version == "正式版") { this.node.getChildByName("Load").getChildByName("New EditBox").active = false; if (cc.fx.GameConfig.GM_INFO.openid) { if (cc.fx.GameConfig.GM_INFO.openid == "orm8I7N10NSQdAhN4LP04n8UP56I") { this.node.getChildByName("Load").getChildByName("New EditBox").active = true; // cc.fx.GameTool.changeCoin(99999); } } } else { this.node.getChildByName("Load").getChildByName("New EditBox").active = true; } // 预加载 活动 预制体 if (!JiaZai.cachedActionPrefab) { cc.assetManager.loadBundle('action_bundle', (err: Error, bundle: cc.AssetManager.Bundle) => { if (err) { cc.error(err.message || err); return; } //// bundle.load('prefab/newbieGift', cc.Prefab, (err: Error, prefab: cc.Prefab) => { // if (err) { // cc.error(err.message || err); // return; // } // JiaZai.cachedActionPrefab = prefab; // }); bundle.load('prefab/Avatar', cc.Prefab, (err: Error, prefab: cc.Prefab) => { if (err) { cc.error(err.message || err); return; } JiaZai.cachedAvatarPrefab = prefab; console.log("头像预制体已经准备好"); }); bundle.load('prefab/dailyQuests', cc.Prefab, (err: Error, prefab: cc.Prefab) => { if (err) { cc.error(err.message || err); return; } JiaZai.cachedDailyQuestsPrefab = prefab; console.log("每日任务预制体已经准备好"); }); bundle.load('prefab/winStreak', cc.Prefab, (err: Error, prefab: cc.Prefab) => { if (err) { cc.error(err.message || err); return; } JiaZai.cachedWinStreakPrefab = prefab; console.log("连胜活动预制体已经准备好"); }); }); } // 预加载 shop 预制体 删除 // if (!JiaZai.cachedShopPrefab) { cc.assetManager.loadBundle('shop', (err: Error, bundle: cc.AssetManager.Bundle) => { if (err) { cc.error(err.message || err); return; } }); // bundle.load('prefab/shop', cc.Prefab, (err: Error, prefab: cc.Prefab) => { // if (err) { // cc.error(err.message || err); // return; // } // JiaZai.cachedShopPrefab = prefab; // }); // bundle.load('prefab/RewardWindow', cc.Prefab, (err: Error, prefab: cc.Prefab) => { // if (err) { // cc.error(err.message || err); // return; // } // JiaZai.cachedRewardPrefab = prefab; // this.getOrder(); // }); // bundle.load('prefab/monthlyCard', cc.Prefab, (err: Error, prefab: cc.Prefab) => { // if (err) { // cc.error(err.message || err); // return; // } // JiaZai.cachedMonthlyCardPrefab = prefab; // //等级大于16开启 // if (cc.fx.GameConfig.GM_INFO.level >= 16) { // let top = this.node.getChildByName("Load").getChildByName("Top"); // top.getChildByName("yicon").active = true; // this.monthH(); // }; // }); // }); // } if (cc.fx.GameConfig.GM_INFO.otherLevel > 0) { if (cc.fx.GameConfig.GM_INFO.first) { this.setFirstInfo(); cc.fx.GameConfig.GM_INFO.first = false; } let power = cc.fx.GameTool.getUserPowerTime(); if (cc.fx.GameConfig.GM_INFO.hp < 1 && power == false) { MiniGameSdk.API.showToast("体力值不足,无法进入好友关卡"); setTimeout(() => { this.openHeath(); }, 1000); return; } else { // this.closeLoad(); cc.fx.GameConfig.LEVEL_INFO_init(true, 1000); } } else { if (cc.fx.GameConfig.GM_INFO.first) { //console.log("————————准备注册事件", cc.fx.GameConfig.GM_INFO.openid); this.setFirstInfo(); cc.fx.AudioManager._instance.playEffect("zhuan1", null); this.node.getChildByName("zhuanchang").active = true; this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "up", false); setTimeout(() => { cc.fx.GameConfig.GM_INFO.first = false; cc.director.loadScene("GameScene"); }, 1000); } } //console.log("音乐开关", cc.fx.GameConfig.GM_INFO.musicOpen); AudioManager._instance.playMusicGame(); this.onGames(); } //监听后台 onGames() { if (typeof wx !== 'undefined') { this.onShowListener = null; this.onHideListener = null; // 定义监听函数 this.onShowListener = () => { this.onGameShow(); }; this.onHideListener = () => { this.onGameHide(); }; //@ts-ignore wx.onShow(this.onShowListener); //@ts-ignore wx.onHide(this.onHideListener); } } onGameHide() { // console.log("执行onGameHide", cc.fx.GameConfig.GM_INFO.min_Time); if (this.isFirstLaunch != null && this.isFirstLaunch != undefined) this.isFirstLaunch = false; if (this) { if (this.node) { this.stopHeathTimeCutDown(); this.stopTimeCutDown(); this.stopPowerTime(); } } } onGameShow() { // console.log("执行开始游戏gameshow"); cc.fx.GameTool.getHealth((data) => { if (this.level) { NumberToImage.numberToImageNodes((cc.fx.GameConfig.GM_INFO.level + 1), 43, 15, "level_", this.level, true); } //// if (this.coin) { // NumberToImage.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, "coin_", this.coin, true); // this.setHealthInfo(true); // } }); // console.log("执行on", cc.fx.GameConfig.GM_INFO.min_Time); if (this) { if (this.node) { if (this.node.getChildByName("heathpop")) { if (this.node.getChildByName("heathpop").active == true) { const heathComponent = this.node.getChildByName("heathpop").getComponent("heathnum"); if (heathComponent && heathComponent.timeNode && cc.fx.GameConfig.GM_INFO.hp < cc.fx.GameConfig.GM_INFO.hp_Max) { this.startHeathTimeCutDown(heathComponent.timeNode); } } } } } } start() { // //console.log("已经进入Home界面"); // //console.log("金币",cc.fx.GameConfig.GM_INFO.coin); // //console.log("关卡",cc.fx.GameConfig.GM_INFO.level+1); this.updatePower(); cc.fx.GameTool.getHealth((data) => { NumberToImage.numberToImageNodes((cc.fx.GameConfig.GM_INFO.level + 1), 43, 15, "level_", this.level, true); //// NumberToImage.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, "coin_", this.coin, true); this.setHealthInfo(true); }); // cc.fx.GameConfig.LEVEL_INFO_init(false,0); if (cc.fx.GameConfig.GM_INFO.gameState) { this.node.getChildByName("zhuanchang").active = true; setTimeout(() => { cc.fx.AudioManager._instance.playEffect("zhuan2", null); this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "down", false); this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setCompleteListener((entry) => { if (entry.animation.name === "down" && !cc.fx.GameConfig.GM_INFO.first) { // 动画播放结束后执行的逻辑 this.node.getChildByName("zhuanchang").active = false; //// if (this.newbieGift) this.openStarter_pack(); } }); }, 500); } else { if (!cc.fx.GameConfig.GM_INFO.first) { this.node.getChildByName("zhuanchang").active = false; //// if (this.newbieGift) this.openStarter_pack(); } } // //打开heath弹窗 // this.openHeath(); this.uploadToCloud(cc.fx.GameConfig.GM_INFO.level + 1); // this.getMonthlyCardValidityDays(); // this.rewarded(); //判断过期 cc.fx.GameTool.checkExpiration(); let isExpired = cc.fx.GameTool.checkExpiration(); if (isExpired) { const validityTime = cc.fx.StorageMessage.getStorage("mCardDate"); // 后端返回的到期时间戳(毫秒) const today = new Date(); today.setHours(0, 0, 0, 0); const todayMidnight = today.getTime(); const expiryDate = new Date(validityTime); expiryDate.setHours(0, 0, 0, 0); const expiryMidnight = expiryDate.getTime(); const diffMs = expiryMidnight - todayMidnight; const days = Math.floor(diffMs / 86400000); const remainingDays = Math.max(0, days); cc.fx.GameConfig.GM_INFO.monthTime = remainingDays; } //// if (cc.fx.GameConfig.GM_INFO.level >= 16) { // let top = this.node.getChildByName("Load").getChildByName("Top"); // top.getChildByName("yicon").active = true; // if (JiaZai.cachedMonthlyCardPrefab) { // this.monthH(); // } // }; if (cc.fx.GameConfig.GM_INFO.level >= 17) { let top = this.node.getChildByName("Load").getChildByName("Top"); top.getChildByName("hammer").active = true; } else { let top = this.node.getChildByName("Load").getChildByName("Top"); top.getChildByName("hammer").active = false; } } checkDailyQuests() { cc.fx.GameTool.getDailyQuestsInfo((data) => { }) } openAvatar() { if (!JiaZai.cachedAvatarPrefab) { console.log('Avatar prefab is not loaded yet.'); cc.assetManager.loadBundle('action_bundle', (err: Error, bundle: cc.AssetManager.Bundle) => { if (err) { cc.error(err.message || err); return; } bundle.load('prefab/Avatar', cc.Prefab, (err: Error, prefab: cc.Prefab) => { if (err) { cc.error(err.message || err); return; } JiaZai.cachedAvatarPrefab = prefab; if (!this.AvatarNode) { // 第一次使用,创建节点 this.AvatarNode = cc.instantiate(JiaZai.cachedAvatarPrefab); this.node.addChild(this.AvatarNode); this.AvatarNode.getComponent("Avatar").init(); } else { // 非第一次使用,直接激活节点 this.AvatarNode.active = true; this.AvatarNode.getComponent("Avatar").init(); } }); }); return; } if (!this.AvatarNode) { // 第一次使用,创建节点 this.AvatarNode = cc.instantiate(JiaZai.cachedAvatarPrefab); this.node.addChild(this.AvatarNode); this.AvatarNode.getComponent("Avatar").init(); } else { // 非第一次使用,直接激活节点 this.AvatarNode.active = true; this.AvatarNode.getComponent("Avatar").init(); } } closeAvatar() { console.log("最终头像:", cc.fx.GameConfig.GM_INFO.useravatarIcon); console.log("最终头像框:", cc.fx.GameConfig.GM_INFO.useravaterkuang); let top = this.node.getChildByName("Load").getChildByName("Top"); if (this.AvatarNode) this.AvatarNode.active = false; if (cc.fx.GameConfig.GM_INFO.useravatarIcon.length > 10) { console.log("获取头像链接:", cc.fx.GameConfig.GM_INFO.useravatarIcon); cc.assetManager.loadRemote(cc.fx.GameConfig.GM_INFO.useravatarIcon, { ext: '.png' }, (err, texture: cc.Texture2D) => { if (texture) { top.getChildByName("avatar").getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture); } top.getChildByName("avatar").opacity = 255; }) } else { top.getChildByName("avatar").getComponent(cc.Sprite).spriteFrame = this.avatarUI.getSpriteFrame(cc.fx.GameConfig.GM_INFO.useravatarIcon); top.getChildByName("avatar").opacity = 255; } top.getChildByName("kuang").getComponent(cc.Sprite).spriteFrame = this.avatarUI.getSpriteFrame(cc.fx.GameConfig.GM_INFO.useravaterkuang); top.getChildByName("kuang").opacity = 255; cc.fx.GameTool.setUserAvatar(); } // 打开heath弹窗,创建预制体并启动自己的倒计时 openHeath() { let health = cc.instantiate(this.health); this.node.addChild(health); let heathPop = health.getComponent("heathnum").heatht; heathPop.scale = 2; this.heath = heathPop; // 保存heath预制体引用 let swichs = health.getComponent("heathnum").switchNode; let timeNode = health.getComponent("heathnum").timeNode; let switchButtons = health.getComponent("heathnum").switchButtons; // let coin = health.getComponent("heathnum").coin; let pauseNode = health.getChildByName("heath"); cc.fx.AudioManager._instance.playEffect("tanchuang", null); pauseNode.scale = 0.3; cc.tween(pauseNode) .to(0.2, { scale: 1.05 }, { easing: 'backOut' }) .to(0.15, { scale: 1.0 }, { easing: 'sineOut' }) .start(); // 启动弹窗自己的倒计时 if (cc.fx.GameConfig.GM_INFO.hp < cc.fx.GameConfig.GM_INFO.hp_Max) { this.startHeathTimeCutDown(timeNode); } if (cc.fx.GameConfig.GM_INFO.hp == 0) { if (cc.fx.GameConfig.GM_INFO.userPowerTime == 0) { // 体力为0,显示spriteFrames[1],只显示第二个按钮 if (switchButtons[0]) { switchButtons[0].active = false; swichs[0].active = false; } if (switchButtons[1]) { switchButtons[1].active = true; swichs[1].active = true; } } else { if (switchButtons[0]) { switchButtons[0].active = true; swichs[0].active = false; } if (switchButtons[1]) { switchButtons[1].active = false; swichs[1].active = true; } } } else if (cc.fx.GameConfig.GM_INFO.hp < cc.fx.GameConfig.GM_INFO.hp_Max && cc.fx.GameConfig.GM_INFO.hp > 0) { // 体力小于5但大于0,显示spriteFrames[1],只显示第一个按钮 if (switchButtons[0]) { switchButtons[0].active = true; swichs[0].active = false; } if (switchButtons[1]) { switchButtons[1].active = false; swichs[1].active = true; } } else if (cc.fx.GameConfig.GM_INFO.hp >= cc.fx.GameConfig.GM_INFO.hp_Max) { // 体力为5,显示spriteFrames[0],只显示第一个按钮 if (switchButtons[0]) { switchButtons[0].active = true; swichs[0].active = true; } if (switchButtons[1]) { switchButtons[1].active = false; swichs[1].active = false; } } NumberToImage.numberToImageNodes(cc.fx.GameConfig.GM_INFO.hp, 40, 20, "time_", heathPop, true); // 设置金币花费数 // NumberToImage.numberToImageNodes(1000, 35, 15, "button_", coin, true); } // 弹窗倒计时 startHeathTimeCutDown(timeLabelNode?: cc.Node) { this.stopHeathTimeCutDown(); this.heathScheduleCallback = function () { if (cc.fx.GameConfig.GM_INFO.min_Time <= 0) { this.stopHeathTimeCutDown(); let timeTemp = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time); //console.log("健康值倒计时结束,当前时间:", timeTemp, cc.fx.GameConfig.GM_INFO.min_Time); if (timeLabelNode) { NumberToImage.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time, 50, "month_", timeLabelNode); } NumberToImage.numberToImageNodes(cc.fx.GameConfig.GM_INFO.hp, 40, 20, "month_", this.heath, true); } else { let timeTemp = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time); if (timeLabelNode) { NumberToImage.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time, 50, "month_", timeLabelNode); } } }.bind(this); this.heathScheduleCallback(); this.schedule(this.heathScheduleCallback, 1); } stopHeathTimeCutDown() { if (this.heathScheduleCallback) { this.unschedule(this.heathScheduleCallback); this.heathScheduleCallback = null; } } //开始倒计时 恢复体力 startTimeCutDown() { this.stopTimeCutDown(); this.scheduleCallback = function () { if (cc.fx.GameConfig.GM_INFO.min_Time <= 0) { this.stopTimeCutDown(); var timeTemp = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time); // 同步显示 if (this.Stamina && this.Stamina.getChildByName("time")) { this.Stamina.getChildByName("time").getComponent(cc.Label).string = timeTemp; } if (cc.fx.GameConfig.GM_INFO.hp < cc.fx.GameConfig.GM_INFO.hp_Max) { // MiniGameSdk.API.showToast("恢复一点体力"); cc.fx.GameTool.setUserHealth(1, (data) => { cc.fx.GameTool.getHealth((data) => { this.setHealthInfo(true); }); }, true) } } else { cc.fx.GameConfig.GM_INFO.min_Time -= 1; var timeTemp = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time); // 同步显示 if (this.Stamina && this.Stamina.getChildByName("time")) { let power = cc.fx.GameTool.getUserPowerTime(); if (!power) this.Stamina.getChildByName("time").opacity = 255; else this.Stamina.getChildByName("time").opacity = 0; this.Stamina.getChildByName("time").getComponent(cc.Label).string = timeTemp; } } // console.log(cc.fx.GameConfig.GM_INFO.hp, cc.fx.GameConfig.GM_INFO.hp_Max, "月卡体力"); }.bind(this); this.schedule(this.scheduleCallback, 1); } // 停止倒计时 恢复体力 stopTimeCutDown() { if (this.scheduleCallback) { this.unschedule(this.scheduleCallback); this.scheduleCallback = null; } } startPowerTime() { this.stopPowerTime(); if (this.scheduleCallback2) { this.unschedule(this.scheduleCallback2); } this.scheduleCallback2 = function () { let nowTime = Math.floor(Date.now() / 1000); if (cc.fx.GameConfig.GM_INFO.userPowerTime < nowTime) { this.Stamina.getChildByName("skyLine").active = false; this.stopPowerTime(); this.setHealthInfo(true); return; } else { this.Stamina.getChildByName("skyLine").active = true; this.Stamina.getChildByName("time").opacity = 0; this.Stamina.getChildByName("man").active = false; } let time = cc.fx.GameConfig.GM_INFO.userPowerTime - nowTime; if (time <= 0) { time = 0; this.Stamina.getChildByName("skyLine").active = false; this.stopPowerTime(); this.setHealthInfo(true); var timeTemp = cc.fx.GameTool.getTimeMargin2(time); // 同步显示 if (this.Stamina && this.Stamina.getChildByName("skyLine").getChildByName("skyTime")) { this.Stamina.getChildByName("skyLine").getChildByName("skyTime").getComponent(cc.Label).string = timeTemp; } } else { var timeTemp = cc.fx.GameTool.getTimeMargin2(time); // 同步显示 if (this.Stamina && this.Stamina.getChildByName("skyLine").getChildByName("skyTime")) { this.Stamina.getChildByName("skyLine").getChildByName("skyTime").getComponent(cc.Label).string = timeTemp; } } }.bind(this); this.schedule(this.scheduleCallback2, 1); } stopPowerTime() { cc.fx.GameTool.getUserPowerTime(); if (this.scheduleCallback2) { this.unschedule(this.scheduleCallback2); this.scheduleCallback2 = null; } } uploadToCloud(level: number) { if (typeof wx !== 'undefined') { //@ts-ignore wx.setUserCloudStorage({ KVDataList: [ { key: 'level', value: String(level) } ], success: () => console.log('✅ 数据上传成功'), fail: (err) => console.error('❌ 上传失败', err) }); } } setHealthInfo(type) { if (cc.fx.GameConfig.GM_INFO.hp >= cc.fx.GameConfig.GM_INFO.hp_Max) { if (cc.fx.GameConfig.GM_INFO.userPowerTime != 0) { let nowTime = Math.floor(Date.now() / 1000); if (cc.fx.GameConfig.GM_INFO.userPowerTime > nowTime) { this.stopPowerTime(); this.startPowerTime(); //console.log("还有无限体力时间_____________", (cc.fx.GameConfig.GM_INFO.userPowerTime - nowTime)); this.Stamina.getChildByName("skyLine").active = true; this.Stamina.getChildByName("time").opacity = 0; this.Stamina.getChildByName("man").active = false; } else { this.Stamina.getChildByName("skyLine").active = false; //console.log("无限体力时间已过期"); this.Stamina.getChildByName("man").active = true; } } else { this.Stamina.getChildByName("man").active = true; } this.Stamina.getChildByName("health").active = true; NumberToImage.numberToImageNodes(cc.fx.GameConfig.GM_INFO.hp, 25, 15, "hp_", this.Stamina.getChildByName("health"), false); this.Stamina.getChildByName("time").active = false; } else { this.Stamina.getChildByName("man").active = false; this.Stamina.getChildByName("health").active = true; NumberToImage.numberToImageNodes(cc.fx.GameConfig.GM_INFO.hp, 25, 15, "hp_", this.Stamina.getChildByName("health"), false); this.Stamina.getChildByName("time").active = true; if (cc.fx.GameConfig.GM_INFO.min_Time != 0) { let time = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time); this.Stamina.getChildByName("time").getComponent(cc.Label).string = time; let power = cc.fx.GameTool.getUserPowerTime(); if (!power) this.Stamina.getChildByName("time").opacity = 255; else this.Stamina.getChildByName("time").opacity = 0; // console.log("______________________启动计时器"); this.stopTimeCutDown(); this.startTimeCutDown(); } } } startGame() { cc.fx.AudioManager._instance.playEffect("anniu_Big", null); let version = cc.fx.GameTool.getWechatGameVersion(); if (cc.fx.GameTool.maxLevel()) { if (version != "开发版" && version != "体验版") { MiniGameSdk.API.showToast("关卡每周更新,敬请期待!"); return; } } let power = cc.fx.GameTool.getUserPowerTime(); if (cc.fx.GameConfig.GM_INFO.hp < 1 && power == false) { MiniGameSdk.API.showToast("体力值不足"); setTimeout(() => { this.openHeath(); }, 500); return; } if (typeof wx !== 'undefined') { //@ts-ignore wx.offShow(this.onShowListener); //@ts-ignore wx.offHide(this.onHideListener); } if (this.node.getChildByName("Load").getChildByName("startBtn").getComponent("btnControl")._touch) { this.node.getChildByName("Load").getChildByName("startBtn").getComponent("btnControl").setTouch(false); let version = cc.fx.GameTool.getWechatGameVersion(); if (version == "开发版" || version == "体验版") { if (this.custom.string != "") { cc.fx.GameConfig.GM_INFO.level = parseInt(this.custom.string) - 1; // cc.fx.StorageMessage.setStorage("level",cc.fx.GameConfig.GM_INFO.level.toString()); if (cc.fx.GameTool.maxLevel()) { MiniGameSdk.API.showToast("关卡每周更新,敬请期待!"); return; } cc.fx.GameConfig.LEVEL_INFO_init(true); } else { cc.fx.AudioManager._instance.playEffect("zhuan1", null); this.node.getChildByName("zhuanchang").active = true; this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "up", false); if (cc.fx.GameTool.maxLevel()) { MiniGameSdk.API.showToast("关卡每周更新,敬请期待!"); return; } cc.fx.GameConfig.LEVEL_INFO_init(true, 1000); } } else if (version == "正式版") { if (cc.fx.GameTool.maxLevel()) { MiniGameSdk.API.showToast("关卡每周更新,敬请期待!"); return; } cc.fx.AudioManager._instance.playEffect("zhuan1", null); this.node.getChildByName("zhuanchang").active = true; this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "up", false); cc.fx.GameConfig.LEVEL_INFO_init(true, 1000); } else { if (this.custom.string != "") { cc.fx.GameConfig.GM_INFO.level = parseInt(this.custom.string) - 1; // cc.fx.StorageMessage.setStorage("level",cc.fx.GameConfig.GM_INFO.level.toString()); if (cc.fx.GameTool.maxLevel()) { MiniGameSdk.API.showToast("关卡每周更新,敬请期待!"); return; } cc.fx.GameConfig.LEVEL_INFO_init(true); } else { cc.fx.AudioManager._instance.playEffect("zhuan1", null); this.node.getChildByName("zhuanchang").active = true; this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "up", false); if (cc.fx.GameTool.maxLevel()) { MiniGameSdk.API.showToast("关卡每周更新,敬请期待!"); return; } cc.fx.GameConfig.LEVEL_INFO_init(true, 1000); } } } } //打开商店 删除 openRewardWindow(data, month?: number) { if (!JiaZai.cachedRewardPrefab) { cc.error('Reward prefab is not loaded yet.'); return; } if (!this.RewardNode) { // 第一次使用,创建节点 this.RewardNode = cc.instantiate(JiaZai.cachedRewardPrefab); this.node.addChild(this.RewardNode); this.RewardNode.getComponent("Reward").init(data); } else { this.RewardNode.destroy(); this.RewardNode = null; this.RewardNode = cc.instantiate(JiaZai.cachedRewardPrefab); this.node.addChild(this.RewardNode); this.RewardNode.getComponent("Reward").init(data); } this.RewardNode.zIndex = 1001; this.updatePower(); } //打开月卡 //// openMonthlyCard() { // if (!JiaZai.cachedMonthlyCardPrefab) { // cc.error('MonthlyCard prefab is not loaded yet.'); // return; // } // if (!this.monthlyCardNode) { // // 第一次使用,创建节点 // this.monthlyCardNode = cc.instantiate(JiaZai.cachedMonthlyCardPrefab); // this.node.addChild(this.monthlyCardNode); // this.monthlyCardNode.active = true; // this.monthlyCardNode.getComponent("monthlyCard").init(); // this.monthlyCardNode.getComponent("monthlyCard").juwai = true; // } else { // // 非第一次使用,直接激活节点 // this.monthlyCardNode.active = true; // this.monthlyCardNode.zIndex = 1000; // this.monthlyCardNode.getComponent("monthlyCard").init(); // this.monthlyCardNode.getComponent("monthlyCard").juwai = true; // } // if (typeof wx !== 'undefined') { // // console.log("执行开始游戏monthlyCard") // //@ts-ignore // wx.offShow(this.onShowListener); // //@ts-ignore // wx.offHide(this.onHideListener); // } // } openDailyQuests() { this.dailyQuestsNode = null; this.openLoad2(); this.dailyQuestsShow = true; cc.fx.GameTool.getDailyQuestsInfo((data) => { this.dailyQuestsShow = false; console.log("处理结果:", data); this.closeLoad(); if (data.code != 1) { MiniGameSdk.API.showToast("网络异常,请稍后重试!") return; } if (!JiaZai.cachedDailyQuestsPrefab) { // cc.error('Action prefab is not loaded yet.'); cc.assetManager.loadBundle('action_bundle', (err: Error, bundle: cc.AssetManager.Bundle) => { if (err) { cc.error(err.message || err); return; } bundle.load('prefab/dailyQuests', cc.Prefab, (err: Error, prefab: cc.Prefab) => { if (err) { cc.error(err.message || err); return; } JiaZai.cachedDailyQuestsPrefab = prefab; if (!this.dailyQuestsNode) { // 第一次使用,创建节点 this.dailyQuestsNode = cc.instantiate(JiaZai.cachedDailyQuestsPrefab); this.node.addChild(this.dailyQuestsNode); this.dailyQuestsNode.getComponent("DailyQuests").init(data.data.task); } else { // 非第一次使用,直接激活节点 this.dailyQuestsNode.active = true; this.dailyQuestsNode.getComponent("DailyQuests").init(data.data.task); } }); }); return; } if (!this.dailyQuestsNode) { // 第一次使用,创建节点 this.dailyQuestsNode = cc.instantiate(JiaZai.cachedDailyQuestsPrefab); this.node.addChild(this.dailyQuestsNode); this.dailyQuestsNode.active = true; this.dailyQuestsNode.getComponent("DailyQuests").init(data.data.task); } else { // 非第一次使用,直接激活节点 this.dailyQuestsNode.active = true; this.dailyQuestsNode.getComponent("DailyQuests").init(data.data.task); } }) } // 关闭商店 删除 // closeShop() { // if (this.shopNode) { // this.shopNode.active = false; // } // } closeRank() { this.node.getChildByName("Rank").active = false; } openRank() { this.node.getChildByName("Rank").active = true; } openReward() { this.node.getChildByName("Reward").active = true; } clickShop() { // 假设已经获取到了 userId 和 productId } openPause() { cc.fx.AudioManager._instance.playEffect("anniu_little", null); //console.log(cc.fx.GameConfig.GM_INFO); if (cc.fx.GameConfig.GM_INFO.openid == undefined) { //console.log(cc.fx.GameConfig.GM_INFO.openid); cc.fx.GameConfig.GM_INFO.openid = ""; } this.node.getChildByName("Pause").active = true; this.node.getChildByName("Pause").getChildByName("openID").getComponent(cc.Label).string = cc.fx.GameConfig.GM_INFO.openid; } closePause() { cc.fx.AudioManager._instance.playEffect("anniu_little", null); this.node.getChildByName("Pause").active = false; } openSet() { // share // MiniGameManager.instance.onShare(); const now = Date.now(); if (now - this.lastPauseClickTime < 300) { // 0.3秒内禁止再次点击 return; } this.lastPauseClickTime = now; cc.fx.AudioManager._instance.playEffect("anniu_little", null); if (cc.fx.GameConfig.GM_INFO.openid == undefined) { cc.fx.GameConfig.GM_INFO.openid = ""; } if (!this.setUi.active) { // 第一次点击,打开并播放动画 this.setUi.active = true; this.setUi.getComponent(cc.Animation).play(); } else { // 再次点击,关闭节点 this.setUi.active = false; } } closeReward() { this.node.getChildByName("Reward").active = false; } openStamina() { this.node.getChildByName("Stamina").active = true; } closeStamina() { this.node.getChildByName("Stamina").active = false; } //// updateCoin() { // //console.log("主页更新金币", cc.fx.GameConfig.GM_INFO.coin); // NumberToImage.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, "coin_", this.coin, true); // } // getOrder() { // if (typeof wx !== 'undefined' && wx !== null) { // // 判断设备系统 // let systemType = "Android"; // try { // //@ts-ignore // const systemInfo = wx.getSystemInfoSync(); // if (systemInfo.platform === 'ios') { // systemType = "ios"; // } // } catch (e) { // console.error('获取系统信息失败', e); // } // if (cc.fx.GameConfig.GM_INFO.allOutTradeNo.length != 0) { // console.log("有需要补发数据", cc.fx.GameConfig.GM_INFO.allOutTradeNo); // // 递归函数,按顺序处理每个订单 // const processOrder = (index: number) => { // if (index >= cc.fx.GameConfig.GM_INFO.allOutTradeNo.length) { // return; // 所有订单处理完成 // } // let order = cc.fx.GameConfig.GM_INFO.allOutTradeNo[index]; // console.log("需要补发数据", order); // if (order.itemid == "gold_1" || order.itemid == "gold_2" || order.itemid == "gold_3" // || order.itemid == "gold_4" || order.itemid == "gold_5" || order.itemid == "gold_6" // || order.itemid == "unlimited_health_bundle_10" || order.itemid == "unlimited_health_bundle_20" // || order.itemid == "unlimited_health_bundle_30" || order.itemid == "month_Card" || "reborn_Gift" // || order.itemid == "starter_pack" // ) { // this.openLoad(); // console.log("补发名称:", order.itemid); // let productId = order.itemid; // Utils.setPayInfo( // (res) => { // console.log("设置轮训结果:", res); // this.closeLoad(); // if (res.code === 1) { // console.log("7.14_________正式发货"); // let coinTemp = 0; // if (order.itemid == "gold_1") { coinTemp = 1200; } // else if (order.itemid == "gold_2") { coinTemp = 8000; } // else if (order.itemid == "gold_3") { coinTemp = 16000; } // else if (order.itemid == "gold_4") { coinTemp = 32000; } // else if (order.itemid == "gold_5") { coinTemp = 100000; } // else if (order.itemid == "gold_6") { coinTemp = 240000; } // else if (order.itemid == "unlimited_health_bundle_10") { coinTemp = 2500; } // else if (order.itemid == "unlimited_health_bundle_20") { coinTemp = 5000; } // else if (order.itemid == "unlimited_health_bundle_30") { coinTemp = 7500; } // else if (order.itemid == "month_Card") { // coinTemp = 6000; // cc.fx.GameConfig.GM_INFO.doubleCoin = 2; // cc.fx.GameConfig.GM_INFO.hp_Max = 7; // cc.fx.GameConfig.GM_INFO.hp = 7; // this.openLoad(); // //// this.buyMonthCard(productId); // } // else if (order.itemid == "reborn_Gift") { // coinTemp = 1000; // } // else if (order.itemid == "starter_pack") { // coinTemp = 3000; // cc.fx.GameConfig.GM_INFO.doubleCoin = 5; // cc.fx.GameConfig.GM_INFO.hp_Max = 5; // cc.fx.GameConfig.GM_INFO.hp = 5; // } // let title = "充值补发奖励金币:" + coinTemp; // // MiniGameSdk.API.showToast(title); // if (order.itemid != "month_Card") cc.fx.GameTool.shopBuy(productId, true); // console.log("充值成功获得金币"); // let price = parseInt(order.goodsPrice) || 0; // // const dataSuccess = { // // outTradeNo: order.outTradeNo, // // pay_amount: price, // // payment_name: productId, // // payment_num: 1, // // type: systemType, // // } // let name = "补发充值成功" + productId; // // cc.fx.GameTool.shushu_Track("payment", dataSuccess); // // console.log("引力付费透传", price, order.outTradeNo, name); // MiniGameSdk.API.yinli_Pay(price, order.outTradeNo, name); // } // else { // MiniGameSdk.API.showToast("网络异常,充值奖励将在登录后再次发放"); // const dataFail4 = { // outTradeNo: order.outTradeNo, // pay_amount: parseInt(order.goodsPrice) || 0, // payment_name: productId, // payment_num: 1, // type: systemType, // fail_reason: "成功付款,但是发货时请求服务器失败,重新进入游戏后轮训发货又失败", // } // cc.fx.GameTool.shushu_Track("payment_fail", dataFail4); // } // NumberToImage.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, "coin_", this.coin, true); // this.updateCoin(); // // 处理下一个订单 // processOrder(index + 1); // }, order.outTradeNo); // } else { // // 如果当前订单不处理,直接处理下一个订单 // processOrder(index + 1); // } // }; // // 从第一个订单开始处理 // processOrder(0); // } // } // } openLoad() { this.node.getChildByName("Loading").active = true; this.node.getChildByName("Loading").getChildByName("load").stopAllActions(); this.node.getChildByName("Loading").getChildByName("load").runAction(cc.rotateTo(2, 1080).repeatForever()); } openLoad2() { this.node.getChildByName("Loading").active = true; this.node.getChildByName("Loading").getChildByName("load").stopAllActions(); this.node.getChildByName("Loading").getChildByName("load").runAction(cc.rotateTo(2, 1080).repeatForever()); setTimeout(() => { if (this.dailyQuestsShow == true) { MiniGameSdk.API.showToast("网络异常,请稍后重试!") this.closeLoad(); } }, 5000); } closeLoad() { this.node.getChildByName("Loading").active = false; } updatePower() { if (cc.fx.GameConfig.GM_INFO.userPowerTime != 0) { let nowTime = Math.floor(Date.now() / 1000); if (cc.fx.GameConfig.GM_INFO.userPowerTime > nowTime) { this.stopPowerTime(); this.startPowerTime(); //("还有无限体力时间_____________", (cc.fx.GameConfig.GM_INFO.userPowerTime - nowTime)); this.Stamina.getChildByName("skyLine").active = true; this.Stamina.getChildByName("time").opacity = 0; this.Stamina.getChildByName("man").active = false; } else { this.Stamina.getChildByName("skyLine").active = false; //console.log("无限体力时间已过期"); this.setHealthInfo(true); } } else { this.Stamina.getChildByName("skyLine").active = false; this.Stamina.getChildByName("time").opacity = 255; this.Stamina.getChildByName("man").active = true; //console.log("没有无限体力时间"); this.setHealthInfo(true); } } //月卡 //打开界面 //// openMonthCard() { // this.openMonthlyCard(); // this.monthCard.active = true; // Utils.getMonthlyCard((data) => { // if (data.msg == "不在有效期") { // this.monthCardBtn.active = true; // this.monthCardBtn2.active = false; // } else { // this.monthCardBtn.active = false; // this.monthCardBtn2.active = true; // NumberToImage.numberToImageNodes(25, 35, 20, "month_", this.monthCardTime, true); // } // }) // } //// openStarter_pack() { // if (!JiaZai.cachedActionPrefab) { // // cc.error('Action prefab is not loaded yet.'); // cc.assetManager.loadBundle('action_bundle', (err: Error, bundle: cc.AssetManager.Bundle) => { // if (err) { // cc.error(err.message || err); // return; // } // bundle.load('prefab/newbieGift', cc.Prefab, (err: Error, prefab: cc.Prefab) => { // if (err) { // cc.error(err.message || err); // return; // } // JiaZai.cachedActionPrefab = prefab; // if (!this.actionpNode) { // // 第一次使用,创建节点 // this.actionpNode = cc.instantiate(JiaZai.cachedActionPrefab); // this.node.addChild(this.actionpNode); // this.actionpNode.zIndex = 2; // this.actionpNode.getComponent("NewbieGift").init(true); // this.actionpNode.getChildByName("time").active = false; // } else { // // 非第一次使用,直接激活节点 // this.actionpNode.active = true; // this.actionpNode.getComponent("NewbieGift").init(false); // this.actionpNode.getChildByName("time").active = false; // } // }); // }); // return; // } // if (!this.actionpNode) { // // 第一次使用,创建节点 // this.actionpNode = cc.instantiate(JiaZai.cachedActionPrefab); // this.node.addChild(this.actionpNode); // this.actionpNode.zIndex = 2; // this.actionpNode.getComponent("NewbieGift").init(true); // } else { // // 非第一次使用,直接激活节点 // this.actionpNode.active = true; // this.actionpNode.getComponent("NewbieGift").init(false); // } // if (typeof wx !== 'undefined') { // //@ts-ignore // wx.offShow(this.onShowListener); // //@ts-ignore // wx.offHide(this.onHideListener); // } // } // closeStarter_pack() { // if (this.actionpNode) { // this.actionpNode.active = false; // } // } // 新手礼包 //// startStarter_pack() { // this.stopStarter_pack(); // if (this.scheduleCallback3) { // this.unschedule(this.scheduleCallback3); // } // this.scheduleCallback3 = function () { // let nowTime = Math.floor(Date.now() / 1000); // if (cc.fx.GameConfig.GM_INFO.starter_packTime < nowTime) { // this.stopStarter_pack(); // this.Stamina.parent.getChildByName("xinshou").active = false; // return; // } // let time = cc.fx.GameConfig.GM_INFO.starter_packTime - nowTime; // if (time <= 0) { // time = 0; // this.stopStarter_pack(); // this.Stamina.parent.getChildByName("xinshou").active = false; // } // else { // var timeTemp = cc.fx.GameTool.getTimeMargin2(time); // this.Stamina.parent.getChildByName("xinshou").getChildByName("time").getComponent(cc.Label) // .string = timeTemp; // if (this.actionpNode) { // this.actionpNode.getChildByName("time").getComponent(cc.Label). // string = timeTemp; // } // // 同步显示 // } // }.bind(this); // this.schedule(this.scheduleCallback3, 1); // } stopStarter_pack() { if (this.scheduleCallback3) { this.unschedule(this.scheduleCallback3); this.scheduleCallback3 = null; } } // 删除月卡 // rewarded() { // Utils.monthGetReward((data) => { // if (data.data == null) { // //console.log("到期"); // cc.fx.GameConfig.GM_INFO.hp_Max = 5; // //如果体力大于5,设置为5,小于5,设置为体力值 // if (cc.fx.GameConfig.GM_INFO.hp > 5) { // cc.fx.GameConfig.GM_INFO.hp = 5; // cc.fx.GameTool.setUserHealth(0, (data) => { // cc.fx.GameTool.getHealth(null); // }) // } // setTimeout(() => { // this.updateCoin(); // this.setHealthInfo(false); // this.startTimeCutDown(); // }, 300); // } // if (data.data != null && data.code == 0) { // //console.log("未到期已领取"); // } // // == 1 删除 // if (data.code == 1) { // console.log("领取月卡 删除") // } // }) // } //缓存弹窗 //// monthH() { // return; //如果没有充值月卡,每天弹一次月卡弹窗用缓存实现 // 删除月卡 // Utils.getMonthlyCard((data) => { // if (data.msg == "不在有效期") { // let date = new Date(); // let day = date.getDate(); // 当前日期(1-31) // let month = date.getMonth() + 1; // 当前月份(1-12) // let year = date.getFullYear(); // 当前年份 // let dateStr = `${year}-${String(month).padStart(2, '0')}-${String(day).padStart(2, '0')}`; // 格式化为 YYYY-MM-DD // // 从缓存中获取上次弹窗的日期 // let cachedDateStr = cc.fx.StorageMessage.getStorage("monthlyCardDate"); // // 如果缓存中的日期和当前日期不一致 // if (cachedDateStr !== dateStr) { // this.winStreakShow = false; // // 更新缓存 // cc.fx.StorageMessage.setStorage("monthlyCardDate", dateStr); // this.openMonthCard(); // } // else { // this.openWin(); // } // } // else { // this.openWin(); // } // }) // } //检查是否弹出新手礼包 //// checkStarter_pack() { // // return; // //如果没有充值新手礼包,每天弹一次新手礼包 // if (cc.fx.GameConfig.GM_INFO.level < 15) { // return; // } // const timestamp = Date.now(); // Utils.getStarter_pack((data) => { // if (data.code == 1) { // if (data.data.starter_pack == 0) { // console.log("用户没有触发新手礼包,准备触发,并且给弹窗"); // this.winStreakShow = false; // Utils.setStarter_pack((res) => { // if (res.code == 1) { // this.newbieGift = true; // // let top = this.node.getChildByName("Load").getChildByName("Top"); // // top.getChildByName("yicon").active = false; // this.Stamina.parent.getChildByName("xinshou").active = true; // cc.fx.GameConfig.GM_INFO.starter_packTime = res.data.starter_pack / 1000; // if (!this.actionpNode) this.openStarter_pack(); // console.log("打开新手礼包"); // const nowTime = Math.floor(Date.now() / 1000); // let time = cc.fx.GameConfig.GM_INFO.starter_packTime - nowTime; // if (time > 0) { // this.startStarter_pack(); // time = cc.fx.GameTool.getTimeMargin2(time); // this.Stamina.parent.getChildByName("xinshou").getChildByName("time").getComponent(cc.Label) // .string = time + ""; // } // } // }) // } // else if (data.data.starter_pack < timestamp) { // this.winStreakShow = true; // console.log("用户新手礼包已经过期,不触发"); // this.newbieGift = false; // this.Stamina.parent.getChildByName("xinshou").active = false; // } // else if (data.data.starter_packState == 1) { // this.winStreakShow = true; // console.log("用户已经购买过新手礼包,不触发"); // this.newbieGift = false; // this.Stamina.parent.getChildByName("xinshou").active = false; // } // else { // console.log("用户在新手礼包时间范围内,给弹窗"); // cc.fx.GameConfig.GM_INFO.starter_packTime = data.data.starter_pack / 1000; // const nowTime = Math.floor(Date.now() / 1000); // let time = cc.fx.GameConfig.GM_INFO.starter_packTime - nowTime; // if (time > 0) { // this.startStarter_pack(); // time = cc.fx.GameTool.getTimeMargin2(time); // this.Stamina.parent.getChildByName("xinshou").getChildByName("time").getComponent(cc.Label) // .string = time + ""; // } // let date = new Date(); // let day = date.getDate() + 1; // 当前日期(1-31) // let month = date.getMonth(); // 当前月份(1-12) // let year = date.getFullYear(); // 当前年份 // let dateStr = `${year}-${String(month).padStart(2, '0')}-${String(day).padStart(2, '0')}`; // 格式化为 YYYY-MM-DD // // 从缓存中获取上次弹窗的日期 // let cachedDateStr = cc.fx.StorageMessage.getStorage("Starter_pack"); // // 如果缓存中的日期和当前日期不一致 // if (cachedDateStr !== dateStr) { // // 更新缓存 // this.newbieGift = true; // // let top = this.node.getChildByName("Load").getChildByName("Top"); // // top.getChildByName("yicon").active = false; // this.Stamina.parent.getChildByName("xinshou").active = true; // cc.fx.StorageMessage.setStorage("Starter_pack", dateStr); // if (!this.actionpNode) this.openStarter_pack(); // console.log("打开新手礼包"); // this.winStreakShow = false; // } // else { // this.winStreakShow = true; // this.newbieGift = false; // this.Stamina.parent.getChildByName("xinshou").active = true; // console.log("当天已经给过,不再弹窗新手礼包"); // } // } // } // else { // this.newbieGift = false; // this.Stamina.parent.getChildByName("xinshou").active = false; // } // }) // } //获取有没有分享信息 getShareInfo() { // 检查微信小游戏启动参数 if (cc.sys.platform === cc.sys.WECHAT_GAME) { //@ts-ignore const launchOptions = wx.getLaunchOptionsSync(); const query = launchOptions.query; if (query.level && query.uid) { const level = parseInt(query.level, 10); const uid = query.uid.toString(); if (uid != cc.fx.GameConfig.GM_INFO.uid) { cc.fx.GameConfig.GM_INFO.otherUid = uid; cc.fx.GameConfig.GM_INFO.otherLevel = level; // console.log('从分享链接获取到的关卡信息:', level); // console.log('从分享链接获取到的 UID:', uid); // console.log("自己的UID", cc.fx.GameConfig.GM_INFO.uid) let eventData = { identity: "helper", //发起者为helped 帮助者为helper helpedId: cc.fx.GameConfig.GM_INFO.otherUid, //被帮助者UID level: level //被帮助关卡等级 } cc.fx.GameTool.shushu_Track("stage_help", eventData); //帮助通关 this.openLoad(); } else { cc.fx.GameConfig.GM_INFO.otherLevel = 0; } // 可以在这里处理关卡信息和 UID } } } //第一次进游戏用户处理信息 setFirstInfo() { const group = cc.fx.GameTool.setWechatGameGroup(2); if (group == 0) { cc.fx.GameConfig.GM_INFO.musicOpen = true; } else if (group == 1) { cc.fx.GameConfig.GM_INFO.musicOpen = false; } const audioInfo = { "musicOpen": cc.fx.GameConfig.GM_INFO.musicOpen, //音乐 "effectOpen": cc.fx.GameConfig.GM_INFO.effectOpen, //音效 "vibrateOpen": cc.fx.GameConfig.GM_INFO.vibrateOpen, //震动 } cc.fx.StorageMessage.setStorage("music", audioInfo); if (cc.fx.GameConfig.GM_INFO.openid != "") { // console.log("————————发送注册事件"); const time = cc.fx.GameTool.formatDate(new Date()); let data = { register_time: time, // 注册时间 } // console.log("注册时间:", time); cc.fx.GameTool.shushu_Track("register", data); MiniGameSdk.API.shushu_SetSuperProperties(time, false); } } //// onCardReward() { // // this.getcard.active = false; // cc.fx.GameTool.changeCoin(500); // this.updateCoin(); // const dataTemp = { // change_reason: "month", // id: "1001", // num: 500, // compensate: false // } // cc.fx.GameTool.shushu_Track("resource_get", dataTemp); // } //检测当日是否有分享行为,用不用主动获取分享关卡信息 checkShare() { const otherInfo = cc.fx.StorageMessage.getStorage("otherLevel"); // console.log("分享信息:", otherInfo); if (otherInfo != null && otherInfo != undefined && otherInfo != "") { const currentTime = Date.now(); const timeDifference = currentTime - otherInfo.timeStamp; const oneDayInMilliseconds = 24 * 60 * 60 * 1000; // console.log("计入时间计算"); if (timeDifference > oneDayInMilliseconds || cc.fx.GameConfig.GM_INFO.level >= otherInfo.otherLevel) { // console.log("_______________检查分享信息过期或已获取过,清除存储信息"); cc.fx.StorageMessage.setStorage("otherLevel", null); } else { // if ((cc.fx.GameConfig.GM_INFO.level + 1) == otherInfo.otherLevel) { // console.log("_______________有分享信息,并且符合条件"); Utils.getShareLevel((res) => { if (res.code == 1) { if ((cc.fx.GameConfig.GM_INFO.level + 1) == res.data[0].lv) { let title = "好友帮助通过第" + otherInfo.otherLevel + "关"; MiniGameSdk.API.showToast(title); cc.fx.GameConfig.GM_INFO.level = otherInfo.otherLevel; cc.fx.GameTool.maxLevel(); const timestamp = Date.now(); const levelInfo = { level: cc.fx.GameConfig.GM_INFO.level, // 关卡 timestamp: timestamp, // 时间戳 }; cc.fx.StorageMessage.setStorage("level", levelInfo); NumberToImage.numberToImageNodes((cc.fx.GameConfig.GM_INFO.level + 1), 43, 15, "level_", this.level, true); cc.fx.GameTool.setUserLevel((data) => { }); } } }) // } } } else { // console.log("没有分享信息"); } } //购买月卡 //// buyMonthCard(id) { // console.log("购买月卡", id); // Utils.setMonthlyCard(0, (data) => { // // console.log("购买月卡", data.code); // if (data.code == 1) { // // let rewardData = [ // // { type: "coin", count: 6000 }, // // ] // cc.fx.GameTool.shopBuy(id, false); // cc.fx.GameConfig.GM_INFO.hp_Max = 7; // cc.fx.GameConfig.GM_INFO.hp = 7; // cc.fx.GameTool.getMonthlyCardValidityDays().then(days => { // cc.fx.GameConfig.GM_INFO.monthTime = days.days; // //本地储存当前服务器时间 // let dateStr = new Date(days.time); // cc.fx.StorageMessage.setStorage("mCardDate", dateStr); // }); // // cc.fx.GameTool.changeCoin(6000); // const jiazaiNode = cc.find("Canvas"); // 假设 JiaZai 挂在 Canvas 节点 // const jiazaiComp = jiazaiNode.getComponent(JiaZai); // if (jiazaiComp) { // // console.log("获取到JiaZai组件", jiazaiComp); // setTimeout(() => { // jiazaiComp.setHealthInfo(false); // jiazaiComp.startTimeCutDown(); // jiazaiComp.updateCoin(); // }, 300); // } else { // // console.log("无法获取JiaZai组件"); // } // cc.fx.GameConfig.GM_INFO.doubleCoin = 2; // cc.fx.GameTool.setUserHealth(0, (data) => { // cc.fx.GameTool.getHealth(null); // }) // } // this.closeLoad(); // }) // update (dt) {} // } setShareInfo() { console.log("设置分享信息"); MiniGameSdk.API.shareAppToFriends(); } //检查任务列表 checkTasks() { let top = this.node.getChildByName("Load").getChildByName("Top"); top.getChildByName("day").getChildByName("red").active = false; if (cc.fx.GameConfig.GM_INFO.tasks.levelPass.target == 0) { console.log("没有获取任务列表从服务器拿"); cc.fx.GameTool.getDailyQuestsInfo((data) => { if (data.code == 1) { let res = data.data.task; cc.fx.GameConfig.GM_INFO.tasks.levelPass = res["levelPass"]; cc.fx.GameConfig.GM_INFO.tasks.share = res["share"]; cc.fx.GameConfig.GM_INFO.tasks.useEnergy = res["useEnergy"]; cc.fx.GameConfig.GM_INFO.tasks.useProp = res["useProp"]; } else { //以备不时之需 cc.fx.GameConfig.GM_INFO.tasks.levelPass.target = 3; cc.fx.GameConfig.GM_INFO.tasks.share.target = 1; cc.fx.GameConfig.GM_INFO.tasks.useEnergy.target = 10; cc.fx.GameConfig.GM_INFO.tasks.useProp.target = 3; } if (cc.fx.GameConfig.GM_INFO.tasks.levelPass.state == 1 || cc.fx.GameConfig.GM_INFO.tasks.share.state == 1 || cc.fx.GameConfig.GM_INFO.tasks.useEnergy.state == 1 || cc.fx.GameConfig.GM_INFO.tasks.useProp.state == 1 ) { top.getChildByName("day").getChildByName("red").active = true; } }) } else { console.log("有任务列表判断红点", cc.fx.GameConfig.GM_INFO.tasks); if (cc.fx.GameConfig.GM_INFO.tasks.levelPass.state == 1 || cc.fx.GameConfig.GM_INFO.tasks.share.state == 1 || cc.fx.GameConfig.GM_INFO.tasks.useEnergy.state == 1 || cc.fx.GameConfig.GM_INFO.tasks.useProp.state == 1 ) { top.getChildByName("day").getChildByName("red").active = true; } } } openWin() { if (this.winStreakShow == false || cc.fx.GameConfig.GM_INFO.level < 17) { return; } else { let date = new Date(); let day = date.getDate(); // 当前日期(1-31) let month = date.getMonth() + 1; // 当前月份(1-12) let year = date.getFullYear(); // 当前年份 let dateStr = `${year}-${String(month).padStart(2, '0')}-${String(day).padStart(2, '0')}`; // 格式化为 YYYY-MM-DD // 从缓存中获取上次弹窗的日期 let cachedDateStr = cc.fx.StorageMessage.getStorage("winStreakTime"); // 如果缓存中的日期和当前日期不一致 if (cachedDateStr !== dateStr) { // 更新缓存 cc.fx.StorageMessage.setStorage("winStreakTime", dateStr); } else { return; } } this.openWinStreak(); } //打开连胜活动 openWinStreak() { if (!JiaZai.cachedWinStreakPrefab) { // cc.error('Action prefab is not loaded yet.'); cc.assetManager.loadBundle('action_bundle', (err: Error, bundle: cc.AssetManager.Bundle) => { if (err) { cc.error(err.message || err); return; } bundle.load('prefab/winStreak', cc.Prefab, (err: Error, prefab: cc.Prefab) => { if (err) { cc.error(err.message || err); return; } JiaZai.cachedWinStreakPrefab = prefab; if (!this.winStreakNode) { // 第一次使用,创建节点 this.winStreakNode = cc.instantiate(JiaZai.cachedWinStreakPrefab); this.node.addChild(this.winStreakNode); this.winStreakNode.getComponent("WinStreak").init(); } else { // 非第一次使用,直接激活节点 this.winStreakNode.active = true; this.winStreakNode.getComponent("WinStreak").init(); } }); }); return; } if (!this.winStreakNode) { // 第一次使用,创建节点 this.winStreakNode = cc.instantiate(JiaZai.cachedWinStreakPrefab); this.node.addChild(this.winStreakNode); this.winStreakNode.active = true; this.winStreakNode.getComponent("WinStreak").init(); } else { // 非第一次使用,直接激活节点 this.winStreakNode.active = true; this.winStreakNode.getComponent("WinStreak").init(); } } update(dt) { //// if (this.newbieGift && this.monthlyCardNode) { // if (this.monthlyCardNode.active == true) { // this.monthlyCardNode.active = false; // } // } } }