瀏覽代碼

【修改】修改背包,新增获取道具数据与监听道具变动推送

DESKTOP-VHLO35R\Administrator 1 年之前
父節點
當前提交
c2741ba128
共有 1 個文件被更改,包括 57 次插入0 次删除
  1. 57 0
      assets/script/core/model/bag/BagMgr.js

+ 57 - 0
assets/script/core/model/bag/BagMgr.js

@@ -14,8 +14,57 @@ let BagMgr = {
14 14
         if (CC_EDITOR) {
15 15
             return;
16 16
         }
17
+
18
+        // 推送消息
19
+        cc.game.on('on_user_items', this._onUserItems, this);
20
+    },
21
+
22
+    _addItemData (data) {
23
+        let isUpdate = false;
24
+        for (let [idx, itemData] of Object.entries(this._items)) {
25
+            if (itemData.id == data.id) {
26
+                isUpdate = true;
27
+                if (data.count <= 0) {
28
+                    // 删除操作
29
+                    this._items.splice(idx, 1);
30
+                } else {
31
+                    // 更新操作
32
+                    this._items[idx] = data;
33
+                }
34
+                break;
35
+            }
36
+        }
37
+
38
+        if (!isUpdate && data.count > 0) {
39
+            // new操作
40
+            this._items.push(data);
41
+        }
42
+    },
43
+
44
+    //* ************* 用户信息获取 ************* *//
45
+
46
+    getItemDataById(itemid) {
47
+        for (const data of this._items) {
48
+            if (data.id == itemid) {
49
+                return data;
50
+            }
51
+        }
52
+
53
+        return undefined;
17 54
     },
18 55
 
56
+    getItemNumById(itemid) {
57
+        for (const data of this._items) {
58
+            if (data.id == itemid) {
59
+                return data.count;
60
+            }
61
+        }
62
+
63
+        return 0;
64
+    },
65
+
66
+    //* ************* 客户端请求/响应 ************* *//
67
+
19 68
     requestInfo () {
20 69
         G.NetworkMgr.sendSocketRequest('bag_get_info', {}, this._responseBagGetInfo.bind(this));
21 70
     },
@@ -32,6 +81,14 @@ let BagMgr = {
32 81
             G.AppUtils.getSceneCtrl().showOfflineAlert();
33 82
         }
34 83
     },
84
+
85
+    _onUserItems(data) {
86
+        if (!data || !data.items || data.items.length == 0) return;
87
+        for (const item of data.items) 
88
+        {
89
+            this._addItemData(item);
90
+        }
91
+    }
35 92
 }
36 93
 
37 94