薛鸿潇 5 лет назад
Родитель
Сommit
678f3285cc

+ 9 - 4
tower_sanguo/assets/scripts/data/GameData.ts

@@ -543,7 +543,7 @@ export default class GameData {
                 let o = arr[i];
                 let id = o.id;
                 let vo: GeneralVO = this.createGeneralVO(id, 0, arr[i]);
-                if(!vo){
+                if (!vo) {
                     continue;
                 }
 
@@ -583,7 +583,7 @@ export default class GameData {
         this.player.setProp(PLAYERPROP.TURNTABLE_TOTAL, data.turntableTotal);
         this.player.setProp(PLAYERPROP.USESKILL_TIME, data.skill_coolTime);
         this.player.setProp(PLAYERPROP.TASK_REDBAG_COUNT, data.taskRedBag);
-        this.player.setProp(PLAYERPROP.USER_DAILY_ACTIVE_S_INFO, data.USERDailyTaskINFO);
+        this.player.setProp(PLAYERPROP.USER_DAILY_ACTIVE_S_INFO, data.dailyTask);
 
         // this.player.setProp(PLAYERPROP.GENERAL_TRAIN_TIMES, data.general_train_times);
         // this.player.setProp(PLAYERPROP.INVEST_TIMES, data.invest_times);
@@ -598,7 +598,12 @@ export default class GameData {
             return;
         }
         for (let i in gameUserData) {
-            this.player.setProp(parseInt(i), parseInt(gameUserData[i]));
+            let key = parseInt(i);
+            if (this.player.isObjByPLAYERPROP(key)) {
+                this.player.setProp(parseInt(i), gameUserData[i]);
+            } else {
+                this.player.setProp(parseInt(i), parseInt(gameUserData[i]));
+            }
         }
     }
 
@@ -649,7 +654,7 @@ export default class GameData {
     private createGeneralVO(id, type: number, arg = null): GeneralVO {
         let vo = new GeneralVO();
         let config = this.getGeneralByID(id);
-        if(!config){
+        if (!config) {
             return;
         }
         //配置

+ 45 - 45
tower_sanguo/assets/scripts/module/task/TaskModel.ts

@@ -64,12 +64,22 @@ export default class TaskModel {
         /** 当前活跃值 */
         cur_active_value: 0,
         /** 总活跃值 */
-        max_active_value: 0,
+        max_active_value: 100,
         /** 活跃数据 */
         active_data: [],
         /** 任务列表数据 */
         list_data: [],
     }
+    /** 保存任务条数据 */
+    public static saveTaskData() {
+        let temp_str_list_data = JSON.stringify(this.task_data.list_data);
+        GameController.gameData.updatePropNoCheck(PLAYERPROP.USER_DAILY_TASK_INFO, temp_str_list_data);// 任务条数据
+    }
+    /** 保存活跃数据 */
+    public static saveActiveData() {
+        let temp_str_active_data = JSON.stringify(this.task_data.active_data);
+        GameController.gameData.updatePropNoCheck(PLAYERPROP.USER_DAILY_ACTIVE_INFO, temp_str_active_data);// 活跃数据
+    }
     /** 重置任务数据 */
     public static ResetTaskData() {
         this.task_data.cur_active_value = 0;
@@ -120,10 +130,8 @@ export default class TaskModel {
         }
         console.log('%c每日任务数据已重置', 'color: green;');
         // 通知服务端
-        let temp_str_list_data = JSON.stringify(this.task_data.list_data);
-        GameController.gameData.updatePropNoCheck(PLAYERPROP.USER_DAILY_TASK_INFO, temp_str_list_data);// 任务条数据
-        let temp_str_active_data = JSON.stringify(this.task_data.active_data);
-        GameController.gameData.updatePropNoCheck(PLAYERPROP.USER_DAILY_ACTIVE_INFO, temp_str_active_data);// 活跃数据
+        this.saveTaskData();
+        this.saveActiveData();
     }
     /** 获取数据 by player 
      * - 登陆时会获取
@@ -131,32 +139,38 @@ export default class TaskModel {
     */
     public static getTaskDataByPlayer() {
         // 任务条数据
-        // let list_data = GameController.gameData.player.getProp(PLAYERPROP.USER_DAILY_TASK_INFO);
-        // if (list_data) {
-        //     let temp_str_list_data = JSON.parse(list_data)
-        //     if (temp_str_list_data) this.task_data.list_data = temp_str_list_data;
-        // }
+        let list_data = GameController.gameData.player.getProp(PLAYERPROP.USER_DAILY_TASK_INFO);
+        if (list_data) {
+            let temp_str_list_data = JSON.parse(list_data)
+            if (temp_str_list_data) this.task_data.list_data = temp_str_list_data;
+        }
 
-        // // 活跃数据 - 需要服务端校验
-        // let active_data = GameController.gameData.player.getProp(PLAYERPROP.USER_DAILY_ACTIVE_INFO);
-        // if (active_data) {
-        //     let temp_str_active_data = JSON.parse(active_data);
-        //     if (temp_str_active_data) this.task_data.active_data = temp_str_active_data;
-        // }
+        // 活跃数据 - 需要服务端校验
+        let active_data = GameController.gameData.player.getProp(PLAYERPROP.USER_DAILY_ACTIVE_INFO);
+        if (active_data) {
+            let temp_str_active_data = JSON.parse(active_data);
+            if (temp_str_active_data) this.task_data.active_data = temp_str_active_data;
+        }
+        let active_s_data = GameController.gameData.player.getProp(PLAYERPROP.USER_DAILY_ACTIVE_S_INFO);
+        if (active_s_data) {
+            this.task_data.cur_active_value = active_s_data.activeToday;
+            for (let i = 0; i < this.task_data.active_data.length; i++) {
+                if (!active_s_data[i]) {
+                    this.task_data.active_data[i].task_box_state = RewardState.lock;
+                    this.task_data.active_data[i].tv_box_state = RewardState.lock;
+                } else if (active_s_data[i] === 1) {
+                    this.task_data.active_data[i].task_box_state = RewardState.unlock;
+                    this.task_data.active_data[i].tv_box_state = RewardState.lock;
+                } else if (active_s_data[i] === 2) {
+                    this.task_data.active_data[i].task_box_state = RewardState.unlock;
+                    this.task_data.active_data[i].tv_box_state = RewardState.unlock;
+                }
+                if (this.task_data.max_active_value < this.task_data.active_data[i].activevalue) this.task_data.max_active_value = this.task_data.active_data[i].activevalue;
+            }
+        }
         console.log('%c每日任务数据_s:', 'color: green;', TaskModel.task_data);
     }
 
-    /** 获取数据 */
-    private static serverTaskDataCall(s_data) {
-        cc.log('s_任务数据:%o', s_data);
-        // this.task_data.cur_active_value = s_data.task_active_data.cur_active_value;
-        // this.task_data.max_active_value = s_data.task_active_data.max_active_value;
-        // this.task_data.task_box_state = s_data.task_active_data.task_box_state || [];
-        // this.task_data.tv_box_state = s_data.task_active_data.tv_box_state || [];
-        // this.task_data.list_data = s_data.task_list;
-        XXEvent.emit(XXConst.UpdateTaskData, this.task_data);
-    }
-
 
     //////////////////////////////任务相关//////////////////////////////
     /** 设置指定任务数据进度与奖励状态 */
@@ -181,36 +195,19 @@ export default class TaskModel {
     /** 增加任务条进度 */
     public static addTaskItemBar(prop_id: PLAYERPROP) {
         if (prop_id === PLAYERPROP.GENERAL_TRAIN_TIMES) {
-            GameController.gameData.player.setProp(PLAYERPROP.GENERAL_TRAIN_TIMES, 1, true);
-            let times = GameController.gameData.player.getProp(PLAYERPROP.GENERAL_TRAIN_TIMES);
-            GameController.gameData.updatePropNoCheck(PLAYERPROP.GENERAL_TRAIN_TIMES, times);
             this.setListData(1);
         } else if (prop_id === PLAYERPROP.INVEST_TIMES) {
-            GameController.gameData.player.setProp(PLAYERPROP.INVEST_TIMES, 1, true);
-            let times = GameController.gameData.player.getProp(PLAYERPROP.INVEST_TIMES);
-            GameController.gameData.updatePropNoCheck(PLAYERPROP.INVEST_TIMES, times);
             this.setListData(2);
         } else if (prop_id === PLAYERPROP.GENERAL_LUCK_TIMES) {
-            GameController.gameData.player.setProp(PLAYERPROP.GENERAL_LUCK_TIMES, 1, true);
-            let times = GameController.gameData.player.getProp(PLAYERPROP.GENERAL_LUCK_TIMES);
-            GameController.gameData.updatePropNoCheck(PLAYERPROP.GENERAL_LUCK_TIMES, times);
             this.setListData(3);
         } else if (prop_id === PLAYERPROP.TURNTABLE_LUCK_TIMES) {
-            GameController.gameData.player.setProp(PLAYERPROP.TURNTABLE_LUCK_TIMES, 1, true);
-            let times = GameController.gameData.player.getProp(PLAYERPROP.TURNTABLE_LUCK_TIMES);
-            GameController.gameData.updatePropNoCheck(PLAYERPROP.TURNTABLE_LUCK_TIMES, times);
             this.setListData(4);
         } else if (prop_id === PLAYERPROP.USE_SKILLS_TIMES) {
-            GameController.gameData.player.setProp(PLAYERPROP.USE_SKILLS_TIMES, 1, true);
-            let times = GameController.gameData.player.getProp(PLAYERPROP.USE_SKILLS_TIMES);
-            GameController.gameData.updatePropNoCheck(PLAYERPROP.USE_SKILLS_TIMES, times);
             this.setListData(5);
         } else if (prop_id === PLAYERPROP.LOOK_VIDEO_TIMES) {
-            GameController.gameData.player.setProp(PLAYERPROP.LOOK_VIDEO_TIMES, 1, true);
-            let times = GameController.gameData.player.getProp(PLAYERPROP.LOOK_VIDEO_TIMES);
-            GameController.gameData.updatePropNoCheck(PLAYERPROP.LOOK_VIDEO_TIMES, times);
             this.setListData(6);
         }
+        this.saveTaskData();
         // 更新数据
         XXEvent.emit(XXConst.UpdateTaskData, this.task_data);
     }
@@ -238,6 +235,7 @@ export default class TaskModel {
                 break;
             }
         }
+        this.saveTaskData();
     }
 
     //////////////////////////////活跃相关//////////////////////////////
@@ -266,6 +264,7 @@ export default class TaskModel {
         // 通知服务端
         let data2 = { addActiveToday: value }
         GameController.http.scaveTaskActiveValue(data2);
+        this.saveActiveData();
     }
     /** 设置指定活跃宝箱状态 */
     public static setActiveBoxState(id, task_box_state, tv_box_state) {
@@ -277,6 +276,7 @@ export default class TaskModel {
                 break;
             }
         }
+        this.saveActiveData();
     }
 
     /** 获取任务数据 */

+ 2 - 0
tower_sanguo/assets/scripts/net/msg/PlayerProp.ts

@@ -63,5 +63,7 @@ export default class PlayerProp {
     use_skills_times: number
     /** 今日观看视频广告次数 28*/
     look_video_times: number
+    /** 玩家属性值是对象而非数字,解析服务端数据不转num的集合 */
+    PLAYERPROP_is_obj: [PLAYERPROP.USER_DAILY_TASK_INFO, PLAYERPROP.USER_DAILY_ACTIVE_INFO];
 
 }

+ 12 - 6
tower_sanguo/assets/scripts/vo/PlayerVO.ts

@@ -95,20 +95,26 @@ export default class PlayerVO {
     /** 可补领红包币数量 登录时获取*/
     taskRedBag = 0;
     /** 每日任务活跃数据 */
-    USERDailyTaskINFO = {
-        /** 用户活跃 */
-        active_value: 0,
+    dailyTask = {
+        /** 今日活跃 */
+        activeToday: 0,
         /** 今日视频数 */
-        lv_count: 0,
+        activeVideoTimes: 0,
         /** 已兑换Id */
-        exchanged_id: [],
+        dailyTaskReceives: [],
         /** 活跃度更新时间 */
-        refresh_time: '',
+        updateActiveTime: '',
     };
     /** 每日任务-任务条数据 
      * - 无需校验,存在 gameUserData 内
     */
     task_list_data: Array<TASKITEM> = [];
+    /** 玩家属性值是对象而非数字,解析服务端数据不转num的集合 */
+    isObjByPLAYERPROP(id): boolean {
+        let arr = [PLAYERPROP.USER_DAILY_TASK_INFO, PLAYERPROP.USER_DAILY_ACTIVE_INFO];
+        let bool =  arr.includes(id);
+        return bool;
+    }
 
 
     /** 初始武将id */