Selaa lähdekoodia

【修改】 修改战斗界面

Hua 1 vuosi sitten
vanhempi
commit
799a4fdb07

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 211 - 321
assets/resources/edt_prefab/Bag/BagMain.prefab


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 1009 - 654
assets/resources/edt_prefab/Battle/BattleMain.prefab


+ 3 - 3
assets/resources/edt_prefab/BoxContains/BoxItem.prefab

@@ -548,14 +548,14 @@
548 548
     "_anchorPoint": {
549 549
       "__type__": "cc.Vec2",
550 550
       "x": 0.5,
551
-      "y": 0.5
551
+      "y": 1
552 552
     },
553 553
     "_trs": {
554 554
       "__type__": "TypedArray",
555 555
       "ctor": "Float64Array",
556 556
       "array": [
557 557
         0,
558
-        -154.668,
558
+        -144.054,
559 559
         0,
560 560
         0,
561 561
         0,
@@ -605,7 +605,7 @@
605 605
     "_styleFlags": 0,
606 606
     "_underlineHeight": 0,
607 607
     "_N$horizontalAlign": 1,
608
-    "_N$verticalAlign": 1,
608
+    "_N$verticalAlign": 0,
609 609
     "_N$fontFamily": "Arial",
610 610
     "_N$overflow": 0,
611 611
     "_N$cacheMode": 0,

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 152 - 262
assets/resources/edt_prefab/Dream/DreamMain.prefab


+ 2 - 2
assets/resources/res_image/person/person-tdt02.png.meta

@@ -26,8 +26,8 @@
26 26
       "height": 46,
27 27
       "rawWidth": 20,
28 28
       "rawHeight": 46,
29
-      "borderTop": 18,
30
-      "borderBottom": 19,
29
+      "borderTop": 9,
30
+      "borderBottom": 9,
31 31
       "borderLeft": 8,
32 32
       "borderRight": 8,
33 33
       "subMetas": {}

+ 4 - 0
assets/script/app/config/ConfigBase.js

@@ -30,6 +30,10 @@ cc.Class({
30 30
         this.table = table
31 31
     },
32 32
 
33
+    getConfigAll() {
34
+        return this.table;
35
+    },
36
+
33 37
     // 从主键中拿某一行数据
34 38
     getByMainKey(idx) {
35 39
         // 从缓存中拿数据

+ 18 - 0
assets/script/app/constants/AppConstants.js

@@ -51,6 +51,24 @@ window.JMC.PUBLIC_MSG = cc.Enum({
51 51
 
52 52
     BAG_INFO: "BAG_INFO",                   // 背包基本信息
53 53
     
54
+
55
+    // 战斗协议
56
+    ROOM_GET_INFO:"ROOM_GET_INFO",
57
+    ROOM_CREATE_ROOM:"ROOM_CREATE_ROOM",
58
+    ROOM_PLAYER_ENTER:"ROOM_PLAYER_ENTER",
59
+    ROOM_PLAYER_SEAT:"ROOM_PLAYER_SEAT",
60
+    ROOM_STAND_UP:"ROOM_STAND_UP",
61
+    ROOM_PLAYER_LEAVE:"ROOM_PLAYER_LEAVE",
62
+    ROOM_GET_RECORD_LIST:"ROOM_GET_RECORD_LIST",
63
+    ROOM_GET_PLAYER_RECORD_LIST:"ROOM_GET_PLAYER_RECORD_LIST",
64
+    ROOM_GET_BRILLIANT_RECORD_LIST:"ROOM_GET_BRILLIANT_RECORD_LIST",
65
+
66
+    ON_ROOM_NEW:"ON_ROOM_NEW",
67
+    ON_ROOM_DESTROY:"ON_ROOM_DESTROY",
68
+    ON_ROOM_PLAYER_CHANGE:"ON_ROOM_PLAYER_CHANGE",
69
+    ON_ROOM_SEAT_DOWN:"ON_ROOM_SEAT_DOWN",
70
+    ON_ROOM_BATTLE_SETTLE:"ON_ROOM_BATTLE_SETTLE",
71
+
54 72
 });
55 73
 
56 74
 // 通用消息类型优先级

+ 7 - 0
assets/script/app/utils.meta

@@ -0,0 +1,7 @@
1
+{
2
+  "ver": "1.0.1",
3
+  "uuid": "58ee6ef6-77bf-4145-a97c-b9d0aab6b36e",
4
+  "isSubpackage": false,
5
+  "subpackageName": "",
6
+  "subMetas": {}
7
+}

+ 44 - 0
assets/script/app/utils/MultipleViewData.js

@@ -0,0 +1,44 @@
1
+
2
+cc.Class({
3
+    initRoot (rootNode) {
4
+        this.rootNode = rootNode;
5
+        this.views = [];
6
+        this.curViewType = null
7
+        return this;
8
+    },
9
+
10
+    addViewData(viewType) {
11
+        this.views.push({type:viewType, view:null, initing:false})
12
+    },
13
+
14
+    createOrShowView(type, parent) {
15
+        let viewData = this.views[type]
16
+        for (let vd of this.views) {
17
+            if (vd.view == null) {
18
+                continue
19
+            }
20
+            vd.view.active = false;
21
+        }
22
+
23
+        if (viewData.initing) {
24
+            return
25
+        }
26
+
27
+        if (viewData.view != null) {
28
+            viewData.view.active = true;
29
+            return
30
+        }
31
+
32
+        viewData.initing = true
33
+        let self = this
34
+        this.rootNode.createComponent(viewData.type, parent, null, function(node, status) {
35
+            if (status != 'ok') {
36
+                return
37
+            }
38
+
39
+            viewData.view = node
40
+            viewData.initing = false
41
+            node.active = self.curViewType == type
42
+        })
43
+    }
44
+})

+ 9 - 0
assets/script/app/utils/MultipleViewData.js.meta

@@ -0,0 +1,9 @@
1
+{
2
+  "ver": "1.0.8",
3
+  "uuid": "615b09c7-9fd7-4171-9f0e-561da655d864",
4
+  "isPlugin": false,
5
+  "loadPluginInWeb": true,
6
+  "loadPluginInNative": true,
7
+  "loadPluginInEditor": false,
8
+  "subMetas": {}
9
+}

+ 42 - 0
assets/script/app/utils/SequenCreateView.js

@@ -0,0 +1,42 @@
1
+
2
+let MultipleViewData = require('MultipleViewData')
3
+
4
+cc.Class({
5
+    extends: MultipleViewData,
6
+
7
+    initRoot (rootNode) {
8
+        this._super(rootNode);
9
+        this.datas = [];
10
+        this.createIndex = 0;
11
+        return this;
12
+    },
13
+
14
+    addDatas(datas) {
15
+        this.datas = datas
16
+    },
17
+
18
+    startCreate(type, parent, cb) {
19
+        this.createIndex = 0
20
+        this.createView(type, parent, cb);
21
+    },
22
+
23
+    createView(type, parent, cb) {
24
+        if (this.createIndex >= this.datas.length) {
25
+            return;
26
+        }
27
+
28
+        let data = this.datas[this.createIndex]
29
+        let self = this
30
+        this.rootNode.createComponent(type, parent, data, function(node, status) {
31
+            if (status != 'ok') {
32
+                return
33
+            }
34
+
35
+            self.createIndex += 1;
36
+            self.createView(type, parent, cb);
37
+            if (cb) {
38
+                cb(node, data);
39
+            }
40
+        })
41
+    },
42
+})

+ 9 - 0
assets/script/app/utils/SequenCreateView.js.meta

@@ -0,0 +1,9 @@
1
+{
2
+  "ver": "1.0.8",
3
+  "uuid": "6a66487d-c7ee-4d88-af3f-2f85612716be",
4
+  "isPlugin": false,
5
+  "loadPluginInWeb": true,
6
+  "loadPluginInNative": true,
7
+  "loadPluginInEditor": false,
8
+  "subMetas": {}
9
+}

+ 115 - 0
assets/script/app/view/battle/BattleMain.js

@@ -0,0 +1,115 @@
1
+const ButtonSelect1 = require('ButtonSelect1')
2
+const ViewBase = require('ViewBase');
3
+const SequenCreateView = require('SequenCreateView');
4
+const BoxItem = require('BoxItem')
5
+
6
+cc.Class({
7
+    extends: ViewBase,
8
+    properties: {
9
+        button1: {
10
+            default: null,
11
+            type: ButtonSelect1,
12
+            serializable: true,
13
+        },
14
+
15
+        button2: {
16
+            default: null,
17
+            type: ButtonSelect1,
18
+            serializable: true,
19
+        },
20
+
21
+        button3: {
22
+            default: null,
23
+            type: ButtonSelect1,
24
+            serializable: true,
25
+        },
26
+
27
+        buttonPrice1: {
28
+            default: null,
29
+            type: ButtonSelect1,
30
+            serializable: true,
31
+        },
32
+
33
+        buttonPrice2: {
34
+            default: null,
35
+            type: ButtonSelect1,
36
+            serializable: true,
37
+        },
38
+
39
+        buttonPrice3: {
40
+            default: null,
41
+            type: ButtonSelect1,
42
+            serializable: true,
43
+        },
44
+
45
+        buttonPrice4: {
46
+            default: null,
47
+            type: ButtonSelect1,
48
+            serializable: true,
49
+        },
50
+
51
+        scrollViewBox: {
52
+            default: null,
53
+            type: cc.ScrollView,
54
+            serializable: true,
55
+        },
56
+
57
+        viewContent: {
58
+            default: null,
59
+            type: cc.Node,
60
+            serializable: true,
61
+        }
62
+    },
63
+
64
+    onLoad () {
65
+        this.buttons = [
66
+            this.button1,
67
+            this.button2,
68
+            this.button3,
69
+        ];
70
+
71
+        this.buttonPrices = [
72
+            this.buttonPrice1,
73
+            this.buttonPrice2,
74
+            this.buttonPrice3,
75
+            this.buttonPrice4,
76
+        ];
77
+
78
+        this.sequenCreateBoxs = new SequenCreateView().initRoot(this);
79
+        this.initBoxs();
80
+        this.onClickPrice(null, "0");
81
+    },
82
+
83
+    initBoxs() {
84
+        // getConfigAll
85
+        // this.sequenCreateBoxs.addDatas(G.CfgMgr.battleBoxConfig.getConfigAll());
86
+        this.sequenCreateBoxs.addDatas(G.CfgMgr.battleBoxConfig.getConfigAll());
87
+        this.sequenCreateBoxs.startCreate(JMC.UIEnum.BoxItem, this.scrollViewBox.content, function(node, data) {
88
+            let boxItem = node.getComponent(BoxItem);
89
+            boxItem.setScale(0.73);
90
+            boxItem.setNameScale(1/0.73);
91
+            boxItem.setName(data.name);
92
+            boxItem.setPrice(G.PlayUtils.getPrice(data.price));
93
+        });
94
+    },
95
+    
96
+
97
+    updatePriceSelect(index) {
98
+        for (let i = 0; i < this.buttonPrices.length; i++) {
99
+            const b = this.buttonPrices[i];
100
+            b.setSelect(index == i)
101
+        }
102
+    },
103
+
104
+    onClickTitle(event, customEventData) {
105
+        let index = parseInt(customEventData)
106
+    },
107
+
108
+    onClickPrice(event, customEventData) {
109
+        let index = parseInt(customEventData)
110
+        this.updatePriceSelect(index)
111
+    },
112
+
113
+
114
+    // update (dt) {},
115
+});

+ 9 - 0
assets/script/app/view/battle/BattleMain.js.meta

@@ -0,0 +1,9 @@
1
+{
2
+  "ver": "1.0.8",
3
+  "uuid": "83fc1028-8005-4fee-85fa-c4c8395e1901",
4
+  "isPlugin": false,
5
+  "loadPluginInWeb": true,
6
+  "loadPluginInNative": true,
7
+  "loadPluginInEditor": false,
8
+  "subMetas": {}
9
+}

+ 11 - 4
assets/script/app/view/box_contains/BoxItem.js

@@ -27,13 +27,20 @@ cc.Class({
27 27
         },
28 28
     },
29 29
 
30
-    // LIFE-CYCLE CALLBACKS:
31 30
 
32
-    // onLoad () {},
31
+    setScale(s) {
32
+        this.node.scale = s;
33
+    },
33 34
 
34
-    start () {
35
+    setName(name) {
36
+        this.textName.string = name;
37
+    },
35 38
 
39
+    setNameScale(s) {
40
+        this.textName.node.scale = s;
36 41
     },
37 42
 
38
-    // update (dt) {},
43
+    setPrice(price) {
44
+        this.textPrice.string = price;
45
+    },
39 46
 });

+ 0 - 1
assets/script/app/view/common/ViewBase.js

@@ -47,7 +47,6 @@ cc.Class({
47 47
             if (cb) {
48 48
                 cb(node, 'ok', undefined);
49 49
             }
50
-
51 50
         });
52 51
     },
53 52
 

+ 10 - 36
assets/script/app/view/dream/DreamMain.js

@@ -1,5 +1,6 @@
1
-let ButtonSelect1 = require('ButtonSelect1')
2
-let ViewBase = require('ViewBase')
1
+const ButtonSelect1 = require('ButtonSelect1')
2
+const ViewBase = require('ViewBase');
3
+const MultipleViewData = require('MultipleViewData');
3 4
 
4 5
 cc.Class({
5 6
     extends: ViewBase,
@@ -43,12 +44,11 @@ cc.Class({
43 44
             this.button4,
44 45
         ];
45 46
 
46
-        this.views = [
47
-            {type:JMC.UIEnum.DreamPopular, view:null, initing:false},
48
-            {type:JMC.UIEnum.DreamBrilliant, view:null, initing:false},
49
-            {type:JMC.UIEnum.DreamDropRecord, view:null, initing:false},
50
-            {type:JMC.UIEnum.DreamStatistics, view:null, initing:false},
51
-        ];
47
+        this.multipleViewData = new MultipleViewData().initRoot(this)
48
+        this.multipleViewData.addViewData(JMC.UIEnum.DreamPopular);
49
+        this.multipleViewData.addViewData(JMC.UIEnum.DreamBrilliant);
50
+        this.multipleViewData.addViewData(JMC.UIEnum.DreamDropRecord);
51
+        this.multipleViewData.addViewData(JMC.UIEnum.DreamStatistics);
52 52
 
53 53
         this.curViewType = null
54 54
         this.onClickTitle(null, "0")
@@ -58,7 +58,8 @@ cc.Class({
58 58
         let index = parseInt(customEventData)
59 59
         this.updateButtonSelect(index);
60 60
         this.curViewType = index;
61
-        this.createOrShowView(this.curViewType)
61
+        this.multipleViewData.curViewType = index;
62
+        this.multipleViewData.createOrShowView(this.curViewType, this.viewContent)
62 63
     },
63 64
 
64 65
     updateButtonSelect(index) {
@@ -69,34 +70,7 @@ cc.Class({
69 70
     },
70 71
 
71 72
     createOrShowView(type) {
72
-        let viewData = this.views[type]
73
-        for (let vd of this.views) {
74
-            if (vd.view == null) {
75
-                continue
76
-            }
77
-            vd.view.active = false;
78
-        }
79
-
80
-        if (viewData.initing) {
81
-            return
82
-        }
83
-
84
-        if (viewData.view != null) {
85
-            viewData.view.active = true;
86
-            return
87
-        }
88
-
89
-        viewData.initing = true
90
-        let self = this
91
-        this.createComponent(viewData.type, this.viewContent, null, function(node, status) {
92
-            if (status != 'ok') {
93
-                return
94
-            }
95 73
 
96
-            viewData.view = node
97
-            viewData.initing = false
98
-            node.active = self.curViewType == type
99
-        })
100 74
     }
101 75
 
102 76
     // update (dt) {},

+ 2 - 0
assets/script/core/CoreInit.js

@@ -17,6 +17,8 @@ module.exports = {
17 17
         ns.LogUtils       = require('LogUtils');
18 18
         // 函数工具
19 19
         ns.FuncUtils      = require('FuncUtils');
20
+        // 玩家相关工具
21
+        ns.PlayUtils      = require('PlayUtils');
20 22
         // 订单号工具
21 23
         ns.OrderUtils       = require('OrderUtils');
22 24
         // XMLHttp工具

+ 190 - 0
assets/script/core/model/battle/BattleMgr.js

@@ -0,0 +1,190 @@
1
+/**
2
+ * 背包数据管理
3
+ */
4
+let BattleMgr = {
5
+    // # 房间玩家信息
6
+    // .DataRoomPlayer {
7
+    //     playerInfo 0: DataUserBaseInfo      # 玩家信息
8
+    //     seatId 1: integer                   # 位置ID
9
+    //     status 2: integer                   # 状态 0:进入 1:准备
10
+    // }
11
+
12
+    // # 房间信息
13
+    // .DataRoom {
14
+    //     roomId 0: integer                   # 房间号
15
+    //     playCount 1:integer                 # 战斗人数 - 历史战绩无此字段
16
+    //     battleBoxList 2: *integer           # 战斗箱子ID列表
17
+    //     playerList 3: *DataRoomPlayer       # 房间玩家列表 - 历史战绩仅保留战斗玩家
18
+    //     status 4: integer                   # 房间状态 0:等待中 1:进行中 2:结束
19
+    //     createTime 5: integer               # 创建时间
20
+    //     battleTime 6: integer               # 战斗开始时间
21
+    // }
22
+
23
+    // # 射击结果
24
+    // .DataBattleShot {
25
+    //     itemId 0: integer                   # 中奖饰品ID
26
+    //     price 1: integer                    # 射击价格
27
+    // }
28
+    // # 战斗玩家
29
+    // .DataBattlePlayer {
30
+    //     uid 0: integer                      # 玩家ID
31
+    //     seatId 1: integer                   # 座位ID
32
+    //     shotList 2: *DataBattleShot         # 射击结果列表
33
+    // }
34
+
35
+    // # 战斗 - 玩家掉落
36
+    // .DataBattlePlayerShot {
37
+    //     uid 0: integer                      # 玩家ID
38
+    //     shot 1: DataBattleShot              # 射击结果
39
+    // }
40
+    // # 战斗 - 轮次信息
41
+    // .DataBattleRound {
42
+    //     round 0: integer                    # 轮次
43
+    //     shotList 1: *DataBattlePlayerShot   # 玩家射击列表
44
+    // }
45
+    // # 战斗 - 结算
46
+    // .DataBattleSettle {
47
+    //     roomInfo 0: DataRoom                # 房间信息
48
+    //     battleId 1: string                  # 战斗编号
49
+    //     winUid 2: integer                   # 胜利玩家ID
50
+    //     rounds 3: *DataBattleRound          # 战斗轮次列表 - 历史战绩没有该字段
51
+    //     battlePlayerList 4: *DataBattlePlayer   # 战斗玩家列表
52
+    // }
53
+
54
+    _rooms: {}, // 房间列表
55
+    _myRoom:null,
56
+
57
+    init () {
58
+        if (CC_EDITOR) {
59
+            return;
60
+        }
61
+
62
+        // 推送消息
63
+        cc.game.on('on_room_new', this._onRoomNew, this);
64
+        cc.game.on('on_room_destroy', this._onRoomDestroy, this);
65
+        cc.game.on('on_room_player_change', this._onRoomPlayerChange, this);
66
+        cc.game.on('on_room_seat_down', this._onRoomSeatDown, this);
67
+        cc.game.on('on_room_battle_settle', this._onRoomBattleSettle, this);
68
+    },
69
+
70
+    //* ************* 客户端请求/响应 ************* *//
71
+    requestInfo () {
72
+        G.NetworkMgr.sendSocketRequest('room_get_info', {}, this._responseRoomGetInfo.bind(this));
73
+    },
74
+
75
+    requestRoomCreate(playCount, battleBoxList) {
76
+        let request = {
77
+            playCount: playCount,
78
+            battleBoxList: battleBoxList,
79
+        };
80
+        G.NetworkMgr.sendSocketRequest('room_create_room', request, this._responseRoomCreate.bind(this));
81
+    },
82
+
83
+    requestRoomPlayerEnter(roomId) {
84
+        let request = {
85
+            roomId: roomId,
86
+        };
87
+        G.NetworkMgr.sendSocketRequest('room_player_enter', request, this._responseRoomPlayerEnter.bind(this));
88
+    },
89
+
90
+    requestRoomPlayerSeat(roomId, seatId) {
91
+        let request = {
92
+            roomId: roomId,
93
+            seatId: seatId,
94
+        };
95
+        G.NetworkMgr.sendSocketRequest('room_player_seat', request, this._responseRoomPlayerSeat.bind(this));
96
+    },
97
+
98
+    requestRoomStandUp() {
99
+        G.NetworkMgr.sendSocketRequest('room_stand_up', {}, this._responseRoomStandUp.bind(this));
100
+    },
101
+
102
+    requestRoomPlayerLeave() {
103
+        G.NetworkMgr.sendSocketRequest('room_player_leave', {}, this._responseRoomPlayerLeave.bind(this));
104
+    },
105
+
106
+    requestRoomGetRecordList(lastTime) {
107
+        let request = {
108
+            lastTime: lastTime,
109
+        };
110
+        G.NetworkMgr.sendSocketRequest('room_get_record_list', request, this._responseRoomGetRecordList.bind(this));
111
+    },
112
+
113
+    requestRoomGetPlayerRecordList(lastTime) {
114
+        let request = {
115
+            lastTime: lastTime,
116
+        };
117
+        G.NetworkMgr.sendSocketRequest('room_get_player_record_list', request, this._responseRoomGetPlayerRecordList.bind(this));
118
+    },
119
+
120
+    requestRoomGetBrilliantRecordList() {
121
+        G.NetworkMgr.sendSocketRequest('room_get_brilliant_record_list', {}, this._responseRoomGetBrilliantRecordList.bind(this));
122
+    },
123
+
124
+    _responseRoomGetInfo (data) {
125
+        let responseInfo = data.responseInfo;
126
+        if (responseInfo.code === 200) {
127
+            // 房间列表
128
+            this._rooms = responseInfo.roomList;
129
+            this._myRoom = responseInfo.myRoom;
130
+            G.PublicMgr.emit(JMC.PUBLIC_MSG.BAG_INFO);
131
+        } else {
132
+            // 断开网络并且弹出重连窗口
133
+            G.NetworkMgr.closeSocket();
134
+            G.AppUtils.getSceneCtrl().showOfflineAlert();
135
+        }
136
+    },
137
+
138
+    _responseRoomCreate (data){
139
+        let responseInfo = data.responseInfo;
140
+        if (responseInfo.code === 200) {
141
+            // 房间列表
142
+            this._myRoom = responseInfo.room;
143
+            G.PublicMgr.emit(JMC.PUBLIC_MSG.ROOM_CREATE_ROOM);
144
+        } else {
145
+            // 断开网络并且弹出重连窗口
146
+            G.NetworkMgr.closeSocket();
147
+            G.AppUtils.getSceneCtrl().showOfflineAlert();
148
+        }
149
+    },
150
+
151
+    _responseRoomPlayerEnter (data) {
152
+        let responseInfo = data.responseInfo;
153
+        if (responseInfo.code === 200) {
154
+            // 房间列表
155
+            this._myRoom = responseInfo.room;
156
+            G.PublicMgr.emit(JMC.PUBLIC_MSG.ROOM_CREATE_ROOM);
157
+        } else {
158
+            // 断开网络并且弹出重连窗口
159
+            G.NetworkMgr.closeSocket();
160
+            G.AppUtils.getSceneCtrl().showOfflineAlert();
161
+        }
162
+    },
163
+
164
+    _responseRoomPlayerSeat (data) {
165
+
166
+    },
167
+
168
+    _responseRoomStandUp (data) {
169
+
170
+    },
171
+
172
+    _responseRoomPlayerLeave (data) {
173
+
174
+    },
175
+
176
+    _responseRoomGetRecordList (data) {
177
+
178
+    },
179
+
180
+    _responseRoomGetPlayerRecordList (data) {
181
+
182
+    },
183
+
184
+    _responseRoomGetBrilliantRecordList (data) {
185
+
186
+    },
187
+}
188
+
189
+
190
+module.exports = BattleMgr;

+ 5 - 0
assets/script/core/utils/PlayUtils.js

@@ -0,0 +1,5 @@
1
+module.exports = {
2
+    getPrice(configPrice) {
3
+        return String(1.0 * configPrice / 100)
4
+    },
5
+};

+ 9 - 0
assets/script/core/utils/PlayUtils.js.meta

@@ -0,0 +1,9 @@
1
+{
2
+  "ver": "1.0.8",
3
+  "uuid": "020cacf3-7f25-4c87-90cd-7fa1a853804a",
4
+  "isPlugin": false,
5
+  "loadPluginInWeb": true,
6
+  "loadPluginInNative": true,
7
+  "loadPluginInEditor": false,
8
+  "subMetas": {}
9
+}