import SKUIUtil from "./gear_2.3.4/util/SKUIUtil"; import GameModel from "./core/GameModel"; import FGUtil from "./gear_2.3.4/fgui/FGUtil"; import MsgAlert from "./game/msg/MsgAlert"; import SKDataUtil from "./gear_2.3.4/util/SKDataUtil"; import DailyActivityData, { ActivityObj, DailyClassType } from "./DailyActivityData"; import GameUtil from "./core/GameUtil"; import g_NpcMgr = require('../game/NpcMgr') import ItemUtil from "./core/ItemUtil"; const { ccclass, property } = cc._decorator; export default class DailyActivity extends cc.Component { /** * 日常活動單例實例 */ public static Instance : DailyActivity = null; /** * 日常活動面板 */ DailyActivityPanel : fgui.GComponent = null; /** * 日常活動詳情面板 */ DailyInfoPanel : fgui.GComponent = null; activityList : any = []; onLoad() { if (DailyActivity.Instance === null) { DailyActivity.Instance = this; this.activityList = DailyActivityData.activityList; } else { this.destroy(); return; } } openDailyActivityPanel() { if (!SKUIUtil.isFGUIValid(this.DailyActivityPanel)) { this.DailyActivityPanel = FGUtil.create("main_ui", "activity_panel"); FGUtil.root().addChild(this.DailyActivityPanel); this.DailyActivityPanel.makeFullScreen(); } FGUtil.getComponent(this.DailyActivityPanel, "mask").onClick(this.closePanel, this) FGUtil.getButton(this.DailyActivityPanel, "alert/close").onClick(this.closePanel, this) var alert = FGUtil.getComponent(this.DailyActivityPanel, "alert"); // FGUtil.getButton(alert, "activityReward1").onClick(this.clickReward1, this); // FGUtil.getButton(alert, "activityReward2").onClick(this.clickReward2, this); // FGUtil.getButton(alert, "activityReward3").onClick(this.clickReward3, this); // FGUtil.getButton(alert, "activityReward4").onClick(this.clickReward4, this); // FGUtil.getButton(alert, "activityReward5").onClick(this.clickReward5, this); // FGUtil.getButton(alert, "activityReward6").onClick(this.clickReward6, this); FGUtil.getComponent(alert, "activityReward1/icon").onClick(this.clickReward1, this); FGUtil.getComponent(alert, "activityReward2/icon").onClick(this.clickReward2, this); FGUtil.getComponent(alert, "activityReward3/icon").onClick(this.clickReward3, this); FGUtil.getComponent(alert, "activityReward4/icon").onClick(this.clickReward4, this); FGUtil.getComponent(alert, "activityReward5/icon").onClick(this.clickReward5, this); FGUtil.getComponent(alert, "activityReward6/icon").onClick(this.clickReward6, this); FGUtil.getButton(alert, "setTuiSong").onClick(this.clickTuiSong, this); FGUtil.getButton(alert, "hotDot").onClick(this.clickHotDot, this); FGUtil.getButton(alert, "doubleExp").onClick(this.clickDoubleExp, this); FGUtil.getButton(alert, "allType").onClick(this.clickAllType, this); FGUtil.getButton(alert, "expType").onClick(this.clickExpType, this); FGUtil.getButton(alert, "goldType").onClick(this.clickGoldType, this); FGUtil.getButton(alert, "relaxType").onClick(this.clickRelaxType, this); var list = FGUtil.getList(alert, "list"); list.itemRenderer = this.initActivityItem.bind(this); list.itemProvider = this.getListItemResource.bind(this); list.setVirtual(); this.refreshActivityListByType(); this.refreshActivityCount(); this.refreshActivityPrize(); this.refreshDouble(); GameModel.send('c2s_ask_daily_info', {}); } getListItemResource(idx : number) { // 字節點 if (this.activityList[idx].isChild) return "ui://main_ui/activityPopList"; // 佔位節點 else if (this.activityList[idx].isEmpty > 0) return "ui://main_ui/emptySize"; // 普通 else return "ui://main_ui/activity_item"; } initActivityItem(idx, obj : fairygui.GObject) { let item = obj.asCom; var info : ActivityObj = this.activityList[idx]; if (info.isChild) { if (info.childList.length <= 2) { FGUtil.getControl(item, "line").selectedIndex = 0 } else if (info.childList.length <= 4) { FGUtil.getControl(item, "line").selectedIndex = 1 } else { FGUtil.getControl(item, "line").selectedIndex = 2 } var childList = FGUtil.getList(item, 'list') childList.removeChildren(); for (let i = 0; i < info.childList.length; i++) { let itemChild = childList.addItem().asCom; this.initActivityChildItem(itemChild, info.childList[i]); } return; } if (info.isEmpty > 0) { if (info.isEmpty == 1) item.height = 88 if (info.isEmpty == 2) item.height = 165 if (info.isEmpty == 3) item.height = 250 return; } var inTime = this.checkInTime(info.startTime, info.endTime); if (info.childList.length > 0) {// 有子按鈕 if (info.expanded) // 展開子按鈕 FGUtil.getControl(item, "down").selectedIndex = 2; else FGUtil.getControl(item, "down").selectedIndex = 1; } else //無子按鈕 FGUtil.getControl(item, "down").selectedIndex = 0; if (info.finish) //已完成 FGUtil.getControl(item, "finish").selectedIndex = 1; else { // 未完成狀態 if (inTime == -1)//已結束 FGUtil.getControl(item, "finish").selectedIndex = 2; else FGUtil.getControl(item, "finish").selectedIndex = 0; } if (info.hasSet) //有設置屬性 FGUtil.getControl(item, "set").selectedIndex = 1; else //無設置屬性 FGUtil.getControl(item, "set").selectedIndex = 0; if (info.hasGo) { // 如果完成就不再顯示前往 if (info.finish) FGUtil.getControl(item, "goTo").selectedIndex = 0; // 如果有時間限制 else if (info.fixedTime != "" && SKDataUtil.hasProperty(info.startTime, "d") && info.startTime.d != -1) { if (inTime == 1) { // 處於限制時間內,顯示前往 FGUtil.getControl(item, "goTo").selectedIndex = 1; FGUtil.getControl(item, "showTime").selectedIndex = 0; } else if (inTime == 0) { // 未開始,顯示時間 FGUtil.getControl(item, "goTo").selectedIndex = 0; FGUtil.getControl(item, "showTime").selectedIndex = 1; } else if (inTime == -1) { // 已結束 FGUtil.getControl(item, "goTo").selectedIndex = 0; FGUtil.getControl(item, "showTime").selectedIndex = 0; } } else //顯示前往 FGUtil.getControl(item, "goTo").selectedIndex = 1; } else { FGUtil.getControl(item, "goTo").selectedIndex = 0; if (inTime == 0 && info.fixedTime != "") FGUtil.getControl(item, "showTime").selectedIndex = 1; } // 顯示遮罩 if (DailyActivityData.showChild && !info.expanded) FGUtil.getControl(item, "mask").selectedIndex = 1; else FGUtil.getControl(item, "mask").selectedIndex = 0; // 顯示任務名稱 FGUtil.getTextField(item, "name").text = info.name; // 顯示任務圖標 FGUtil.getLoader(item, "icon").url = `ui://main_ui/${info.icon}`; // 顯示高獎勵類型 FGUtil.getLoader(item, "typeIcon").url = `ui://main_ui/${info.tipType}`; // 顯示次數描述 if (info.des) { FGUtil.getTextField(item, "times").text = `${info.des}:${info.desValue}/${info.desMax}${info.desSuffix}`; } else FGUtil.getTextField(item, "times").text = ""; // 顯示活躍度 if (info.activityDes) { FGUtil.getTextField(item, "activity").text = `${info.activityDes}:${info.activityValue}/${info.activityMax}`; } else FGUtil.getTextField(item, "activity").text = ""; // if (info.des) { // FGUtil.getTextField(item, "times").text = `${info.des}:${info.desValue > info.desMax ? info.desMax : info.desValue}/${info.desMax}${info.desSuffix}`; // } else // FGUtil.getTextField(item, "times").text = ""; // // 顯示活躍度 // if (info.activityDes) { // FGUtil.getTextField(item, "activity").text = `${info.activityDes}:${info.activityValue > info.activityMax ? info.activityMax : info.activityValue}/${info.activityMax}`; // } else // FGUtil.getTextField(item, "activity").text = ""; // 顯示限制時間 FGUtil.getTextField(item, "time").text = info.fixedTime; var goBtn = FGUtil.getButton(item, "go"); goBtn.node["goNpc"] = info.goPos; goBtn.onClick(this.goNpc, this); item.node["idx"] = idx; item.onClick(this.clickActivityItem, this); var iconBtn = FGUtil.getComponent(item, "icon"); iconBtn.node["idx"] = idx; iconBtn.onClick(this.clickActivityInfo, this); FGUtil.getComponent(item, "set").onClick(this.clickSet, this); } initActivityChildItem(item, info) { var inTime = this.checkInTime(info.startTime, info.endTime); if (info.finish) //已完成 FGUtil.getControl(item, "finish").selectedIndex = 1; else { // 未完成狀態 if (inTime == -1)//已結束 FGUtil.getControl(item, "finish").selectedIndex = 2; else FGUtil.getControl(item, "finish").selectedIndex = 0; } if (info.hasGo) { // 如果完成就不再顯示前往 if (info.finish) FGUtil.getControl(item, "goTo").selectedIndex = 0; // 如果有時間限制 else if (info.fixedTime != "" && SKDataUtil.hasProperty(info.startTime, "d") && info.startTime.d != -1) { if (inTime == 1) { // 處於限制時間內,顯示前往 FGUtil.getControl(item, "goTo").selectedIndex = 1; FGUtil.getControl(item, "showTime").selectedIndex = 0; } else if (inTime == 0) { // 未開始,顯示時間 FGUtil.getControl(item, "goTo").selectedIndex = 0; FGUtil.getControl(item, "showTime").selectedIndex = 1; } else if (inTime == -1) { // 已結束 FGUtil.getControl(item, "goTo").selectedIndex = 0; FGUtil.getControl(item, "showTime").selectedIndex = 0; } } else //顯示前往 FGUtil.getControl(item, "goTo").selectedIndex = 1; } else FGUtil.getControl(item, "goTo").selectedIndex = 0; // 顯示任務名稱 FGUtil.getTextField(item, "name").text = info.name; // 顯示任務圖標 FGUtil.getLoader(item, "icon").url = `ui://main_ui/${info.icon}`; // 顯示高獎勵類型 FGUtil.getLoader(item, "typeIcon").url = `ui://main_ui/${info.tipType}`; // 顯示次數描述 if (info.des) { FGUtil.getTextField(item, "times").text = `${info.des}:${info.desValue}/${info.desMax}${info.desSuffix}`; } else FGUtil.getTextField(item, "times").text = ""; // 顯示活躍度 if (info.activityDes) { FGUtil.getTextField(item, "activity").text = `${info.activityDes}:${info.activityValue}/${info.activityMax}`; } else FGUtil.getTextField(item, "activity").text = ""; // 顯示限制時間 FGUtil.getTextField(item, "time").text = info.fixedTime; var goBtn = FGUtil.getButton(item, "go"); goBtn.node["goNpc"] = info.goPos; goBtn.onClick(this.goNpc, this); item.node["info"] = info; item.onClick(this.clickActivityChildItem, this); } openInfoPanel(info : ActivityObj) { if (!SKUIUtil.isFGUIValid(this.DailyInfoPanel)) { this.DailyInfoPanel = FGUtil.create("main_ui", "activityInfoPanel"); FGUtil.root().addChild(this.DailyInfoPanel); this.DailyInfoPanel.makeFullScreen(); } var mask = FGUtil.getComponent(this.DailyInfoPanel, "mask"); this.pushCloseEvent(mask, this.DailyInfoPanel); FGUtil.getTextField(this.DailyInfoPanel, "alert/name").text = info.name; FGUtil.getTextField(this.DailyInfoPanel, "alert/name").color = SKUIUtil.colorOfString(info.titleColor); FGUtil.getRichTextField(this.DailyInfoPanel, "alert/des").text = info.taskDes; var list = FGUtil.getList(this.DailyInfoPanel, "alert/list"); list.removeChildren(); for (let i in info.reward) { var item = list.addItem().asCom; var rewardInfo = info.reward[i] FGUtil.getLoader(item, "icon").url = `ui://main_ui/${ItemUtil.getItemData(rewardInfo.id).icon}`; if (rewardInfo.num > 0) FGUtil.getTextField(item, "num").text = `${SKDataUtil.transform(rewardInfo.num)}`; else FGUtil.getTextField(item, "num").text = ""; } FGUtil.getControl(this.DailyInfoPanel, "alert/moreReward").selectedIndex = Math.ceil(info.reward.length / 4) } /** * 檢測是否處於活動時間 */ checkInTime(start, end) { var tt = new Date() if (start.d == -1) return 0; if (start.d == 0) { // 每一天的這個時間 var t = new Date(); var s = new Date(Date.parse(`${t.getFullYear()}-${t.getMonth() + 1}-${t.getDate()} ${start.h}:${start.m}`)); var e = new Date(Date.parse(`${t.getFullYear()}-${t.getMonth() + 1}-${t.getDate()} ${end.h}:${end.m}`)); var c = t.getTime(); if (c >= s.getTime() && c <= e.getTime())// 處於限制時間內 return 1; if (c < s.getTime())// 未開始 return 0; if (c > e.getTime())// 已結束 return -1; } else { // 每週的這個時間 var t = new Date(); var today = t.getDay(); if (today - end.d > 0) // 已結束 return -1; if (today - start.d < 0)//未開始 return 0; // 剩下的情況就是當天 var s = new Date(Date.parse(`${t.getFullYear()}-${t.getMonth() + 1}-${t.getDate()} ${start.h}:${start.m}`)); var e = new Date(Date.parse(`${t.getFullYear()}-${t.getMonth() + 1}-${t.getDate()} ${end.h}:${end.m}`)); var c = t.getTime(); if (c >= s.getTime() && c <= e.getTime())// 處於限制時間內 return 1; if (c < s.getTime())// 未開始 return 0; if (c > e.getTime())// 已結束 return -1; } return 0; } /** * 根據當前選擇的類型刷新列表 * @returns */ refreshActivityListByType() { if (!SKUIUtil.isFGUIValid(this.DailyActivityPanel)) return; var type = FGUtil.getControl(this.DailyActivityPanel, "alert/type").selectedIndex; if (type == DailyClassType.UNKNOW) this.refreshActivityList(); else if (type == DailyClassType.EXP) this.clickExpType(); else if (type == DailyClassType.GOLD) this.clickGoldType(); else if (type == DailyClassType.RELAX) this.clickRelaxType(); } refreshActivityList() { if (!SKUIUtil.isFGUIValid(this.DailyActivityPanel)) return; this.activityList = DailyActivityData.activityList; var list = FGUtil.getList(this.DailyActivityPanel, "alert/list"); if (list.numItems != this.activityList.length) list.numItems = this.activityList.length; else list.refreshVirtualList(); } refreshActivityCount() { if (!SKUIUtil.isFGUIValid(this.DailyActivityPanel)) return; FGUtil.getProgressBar(this.DailyActivityPanel, "alert/activityPB").value = DailyActivityData.activityScore; } refreshActivityPrize() { if (!SKUIUtil.isFGUIValid(this.DailyActivityPanel)) return; var list = DailyActivityData.activityPrize; if (!list || list.length == 0) return for (let i = 1; i <= 6; i++) { if (!list[i - 1]) break; var item = FGUtil.getComponent(this.DailyActivityPanel, `alert/activityReward${i}`); FGUtil.getLoader(item, "icon").url = `ui://main_ui/${ItemUtil.getItemData(list[i - 1].id).icon}`; FGUtil.getTextField(item, "num").text = SKDataUtil.transform(list[i - 1].num); FGUtil.getControl(item, "get").selectedIndex = list[i - 1].get; } } refreshDouble() { if (!SKUIUtil.isFGUIValid(this.DailyActivityPanel)) return; var tx = FGUtil.getTextField(this.DailyActivityPanel, "alert/n42"); tx.text = `已領取:${DailyActivityData.doublePoint ? DailyActivityData.doublePoint : 0}\n可領取:${DailyActivityData.doubleCanget}` } clickActivityInfo(e : Event, id : number = 0) { var idx = 0; if (SKDataUtil.hasProperty(e.target, "idx")) idx = e.target["idx"]; else idx = id; var info : ActivityObj = this.activityList[idx]; this.openInfoPanel(info) } clearChildActivity() { if (DailyActivityData.showChild && DailyActivityData.showChildIdx >= 0) { DailyActivityData.activityList[DailyActivityData.showChildIdx].expanded = false; DailyActivityData.showChild = false; DailyActivityData.showChildIdx = -1; } for (let i in DailyActivityData.activityList) { if (DailyActivityData.activityList[i].isChild) { DailyActivityData.activityList.splice(i, 1) break } } for (let i in DailyActivityData.activityList) { if (DailyActivityData.activityList[i].isEmpty) { DailyActivityData.activityList.splice(i, 1) break } } } addChildActivity(idx) { var temp = SKDataUtil.cloneClass(DailyActivityData.activityList[idx]) var tempEpmty = SKDataUtil.cloneClass(DailyActivityData.activityList[idx]) temp.isChild = true; if (idx % 2 == 0) { //是左側的父按鈕 if (idx != DailyActivityData.activityList.length - 1) { //不是最後一個 tempEpmty.isEmpty = Math.ceil(temp.childList.length / 2) >= 3 ? 3 : Math.ceil(temp.childList.length / 2); DailyActivityData.activityList.splice(idx + 2, 0, temp, tempEpmty) } else { // 是在最後插入 tempEpmty.isEmpty = 1; DailyActivityData.activityList.splice(idx + 1, 0, tempEpmty, temp) } } else { tempEpmty.isEmpty = Math.ceil(temp.childList.length / 2) >= 3 ? 3 : Math.ceil(temp.childList.length / 2); DailyActivityData.activityList.splice(idx + 1, 0, temp, tempEpmty) } } clickActivityItem(e : Event) { var idx = 0; if (SKDataUtil.hasProperty(e.target, "idx")) idx = e.target["idx"]; var info : ActivityObj = this.activityList[idx]; // 當前是展開狀態 if (DailyActivityData.showChild) { // 點擊的是其他活動 if (idx != DailyActivityData.showChildIdx) { // 先關閉之前打開的 this.clearChildActivity(); if (info.childList.length > 0) { // 有子按鈕,展開現在選擇的 info.expanded = true; DailyActivityData.showChild = info.expanded; var tempIdx = -1 for (let i in DailyActivityData.activityList) { if (DailyActivityData.activityList[i].expanded) { tempIdx = parseInt(i) break } } DailyActivityData.showChildIdx = tempIdx; this.addChildActivity(tempIdx); } } else { this.clearChildActivity(); } this.refreshActivityListByType(); } else { // 當前是關閉狀態 if (info.childList.length > 0) { // 有子按鈕,展開 info.expanded = true; DailyActivityData.showChild = info.expanded; DailyActivityData.showChildIdx = idx; this.addChildActivity(idx); this.refreshActivityListByType(); } } if (info.childList.length == 0) this.openInfoPanel(info); } clickActivityChildItem(e : Event) { var info; if (SKDataUtil.hasProperty(e.target, "info")) { info = e.target["info"]; } else return; this.openInfoPanel(info); } /** * 前往NPC處 */ goNpc(e : Event) { var npc = 0; if (SKDataUtil.hasProperty(e.target, "goNpc")) npc = e.target["goNpc"]; e.stopPropagation(); if (npc == 10054 && GameModel.player.bangid == 0) { //幫派任務 MsgAlert.addMsg("請先加入幫派"); return; } if (npc == -666) { // 師門 if (GameModel.player.race == 1) npc = 30062; if (GameModel.player.race == 2) npc = 10118; if (GameModel.player.race == 3) npc = 30063; if (GameModel.player.race == 4) npc = 30065; if (GameModel.player.race == 5) npc = 70006; } let stPos = g_NpcMgr.GetNpcPos(npc); GameUtil.myPlayerToDo(stPos.nMap, stPos.nX, stPos.nY, () => { let temp = g_NpcMgr.FindNpcByConfigID(npc); if (temp) { let npc = temp.getComponent("Npc"); npc.OnNpcClick(); } }); this.closePanel(); } /** * 點擊領取活躍度獎勵 */ clickReward1() { this.clickReward(1); } clickReward2() { this.clickReward(2); } clickReward3() { this.clickReward(3); } clickReward4() { this.clickReward(4); } clickReward5() { this.clickReward(5); } clickReward6() { this.clickReward(6); } clickReward(idx) { console.log("on click", idx) if (DailyActivityData.activityScore < idx * 25 || DailyActivityData.activityPrize[idx - 1].get == 1) { // 活躍度不足顯示獎勵信息 console.log("活躍度不足顯示獎勵信息") let itemid = DailyActivityData.activityPrize[idx - 1].id let itemData = ItemUtil.getItemData(itemid) this.showInfo(itemData) } else { GameModel.send('c2s_take_active_prize', { nIndex: idx - 1 }); } } showInfo(itemInfo) { cc.loader.loadRes("Prefabs/BagItemDetail", cc.Prefab, (err, prefab) => { if (err) { console.log(err) return } if (itemInfo != null) { let detail = cc.instantiate(prefab); detail.parent = this.DailyActivityPanel.node; detail.setPosition(this.DailyActivityPanel.node.width / 2, -this.DailyActivityPanel.node.height / 2) detail.name = 'BagItemDetail'; detail.getComponent('BagItemDetail').loadInfo(itemInfo); } }) } /** * 點擊顯示全部類型 */ clickAllType() { this.clearChildActivity(); this.refreshActivityList(); } clickExpType() { if (!SKUIUtil.isFGUIValid(this.DailyActivityPanel)) return; this.clearChildActivity(); var tempList = []; for (let i in DailyActivityData.activityList) { if (DailyActivityData.activityList[i].classType == DailyClassType.EXP) tempList.push(DailyActivityData.activityList[i]) } this.activityList = tempList; FGUtil.getList(this.DailyActivityPanel, "alert/list").numItems = this.activityList.length; } clickGoldType() { if (!SKUIUtil.isFGUIValid(this.DailyActivityPanel)) return; this.clearChildActivity(); var tempList = []; for (let i in DailyActivityData.activityList) { if (DailyActivityData.activityList[i].classType == DailyClassType.GOLD) tempList.push(DailyActivityData.activityList[i]) } this.activityList = tempList; FGUtil.getList(this.DailyActivityPanel, "alert/list").numItems = this.activityList.length; } clickRelaxType() { if (!SKUIUtil.isFGUIValid(this.DailyActivityPanel)) return; this.clearChildActivity(); var tempList = []; for (let i in DailyActivityData.activityList) { if (DailyActivityData.activityList[i].classType == DailyClassType.RELAX) tempList.push(DailyActivityData.activityList[i]) } this.activityList = tempList; FGUtil.getList(this.DailyActivityPanel, "alert/list").numItems = this.activityList.length; } /** * 點擊領取雙倍經驗 */ clickDoubleExp() { if (DailyActivityData.doubleCanget <= 0) { MsgAlert.addMsg("沒有可領取的雙倍點數"); return; } GameModel.send("c2s_get_doublecnt", { roleid: GameModel.player.roleid }) } /** * 點擊熱點 */ clickHotDot() { MsgAlert.addMsg("暫未開放"); } /** * 點擊設置推送 */ clickTuiSong() { MsgAlert.addMsg("暫未開放"); } /** * 點擊設置 */ clickSet(e : Event) { MsgAlert.addMsg("暫未開放"); e.stopPropagation() } closePanel() { this.clearChildActivity(); if (DailyActivityData.showChildIdx != -1) { DailyActivityData.activityList[DailyActivityData.showChildIdx].expanded = false DailyActivityData.showChildIdx = -1; } DailyActivityData.showChild = false; FGUtil.dispose(this.DailyActivityPanel); this.DailyActivityPanel = null; } /** * 添加關閉事件 */ pushCloseEvent(item : fairygui.GComponent, target : fairygui.GComponent, call : Function = null) { item.clearClick(); item.onClick(() => { call && call() FGUtil.dispose(target); target = null; }, this) } OnReceiveDailyInfo(data) { // 計算總活躍度 var scoreSum = this.GetMapSum(data.mapActiveScore); scoreSum = scoreSum >= 0 ? scoreSum <= 170 ? scoreSum : 170 : 0; DailyActivityData.activityScore = scoreSum; // 獎勵列表 var prizeList = []; var getList = data.szBeenTake; var pzList = data.szActivePrize; for (let i in pzList) { var gift = pzList[i].split(",") prizeList.push({ id: gift[0], num: gift[1], get: getList[i] }) } DailyActivityData.activityPrize = prizeList; // 計算次數和活躍度 var countData = data.mapDailyCnt; var countDataFuBen = data.mapFuBenCnt; var huoyueData = data.mapActiveScore; // 大雁塔次數需要減一 if (countDataFuBen[1001]) countDataFuBen[1001] = countDataFuBen[1001] - 1; // 地宮完成次數為2則是完成,1是領取 if (countDataFuBen[1004]) countDataFuBen[1004] = Math.floor(countDataFuBen[1004] / 2); if (countDataFuBen[1005]) countDataFuBen[1005] = Math.floor(countDataFuBen[1005] / 2); if (countDataFuBen[1006]) countDataFuBen[1006] = Math.floor(countDataFuBen[1006] / 2); // 地宮三種難度次數合一 if (!countDataFuBen[1004]) countDataFuBen[1004] = 0; if (countDataFuBen[1005]) countDataFuBen[1004] += countDataFuBen[1005]; if (countDataFuBen[1006]) countDataFuBen[1004] += countDataFuBen[1006]; // 地宮三種難度活躍度合一 if (!huoyueData[1004]) huoyueData[1004] = 0; if (huoyueData[1005]) huoyueData[1004] += huoyueData[1005]; if (huoyueData[1006]) huoyueData[1004] += huoyueData[1006]; for (let i in DailyActivityData.activityList) { var id = DailyActivityData.activityList[i].id; // 普通活动次数 if (huoyueData[id]) DailyActivityData.activityList[i].activityValue = huoyueData[id]; // 副本活動次數 if (countDataFuBen[id]) DailyActivityData.activityList[i].desValue = countDataFuBen[id]; // 活躍度 if (countData[id]) DailyActivityData.activityList[i].desValue = countData[id]; if (DailyActivityData.activityList[i].activityValue >= DailyActivityData.activityList[i].activityMax && DailyActivityData.activityList[i].desValue >= DailyActivityData.activityList[i].desMax) { DailyActivityData.activityList[i].finish = true; } if (DailyActivityData.activityList[i].childList.length > 0) { // 子任務 var child = DailyActivityData.activityList[i].childList; for (let m in child) { var id = child[m].id; if (countData[id]) child[m].activityValue = huoyueData[id]; if (huoyueData[id]) child[m].desValue = countData[id]; if (child[m].activityValue == child[m].activityMax && child[m].desValue == child[m].desMax) { child[m].finish = true; } } } } DailyActivityData.doublePoint = data.doublecnt; DailyActivityData.doubleCanget = data.canget; this.refreshActivityListByType(); this.refreshActivityCount(); this.refreshActivityPrize(); this.refreshDouble(); } GetMapSum(mapTmp) { let nNum = 0; for (const it in mapTmp) { nNum += mapTmp[it]; } return nNum; } }