瀏覽代碼

最新登录流程代码修改

kaka 5 年之前
父節點
當前提交
33c04cef45
共有 95 個文件被更改,包括 6925 次插入1825 次删除
  1. 48 759
      assets/resources/game/coregame/configs/product.json
  2. 251 135
      assets/resources/game/coregame/coregame.prefab
  3. 5 5
      assets/resources/game/prefab/game.prefab
  4. 1882 0
      assets/resources/game/prefab/uiItem/PlantItem.prefab
  5. 8 0
      assets/resources/game/prefab/uiItem/PlantItem.prefab.meta
  6. 1303 0
      assets/resources/game/prefab/uiPanel/ADUnlockPanel.prefab
  7. 8 0
      assets/resources/game/prefab/uiPanel/ADUnlockPanel.prefab.meta
  8. 527 0
      assets/resources/game/prefab/uiPanel/PlantPanel.prefab
  9. 8 0
      assets/resources/game/prefab/uiPanel/PlantPanel.prefab.meta
  10. 12 0
      assets/resources/game/texture/txt.meta
  11. 二進制
      assets/resources/game/texture/txt/add_window_btn_byte_0.png
  12. 36 0
      assets/resources/game/texture/txt/add_window_btn_byte_0.png.meta
  13. 0 6
      assets/script/before/data/Enum.ts
  14. 7 7
      assets/script/before/main/FarmCountDown.ts
  15. 57 63
      assets/script/before/main/FarmIcon.ts
  16. 12 12
      assets/script/before/main/MapIcon.ts
  17. 12 0
      assets/script/before/view/data.meta
  18. 30 0
      assets/script/before/view/data/ADUnlockData.ts
  19. 9 0
      assets/script/before/view/data/ADUnlockData.ts.meta
  20. 12 0
      assets/script/before/view/ui.meta
  21. 18 0
      assets/script/before/view/ui/ADUnlockPanel.ts
  22. 9 0
      assets/script/before/view/ui/ADUnlockPanel.ts.meta
  23. 234 91
      assets/script/game/component/TableView.ts
  24. 20 1
      assets/script/game/component/tween/EffectOpenAndClose.ts
  25. 108 4
      assets/script/game/data/AdData.ts
  26. 10 10
      assets/script/game/data/AppData.ts
  27. 3 2
      assets/script/game/data/ConfigData.ts
  28. 3 0
      assets/script/game/data/GData.ts
  29. 145 66
      assets/script/game/data/GameData.ts
  30. 2 2
      assets/script/game/data/HttpData.ts
  31. 70 50
      assets/script/game/data/LoginData.ts
  32. 39 13
      assets/script/game/module/login/Login.ts
  33. 3 0
      assets/script/mk/sdk/ad/toppon/AnyThinkAdsMgr/ATBanner.ts
  34. 64 56
      assets/script/mk/sdk/ad/toppon/AnyThinkAdsMgr/ATInterstitial.ts
  35. 4 1
      assets/script/mk/sdk/ad/toppon/AnyThinkAdsMgr/ATInterstitialJS.js
  36. 3 5
      assets/script/mk/sdk/ad/toppon/AnyThinkAdsMgr/ATNative.ts
  37. 9 20
      assets/script/mk/sdk/ad/toppon/AnyThinkAdsMgr/ATRewardVideo.ts
  38. 6 3
      assets/script/mk/sdk/ad/toppon/AnyThinkAdsMgr/ATSDKMgr.ts
  39. 12 0
      assets/script/mk/sdk/aliRisk.meta
  40. 19 0
      assets/script/mk/sdk/aliRisk/AliRiskManager.ts
  41. 9 0
      assets/script/mk/sdk/aliRisk/AliRiskManager.ts.meta
  42. 28 9
      assets/script/mk/system/AdSystem.ts
  43. 20 0
      assets/script/mk/system/DataSystem.ts
  44. 62 3
      assets/script/mk/system/JsbSystem.ts
  45. 5 0
      assets/script/mk/system/MKSystem.ts
  46. 6 3
      assets/script/mk/system/UISystem.ts
  47. 2 2
      build/jsb-link/.cocos-project.json
  48. 二進制
      build/jsb-link/frameworks/runtime-src/proj.android-studio/.idea/caches/build_file_checksums.ser
  49. 1 1
      build/jsb-link/frameworks/runtime-src/proj.android-studio/.idea/gradle.xml
  50. 15 15
      build/jsb-link/frameworks/runtime-src/proj.android-studio/.idea/jarRepositories.xml
  51. 2 2
      build/jsb-link/frameworks/runtime-src/proj.android-studio/.idea/modules.xml
  52. 0 99
      build/jsb-link/frameworks/runtime-src/proj.android-studio/.idea/modules/-52358525/android-libcocos2dx.iml
  53. 99 0
      build/jsb-link/frameworks/runtime-src/proj.android-studio/.idea/modules/1786486690/libcocos2dx.iml
  54. 109 109
      build/jsb-link/frameworks/runtime-src/proj.android-studio/.idea/modules/app/kxnly.iml
  55. 4 3
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/AndroidManifest.xml
  56. 9 6
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/build.gradle
  57. 5 5
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/gradle.properties
  58. 二進制
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/keystore/eliminate.keystore
  59. 二進制
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/keystore/mokakey.keystore
  60. 3 0
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/keystore/mokakey_README.md
  61. 二進制
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/libs/aliRisk/Android-AliyunDevice-10017.aar
  62. 二進制
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/libs/umeng/umeng-abtest-v1.0.0.aar
  63. 二進制
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/libs/umeng/umeng-apm-armeabi-v1.3.1.aar
  64. 3 3
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/com/aries/kxnly/mz/wxapi/WXEntryActivity.java
  65. 28 24
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/AppActivity.java
  66. 47 4
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/thirdSdk/ThirdSdkMgr.java
  67. 6 2
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/thirdSdk/ad/SplashAdShowActivity.java
  68. 57 0
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/thirdSdk/aliRisk/AliRiskManager.java
  69. 68 0
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/thirdSdk/thinkingdata/TDSDKMgr.java
  70. 1 14
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/thirdSdk/umeng/MyApplication.java
  71. 12 1
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/thirdSdk/umeng/UMSDKMgr.java
  72. 0 1
      build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/util/DeviceUtil.java
  73. 7 7
      build/jsb-link/frameworks/runtime-src/proj.android-studio/gradle.properties
  74. 二進制
      build/jsb-link/frameworks/runtime-src/proj.android-studio/res/mipmap-hdpi/ic_launcher.png
  75. 二進制
      build/jsb-link/frameworks/runtime-src/proj.android-studio/res/mipmap-ldpi/ic_launcher.png
  76. 二進制
      build/jsb-link/frameworks/runtime-src/proj.android-studio/res/mipmap-mdpi/ic_launcher.png
  77. 二進制
      build/jsb-link/frameworks/runtime-src/proj.android-studio/res/mipmap-xhdpi/ic_launcher.png
  78. 二進制
      build/jsb-link/frameworks/runtime-src/proj.android-studio/res/mipmap-xxhdpi/ic_launcher.png
  79. 二進制
      build/jsb-link/frameworks/runtime-src/proj.android-studio/res/mipmap-xxxhdpi/ic_launcher.png
  80. 1 1
      build/jsb-link/frameworks/runtime-src/proj.android-studio/res/values/strings.xml
  81. 2 2
      build/jsb-link/frameworks/runtime-src/proj.android-studio/settings.gradle
  82. 20 20
      build/jsb-link/frameworks/runtime-src/proj.ios_mac/_backup/kxnly.xcodeproj/project.pbxproj
  83. 1 1
      build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Info.plist
  84. 1 1
      build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Prefix.pch
  85. 775 0
      build/jsb-link/frameworks/runtime-src/proj.ios_mac/kxnly.xcodeproj/project.pbxproj
  86. 1 1
      build/jsb-link/frameworks/runtime-src/proj.ios_mac/mac/Info.plist
  87. 1 1
      build/jsb-link/frameworks/runtime-src/proj.win32/kxnly.sln
  88. 1 1
      build/jsb-link/frameworks/runtime-src/proj.win32/kxnly.vcxproj
  89. 0 0
      build/jsb-link/frameworks/runtime-src/proj.win32/kxnly.vcxproj.filters
  90. 0 0
      build/jsb-link/frameworks/runtime-src/proj.win32/kxnly.vcxproj.user
  91. 69 69
      build/jsb-link/js backups (useful for debugging)/cocos2d-jsb.js
  92. 432 99
      build/jsb-link/js backups (useful for debugging)/main.index.js
  93. 2 2
      packages-hot-update/cfg.json
  94. 2 2
      settings/builder.json
  95. 1 1
      settings/project.json

+ 48 - 759
assets/resources/game/coregame/configs/product.json

@@ -1,759 +1,48 @@
-{
-    "10001": {
-        "id": 10001,
-        "type1": 0,
-        "building": "土地",
-        "name": "小麦",
-        "list": [
-            0
-        ],
-        "time": 15,
-        "reap": 10,
-        "award": 1500
-    },
-    "10002": {
-        "id": 10002,
-        "type1": 0,
-        "building": "土地",
-        "name": "玉米",
-        "list": [
-            0
-        ],
-        "time": 30,
-        "reap": 10,
-        "award": 1550
-    },
-    "10003": {
-        "id": 10003,
-        "type1": 0,
-        "building": "土地",
-        "name": "甘蔗",
-        "list": [
-            0
-        ],
-        "time": 45,
-        "reap": 10,
-        "award": 1600
-    },
-    "10004": {
-        "id": 10004,
-        "type1": 0,
-        "building": "土地",
-        "name": "胡萝卜",
-        "list": [
-            0
-        ],
-        "time": 60,
-        "reap": 10,
-        "award": 1650
-    },
-    "10005": {
-        "id": 10005,
-        "type1": 0,
-        "building": "土地",
-        "name": "土豆",
-        "list": [
-            0
-        ],
-        "time": 120,
-        "reap": 10,
-        "award": 1700
-    },
-    "10006": {
-        "id": 10006,
-        "type1": 0,
-        "building": "土地",
-        "name": "番茄",
-        "list": [
-            0
-        ],
-        "time": 180,
-        "reap": 10,
-        "award": 1700
-    },
-    "10007": {
-        "id": 10007,
-        "type1": 0,
-        "building": "土地",
-        "name": "豌豆",
-        "list": [
-            0
-        ],
-        "time": 240,
-        "reap": 10,
-        "award": 1800
-    },
-    "10008": {
-        "id": 10008,
-        "type1": 0,
-        "building": "土地",
-        "name": "上海青",
-        "list": [
-            0
-        ],
-        "time": 360,
-        "reap": 10,
-        "award": 1900
-    },
-    "10009": {
-        "id": 10009,
-        "type1": 0,
-        "building": "土地",
-        "name": "草莓",
-        "list": [
-            0
-        ],
-        "time": 480,
-        "reap": 10,
-        "award": 2000
-    },
-    "10010": {
-        "id": 10010,
-        "type1": 0,
-        "building": "土地",
-        "name": "辣椒",
-        "list": [
-            0
-        ],
-        "time": 600,
-        "reap": 10,
-        "award": 2100
-    },
-    "10011": {
-        "id": 10011,
-        "type1": 0,
-        "building": "土地",
-        "name": "南瓜",
-        "list": [
-            0
-        ],
-        "time": 720,
-        "reap": 10,
-        "award": 2200
-    },
-    "10012": {
-        "id": 10012,
-        "type1": 0,
-        "building": "土地",
-        "name": "西瓜",
-        "list": [
-            0
-        ],
-        "time": 900,
-        "reap": 10,
-        "award": 2300
-    },
-    "10013": {
-        "id": 10013,
-        "type1": 0,
-        "building": "土地",
-        "name": "白萝卜",
-        "list": [
-            0
-        ],
-        "time": 1200,
-        "reap": 10,
-        "award": 2400
-    },
-    "10014": {
-        "id": 10014,
-        "type1": 0,
-        "building": "土地",
-        "name": "冬瓜",
-        "list": [
-            0
-        ],
-        "time": 1500,
-        "reap": 10,
-        "award": 2500
-    },
-    "10015": {
-        "id": 10015,
-        "type1": 0,
-        "building": "土地",
-        "name": "薰衣草",
-        "list": [
-            0
-        ],
-        "time": 1800,
-        "reap": 10,
-        "award": 3000
-    },
-    "20001": {
-        "id": 20001,
-        "type1": 30001,
-        "building": "鸡舍",
-        "name": "鸡蛋",
-        "list": [
-            [
-                10001,
-                1
-            ]
-        ],
-        "time": 180,
-        "reap": 10,
-        "award": 1500
-    },
-    "20002": {
-        "id": 20002,
-        "type1": 30002,
-        "building": "牛棚",
-        "name": "牛奶",
-        "list": [
-            [
-                10002,
-                1
-            ]
-        ],
-        "time": 360,
-        "reap": 10,
-        "award": 2000
-    },
-    "20003": {
-        "id": 20003,
-        "type1": 30003,
-        "building": "猪圈",
-        "name": "猪肉",
-        "list": [
-            [
-                10004,
-                1
-            ]
-        ],
-        "time": 600,
-        "reap": 10,
-        "award": 3000
-    },
-    "20004": {
-        "id": 20004,
-        "type1": 30004,
-        "building": "爆米花厂",
-        "name": "爆米花",
-        "list": [
-            [
-                10002,
-                1
-            ]
-        ],
-        "time": 180,
-        "reap": 3,
-        "award": 1500
-    },
-    "20005": {
-        "id": 20005,
-        "type1": 30004,
-        "building": "爆米花厂",
-        "name": "奶油爆米花",
-        "list": [
-            [
-                10002,
-                1
-            ],
-            [
-                20007,
-                1
-            ]
-        ],
-        "time": 300,
-        "reap": 3,
-        "award": 1500
-    },
-    "20006": {
-        "id": 20006,
-        "type1": 30004,
-        "building": "爆米花厂",
-        "name": "焦糖爆米花",
-        "list": [
-            [
-                10002,
-                1
-            ],
-            [
-                20011,
-                1
-            ]
-        ],
-        "time": 600,
-        "reap": 3,
-        "award": 2000
-    },
-    "20007": {
-        "id": 20007,
-        "type1": 30005,
-        "building": "炼乳厂",
-        "name": "奶油",
-        "list": [
-            [
-                20002,
-                1
-            ]
-        ],
-        "time": 240,
-        "reap": 3,
-        "award": 1500
-    },
-    "20008": {
-        "id": 20008,
-        "type1": 30005,
-        "building": "炼乳厂",
-        "name": "黄油",
-        "list": [
-            [
-                20002,
-                2
-            ]
-        ],
-        "time": 300,
-        "reap": 3,
-        "award": 1500
-    },
-    "20009": {
-        "id": 20009,
-        "type1": 30005,
-        "building": "炼乳厂",
-        "name": "芝士",
-        "list": [
-            [
-                20002,
-                3
-            ]
-        ],
-        "time": 600,
-        "reap": 3,
-        "award": 2000
-    },
-    "20010": {
-        "id": 20010,
-        "type1": 30006,
-        "building": "制糖厂",
-        "name": "红糖",
-        "list": [
-            [
-                10003,
-                1
-            ]
-        ],
-        "time": 480,
-        "reap": 3,
-        "award": 2000
-    },
-    "20011": {
-        "id": 20011,
-        "type1": 30006,
-        "building": "制糖厂",
-        "name": "白糖",
-        "list": [
-            [
-                10003,
-                2
-            ]
-        ],
-        "time": 600,
-        "reap": 3,
-        "award": 2000
-    },
-    "20012": {
-        "id": 20012,
-        "type1": 30006,
-        "building": "制糖厂",
-        "name": "糖浆",
-        "list": [
-            [
-                10003,
-                3
-            ]
-        ],
-        "time": 1200,
-        "reap": 3,
-        "award": 3000
-    },
-    "20013": {
-        "id": 20013,
-        "type1": 30007,
-        "building": "糕点铺",
-        "name": "面包",
-        "list": [
-            [
-                10001,
-                2
-            ]
-        ],
-        "time": 240,
-        "reap": 3,
-        "award": 1500
-    },
-    "20014": {
-        "id": 20014,
-        "type1": 30007,
-        "building": "糕点铺",
-        "name": "面条",
-        "list": [
-            [
-                10001,
-                3
-            ]
-        ],
-        "time": 300,
-        "reap": 3,
-        "award": 1500
-    },
-    "20015": {
-        "id": 20015,
-        "type1": 30007,
-        "building": "糕点铺",
-        "name": "玉米饼",
-        "list": [
-            [
-                10002,
-                2
-            ],
-            [
-                20001,
-                1
-            ]
-        ],
-        "time": 420,
-        "reap": 3,
-        "award": 2000
-    },
-    "20016": {
-        "id": 20016,
-        "type1": 30007,
-        "building": "糕点铺",
-        "name": "松饼",
-        "list": [
-            [
-                10002,
-                2
-            ],
-            [
-                20001,
-                2
-            ]
-        ],
-        "time": 600,
-        "reap": 3,
-        "award": 2000
-    },
-    "20017": {
-        "id": 20017,
-        "type1": 30007,
-        "building": "糕点铺",
-        "name": "鸡蛋仔",
-        "list": [
-            [
-                10001,
-                2
-            ],
-            [
-                20001,
-                2
-            ],
-            [
-                20010,
-                1
-            ]
-        ],
-        "time": 900,
-        "reap": 3,
-        "award": 2000
-    },
-    "20018": {
-        "id": 20018,
-        "type1": 30007,
-        "building": "糕点铺",
-        "name": "金窝头",
-        "list": [
-            [
-                10001,
-                2
-            ],
-            [
-                10002,
-                2
-            ],
-            [
-                20011,
-                1
-            ]
-        ],
-        "time": 1200,
-        "reap": 3,
-        "award": 3000
-    },
-    "20019": {
-        "id": 20019,
-        "type1": 30008,
-        "building": "快餐店",
-        "name": "荷包蛋",
-        "list": [
-            [
-                20001,
-                3
-            ]
-        ],
-        "time": 240,
-        "reap": 3,
-        "award": 1500
-    },
-    "20020": {
-        "id": 20020,
-        "type1": 30008,
-        "building": "快餐店",
-        "name": "鸡蛋布丁",
-        "list": [
-            [
-                20001,
-                3
-            ],
-            [
-                20010,
-                1
-            ]
-        ],
-        "time": 300,
-        "reap": 3,
-        "award": 1500
-    },
-    "20021": {
-        "id": 20021,
-        "type1": 30008,
-        "building": "快餐店",
-        "name": "满足沙拉",
-        "list": [
-            [
-                10002,
-                4
-            ],
-            [
-                20003,
-                2
-            ]
-        ],
-        "time": 360,
-        "reap": 3,
-        "award": 1500
-    },
-    "20022": {
-        "id": 20022,
-        "type1": 30008,
-        "building": "快餐店",
-        "name": "炸猪排",
-        "list": [
-            [
-                20001,
-                4
-            ],
-            [
-                20003,
-                2
-            ]
-        ],
-        "time": 600,
-        "reap": 3,
-        "award": 2000
-    },
-    "20023": {
-        "id": 20023,
-        "type1": 30008,
-        "building": "快餐店",
-        "name": "江南炒面",
-        "list": [
-            [
-                20014,
-                2
-            ],
-            [
-                20003,
-                2
-            ]
-        ],
-        "time": 900,
-        "reap": 3,
-        "award": 2500
-    },
-    "20024": {
-        "id": 20024,
-        "type1": 30008,
-        "building": "快餐店",
-        "name": "熏肉可颂",
-        "list": [
-            [
-                20003,
-                2
-            ],
-            [
-                20013,
-                2
-            ],
-            [
-                20011,
-                1
-            ]
-        ],
-        "time": 1200,
-        "reap": 3,
-        "award": 3000
-    },
-    "20025": {
-        "id": 20025,
-        "type1": 30009,
-        "building": "功夫面馆",
-        "name": "五香饼",
-        "list": [
-            [
-                10002,
-                3
-            ],
-            [
-                20001,
-                1
-            ],
-            [
-                10001,
-                2
-            ]
-        ],
-        "time": 180,
-        "reap": 3,
-        "award": 1500
-    },
-    "20026": {
-        "id": 20026,
-        "type1": 30009,
-        "building": "功夫面馆",
-        "name": "清汤面",
-        "list": [
-            [
-                10004,
-                3
-            ],
-            [
-                10001,
-                2
-            ],
-            [
-                20001,
-                1
-            ]
-        ],
-        "time": 240,
-        "reap": 3,
-        "award": 1500
-    },
-    "20027": {
-        "id": 20027,
-        "type1": 30009,
-        "building": "功夫面馆",
-        "name": "肉松饼",
-        "list": [
-            [
-                20003,
-                3
-            ],
-            [
-                20001,
-                1
-            ],
-            [
-                10001,
-                2
-            ]
-        ],
-        "time": 300,
-        "reap": 3,
-        "award": 1500
-    },
-    "20028": {
-        "id": 20028,
-        "type1": 30009,
-        "building": "功夫面馆",
-        "name": "蔬菜面",
-        "list": [
-            [
-                10001,
-                2
-            ],
-            [
-                20001,
-                1
-            ],
-            [
-                10007,
-                3
-            ]
-        ],
-        "time": 360,
-        "reap": 3,
-        "award": 1500
-    },
-    "20029": {
-        "id": 20029,
-        "type1": 30009,
-        "building": "功夫面馆",
-        "name": "酥肉面",
-        "list": [
-            [
-                20003,
-                3
-            ],
-            [
-                10001,
-                2
-            ],
-            [
-                20001,
-                1
-            ]
-        ],
-        "time": 420,
-        "reap": 3,
-        "award": 1500
-    },
-    "20030": {
-        "id": 20030,
-        "type1": 30009,
-        "building": "功夫面馆",
-        "name": "芝士焗面",
-        "list": [
-            [
-                20009,
-                1
-            ],
-            [
-                10001,
-                2
-            ],
-            [
-                20001,
-                2
-            ]
-        ],
-        "time": 480,
-        "reap": 3,
-        "award": 2000
-    },
-    "20031": {
-        "id": 20031,
-        "type1": 30009,
-        "building": "功夫面馆",
-        "name": "佛跳墙",
-        "list": [
-            [
-                10013,
-                2
-            ],
-            [
-                20003,
-                3
-            ],
-            [
-                20001,
-                3
-            ]
-        ],
-        "time": 900,
-        "reap": 3,
-        "award": 2500
-    }
-}
+[
+{"tab":"农作物","level":1,"name":"小麦","picture":10001,"time":15,"redBagCoin":10,"unlock":2,"value":1},
+{"tab":"农作物","level":2,"name":"玉米","picture":10002,"time":30,"redBagCoin":12,"unlock":2,"value":1},
+{"tab":"农作物","level":3,"name":"甘蔗","picture":10003,"time":45,"redBagCoin":14,"unlock":2,"value":1},
+{"tab":"农作物","level":4,"name":"胡萝卜","picture":10004,"time":60,"redBagCoin":16,"unlock":1,"value":3},
+{"tab":"农作物","level":5,"name":"土豆","picture":10005,"time":80,"redBagCoin":18,"unlock":1,"value":3},
+{"tab":"农作物","level":6,"name":"番茄","picture":10006,"time":100,"redBagCoin":20,"unlock":1,"value":3},
+{"tab":"农作物","level":7,"name":"豌豆","picture":10007,"time":120,"redBagCoin":22,"unlock":1,"value":3},
+{"tab":"农作物","level":8,"name":"上海青","picture":10008,"time":180,"redBagCoin":24,"unlock":1,"value":3},
+{"tab":"农作物","level":9,"name":"草莓","picture":10009,"time":240,"redBagCoin":26,"unlock":1,"value":3},
+{"tab":"农作物","level":10,"name":"辣椒","picture":10010,"time":300,"redBagCoin":28,"unlock":1,"value":3},
+{"tab":"农作物","level":11,"name":"南瓜","picture":10011,"time":360,"redBagCoin":30,"unlock":1,"value":3},
+{"tab":"农作物","level":12,"name":"西瓜","picture":10012,"time":420,"redBagCoin":32,"unlock":1,"value":3},
+{"tab":"农作物","level":13,"name":"白萝卜","picture":10013,"time":480,"redBagCoin":34,"unlock":1,"value":3},
+{"tab":"农作物","level":14,"name":"冬瓜","picture":10014,"time":540,"redBagCoin":36,"unlock":1,"value":3},
+{"tab":"农作物","level":15,"name":"薰衣草","picture":10015,"time":600,"redBagCoin":38,"unlock":1,"value":3},
+{"tab":"动物","level":16,"name":"鸡","picture":30001,"time":480,"redBagCoin":40,"unlock":2,"value":5},
+{"tab":"动物","level":17,"name":"奶牛","picture":30002,"time":540,"redBagCoin":42,"unlock":2,"value":5},
+{"tab":"动物","level":18,"name":"猪","picture":30003,"time":600,"redBagCoin":44,"unlock":2,"value":5},
+{"tab":"爆米花厂","level":19,"name":"爆米花","picture":20004,"time":480,"redBagCoin":46,"unlock":2,"value":6},
+{"tab":"爆米花厂","level":20,"name":"奶油爆米花","picture":20005,"time":540,"redBagCoin":48,"unlock":1,"value":5},
+{"tab":"爆米花厂","level":21,"name":"焦糖爆米花","picture":20006,"time":600,"redBagCoin":50,"unlock":1,"value":5},
+{"tab":"糕点铺","level":22,"name":"面包","picture":20013,"time":480,"redBagCoin":52,"unlock":2,"value":6},
+{"tab":"糕点铺","level":23,"name":"面条","picture":20014,"time":540,"redBagCoin":54,"unlock":1,"value":5},
+{"tab":"糕点铺","level":24,"name":"玉米饼","picture":20015,"time":600,"redBagCoin":56,"unlock":1,"value":5},
+{"tab":"糕点铺","level":25,"name":"松饼","picture":20016,"time":480,"redBagCoin":58,"unlock":1,"value":5},
+{"tab":"糕点铺","level":26,"name":"鸡蛋仔","picture":20017,"time":540,"redBagCoin":60,"unlock":1,"value":5},
+{"tab":"糕点铺","level":27,"name":"金窝头","picture":20018,"time":600,"redBagCoin":62,"unlock":1,"value":5},
+{"tab":"制糖厂","level":28,"name":"红糖","picture":20010,"time":480,"redBagCoin":64,"unlock":2,"value":6},
+{"tab":"制糖厂","level":29,"name":"白糖","picture":20011,"time":540,"redBagCoin":66,"unlock":1,"value":5},
+{"tab":"制糖厂","level":30,"name":"糖浆","picture":20012,"time":600,"redBagCoin":68,"unlock":1,"value":5},
+{"tab":"炼乳厂","level":31,"name":"奶油","picture":20007,"time":480,"redBagCoin":70,"unlock":2,"value":6},
+{"tab":"炼乳厂","level":32,"name":"黄油","picture":20008,"time":540,"redBagCoin":72,"unlock":1,"value":5},
+{"tab":"炼乳厂","level":33,"name":"芝士","picture":20009,"time":600,"redBagCoin":74,"unlock":1,"value":5},
+{"tab":"功夫面馆","level":34,"name":"五香饼","picture":20025,"time":240,"redBagCoin":76,"unlock":2,"value":6},
+{"tab":"功夫面馆","level":35,"name":"清汤面","picture":20026,"time":300,"redBagCoin":78,"unlock":1,"value":5},
+{"tab":"功夫面馆","level":36,"name":"肉松饼","picture":20027,"time":360,"redBagCoin":80,"unlock":1,"value":5},
+{"tab":"功夫面馆","level":37,"name":"蔬菜面","picture":20028,"time":420,"redBagCoin":82,"unlock":1,"value":5},
+{"tab":"功夫面馆","level":38,"name":"酥肉面","picture":20029,"time":480,"redBagCoin":84,"unlock":1,"value":5},
+{"tab":"功夫面馆","level":39,"name":"芝士焗面","picture":20030,"time":540,"redBagCoin":86,"unlock":1,"value":5},
+{"tab":"功夫面馆","level":40,"name":"佛跳墙","picture":20031,"time":600,"redBagCoin":88,"unlock":1,"value":5},
+{"tab":"快餐店","level":41,"name":"荷包蛋","picture":20019,"time":300,"redBagCoin":90,"unlock":2,"value":6},
+{"tab":"快餐店","level":42,"name":"鸡蛋布丁","picture":20020,"time":360,"redBagCoin":92,"unlock":1,"value":5},
+{"tab":"快餐店","level":43,"name":"满足沙拉","picture":20021,"time":420,"redBagCoin":94,"unlock":1,"value":5},
+{"tab":"快餐店","level":44,"name":"炸猪排","picture":20022,"time":480,"redBagCoin":96,"unlock":1,"value":5},
+{"tab":"快餐店","level":45,"name":"江南炒面","picture":20023,"time":540,"redBagCoin":98,"unlock":1,"value":5},
+{"tab":"快餐店","level":46,"name":"熏肉可颂","picture":20024,"time":600,"redBagCoin":100,"unlock":1,"value":5}
+]

File diff suppressed because it is too large
+ 251 - 135
assets/resources/game/coregame/coregame.prefab


+ 5 - 5
assets/resources/game/prefab/game.prefab

@@ -6695,7 +6695,7 @@
     "asset": {
       "__uuid__": "b4dea4a9-29c8-46bc-a50d-5754afa7a2bd"
     },
-    "fileId": "31WmxXjLFNzbQeK3Q2F/Xh",
+    "fileId": "8dPT+8u1NB24bjwjBwGAjU",
     "sync": false
   },
   {
@@ -6825,7 +6825,7 @@
     "asset": {
       "__uuid__": "b4dea4a9-29c8-46bc-a50d-5754afa7a2bd"
     },
-    "fileId": "c0vDRTgVFFpotzxBLh/QGA",
+    "fileId": "16b0xysypC66PyYFX9Lv9F",
     "sync": false
   },
   {
@@ -6955,7 +6955,7 @@
     "asset": {
       "__uuid__": "b4dea4a9-29c8-46bc-a50d-5754afa7a2bd"
     },
-    "fileId": "622qoHrSNP+aLXMj4yclds",
+    "fileId": "73zXUyL3BI15ckqXZBX6nB",
     "sync": false
   },
   {
@@ -7188,7 +7188,7 @@
     "asset": {
       "__uuid__": "b4dea4a9-29c8-46bc-a50d-5754afa7a2bd"
     },
-    "fileId": "bd+VL042BG44o+4PotzFPr",
+    "fileId": "508IlkixtOG7rEKga8qQ8q",
     "sync": false
   },
   {
@@ -7318,7 +7318,7 @@
     "asset": {
       "__uuid__": "b4dea4a9-29c8-46bc-a50d-5754afa7a2bd"
     },
-    "fileId": "d1xyBeKTxEL4DwK8JFu+6W",
+    "fileId": "ffHPTK16NNErvj8VIs9l0u",
     "sync": false
   },
   {

+ 1882 - 0
assets/resources/game/prefab/uiItem/PlantItem.prefab

@@ -0,0 +1,1882 @@
+[
+  {
+    "__type__": "cc.Prefab",
+    "_name": "",
+    "_objFlags": 0,
+    "_native": "",
+    "data": {
+      "__id__": 1
+    },
+    "optimizationPolicy": 0,
+    "asyncLoadAssets": false,
+    "readonly": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "PlantItem",
+    "_objFlags": 0,
+    "_parent": null,
+    "_children": [
+      {
+        "__id__": 2
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 52
+      }
+    ],
+    "_prefab": {
+      "__id__": 53
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 180,
+      "height": 340
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        375,
+        667,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "布局",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [
+      {
+        "__id__": 3
+      },
+      {
+        "__id__": 6
+      },
+      {
+        "__id__": 12
+      },
+      {
+        "__id__": 26
+      },
+      {
+        "__id__": 42
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 49
+      },
+      {
+        "__id__": 50
+      }
+    ],
+    "_prefab": {
+      "__id__": 51
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 180,
+      "height": 259
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        0,
+        0,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "图标",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 2
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 4
+      }
+    ],
+    "_prefab": {
+      "__id__": 5
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 60,
+      "height": 60
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        0,
+        79.5,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 3
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "d28bad6d-ac92-49a6-a9a6-ad6a05f2101c@6c48a"
+    },
+    "_type": 0,
+    "_sizeMode": 0,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "ca279bfd-c7e6-46f5-9731-0a636e046674"
+    },
+    "fileId": "5esj+BtzBJHa84gwcPumyj",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "plantwindowItemNameBg",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 2
+    },
+    "_children": [
+      {
+        "__id__": 7
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 10
+      }
+    ],
+    "_prefab": {
+      "__id__": 11
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 108,
+      "height": 29
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        0,
+        20,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "plant_name_10001",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 6
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 8
+      }
+    ],
+    "_prefab": {
+      "__id__": 9
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 47,
+      "height": 23
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        0,
+        0,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 7
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "c4b6fba7-64eb-4b94-a7d5-d714cd40516d@6c48a"
+    },
+    "_type": 0,
+    "_sizeMode": 1,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "ca279bfd-c7e6-46f5-9731-0a636e046674"
+    },
+    "fileId": "fcnm15qYNJsK/xthr6yOGs",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 6
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "4e9efa6e-7ee0-4bb2-be40-d30e540718e3@6c48a"
+    },
+    "_type": 0,
+    "_sizeMode": 1,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "ca279bfd-c7e6-46f5-9731-0a636e046674"
+    },
+    "fileId": "d2cN6KWMNJWbDpnMKDBMTq",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "次数文本",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 2
+    },
+    "_children": [
+      {
+        "__id__": 13
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 24
+      }
+    ],
+    "_prefab": {
+      "__id__": 25
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 124,
+      "height": 23
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        0,
+        -21,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "文本",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 12
+    },
+    "_children": [
+      {
+        "__id__": 14
+      },
+      {
+        "__id__": 17
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 20
+      },
+      {
+        "__id__": 21
+      },
+      {
+        "__id__": 22
+      }
+    ],
+    "_prefab": {
+      "__id__": 23
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 16,
+      "height": 30
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        29,
+        0,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "1",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 13
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 15
+      }
+    ],
+    "_prefab": {
+      "__id__": 16
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 8,
+      "height": 18
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        -4,
+        0,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 14
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "ab927cae-96b8-45b8-b1da-86ba265fab83@6c48a"
+    },
+    "_type": 0,
+    "_sizeMode": 1,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "ca279bfd-c7e6-46f5-9731-0a636e046674"
+    },
+    "fileId": "b7Wm9Q0nJAbYPHSN6pfWVY",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "1",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 13
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 18
+      }
+    ],
+    "_prefab": {
+      "__id__": 19
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 8,
+      "height": 18
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        4,
+        0,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 17
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "ab927cae-96b8-45b8-b1da-86ba265fab83@6c48a"
+    },
+    "_type": 0,
+    "_sizeMode": 1,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "ca279bfd-c7e6-46f5-9731-0a636e046674"
+    },
+    "fileId": "6ftG8D3ZdKaY16GyTHbeYZ",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 13
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": null,
+    "_type": 1,
+    "_sizeMode": 0,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Layout",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 13
+    },
+    "_enabled": true,
+    "_layoutSize": {
+      "__type__": "cc.Size",
+      "width": 16,
+      "height": 30
+    },
+    "_resize": 1,
+    "_N$layoutType": 1,
+    "_N$cellSize": {
+      "__type__": "cc.Size",
+      "width": 40,
+      "height": 40
+    },
+    "_N$startAxis": 0,
+    "_N$paddingLeft": 0,
+    "_N$paddingRight": 0,
+    "_N$paddingTop": 0,
+    "_N$paddingBottom": 0,
+    "_N$spacingX": 0,
+    "_N$spacingY": 0,
+    "_N$verticalDirection": 1,
+    "_N$horizontalDirection": 0,
+    "_N$affectedByScale": false,
+    "_id": ""
+  },
+  {
+    "__type__": "a7768WKToJFP45rEMmUaOLa",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 13
+    },
+    "_enabled": true,
+    "_string": "11",
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "ca279bfd-c7e6-46f5-9731-0a636e046674"
+    },
+    "fileId": "21I3SkK/5OuIxF7XAas7w/",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 12
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "f9765b44-3846-47f4-aabc-447b45e520b5@6c48a"
+    },
+    "_type": 0,
+    "_sizeMode": 1,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "ca279bfd-c7e6-46f5-9731-0a636e046674"
+    },
+    "fileId": "4aUgMsEMJANpYdY1430CcO",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "时间文本",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 2
+    },
+    "_children": [
+      {
+        "__id__": 27
+      },
+      {
+        "__id__": 37
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 40
+      }
+    ],
+    "_prefab": {
+      "__id__": 41
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 80,
+      "height": 20
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        0,
+        -57.5,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "文本",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 26
+    },
+    "_children": [
+      {
+        "__id__": 28
+      },
+      {
+        "__id__": 31
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 34
+      },
+      {
+        "__id__": 35
+      }
+    ],
+    "_prefab": {
+      "__id__": 36
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 20,
+      "height": 20
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        -30,
+        0,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "2",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 27
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 29
+      }
+    ],
+    "_prefab": {
+      "__id__": 30
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 10,
+      "height": 14
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        -5,
+        0,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 28
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "0cab9a1f-81f2-4aaf-b188-b353aef1b565@6c48a"
+    },
+    "_type": 0,
+    "_sizeMode": 1,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "ca279bfd-c7e6-46f5-9731-0a636e046674"
+    },
+    "fileId": "4eXDY3Y2lBt6ZwSlQStkQ/",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "0",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 27
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 32
+      }
+    ],
+    "_prefab": {
+      "__id__": 33
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 10,
+      "height": 14
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        5,
+        0,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 31
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "2c5729a5-1a9e-44eb-bbff-b164d273d6d7@6c48a"
+    },
+    "_type": 0,
+    "_sizeMode": 1,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "ca279bfd-c7e6-46f5-9731-0a636e046674"
+    },
+    "fileId": "e5+jumRx1ImpKGUBpl7iw/",
+    "sync": false
+  },
+  {
+    "__type__": "a7768WKToJFP45rEMmUaOLa",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 27
+    },
+    "_enabled": true,
+    "_string": "20",
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Layout",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 27
+    },
+    "_enabled": true,
+    "_layoutSize": {
+      "__type__": "cc.Size",
+      "width": 20,
+      "height": 20
+    },
+    "_resize": 1,
+    "_N$layoutType": 1,
+    "_N$cellSize": {
+      "__type__": "cc.Size",
+      "width": 40,
+      "height": 40
+    },
+    "_N$startAxis": 0,
+    "_N$paddingLeft": 0,
+    "_N$paddingRight": 0,
+    "_N$paddingTop": 0,
+    "_N$paddingBottom": 0,
+    "_N$spacingX": 0,
+    "_N$spacingY": 0,
+    "_N$verticalDirection": 1,
+    "_N$horizontalDirection": 0,
+    "_N$affectedByScale": false,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "ca279bfd-c7e6-46f5-9731-0a636e046674"
+    },
+    "fileId": "bbiEGFnEBDFKaU51iMcNT0",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "图标",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 26
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 38
+      }
+    ],
+    "_prefab": {
+      "__id__": 39
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 60,
+      "height": 16
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        10,
+        0,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 37
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "98db87ff-1e4c-4efc-81e0-c0a772365743@6c48a"
+    },
+    "_type": 0,
+    "_sizeMode": 1,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "ca279bfd-c7e6-46f5-9731-0a636e046674"
+    },
+    "fileId": "cbvWDkA1tKu4sLsd3k4gP0",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Layout",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 26
+    },
+    "_enabled": true,
+    "_layoutSize": {
+      "__type__": "cc.Size",
+      "width": 80,
+      "height": 20
+    },
+    "_resize": 1,
+    "_N$layoutType": 1,
+    "_N$cellSize": {
+      "__type__": "cc.Size",
+      "width": 40,
+      "height": 40
+    },
+    "_N$startAxis": 0,
+    "_N$paddingLeft": 0,
+    "_N$paddingRight": 0,
+    "_N$paddingTop": 0,
+    "_N$paddingBottom": 0,
+    "_N$spacingX": 0,
+    "_N$spacingY": 0,
+    "_N$verticalDirection": 1,
+    "_N$horizontalDirection": 0,
+    "_N$affectedByScale": false,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "ca279bfd-c7e6-46f5-9731-0a636e046674"
+    },
+    "fileId": "22yA26EOxK1Kq/j4l2aTUk",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "获得文本",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 2
+    },
+    "_children": [
+      {
+        "__id__": 43
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 47
+      }
+    ],
+    "_prefab": {
+      "__id__": 48
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 115,
+      "height": 47
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        0,
+        -106,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "文本",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 42
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 44
+      },
+      {
+        "__id__": 45
+      }
+    ],
+    "_prefab": {
+      "__id__": 46
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 20,
+      "height": 20
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        -33.344,
+        -12.629,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "a7768WKToJFP45rEMmUaOLa",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 43
+    },
+    "_enabled": true,
+    "_string": "",
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Layout",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 43
+    },
+    "_enabled": true,
+    "_layoutSize": {
+      "__type__": "cc.Size",
+      "width": 20,
+      "height": 20
+    },
+    "_resize": 1,
+    "_N$layoutType": 1,
+    "_N$cellSize": {
+      "__type__": "cc.Size",
+      "width": 40,
+      "height": 40
+    },
+    "_N$startAxis": 0,
+    "_N$paddingLeft": 0,
+    "_N$paddingRight": 0,
+    "_N$paddingTop": 0,
+    "_N$paddingBottom": 0,
+    "_N$spacingX": 0,
+    "_N$spacingY": 0,
+    "_N$verticalDirection": 1,
+    "_N$horizontalDirection": 0,
+    "_N$affectedByScale": false,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "ca279bfd-c7e6-46f5-9731-0a636e046674"
+    },
+    "fileId": "7dFODTXPJAOoK/m9z6XwJY",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 42
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "4c1b21b2-36be-4c78-82fe-d7eb62215e80@6c48a"
+    },
+    "_type": 0,
+    "_sizeMode": 1,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "ca279bfd-c7e6-46f5-9731-0a636e046674"
+    },
+    "fileId": "42tg2uJDpDO5T9kS7pGd1v",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "alignMode": 1,
+    "_target": null,
+    "_alignFlags": 45,
+    "_left": 0,
+    "_right": 0,
+    "_top": 40.5,
+    "_bottom": 40.5,
+    "_verticalCenter": 0,
+    "_horizontalCenter": 0,
+    "_isAbsLeft": true,
+    "_isAbsRight": true,
+    "_isAbsTop": true,
+    "_isAbsBottom": true,
+    "_isAbsHorizontalCenter": true,
+    "_isAbsVerticalCenter": true,
+    "_originalWidth": 180,
+    "_originalHeight": 340,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Layout",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "_layoutSize": {
+      "__type__": "cc.Size",
+      "width": 180,
+      "height": 259
+    },
+    "_resize": 1,
+    "_N$layoutType": 2,
+    "_N$cellSize": {
+      "__type__": "cc.Size",
+      "width": 40,
+      "height": 40
+    },
+    "_N$startAxis": 0,
+    "_N$paddingLeft": 0,
+    "_N$paddingRight": 0,
+    "_N$paddingTop": 20,
+    "_N$paddingBottom": 0,
+    "_N$spacingX": 0,
+    "_N$spacingY": 15,
+    "_N$verticalDirection": 1,
+    "_N$horizontalDirection": 0,
+    "_N$affectedByScale": false,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "ca279bfd-c7e6-46f5-9731-0a636e046674"
+    },
+    "fileId": "da/wTTJJRJlqdQrHZ69cxK",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "d84290a1-1a89-4e0c-8c96-fa38c7e86ca7@6c48a"
+    },
+    "_type": 0,
+    "_sizeMode": 1,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "ca279bfd-c7e6-46f5-9731-0a636e046674"
+    },
+    "fileId": "",
+    "sync": false
+  }
+]

+ 8 - 0
assets/resources/game/prefab/uiItem/PlantItem.prefab.meta

@@ -0,0 +1,8 @@
+{
+  "ver": "1.2.9",
+  "uuid": "ca279bfd-c7e6-46f5-9731-0a636e046674",
+  "optimizationPolicy": "AUTO",
+  "asyncLoadAssets": false,
+  "readonly": false,
+  "subMetas": {}
+}

+ 1303 - 0
assets/resources/game/prefab/uiPanel/ADUnlockPanel.prefab

@@ -0,0 +1,1303 @@
+[
+  {
+    "__type__": "cc.Prefab",
+    "_name": "",
+    "_objFlags": 0,
+    "_native": "",
+    "data": {
+      "__id__": 1
+    },
+    "optimizationPolicy": 0,
+    "asyncLoadAssets": false,
+    "readonly": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "ADUnlockPanel",
+    "_objFlags": 0,
+    "_parent": null,
+    "_children": [
+      {
+        "__id__": 2
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 33
+      },
+      {
+        "__id__": 34
+      },
+      {
+        "__id__": 36
+      },
+      {
+        "__id__": 37
+      }
+    ],
+    "_prefab": {
+      "__id__": 38
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 750,
+      "height": 1334
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        375,
+        667,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "背景",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [
+      {
+        "__id__": 3
+      },
+      {
+        "__id__": 7
+      },
+      {
+        "__id__": 10
+      },
+      {
+        "__id__": 14
+      },
+      {
+        "__id__": 20
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 31
+      }
+    ],
+    "_prefab": {
+      "__id__": 32
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 588,
+      "height": 679
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        0,
+        0,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "closeButton",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 2
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 4
+      },
+      {
+        "__id__": 5
+      }
+    ],
+    "_prefab": {
+      "__id__": 6
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 81,
+      "height": 86
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        247.237,
+        299.119,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 3
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "194df592-3d3d-4882-bedd-c7e2f9cbcdca@6c48a"
+    },
+    "_type": 0,
+    "_sizeMode": 1,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cdc50kCRVVBa5gcp4XXxVO+",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 3
+    },
+    "_enabled": true,
+    "node_panel": {
+      "__id__": 1
+    },
+    "transition_type": 0,
+    "onComplete": [],
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "b909c955-7722-48c8-abeb-eb1ddf0190f1"
+    },
+    "fileId": "d51AnIYsZPJbidnSPNRmok",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "labDes",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 2
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 8
+      }
+    ],
+    "_prefab": {
+      "__id__": 9
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 139,
+      "g": 69,
+      "b": 19,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 210,
+      "height": 50.4
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        0,
+        218,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Label",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 7
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_string": "观看一小段广告",
+    "_N$string": "观看一小段广告",
+    "_fontSize": 30,
+    "_lineHeight": 40,
+    "_enableWrapText": true,
+    "_N$file": null,
+    "_isSystemFontUsed": true,
+    "_spacingX": 0,
+    "_batchAsBitmap": false,
+    "_styleFlags": 1,
+    "_underlineHeight": 0,
+    "_N$horizontalAlign": 1,
+    "_N$verticalAlign": 1,
+    "_N$fontFamily": "Arial",
+    "_N$overflow": 0,
+    "_N$cacheMode": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "b909c955-7722-48c8-abeb-eb1ddf0190f1"
+    },
+    "fileId": "d9nwuu0DhKSpmvY/TO8c7F",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "立即获得文本",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 2
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 11
+      },
+      {
+        "__id__": 12
+      }
+    ],
+    "_prefab": {
+      "__id__": 13
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 210,
+      "g": 105,
+      "b": 30,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 162,
+      "height": 52.4
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        0,
+        116,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Label",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 10
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_string": "立即获得",
+    "_N$string": "立即获得",
+    "_fontSize": 40,
+    "_lineHeight": 40,
+    "_enableWrapText": true,
+    "_N$file": null,
+    "_isSystemFontUsed": true,
+    "_spacingX": 0,
+    "_batchAsBitmap": false,
+    "_styleFlags": 1,
+    "_underlineHeight": 0,
+    "_N$horizontalAlign": 1,
+    "_N$verticalAlign": 1,
+    "_N$fontFamily": "Arial",
+    "_N$overflow": 0,
+    "_N$cacheMode": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.LabelOutline",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 10
+    },
+    "_enabled": true,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_width": 1,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "b909c955-7722-48c8-abeb-eb1ddf0190f1"
+    },
+    "fileId": "ddSQ74FeJEup0WTAWWJRIT",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "bg_prize",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 2
+    },
+    "_children": [
+      {
+        "__id__": 15
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 18
+      }
+    ],
+    "_prefab": {
+      "__id__": 19
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 104,
+      "height": 104
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        0,
+        0,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "farm",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 14
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 16
+      }
+    ],
+    "_prefab": {
+      "__id__": 17
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 184,
+      "height": 115
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        0,
+        0,
+        0,
+        0,
+        0,
+        0,
+        1,
+        0.5,
+        0.5,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 15
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "96c9b5de-e7c0-4813-8e4a-771e23eb7675@6c48a"
+    },
+    "_type": 0,
+    "_sizeMode": 1,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "b909c955-7722-48c8-abeb-eb1ddf0190f1"
+    },
+    "fileId": "e5SRX7NeVNRoyfK9MpG5OZ",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 14
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "fc7a5703-4208-41e0-8ee0-269d6b7d4a74@6c48a"
+    },
+    "_type": 0,
+    "_sizeMode": 1,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "b909c955-7722-48c8-abeb-eb1ddf0190f1"
+    },
+    "fileId": "52ko4RmPpFLbkAVKNpjMzg",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "立即领取",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 2
+    },
+    "_children": [
+      {
+        "__id__": 21
+      },
+      {
+        "__id__": 24
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 27
+      },
+      {
+        "__id__": 28
+      }
+    ],
+    "_prefab": {
+      "__id__": 30
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 279,
+      "height": 109
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        0,
+        -181.997,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "video_icon",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 20
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 22
+      }
+    ],
+    "_prefab": {
+      "__id__": 23
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 71,
+      "height": 68
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        -133.775,
+        0,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1.2,
+        1.2,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 21
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "b7c2b0ee-ffff-4822-add8-18fb1b55161c@6c48a"
+    },
+    "_type": 0,
+    "_sizeMode": 1,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "b909c955-7722-48c8-abeb-eb1ddf0190f1"
+    },
+    "fileId": "d4HZGJhpFN6bd8Q7Nizc6Y",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "add_window_btn_byte_0",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 20
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 25
+      }
+    ],
+    "_prefab": {
+      "__id__": 26
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 139,
+      "height": 37
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        0,
+        0,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 24
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "599485e0-1c8e-4e85-bd06-3d33b766c276"
+    },
+    "_type": 0,
+    "_sizeMode": 1,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "b909c955-7722-48c8-abeb-eb1ddf0190f1"
+    },
+    "fileId": "54zWyrFTRAmJ/n9XmM6LRb",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 20
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "b0441a04-95a8-4264-bc52-3881bbf09462@6c48a"
+    },
+    "_type": 0,
+    "_sizeMode": 1,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Button",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 20
+    },
+    "_enabled": true,
+    "_normalMaterial": null,
+    "_grayMaterial": null,
+    "duration": 0.1,
+    "zoomScale": 1.2,
+    "clickEvents": [
+      {
+        "__id__": 29
+      }
+    ],
+    "_N$interactable": true,
+    "_N$enableAutoGrayEffect": false,
+    "_N$transition": 0,
+    "transition": 0,
+    "_N$normalColor": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_N$pressedColor": {
+      "__type__": "cc.Color",
+      "r": 211,
+      "g": 211,
+      "b": 211,
+      "a": 255
+    },
+    "pressedColor": {
+      "__type__": "cc.Color",
+      "r": 211,
+      "g": 211,
+      "b": 211,
+      "a": 255
+    },
+    "_N$hoverColor": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "hoverColor": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_N$disabledColor": {
+      "__type__": "cc.Color",
+      "r": 124,
+      "g": 124,
+      "b": 124,
+      "a": 255
+    },
+    "_N$normalSprite": null,
+    "_N$pressedSprite": null,
+    "pressedSprite": null,
+    "_N$hoverSprite": null,
+    "hoverSprite": null,
+    "_N$disabledSprite": null,
+    "_N$target": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.ClickEvent",
+    "target": {
+      "__id__": 1
+    },
+    "component": "",
+    "_componentId": "0c4f2VNCqNOEaoWvFRThSJc",
+    "handler": "clickWatchVideo",
+    "customEventData": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "b909c955-7722-48c8-abeb-eb1ddf0190f1"
+    },
+    "fileId": "326K1Yi95AR508UoqaGQ4z",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "898d164f-4a0f-4d44-9065-0c70f936ae02@6c48a"
+    },
+    "_type": 0,
+    "_sizeMode": 1,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "b909c955-7722-48c8-abeb-eb1ddf0190f1"
+    },
+    "fileId": "7atPS97ydBcp1QTAX+e6zf",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "alignMode": 1,
+    "_target": null,
+    "_alignFlags": 45,
+    "_left": 0,
+    "_right": 0,
+    "_top": 0,
+    "_bottom": 0,
+    "_verticalCenter": 0,
+    "_horizontalCenter": 0,
+    "_isAbsLeft": true,
+    "_isAbsRight": true,
+    "_isAbsTop": true,
+    "_isAbsBottom": true,
+    "_isAbsHorizontalCenter": true,
+    "_isAbsVerticalCenter": true,
+    "_originalWidth": 750,
+    "_originalHeight": 1334,
+    "_id": ""
+  },
+  {
+    "__type__": "58495/rJOBNGoxELFSp8G2a",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "color": {
+      "__type__": "cc.Color",
+      "r": 0,
+      "g": 0,
+      "b": 0,
+      "a": 180
+    },
+    "design_block_node": null,
+    "bClickClose": true,
+    "onComplete": [
+      {
+        "__id__": 35
+      }
+    ],
+    "_id": ""
+  },
+  {
+    "__type__": "cc.ClickEvent",
+    "target": {
+      "__id__": 1
+    },
+    "component": "",
+    "_componentId": "0c4f2VNCqNOEaoWvFRThSJc",
+    "handler": "onClickClose",
+    "customEventData": ""
+  },
+  {
+    "__type__": "0c4f2VNCqNOEaoWvFRThSJc",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "_id": ""
+  },
+  {
+    "__type__": "ac053zwqaRD6IJmTlQWmefZ",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "effect_par": {
+      "__id__": 2
+    },
+    "open_effect": 1,
+    "close_effect": 1,
+    "close_toPoint": "",
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "b909c955-7722-48c8-abeb-eb1ddf0190f1"
+    },
+    "fileId": "",
+    "sync": false
+  }
+]

+ 8 - 0
assets/resources/game/prefab/uiPanel/ADUnlockPanel.prefab.meta

@@ -0,0 +1,8 @@
+{
+  "ver": "1.2.9",
+  "uuid": "b909c955-7722-48c8-abeb-eb1ddf0190f1",
+  "optimizationPolicy": "AUTO",
+  "asyncLoadAssets": false,
+  "readonly": false,
+  "subMetas": {}
+}

+ 527 - 0
assets/resources/game/prefab/uiPanel/PlantPanel.prefab

@@ -0,0 +1,527 @@
+[
+  {
+    "__type__": "cc.Prefab",
+    "_name": "",
+    "_objFlags": 0,
+    "_native": "",
+    "data": {
+      "__id__": 1
+    },
+    "optimizationPolicy": 0,
+    "asyncLoadAssets": false,
+    "readonly": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "PlantPanel",
+    "_objFlags": 0,
+    "_parent": null,
+    "_children": [
+      {
+        "__id__": 2
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 13
+      },
+      {
+        "__id__": 14
+      },
+      {
+        "__id__": 15
+      }
+    ],
+    "_prefab": {
+      "__id__": 16
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 750,
+      "height": 1334
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        375,
+        671.237,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "PlantWindowBg",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [
+      {
+        "__id__": 3
+      },
+      {
+        "__id__": 6
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 11
+      }
+    ],
+    "_prefab": {
+      "__id__": 12
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 750,
+      "height": 500
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 1
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        0,
+        -667,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "plant_title",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 2
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 4
+      }
+    ],
+    "_prefab": {
+      "__id__": 5
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 692,
+      "height": 19
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        0,
+        -37.506,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 3
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "75a425e6-5ccc-4010-9e4f-9a060213ad70@6c48a"
+    },
+    "_type": 0,
+    "_sizeMode": 1,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "6c4cddd9-4029-4d7b-b09d-8cae76051b8c"
+    },
+    "fileId": "6cySaWHPlEebMyCEXmol3I",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "List",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 2
+    },
+    "_children": [
+      {
+        "__id__": 7
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 9
+      }
+    ],
+    "_prefab": {
+      "__id__": 10
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 730,
+      "height": 350
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        0,
+        -265,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_is3DNode": false,
+    "_groupIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 6
+    },
+    "_prefab": {
+      "__id__": 8
+    },
+    "_name": "PlantItem",
+    "_active": true,
+    "_trs": {
+      "__type__": "TypedArray",
+      "ctor": "Float64Array",
+      "array": [
+        0,
+        0,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        1,
+        1
+      ]
+    },
+    "_eulerAngles": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 7
+    },
+    "asset": {
+      "__uuid__": "a28c4e7b-8cd1-4959-a0a4-d6f304ad663f"
+    },
+    "fileId": "e1CW9e/yBHzI67ts539qZW",
+    "sync": true
+  },
+  {
+    "__type__": "9a31drXM+9NCKYkF9D78zlF",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 6
+    },
+    "_enabled": true,
+    "pre_item": [
+      null
+    ],
+    "scr_item": [
+      ""
+    ],
+    "itemInterval": 10,
+    "node_xiabiao": null,
+    "direction": 2,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "6c4cddd9-4029-4d7b-b09d-8cae76051b8c"
+    },
+    "fileId": "967bGTDGtHpqumeao/pKdZ",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "_materials": [
+      {
+        "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
+      }
+    ],
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "b8f648e5-fe09-4d12-8c7d-cc8db1514d65@6c48a"
+    },
+    "_type": 0,
+    "_sizeMode": 0,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "6c4cddd9-4029-4d7b-b09d-8cae76051b8c"
+    },
+    "fileId": "79ZnvwjhFLM70r/9P8JYaU",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "alignMode": 1,
+    "_target": null,
+    "_alignFlags": 45,
+    "_left": 0,
+    "_right": 0,
+    "_top": -4.236999999999966,
+    "_bottom": 4.236999999999966,
+    "_verticalCenter": 0,
+    "_horizontalCenter": 0,
+    "_isAbsLeft": true,
+    "_isAbsRight": true,
+    "_isAbsTop": true,
+    "_isAbsBottom": true,
+    "_isAbsHorizontalCenter": true,
+    "_isAbsVerticalCenter": true,
+    "_originalWidth": 750,
+    "_originalHeight": 1334,
+    "_id": ""
+  },
+  {
+    "__type__": "ac053zwqaRD6IJmTlQWmefZ",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "effect_par": {
+      "__id__": 2
+    },
+    "open_effect": 5,
+    "close_effect": 5,
+    "close_toPoint": "",
+    "_id": ""
+  },
+  {
+    "__type__": "58495/rJOBNGoxELFSp8G2a",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "color": {
+      "__type__": "cc.Color",
+      "r": 0,
+      "g": 0,
+      "b": 0,
+      "a": 0
+    },
+    "design_block_node": {
+      "__id__": 2
+    },
+    "bClickClose": true,
+    "onComplete": [],
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "6c4cddd9-4029-4d7b-b09d-8cae76051b8c"
+    },
+    "fileId": "",
+    "sync": false
+  }
+]

+ 8 - 0
assets/resources/game/prefab/uiPanel/PlantPanel.prefab.meta

@@ -0,0 +1,8 @@
+{
+  "ver": "1.2.9",
+  "uuid": "6c4cddd9-4029-4d7b-b09d-8cae76051b8c",
+  "optimizationPolicy": "AUTO",
+  "asyncLoadAssets": false,
+  "readonly": false,
+  "subMetas": {}
+}

+ 12 - 0
assets/resources/game/texture/txt.meta

@@ -0,0 +1,12 @@
+{
+  "ver": "1.1.2",
+  "uuid": "3a503b3a-2d57-442f-b17c-6e34c604aa10",
+  "isBundle": false,
+  "bundleName": "",
+  "priority": 1,
+  "compressionType": {},
+  "optimizeHotUpdate": {},
+  "inlineSpriteFrames": {},
+  "isRemoteBundle": {},
+  "subMetas": {}
+}

二進制
assets/resources/game/texture/txt/add_window_btn_byte_0.png


+ 36 - 0
assets/resources/game/texture/txt/add_window_btn_byte_0.png.meta

@@ -0,0 +1,36 @@
+{
+  "ver": "2.3.5",
+  "uuid": "41c0eefb-7925-4f82-9736-5bfd9e7de7d7",
+  "type": "sprite",
+  "wrapMode": "clamp",
+  "filterMode": "bilinear",
+  "premultiplyAlpha": false,
+  "genMipmaps": false,
+  "packable": true,
+  "width": 146,
+  "height": 42,
+  "platformSettings": {},
+  "subMetas": {
+    "add_window_btn_byte_0": {
+      "ver": "1.0.4",
+      "uuid": "599485e0-1c8e-4e85-bd06-3d33b766c276",
+      "rawTextureUuid": "41c0eefb-7925-4f82-9736-5bfd9e7de7d7",
+      "trimType": "auto",
+      "trimThreshold": 1,
+      "rotated": false,
+      "offsetX": -2.5,
+      "offsetY": -1.5,
+      "trimX": 1,
+      "trimY": 4,
+      "width": 139,
+      "height": 37,
+      "rawWidth": 146,
+      "rawHeight": 42,
+      "borderTop": 0,
+      "borderBottom": 0,
+      "borderLeft": 0,
+      "borderRight": 0,
+      "subMetas": {}
+    }
+  }
+}

+ 0 - 6
assets/script/before/data/Enum.ts

@@ -1,12 +1,6 @@
 
 const { ccclass, property } = cc._decorator;
 
-@ccclass
-export default class Enum extends cc.Component {
-
-
-}
-
 export enum CHECKDIR {
     /**上 */
     Above = 0,

+ 7 - 7
assets/script/before/main/FarmCountDown.ts

@@ -31,13 +31,13 @@ export class FarmCountDown extends cc.Component {
         if (!this.isDataed) {
             this.isDataed = true;
             this.buildID = configID;
-            let producting = gData.gameData.getProductingList(configID)[0];
-            let config = gData.configData.configMap.get("product");
-            let result = config[producting.productID];
-            this.ripeTime = producting.ripeDate;
-            this.totleTime = result["time"];
-            this.normalGroup.active = true;
-            this.counting = true;
+            // let producting = gData.gameData.getProductingList(configID)[0];
+            // let config = gData.configData.configMap.get("product");
+            // let result = config[producting.productID];
+            // this.ripeTime = producting.ripeDate;
+            // this.totleTime = result["time"];
+            // this.normalGroup.active = true;
+            // this.counting = true;
 
             // this.selectGroup.active = isShow;
             // this.plantIcon.spriteFrame = await mk.loader.load("game/coregame/texture/plant_icons/plantIcon_" + producting.productID + "/spriteFrame", cc.SpriteFrame);

+ 57 - 63
assets/script/before/main/FarmIcon.ts

@@ -1,3 +1,4 @@
+import { FarmState } from '../../game/data/GameData';
 import { MoveToCenter } from '../map/MoveToCenter';
 import { FarmCountDown } from './FarmCountDown';
 import { FarmGrowProcess } from './FarmGrowProcess';
@@ -5,16 +6,12 @@ import { FarmSystem } from './FarmSystem';
 import { IDHelper } from './IDHelper';
 const { ccclass, property } = cc._decorator;
 
-export enum FarmState {
-    Lock,
-    Empty,
-    Growing,
-    Ripe
-}
+
 
 @ccclass
 export class FarmIcon extends cc.Component {
     @property({ type: cc.Node, tooltip: "未解锁时显示节点" }) lockNode: cc.Node = null;
+    @property({ type: cc.Node, tooltip: "可解锁节点" }) canUnlockNode: cc.Node = null;
     @property({ type: cc.Node, tooltip: "选中闪烁节点" }) selectNode: cc.Node = null;
     @property({ type: cc.Sprite, tooltip: "种植动画图标" }) plantIcon: cc.Sprite = null;
     @property({ type: FarmCountDown, tooltip: "倒计时组件" }) countDown: FarmCountDown = null;
@@ -25,67 +22,71 @@ export class FarmIcon extends cc.Component {
 
     private farmSystem: FarmSystem;
     private plantID: number = 0;
-    private _state: FarmState = FarmState.Lock;
+    private _state: FarmState = -1;
     public get state(): FarmState { return this._state; }
+    private data = null;
     onLoad() {
         this.configID = this.getComponent(IDHelper).buildID;
         this.sortID = this.getComponent(IDHelper).sortID;
-        this.lockNode.active = !(this.selectNode.active = false);
     }
 
     start() {
-        if (gData.gameData.hasBuildData(this.configID)) {
-            if (gData.gameData.getProductingList(this.configID)[0]) {
-                this.countDown.setData(this.configID, false);
-                this.process.setData(this.configID);
-            }
-        }
-        else {
-            this.setState(FarmState.Lock);
-        }
+        this.freshState();
     }
 
     update() {
-        if (this.state == FarmState.Lock && gData.gameData.hasBuildData(this.configID)) {
-            this.activeFram();
-        }
-        let producting = gData.gameData.getProductingList(this.configID);
-        if (producting.length > 0) {
-            if (producting[0].ripeDate <= Date.now()) {
-                this.setState(FarmState.Ripe);
-            } else {
-                this.setState(FarmState.Growing);
-            }
-            this.countDown.setData(this.configID, false);
-            this.process.setData(this.configID);
-        } else {
-            this.setState(FarmState.Empty);
-            this.countDown.cleanRiped();
-            this.process.cleanProcess();
+        // if (this.state == FarmState.Lock && gData.gameData.hasBuildData(this.configID)) {
+        //     this.activeFram();
+        // }
+        // let producting = gData.gameData.getProductingList(this.configID);
+        // if (producting.length > 0) {
+        //     if (producting[0].ripeDate <= Date.now()) {
+        //         this.setState(FarmState.Ripe);
+        //     } else {
+        //         this.setState(FarmState.Growing);
+        //     }
+        //     this.countDown.setData(this.configID, false);
+        //     this.process.setData(this.configID);
+        // } else {
+        //     this.setState(FarmState.Empty);
+        //     this.countDown.cleanRiped();
+        //     this.process.cleanProcess();
+        // }
+        let index = gData.gameData.needFreshArr.indexOf(this.configID);
+        if (index != -1) {
+            this.freshState();
+            gData.gameData.needFreshArr.splice(index, 1);
         }
     }
 
+    freshState() {
+        this.data = gData.gameData.getFarmDataMap(this.configID);
+        this.setState(this.data.state);
+    }
+
     private setState(value: FarmState): void {
         if (this.state != value) {
             this._state = value;
+            this.lockNode.active = false;
+            this.canUnlockNode.active = false;
+            this.plantIcon.node.active = false;
+            this.countDown.node.active = false;
+
             switch (this.state) {
                 case FarmState.Lock:
                     this.lockNode.active = true;
-                    this.plantIcon.node.active = false;
-                    this.countDown.node.active = false;
+                    break;
+                case FarmState.CanUnlock:
+                    this.lockNode.active = true;
+                    this.canUnlockNode.active = true;
                     break;
                 case FarmState.Empty:
-                    this.lockNode.active = false;
-                    this.plantIcon.node.active = false;
-                    this.countDown.node.active = false;
                     break;
                 case FarmState.Growing:
-                    this.lockNode.active = false;
                     this.plantIcon.node.active = true;
                     this.countDown.node.active = true;
                     break;
                 case FarmState.Ripe:
-                    this.lockNode.active = false;
                     this.plantIcon.node.active = true;
                     this.countDown.node.active = true;
                     break;
@@ -103,28 +104,21 @@ export class FarmIcon extends cc.Component {
             this.getComponent(MoveToCenter).move();
         }
     }
+
     public async onTouch() {
-        if (this.state != FarmState.Lock) {
-            if (this.state == FarmState.Empty) {
-                // var sound = this.getComponent(Sound);
-                // sound && sound.play();
-                // this.getComponent(OpenWindow).open(this.configID);
-            } else if (this.state == FarmState.Growing) {
-                // this.countDown.setCountActive(true);
-            } else if (this.state == FarmState.Ripe) {
-                // WindowManager.open("Prefabs/HarvestWindow", WindowOpenMode.CloseAndCover, this.configID, this.onHarvest.bind(this));
-            }
-        } else {
-            let config = gData.configData.configMap.get("build")[this.configID];
-            if (config["unlockVideo"] != 1) {
-                let lvl = config["lvl"];
-                mk.tip.pop(`${lvl}级解锁`);
-            } else {
-                if (gData.gameData.hasBuildData(this.configID - 1)) {
-                    // WindowManager.open("Prefabs/ADUnlockWindow", WindowOpenMode.CloseAndCover, this.configID);
-                    // platform.umUp("videoExpansion");//视频扩充埋点
-                }
-            }
+        switch (this.data.state) {
+            case FarmState.Lock:
+                mk.tip.pop(`请先解锁扩建农田`);
+                break;
+            case FarmState.CanUnlock:
+                gData.adUnlockData.openPanel(this.configID);
+                break;
+            case FarmState.Empty:
+                break;
+            case FarmState.Growing:
+                break;
+            case FarmState.Ripe:
+                break;
         }
     }
 
@@ -132,7 +126,7 @@ export class FarmIcon extends cc.Component {
         this.countDown.cleanRiped();
         this.process.cleanProcess();
         this.farmSystem.currSelectFarm = null;
-        gData.gameData.getProductingList(this.configID).shift();
+        // gData.gameData.getProductingList(this.configID).shift();
     }
 
     public async plant(id: number) {
@@ -166,7 +160,7 @@ export class FarmIcon extends cc.Component {
     }
     public onRiped(): void {
         this._state = FarmState.Ripe;
-        gData.gameData.getProductingList(this.configID)[0].ripeDate = Date.now();
+        // gData.gameData.getProductingList(this.configID)[0].ripeDate = Date.now();
     }
 
     private async onPlantAnimationFinish() {

+ 12 - 12
assets/script/before/main/MapIcon.ts

@@ -23,21 +23,21 @@ export class MapIcon extends cc.Component {
 
     private havrestList: { id: number, node: Node }[] = [];
     start() {
-        if (gData.gameData.hasBuildData(this.configID)) {
-            this.activeFactroy();
-        }
+        // if (gData.gameData.hasBuildData(this.configID)) {
+        //     this.activeFactroy();
+        // }
     }
 
     update() {
-        if (this._state == FactroyState.Lock && gData.gameData.hasBuildData(this.configID)) {
-            this.activeFactroy();
-        }
-        let producting = gData.gameData.getProductingList(this.configID);
-        if (producting.length > 0) {
-            this.setState(FactroyState.Producting);
-        } else {
-            this.setState(FactroyState.Free);
-        }
+        // if (this._state == FactroyState.Lock && gData.gameData.hasBuildData(this.configID)) {
+        //     this.activeFactroy();
+        // }
+        // let producting = gData.gameData.getProductingList(this.configID);
+        // if (producting.length > 0) {
+        //     this.setState(FactroyState.Producting);
+        // } else {
+        //     this.setState(FactroyState.Free);
+        // }
     }
 
     public activeFactroy(): void {

+ 12 - 0
assets/script/before/view/data.meta

@@ -0,0 +1,12 @@
+{
+  "ver": "1.1.2",
+  "uuid": "22596347-85d7-455b-961e-93614fec8e53",
+  "isBundle": false,
+  "bundleName": "",
+  "priority": 1,
+  "compressionType": {},
+  "optimizeHotUpdate": {},
+  "inlineSpriteFrames": {},
+  "isRemoteBundle": {},
+  "subMetas": {}
+}

+ 30 - 0
assets/script/before/view/data/ADUnlockData.ts

@@ -0,0 +1,30 @@
+/** 解锁农田数据类 */
+
+import { FarmState } from "../../../game/data/GameData";
+import { Data } from "../../../mk/data/Data";
+
+const { ccclass } = cc._decorator;
+
+@ccclass
+export default class ADUnlockData extends Data {
+    curConfigID = -1;
+    openPanel(id) {
+        this.curConfigID = id;
+        mk.ui.openPanel('game/prefab/uiPanel/ADUnlockPanel');
+    }
+
+    unlockFarm() {
+        let farm = gData.gameData.getFarmDataMap(this.curConfigID);
+        farm.state = FarmState.Empty;
+        if (this.curConfigID + 1 < 31018) {
+            gData.gameData.setFarmDataMap(this.curConfigID, farm, false);
+
+            let farmNext = gData.gameData.getFarmDataMap(this.curConfigID + 1);
+            farmNext.state = FarmState.CanUnlock;
+            gData.gameData.setFarmDataMap(this.curConfigID + 1, farmNext);
+        }
+        else {
+            gData.gameData.setFarmDataMap(this.curConfigID, farm);
+        }
+    }
+}

+ 9 - 0
assets/script/before/view/data/ADUnlockData.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.0.8",
+  "uuid": "eda2d900-5d8d-4890-a573-b5e54d38a360",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 12 - 0
assets/script/before/view/ui.meta

@@ -0,0 +1,12 @@
+{
+  "ver": "1.1.2",
+  "uuid": "ba7664eb-e75b-4d1d-a7e1-b01829382494",
+  "isBundle": false,
+  "bundleName": "",
+  "priority": 1,
+  "compressionType": {},
+  "optimizeHotUpdate": {},
+  "inlineSpriteFrames": {},
+  "isRemoteBundle": {},
+  "subMetas": {}
+}

+ 18 - 0
assets/script/before/view/ui/ADUnlockPanel.ts

@@ -0,0 +1,18 @@
+/** 解锁农田界面 */
+const { ccclass, property } = cc._decorator;
+
+@ccclass
+export default class ADUnlockPanel extends cc.Component {
+    clickWatchVideo() {
+        mk.ad.watchAd((success: boolean) => {
+            mk.console.log("watchAD:" + success);
+            if (success) {
+                gData.adUnlockData.unlockFarm();
+            }
+        });
+    }
+
+    onClickClose() {
+        //关闭banner广告等
+    }
+}

+ 9 - 0
assets/script/before/view/ui/ADUnlockPanel.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.0.8",
+  "uuid": "0c4f254d-0aa3-4e11-aa16-bc545385225c",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 234 - 91
assets/script/game/component/TableView.ts

@@ -1,6 +1,10 @@
-
 const { ccclass, property } = cc._decorator;
 
+enum Direction {
+    vertical = 1,
+    horizontal,
+}
+
 /** 动态加载的滚动列表
  * - 滑动列表动态加载
  * - 支持多种类型预制体混合滚动 
@@ -23,9 +27,12 @@ export default class TableView extends cc.Component {
     @property({ displayName: '间距' })
     private itemInterval: number = 0;
 
-    @property({displayName: '显示隐藏节点', tooltip: '一般是顶部标识可向下滑动的小图标', type: cc.Node})
+    @property({ displayName: '显示隐藏节点', tooltip: '一般是顶部标识可向下滑动的小图标', type: cc.Node })
     private node_xiabiao: cc.Node = null;
 
+    @property({ displayName: '滚动方向', tooltip: '', type: cc.Enum(Direction) })
+    private direction = Direction.vertical;
+
     /** 数据 */
     private itemData: any = null;
     /** 滚动列表组件 */
@@ -36,6 +43,8 @@ export default class TableView extends cc.Component {
     private content: cc.Node = null;
     /** 列表高 */
     private layerHeight: any = null;
+    /** 列表宽 */
+    private layerWith: any = null;
     /** ? */
     private firstItemIndex: number = 0;
     private lastItemIndex: number = 0;
@@ -51,6 +60,14 @@ export default class TableView extends cc.Component {
 
     onLoad() {
         this.initPro();
+        if (this.direction == Direction.vertical) {
+            this.scrollView.vertical = true;
+            this.scrollView.horizontal = false;
+        }
+        else {
+            this.scrollView.vertical = false;
+            this.scrollView.horizontal = true;
+        }
         // 测试
         // let itemData = [];
         // for (let i = 0; i < 20; i++) {
@@ -67,6 +84,7 @@ export default class TableView extends cc.Component {
         this.content = this.scrollView.content;
         this.item = this.pre_item;
         this.layerHeight = this.node.height;
+        this.layerWith = this.node.width;
         for (let i = 0; i < this.item.length; i++) {
             this.itemNode[i] = cc.instantiate(this.item[i]);
         }
@@ -134,43 +152,55 @@ export default class TableView extends cc.Component {
 
     }
 
-    update(dt)
-    {
-        if(!this.node_xiabiao)
-        return;
+    update(dt) {
+        if (!this.node_xiabiao)
+            return;
 
-        if(this.content.height > this.layerHeight)
-        {
-            if(this.scrollView.getScrollOffset().y >= this.scrollView.getMaxScrollOffset().y)
-            {
-                if(this.node_xiabiao.active == true)
-                this.node_xiabiao.active = false;
-            }else
-            {
-                if(this.node_xiabiao.active == false)
-                this.node_xiabiao.active = true;
+        if (this.content.height > this.layerHeight) {
+            if (this.scrollView.getScrollOffset().y >= this.scrollView.getMaxScrollOffset().y) {
+                if (this.node_xiabiao.active == true)
+                    this.node_xiabiao.active = false;
+            } else {
+                if (this.node_xiabiao.active == false)
+                    this.node_xiabiao.active = true;
             }
-        }else     
-        {
-            if(this.node_xiabiao.active == true)
-            this.node_xiabiao.active = false;
-        }      
+        } else {
+            if (this.node_xiabiao.active == true)
+                this.node_xiabiao.active = false;
+        }
     }
 
     private initItemPos(index: number) {
         let item_data_count = this.itemData.length;
-        for (let i = index; i < item_data_count; i++) {
-            let obj: any = {}
-            let y;
-            if (i === 0) {
-                obj.startPos = 0;
-            } else {
-                obj.startPos = this.itemPosMap.get(i - 1).endPos;
+        if (this.direction == Direction.vertical) {
+            for (let i = index; i < item_data_count; i++) {
+                let obj: any = {}
+                let y;
+                if (i === 0) {
+                    obj.startPos = 0;
+                } else {
+                    obj.startPos = this.itemPosMap.get(i - 1).endPos;
+                }
+                let j = this.itemData[i].pfbType || 0;
+                obj.endPos = obj.startPos + this.itemNode[j].height + this.itemInterval;
+                this.itemPosMap.set(i, obj);
+            }
+        }
+        else {
+            for (let i = index; i < item_data_count; i++) {
+                let obj: any = {}
+                let y;
+                if (i === 0) {
+                    obj.startPos = 0;
+                } else {
+                    obj.startPos = this.itemPosMap.get(i - 1).endPos;
+                }
+                let j = this.itemData[i].pfbType || 0;
+                obj.endPos = obj.startPos + this.itemNode[j].width + this.itemInterval;
+                this.itemPosMap.set(i, obj);
             }
-            let j = this.itemData[i].pfbType || 0;
-            obj.endPos = obj.startPos + this.itemNode[j].height + this.itemInterval;
-            this.itemPosMap.set(i, obj);
         }
+
         if (item_data_count > 0) {
             this.updateContentHeigh(this.itemPosMap.get(item_data_count - 1).endPos);
         }
@@ -181,19 +211,37 @@ export default class TableView extends cc.Component {
      */
     private initItem() {
         let j = 0;
-        for (let i = 0; i < this.itemData.length; i++) {
-            if (this.content.height > this.layerHeight) {
-                j++
-                if (j > 2) {
-                    break;
+        if (this.direction == Direction.vertical) {
+            for (let i = 0; i < this.itemData.length; i++) {
+                if (this.content.height > this.layerHeight) {
+                    j++
+                    if (j > 2) {
+                        break;
+                    }
                 }
+                let y = 0;
+                if (i > 0) {
+                    y = this.itemArr[i - 1].y - this.itemArr[i - 1].height - this.itemInterval;// 下一条目纵坐标
+                }
+                let item_node = this.addItemNode(i, y);
+                this.updateContentHeigh(this.itemArr[i].height - item_node.y);
             }
-            let y = 0;
-            if (i > 0) {
-                y = this.itemArr[i - 1].y - this.itemArr[i - 1].height - this.itemInterval;// 下一条目纵坐标
+        }
+        else {
+            for (let i = 0; i < this.itemData.length; i++) {
+                if (this.content.width > this.layerWith) {
+                    j++
+                    if (j > 2) {
+                        break;
+                    }
+                }
+                let x = 0;
+                if (i > 0) {
+                    x = this.itemArr[i - 1].x + this.itemArr[i - 1].width + this.itemInterval;// 下一条目纵坐标
+                }
+                let item_node = this.addItemNode(i, x);
+                this.updateContentWidth(this.itemArr[i].width + item_node.x);
             }
-            let item_node = this.addItemNode(i, y);
-            this.updateContentHeigh(this.itemArr[i].height - item_node.y);
         }
     }
 
@@ -202,18 +250,29 @@ export default class TableView extends cc.Component {
      * @param i 编号
      * @param y 坐标y
      */
-    private addItemNode(i: number, y: number) {
+    private addItemNode(i: number, xOrY: number) {
         let pfbType = this.itemData[i].pfbType || 0;
         let item = cc.instantiate(this.itemNode[pfbType]);
         item.parent = this.content;
         item.pfbType = pfbType;
         item.index = i;
-        if (i === 0) {
+        if (this.direction == Direction.vertical) {
+            if (i === 0) {
+                item.y = 0;
+            } else {
+                item.y = xOrY;
+            }
+            item.x = 0;
+        }
+        else {
+            if (i === 0) {
+                item.x = 0;
+            } else {
+                item.x = xOrY;
+            }
             item.y = 0;
-        } else {
-            item.y = y;
         }
-        item.x = 0;
+
         //对item赋值
         let comp_script = item.getComponent(this.scr_item[pfbType]);
         comp_script && comp_script.setItemData(this.itemData[i], this);
@@ -232,6 +291,15 @@ export default class TableView extends cc.Component {
     }
 
     /**
+     * 更新centent宽
+     * @param num  
+     */
+    private updateContentWidth(num: number) {
+        this.content.width = num > this.layerWith ? num : this.layerWith;
+        // cc.log('滚动条高度:', this.content.height);
+    }
+
+    /**
      * 触摸滚动条的函数回调
      * @param event 
      * @param eventType 
@@ -239,48 +307,88 @@ export default class TableView extends cc.Component {
      */
     private callback(event, eventType) {
         // cc.log(event && event.type || eventType)
-        if (this.content.height > this.layerHeight) {
-            let firstItemPos = this.scrollView.getScrollOffset().y;
-            let lastItemPos = firstItemPos + this.layerHeight;
-            if (firstItemPos < 0) return;
-            if (this.initItemData) {
-                // cc.log('111:%o', this.itemPosMap)
-                this.initItemData = false;
-                this.updateFirstItemIndex();
-                this.itemCanMoveDown = true;
-                this.updateLastItemIndex();
-                this.itemCanMoveDown = false;
-            }
+        if (this.direction == Direction.vertical) {
+            if (this.content.height > this.layerHeight) {
+                let firstItemPos = this.scrollView.getScrollOffset().y;
+                let lastItemPos = firstItemPos + this.layerHeight;
+                if (firstItemPos < 0) return;
+                if (this.initItemData) {
+                    // cc.log('111:%o', this.itemPosMap)
+                    this.initItemData = false;
+                    this.updateFirstItemIndex();
+                    this.itemCanMoveDown = true;
+                    this.updateLastItemIndex();
+                    this.itemCanMoveDown = false;
+                }
 
-            //超出边界直接返回.
-            //滚动条向上滑动可能会触发的函数
-            if (firstItemPos > this.firstItemData.endPos) {
-                if (this.lastItemIndex + 1 < this.itemData.length) {
+                //超出边界直接返回.
+                //滚动条向上滑动可能会触发的函数
+                if (firstItemPos > this.firstItemData.endPos) {
+                    if (this.lastItemIndex + 1 < this.itemData.length) {
+                        this.updateFirstItemIndex();
+                    }
+                    this.count++;
+                }
+                if (lastItemPos > this.lastItemData.endPos) {
+                    if (this.lastItemIndex + 1 < this.itemData.length) {
+                        this.itemCanMoveDown = true;
+                        this.updateLastItemIndex();
+                        this.itemCanMoveDown = false;
+                    }
+                }
+                //滚动条向下滑动可能会触发的函数
+                if (lastItemPos < this.lastItemData.startPos) {
+                    this.updateLastItemIndex();
+                    this.count--;
+                }
+                if (firstItemPos < this.firstItemData.startPos) {
+                    this.itemCanMoveUp = true;
                     this.updateFirstItemIndex();
+                    this.itemCanMoveUp = false;
                 }
-                this.count++;
             }
-            if (lastItemPos > this.lastItemData.endPos) {
-                if (this.lastItemIndex + 1 < this.itemData.length) {
+        }
+        else {
+            if (this.content.width > this.layerWith) {
+                let firstItemPos = this.scrollView.getScrollOffset().x;
+                let lastItemPos = firstItemPos + this.layerWith;
+                if (firstItemPos < 0) return;
+                if (this.initItemData) {
+                    // cc.log('111:%o', this.itemPosMap)
+                    this.initItemData = false;
+                    this.updateFirstItemIndex();
                     this.itemCanMoveDown = true;
                     this.updateLastItemIndex();
                     this.itemCanMoveDown = false;
                 }
-            }
-            //滚动条向下滑动可能会触发的函数
-            if (lastItemPos < this.lastItemData.startPos) {
-                this.updateLastItemIndex();
-                this.count--;
-            }
-            if (firstItemPos < this.firstItemData.startPos) {
-                this.itemCanMoveUp = true;
-                this.updateFirstItemIndex();
-                this.itemCanMoveUp = false;
-            }
-
 
+                //超出边界直接返回.
+                //滚动条向上滑动可能会触发的函数
+                if (firstItemPos > this.firstItemData.endPos) {
+                    if (this.lastItemIndex + 1 < this.itemData.length) {
+                        this.updateFirstItemIndex();
+                    }
+                    this.count++;
+                }
+                if (lastItemPos > this.lastItemData.endPos) {
+                    if (this.lastItemIndex + 1 < this.itemData.length) {
+                        this.itemCanMoveDown = true;
+                        this.updateLastItemIndex();
+                        this.itemCanMoveDown = false;
+                    }
+                }
+                //滚动条向下滑动可能会触发的函数
+                if (lastItemPos < this.lastItemData.startPos) {
+                    this.updateLastItemIndex();
+                    this.count--;
+                }
+                if (firstItemPos < this.firstItemData.startPos) {
+                    this.itemCanMoveUp = true;
+                    this.updateFirstItemIndex();
+                    this.itemCanMoveUp = false;
+                }
+            }
         }
-
     }
 
     private updateFirstItemIndex() {
@@ -404,8 +512,13 @@ export default class TableView extends cc.Component {
      * @param index 条目index
      */
     public contentMoveByIndex(index: number, duration: number = 0.5) {
-        let pos_y = this.itemPosMap.get(index).startPos;
-        this.scrollView.scrollToOffset(new cc.Vec2(this.content.x, pos_y), duration);
+        let pos_xOrY = this.itemPosMap.get(index).startPos;
+        if (this.direction == Direction.vertical) {
+            this.scrollView.scrollToOffset(new cc.Vec2(this.content.x, pos_xOrY), duration);
+        }
+        else {
+            this.scrollView.scrollToOffset(new cc.Vec2(pos_xOrY, this.content.y), duration);
+        }
     }
 
     /**
@@ -431,15 +544,27 @@ export default class TableView extends cc.Component {
         this.itemData.push(obj);
         this.initItemPos(this.itemData.length - 1);
         let endPos = this.itemPosMap.get(this.itemData.length - 1).endPos;
-        if (endPos - this.layerHeight > 0) {
-            let startPos = endPos - this.layerHeight;
+        let layerHOrW = 0;
+        if (this.direction == Direction.vertical) {
+            layerHOrW = this.layerHeight;
+        }
+        else {
+            layerHOrW = this.layerWith;
+        }
+        if (endPos - layerHOrW > 0) {
+            let startPos = endPos - layerHOrW;
             //得到当前的firstItemIndex;
             for (let i = this.itemData.length - 1; i >= 0; i--) {
                 if (this.itemPosMap.get(i).endPos > startPos && this.itemPosMap.get(i).startPos <= startPos) {
                     this.firstItemIndex = i;
                 }
             }
-            this.scrollView.scrollToBottom();
+            if (this.direction == Direction.vertical) {
+                this.scrollView.scrollToBottom();
+            }
+            else {
+                this.scrollView.scrollToRight();
+            }
             this.lastItemIndex = this.itemData.length - 1;
             let num = this.firstItemIndex - 1 > 0 ? (this.firstItemIndex - 1) : 0;
             this.itemMoveUp(num);
@@ -481,14 +606,27 @@ export default class TableView extends cc.Component {
 
         //改变this.itemArr的内容
         for (let j = 0; j < this.itemArr.length; j++) {
-            if (this.itemArr[j].index === i) {
-                this.itemArr[j].index = -1;
-                this.itemArr[j].y = 3000;
+            if (this.direction == Direction.vertical) {
+                if (this.itemArr[j].index === i) {
+                    this.itemArr[j].index = -1;
+                    this.itemArr[j].y = 3000;
+                }
+                if (this.itemArr[j].index > i) {
+                    let num = this.itemArr[j].index;
+                    this.itemArr[j].y = -this.itemPosMap.get(num - 1).startPos;
+                    this.itemArr[j].index = num - 1;
+                }
             }
-            if (this.itemArr[j].index > i) {
-                let num = this.itemArr[j].index;
-                this.itemArr[j].y = -this.itemPosMap.get(num - 1).startPos;
-                this.itemArr[j].index = num - 1;
+            else {
+                if (this.itemArr[j].index === i) {
+                    this.itemArr[j].index = -1;
+                    this.itemArr[j].x = 3000;
+                }
+                if (this.itemArr[j].index > i) {
+                    let num = this.itemArr[j].index;
+                    this.itemArr[j].x = this.itemPosMap.get(num - 1).startPos;
+                    this.itemArr[j].index = num - 1;
+                }
             }
         }
         this.updateContentHeigh(this.itemPosMap.get(this.itemData.length - 1).endPos);
@@ -524,7 +662,12 @@ export default class TableView extends cc.Component {
 
             for (let i = 0; i < this.itemArr.length; i++) {
                 if (this.itemArr[i].index > index) {
-                    this.itemArr[i].y -= infoHeight;
+                    if (this.direction == Direction.vertical) {
+                        this.itemArr[i].y -= infoHeight;
+                    }
+                    else {
+                        this.itemArr[i].x += infoHeight;
+                    }
                 }
             }
 

+ 20 - 1
assets/script/game/component/tween/EffectOpenAndClose.ts

@@ -6,7 +6,8 @@ enum EffectType {
     scale = 1,  //缩放
     scaleToPoint = 2,    //缩放到某点
     centerUnfolding = 3,   //从中部展开
-    rightIn, //从右侧进入
+    rightIn = 4, //从右侧进入
+    bottomIn = 5,   //从底部进入
 }
 /**
  * 界面打开 和 关闭效果
@@ -86,6 +87,14 @@ export default class EffectOpenAndClose extends cc.Component {
                         .to(0.3, { x: 0 }, cc.easeOut(3))
                         .start()
                     break;
+                case EffectType.bottomIn:
+                    this.effect_par.active = true;
+                    this.effect_par.y = -(1334 / 2);
+                    let toY = this.effect_par.y + this.effect_par.height;
+                    cc.tween(this.effect_par)
+                        .to(0.3, { y: toY }, cc.easeBackInOut())
+                        .start()
+                    break;
             }
         }
     }
@@ -139,6 +148,16 @@ export default class EffectOpenAndClose extends cc.Component {
                     //     })
                     //     .start()
                     break;
+                case EffectType.bottomIn:
+                    let toY = -(1334 / 2);
+                    cc.tween(this.effect_par)
+                        .to(0.3, { y: toY }, cc.easeOut(3))
+                        .call(() => {
+                            // this.effect_par.active = false;
+                            cb && cb();
+                        })
+                        .start()
+                    break;
             }
         } else {
             cb && cb();

+ 108 - 4
assets/script/game/data/AdData.ts

@@ -20,9 +20,6 @@ export class AdData {
     public precision = '';
     public ecpm_level = '';
 
-    /** 广告类型(1:激励视频、2:插屏、3:信息流) */
-    public adType: number = 1;
-
     /** 视频类型 */
     public ad_subType: AdFun;
 
@@ -38,6 +35,9 @@ export class AdData {
 
     private adMap: Map<number, Data>
 
+    /** 全屏插屏弹出规则 */
+    private fullInterShowStr = ''
+
     public init() {
         this.adMap = new Map<number, Data>();
         this.adMap.set(AdFun.bubble, gData.reward)
@@ -118,7 +118,7 @@ export class AdData {
         let times = gData.gameData.getProp(GameProp.videoTimes);
         gData.gameData.setProp(GameProp.videoTimes, ++times);
         if (times < 5) {
-            mk.data.sendXYEvent("ad_" + times, "第" + times + "次看视频");
+            mk.data.sendXYEvent("video_end_" + times, "第" + times + "次看视频");
         }
 
         let curData = this.adMap.get(this.ad_subType)
@@ -126,6 +126,110 @@ export class AdData {
             curData.setAdData(response.data);
         }
     }
+
+    /** 更新其他广告次数
+     * @param type 1:激励视频完播、2:插屏展示、3:信息流展示、 4:激励视频展⽰、5:激励视频加载失败、6:开屏展示、7:banner展示、
+     * 8:插屏-全屏视频 完播、9:插屏-全屏视频 展示、10:插屏-全屏视频 加载失败、11:插屏加载失败、12:信息流加载失败、13:开屏加载失败、14:banner加载失败
+     */
+    public updateADLog(type, placementId, data = null) {
+        let sData = null
+        if (!data) {
+            sData = {
+                "imei": gData.appData.machineInfo.imei,
+                "idfa": gData.appData.machineInfo.idfa,
+                "oaid": gData.appData.machineInfo.oaid,
+                "uin": gData.loginData.uin,
+                "version": gData.appData.appVersion,
+                "tf_channel": gData.appData.tfChannel,
+                "destoon_ad_place": placementId,
+                "ad_type": type,
+                "adunit_format": '',
+                "network_type": '',
+                "network_placement_id": '',
+                "network_firm_id": '',
+                "adsource_id": '',
+                "adsource_index": '',
+                "adsource_price": '',
+                "adsource_isheaderbidding": '',
+                "publisher_revenue": '',
+                "precision": '',
+                "ecpm_level": ''
+            }
+        }
+        else {
+            sData = {
+                "imei": gData.appData.machineInfo.imei,
+                "idfa": gData.appData.machineInfo.idfa,
+                "oaid": gData.appData.machineInfo.oaid,
+                "uin": gData.loginData.uin,
+                "version": gData.appData.appVersion,
+                "tf_channel": gData.appData.tfChannel,
+                "destoon_ad_place": placementId,
+                "ad_type": type,
+                "adunit_format": data.adunit_format,
+                "network_type": data.network_type,
+                "network_placement_id": data.network_placement_id,
+                "network_firm_id": data.network_firm_id,
+                "adsource_id": data.adsource_id,
+                "adsource_index": data.adsource_index,
+                "adsource_price": data.adsource_price,
+                "adsource_isheaderbidding": data.adsource_isheaderbidding,
+                "publisher_revenue": data.publisher_revenue,
+                "precision": data.precision,
+                "ecpm_level": data.ecpm_level
+            }
+        }
+
+        mk.http.sendData('updateADLog', sData);
+    }
+
+    /** 设置关闭红包弹出全屏插屏序列 */
+    setFullInterShowStr() {
+        let fullInterShowStrArr = gData.gameData.configs.GlobalCfg.fullInterShowStrArr.split(';');
+        for (var i = 0; i < fullInterShowStrArr.length; i++) {
+            let tempArr = fullInterShowStrArr[i].split(',');
+            if (gData.gameData.adShowConfig.average_ecpm <= tempArr[1]) {
+                this.fullInterShowStr = tempArr[2];
+                break;
+            }
+        }
+    }
+
+    /** 检查是否显示全屏插屏
+     * @type 不同情况弹出类型 1:提现结束判断ecpm低于一定值弹出  2:关闭红包界面不观看激励视频有概率拉起全屏广告
+     */
+    checkShowFullInter(type) {
+        //全屏广告开关
+        if (gData.gameData.configs.GlobalCfg.popFullInter != "1") {
+            return
+        }
+
+        if (type == 1) {
+            if (gData.gameData.adShowConfig.average_ecpm <= gData.gameData.configs.GlobalCfg.popFullEcpmAfterCash) {
+                mk.ad.showInterAd(1);
+            }
+        }
+        else if (type == 2) {
+            if (this.fullInterShowStr) {
+                let popFullIndex = mk.storage.getStorage('popFullIndex');
+                if (popFullIndex == null) {
+                    popFullIndex = 0;
+                }
+                else {
+                    popFullIndex++;
+                }
+                mk.storage.setStorage('popFullIndex', popFullIndex);
+
+                let index = popFullIndex % this.fullInterShowStr.length;
+                mk.console.log('checkShowFullInter  this.fullInterShowStr  ', this.fullInterShowStr);
+                mk.console.log('checkShowFullInter  index', index);
+                if (this.fullInterShowStr[index] == '1') {
+                    mk.console.log('checkShowFullInter showInterAd');
+                    mk.ad.showInterAd(1);
+                }
+            }
+        }
+    }
 }
 
 /**

+ 10 - 10
assets/script/game/data/AppData.ts

@@ -15,17 +15,15 @@ export class AppData {
     public tfChannel: string = '';
 
     /** api版本 */
-    public version: string = '1.0.0';
+    public version: string = '';
 
     /** UserAgent */
     UA = '';
 
     IP = '';
 
-    /** 李杨/悍国服的appId */
-    // public appId: string = 'wxcf31f0e54f7fefda';
     /** 测试服/正式服的appId */
-    public appId: string = 'wx3c0cc2f730c5ad5a';
+    public appId: string = '';
 
     /** 友盟渠道 */
     public umengChannel: string = '';
@@ -36,7 +34,7 @@ export class AppData {
     /** 安卓版本号 */
     public androidVersion: string = '';
 
-    public mac: string = '1e:06:e5:13:b3:24,f6:60:e4:1a:b7:28';
+    public mac: string = '';
 
     /** 设备信息 */
     public machineInfo = {
@@ -65,7 +63,7 @@ export class AppData {
         this.machineInfo.UA = arr[11];
         this.tfChannel = arr[6];
         this.appVersion = arr[7];
-        
+
         /** 友盟渠道 */
         this.umengChannel = arr[8];
         /** 设备型号 */
@@ -73,12 +71,11 @@ export class AppData {
         /** 安卓版本号 */
         this.androidVersion = arr[10];
         this.IP = arr[12]
-        
+
         this.getDeviceInfoCompelete = true;
         console.log("===[this.tfChannel", this.tfChannel);
         console.log("===[this.appVersion", this.appVersion);
-
-
+        console.log("===[this.mac", this.mac);
     }
 
     public init() {
@@ -87,6 +84,8 @@ export class AppData {
 
     /** 更新状态 */
     public updateState: UpdateState = UpdateState.None;
+    /** 更新进度 */
+    public updatePercent = 0;
 
     //强更信息--------------------------------------------------------
     /** 需要强制更新 */
@@ -107,5 +106,6 @@ export enum UpdateState {
     CheckForce = 0,
     ForceUpdateFinish = 1,
     CheckHot = 2,
-    UpdateFinish = 3,
+    IsUpdate = 3,
+    UpdateFinish = 4,
 }

+ 3 - 2
assets/script/game/data/ConfigData.ts

@@ -9,7 +9,8 @@ export class ConfigData {
             let result = await (await mk.loader.load("game/coregame/configs/" + this.configNames[i], cc.JsonAsset)).json;
             this.configMap.set(this.configNames[i], result);
         }
-    }
 
-}
+        gData.gameData.setProductMapFromJson();
+    }
 
+}

+ 3 - 0
assets/script/game/data/GData.ts

@@ -25,6 +25,7 @@ import { GuideData } from "./module/GuideData";
 import GuideWeakData from "./module/GuideWeakData";
 import { ConfigData } from "./ConfigData";
 import { NewCashUIData } from "./module/NewCashUIData";
+import ADUnlockData from "../../before/view/data/ADUnlockData";
 
 /**
  * 数据集合全局类
@@ -74,6 +75,7 @@ class GData {
     public redeem: RedeemData;
 
     public newCashUiData: NewCashUIData;
+    public adUnlockData: ADUnlockData;
 
     public moduleData: Map<number, Data>;
 
@@ -106,6 +108,7 @@ class GData {
         this.redCodeData = new RedCodeData();
         this.redeem = new RedeemData();
         this.newCashUiData = new NewCashUIData();
+        this.adUnlockData = new ADUnlockData();
 
         this.moduleData = new Map<number, Data>();
         this.moduleData.set(Fun.moreGame, this.moreGame);

+ 145 - 66
assets/script/game/data/GameData.ts

@@ -94,6 +94,8 @@ export class GameData {
         // console.log('config  ', data);
         this.configs = data;
         this.funOpenData = this.configs.ServerConfig.Functionswitch.split(",");
+
+        // this.setProductMapFromJson();
     }
 
     /**
@@ -118,6 +120,8 @@ export class GameData {
         this.gameData.versioncfg = res_data.versioncfg;
         this.gameData.isFirstRedMoney = res_data.isFirstRedMoney;
         gData.adData.watchNumToday = res_data.dayVideoTimesForRedMoney == null ? 0 : res_data.dayVideoTimesForRedMoney;
+
+        this.setFramDataMapByServer();
     }
 
     /**
@@ -204,80 +208,144 @@ export class GameData {
 
     //*********** ================= 农场数据 ================== */
 
-    public needReloadData = false;
-    private _productingListMap: Map<number, Array<{ productID: number, ripeDate: number }>> = new Map();
+    // public needReloadData = false;
+    // private _productingListMap: Map<number, Array<{ productID: number, ripeDate: number }>> = new Map();
 
-    /**建筑生产队列列表 */
-    public getProductingList(id: number): Array<{ productID: number, ripeDate: number }> {
-        if (!this._productingListMap.has(id)) {
-            this._productingListMap.set(id, []);
-        }
-        return this._productingListMap.get(id);
-    }
+    // /**建筑生产队列列表 */
+    // public getProductingList(id: number): Array<{ productID: number, ripeDate: number }> {
+    //     if (!this._productingListMap.has(id)) {
+    //         this._productingListMap.set(id, []);
+    //     }
+    //     return this._productingListMap.get(id);
+    // }
 
-    private _unlockMap: Map<number, number> = new Map();
-    /**建筑解锁流水线数量列表 */
-    public getUnlock(id: number): number {
-        if (!this._unlockMap.has(id)) {
-            if (id <= 30003) {
-                this._unlockMap.set(id, 5);
-            } else {
-                this._unlockMap.set(id, 1);
+    // /**已激活的建筑列表 */
+    // private buildDataMap: Map<number, number> = new Map();
+    // public hasBuildData(id: number): boolean {
+    //     return this.buildDataMap.has(id);
+    // }
+    // public getBuildData(id: number): number {
+    //     return this.buildDataMap.get(id);
+    // }
+    // public setBuildData(id: number, userBuildID: number): void {
+    //     this.buildDataMap.set(id, userBuildID);
+    // }
+    // // /**设置建筑数据(生产队列,流水线数量,激活情况等) */
+    // // public async setGameData(data: any) {
+    // //     this._productingListMap = new Map();
+    // //     this._unlockMap = new Map();
+    // //     this.buildDataMap = new Map();
+    // //     let product = ConfigData.configMap.get("product");
+    // //     for (let i = 0; i < data.length; i++) {
+    // //         const build = data[i];
+    // //         if (!this.buildDataMap.has(build.buildID)) {
+    // //             this.buildDataMap.set(build.buildID, build.userBuildID);
+    // //             this.setUnlock(build.buildID, build.addValue + 1);
+    // //         }
+    // //         if (build.productID != 0) {
+    // //             let result = product[build.productID];
+    // //             this.getProductingList(build.buildID).push({ productID: build.productID, ripeDate: build.plantTime * 1000 + result["time"] * 1000 });
+    // //         }
+    // //     }
+    // // }
+    // /**是否有任务可领取 */
+    // public taskReceive = false;
+    // /**是否有3日活动任务可领取 */
+    // public threeDayTaskReceive = 0;
+    // /**3日活动还需要邀请人数 */
+    // public needChildCount: number = 0;
+    // /**3日活动激活后结束时间 */
+    // public threedayTaskTime: number = 0
+    // /**种植奖励数据 */
+    // public productPrize = null;
+
+    // // /**排行榜数据*/
+    // // public rankData: RankData;
+    // // /**排行榜积分数据*/
+    // // public rankScore: number = 0;
+    // // /**是否刷新排行榜活动倒计时*/
+    // // public isRefreshRankTime: boolean;
+    // // /**是否可以领取排行榜奖励*/
+    // // public isCanGetRankReward: boolean;
+
+    /** 农田数据 服务器数据 */
+    private _farmData = [];
+    /** 农田字典 本地数据,方便操作*/
+    private _farmDataMap: Map<number, any> = new Map();
+    //刷新农田
+    public needFreshArr = [];
+
+    public setFarmDataMap(id, data, sendToServer = true) {
+        this._farmDataMap.set(id, data);
+        let len = this._farmData.length;
+        for (var i = 0; i < len; i++) {
+            if (this._farmData[i].id == id) {
+                this._farmData[i].state = data.state;
+                this._farmData[i].growSpan = data.growSpan;
+                break;
             }
         }
-        return this._unlockMap.get(id);
+
+        this.needFreshArr.push(id);
+        // //更新到服务器
+        // if (sendToServer) {
+        //     this.setProp(GameProp.farmData, this._farmData);
+        // }
     }
-    public setUnlock(id: number, count: number): void {
-        this._unlockMap.set(id, count);
+
+    public getFarmDataMap(id) {
+        return this._farmDataMap.get(id);
     }
-    /**已激活的建筑列表 */
-    private buildDataMap: Map<number, number> = new Map();
-    public hasBuildData(id: number): boolean {
-        return this.buildDataMap.has(id);
+
+    /** 服务器数据设置到本地 */
+    public setFramDataMapByServer() {
+        let len = this._farmData.length;
+        if (len <= 18) {
+            let id = 31000;
+            let data = null;
+            for (var i = 0; i < 18; i++) {
+                if (i < 3) {
+                    data = { id: id, state: FarmState.Empty, growSpan: 0 };
+                }
+                else if (i == 3) {
+                    data = { id: id, state: FarmState.CanUnlock, growSpan: 0 };
+                }
+                else {
+                    data = { id: id, state: FarmState.Lock, growSpan: 0 };
+                }
+                this._farmData.push(data);
+                this._farmDataMap.set(id, data);
+                id++;
+            }
+            //更新到服务器
+            this.setProp(GameProp.farmData, this._farmData);
+        }
+        else {
+            for (var i = 0; i < len; i++) {
+                this._farmDataMap.set(this._farmData[i].id, this._farmData[i]);
+            }
+        }
     }
-    public getBuildData(id: number): number {
-        return this.buildDataMap.get(id);
+
+
+    /** puduct配置数据 */
+    private _productMap: Map<number, any> = new Map();
+    /** 设置puduct配置数据 */
+    public setProductMapFromJson() {
+        // let productJson = this.configs.product;
+        //先用本地数据
+        let productJson = gData.configData.configMap.get('product');
+        let len = productJson.length;
+        let product = null;
+        for (var i = 0; i < len; i++) {
+            product = productJson[i];
+            this._productMap.set(product['picture'], product);
+        }
     }
-    public setBuildData(id: number, userBuildID: number): void {
-        this.buildDataMap.set(id, userBuildID);
+
+    public getProductMap(id) {
+        return this._productMap.get(id);
     }
-    // /**设置建筑数据(生产队列,流水线数量,激活情况等) */
-    // public async setGameData(data: any) {
-    //     this._productingListMap = new Map();
-    //     this._unlockMap = new Map();
-    //     this.buildDataMap = new Map();
-    //     let product = ConfigData.configMap.get("product");
-    //     for (let i = 0; i < data.length; i++) {
-    //         const build = data[i];
-    //         if (!this.buildDataMap.has(build.buildID)) {
-    //             this.buildDataMap.set(build.buildID, build.userBuildID);
-    //             this.setUnlock(build.buildID, build.addValue + 1);
-    //         }
-    //         if (build.productID != 0) {
-    //             let result = product[build.productID];
-    //             this.getProductingList(build.buildID).push({ productID: build.productID, ripeDate: build.plantTime * 1000 + result["time"] * 1000 });
-    //         }
-    //     }
-    // }
-    /**是否有任务可领取 */
-    public taskReceive = false;
-    /**是否有3日活动任务可领取 */
-    public threeDayTaskReceive = 0;
-    /**3日活动还需要邀请人数 */
-    public needChildCount: number = 0;
-    /**3日活动激活后结束时间 */
-    public threedayTaskTime: number = 0
-    /**种植奖励数据 */
-    public productPrize = null;
-
-    // /**排行榜数据*/
-    // public rankData: RankData;
-    // /**排行榜积分数据*/
-    // public rankScore: number = 0;
-    // /**是否刷新排行榜活动倒计时*/
-    // public isRefreshRankTime: boolean;
-    // /**是否可以领取排行榜奖励*/
-    // public isCanGetRankReward: boolean;
 }
 
 /**
@@ -302,7 +370,10 @@ export enum GameProp {
     /** 农场等级 */
     levelNum = 10,
 
-    
+    /** 农田数据 */
+    farmData = 11,
+
+
 
     /** ------------------ 转盘数据 ------------------------------ */
     turnable_leftTimes = 20,
@@ -599,4 +670,12 @@ export enum VideoAdType {
     Fudai = "福袋视频",
     /** 签到视频 */
     Sign = "签到视频"
+}
+
+export enum FarmState {
+    Lock,
+    CanUnlock,
+    Empty,
+    Growing,
+    Ripe
 }

+ 2 - 2
assets/script/game/data/HttpData.ts

@@ -25,8 +25,8 @@ export class HttpData {
 
 
 export enum ServerUrl {
-    test = 'https://cutfruitage-test.duiweize.com/', //测试服地址
-    formal = 'https://cutfruitage.duiweize.com/',    //正式服地址
+    test = 'https://hf-test.duiweize.com/', //测试服地址
+    formal = 'https://hf.duiweize.com/',    //正式服地址
     liyang = 'http://172.16.15.231:9162/',  //李杨服地址
     hanguo = 'http://172.16.15.167:9162/',  //悍国服地址
 }

+ 70 - 50
assets/script/game/data/LoginData.ts

@@ -23,7 +23,7 @@ export class LoginData {
 
     public loginTicket: string = '';
 
-    public isFirstIn: boolean;
+    public isFirstIn: boolean = false;
 
     public isNew: boolean;
 
@@ -45,13 +45,7 @@ export class LoginData {
         if (result && result.json) {
             this.rule_data = result.json.server;
             this.privacy_data = result.json.privacy;
-
-            gData.configData.loadConfig();
-
             this.loadResCompelete = true;
-            if(CC_DEBUG){
-                gData.appData.getDeviceInfoCompelete = true;
-            }
         }
 
     }
@@ -66,7 +60,7 @@ export class LoginData {
         this.sessionKey = sessionKey ? sessionKey : "";
         let loginTicket = mk.storage.getStorage(StorageKey.loginTicket);
         this.loginTicket = loginTicket ? loginTicket : "";
-
+        
         console.log(`===[LoginData] uin =${uin} sessionKey = ${sessionKey}"`);
     }
 
@@ -74,19 +68,17 @@ export class LoginData {
      * 登录流程 
      * @description initApp-->initAd-->connect-->wxLogin-->checkLogin-->getAccountInfo
      */
-    public async  login() {
+    public async login() {
         mk.console.logSingle("login...", this.sessionKey + "..." + this.uin);
         //有登录记录直接跳转到登录流程最后一步
         if (this.sessionKey != '' && this.uin != '' && this.loginTicket != '') {
             console.log("=== login 有登录记录直接跳转到登录流程最后一步");
             this.getAccountInfo();
-            return;
         }
         else {
             console.log("=== login 无登录记录");
             this.connect();
         }
-
     }
 
     /**
@@ -94,6 +86,9 @@ export class LoginData {
      * @description 获取临时的uin
      */
     private async connect() {
+        if (CC_DEBUG) {
+            gData.appData.mac = '1e:06:e5:43:c3:55,f6:65:d4:1a:b7:27';
+        }
         //connect
         this.randomKey = mk.encrypt.randomString();
         let data: any = {
@@ -102,6 +97,8 @@ export class LoginData {
             "appId": gData.appData.appId
         }
 
+        mk.console.logSingle('mac  ', gData.appData.mac);
+
         let response = await mk.http.sendRequest('connectTest', 'POST', JSON.stringify(data));
         if (response.errcode != 0) {
             return;
@@ -115,11 +112,47 @@ export class LoginData {
 
     public async wxLogin() {
         //wxLogin
+        let clientType = 3
+        if (cc.sys.os == cc.sys.OS_ANDROID) {
+            clientType = 1
+        }
+        else if (cc.sys.os == cc.sys.OS_IOS) {
+            clientType = 2
+        }
+
+        let aa =
+        {
+            "code": gData.wechatData.code,
+            "clientType": clientType,
+            "deviceToken": mk.aliRiskManager.deviceToken,
+            "appVersion": gData.appData.appVersion,
+            "tfChannel": gData.appData.tfChannel,
+            "android_id": gData.appData.machineInfo.android_id,
+            "versioncfg": gData.appData.version,
+            "idfa": gData.appData.machineInfo.idfa,
+            "imei": gData.appData.machineInfo.imei,
+            "mac": gData.appData.mac,
+            "oaid": gData.appData.machineInfo.oaid
+        }
+
+        // mk.console.logSingle('wxlogin aa >>  ', aa);
+        // console.log('wxLogin  code ', aa.code)
+        // console.log('wxLogin  clientType ', aa.clientType)
+        // console.log('wxLogin  deviceToken ', aa.deviceToken)
+        // console.log('wxLogin  appVersion ', aa.appVersion)
+        // console.log('wxLogin  tfChannel ', aa.tfChannel)
+        // console.log('wxLogin  android_id ', aa.android_id)
+        // console.log('wxLogin  versioncfg ', aa.versioncfg)
+        // console.log('wxLogin  idfa ', aa.idfa)
+        // console.log('wxLogin  imei ', aa.imei)
+        // console.log('wxLogin  mac ', aa.mac)
+        // console.log('wxLogin  oaid ', aa.oaid)
+
         let data;
         let encode;
         if (gData.wechatData.code != null) {
             //微信登录
-            encode = mk.encrypt.encrypt(JSON.stringify({ "code": gData.wechatData.code }), this.sessionKey, gData.appData.appId);
+            encode = mk.encrypt.encrypt(JSON.stringify(aa), this.sessionKey, gData.appData.appId);
             data = {
                 "uin": this.uin,
                 "encrypt": encode
@@ -127,7 +160,7 @@ export class LoginData {
         }
         else {
             //游客登录
-            encode = mk.encrypt.encrypt(JSON.stringify({ "code": '' }), this.randomKey, gData.appData.appId);
+            encode = mk.encrypt.encrypt(JSON.stringify(aa), this.randomKey, gData.appData.appId);
             data = {
                 "uin": this.tempUin,
                 "encrypt": encode
@@ -135,8 +168,13 @@ export class LoginData {
         }
         let response = await mk.http.sendRequest('wxlogin', 'POST', JSON.stringify(data), false, false);
         if (response.errcode != 0) {
-            if (response.errcode == -10003 || response.errcode == -20003) {
+            if (response.errcode == 41003) {
+                mk.storage.setStorage("alifengkong", 1);
+                console.log('ali block')
+            }
+            else if (response.errcode == -10003 || response.errcode == -20003) {
                 //清除缓存
+                console.log('restart  errcode ', response.errcode)
                 this.reload();
             }
             return;
@@ -209,67 +247,52 @@ export class LoginData {
     }
 
     private async getUserInfo() {
-
-        // if (gData.wechatData.code != null) {
-        //     if (this.isNew) {//玩过此游戏并且本地数据是本机的
-        //         this.getAccountInfo();
-        //     }
-        //     else {//玩过此游戏 但 本地数据不是本账户的 清空数据 重新登录游戏
-        //         this.isNew = false;
-        //         gData.wechatData.code = null;
-        //         this.reload();
-        //     }
-        // }
-        // else {
-        //     this.getAccountInfo();
-        // }
-
         this.getAccountInfo();
     }
 
     private async getAccountInfo() {
-        // let nickname = mk.storage.getStorage(StorageKey.nickname);
-        // if (nickname) {
-        //     gData.wechatData.nickName = nickname;
-        // }
-        // else {
+        console.log('uin  ', gData.loginData.uin)
+        //更新设备信息
+        mk.console.logSingle("machineInfo", gData.appData.machineInfo);
+        await mk.http.sendData('user/machine', gData.appData.machineInfo);
+
+        //上传appVersion
+        let data1 = { 'version': gData.appData.appVersion };
+        mk.http.sendData('updateVersion', data1);
+
+        //获取user
         let aa = {
             "uin": this.uin,
             "login_ticket": this.loginTicket
         };
 
-        let data: any = {
+        let data = {
             "uin": this.uin,
             "encrypt": mk.encrypt.encrypt(JSON.stringify(aa), this.sessionKey, gData.appData.appId)
         };
-
-        mk.console.logSingle("machineInfo", gData.appData.machineInfo);
-        let res = await mk.http.sendData('user/machine',gData.appData.machineInfo);
-
         let response = await mk.http.sendRequest('user', 'POST', JSON.stringify(data), false, false);
         if (response.errcode != 0) {
             if (response.errcode == -10003 || response.errcode == -20003) {
                 //清除缓存
+                console.log('AA restart errcode ', response.errcode)
                 this.reload();
             }
             return;
         }
         response = mk.http.checkData(response, true);
-        data = response.data;
+        let resData = response.data;
         mk.console.logSingle("[FC] getAccountInfo decrypt", data);
-        this.isAuth = data.is_auth;
+        this.isAuth = resData.is_auth;
+        gData.wechatData.unionid = this.uin;
         if (this.isAuth) {
-            gData.wechatData.nickName = data.nickname;
-            gData.wechatData.avatar = data.headimgurl;
-            gData.wechatData.unionid = this.uin;
+            gData.wechatData.nickName = resData.nickname;
+            gData.wechatData.avatar = resData.headimgurl;
             gData.gameData.init_head = true;
             mk.storage.setStorage(StorageKey.isAuth, 1);
             mk.storage.setStorage(StorageKey.nickname, gData.wechatData.nickName, false);
             mk.storage.setStorage(StorageKey.avatar, gData.wechatData.avatar, false);
         }
 
-        // }
-
         //获取游戏数据
         gData.gameData.init();
     }
@@ -278,9 +301,6 @@ export class LoginData {
      * 本地数据不是本账户的 清空数据 重新登录游戏
      */
     public reload() {
-        // let path = cc.sys.localStorage.getItem('HotUpdateSearchPaths');
-        // gData.storageData.clear();
-        // cc.sys.localStorage.setItem('HotUpdateSearchPaths', path);
         setTimeout(() => {
             this.sessionKey = '';
             this.uin = '';
@@ -299,7 +319,7 @@ export class LoginData {
             cc.sys.localStorage.removeItem(StorageKey.avatar);
 
             cc.audioEngine.stopAll();
-            //调用Android的更好 
+            //调用Android的更好
             cc.game.restart();
         })
     }

+ 39 - 13
assets/script/game/module/login/Login.ts

@@ -1,6 +1,5 @@
 import Util from "../../../before/util/Util";
 import JsbSystem from "../../../mk/system/JsbSystem";
-import { OpenActionType } from "../../../mk/system/UISystem";
 import LoadingBar from "../../component/LoadingBar";
 import { UpdateState } from "../../data/AppData";
 import HotUpdatePanel from "../hotUpdate/HotUpdatePanel";
@@ -23,23 +22,51 @@ export default class Login extends cc.Component {
 
     /** 热更脚本(onLoad应先于Login) */
     public hotUpdatePanel: HotUpdatePanel = null;
-    private addCoreGame = false;
+
+    private hasDeviceBackInit = false;
 
     onLoad() {
         this.setProgress(0);
     }
 
     start() {
+        if (mk.storage.getStorage("alifengkong") == 1) {
+            return;
+        }
+
+        if (CC_DEBUG) {
+            mk.aliRiskManager.getRiskCode = true;
+            gData.appData.getDeviceInfoCompelete = true;
+        }
+        else {
+            mk.aliRiskManager.init();
+        }
+
         this.init();
     }
 
     update() {
+        if (!gData.appData.getDeviceInfoCompelete) {
+            return
+        }
+
+        if (!this.hasDeviceBackInit) {
+            this.hasDeviceBackInit = true;
+            this.getDeviceInfoBack();
+        }
+
         //如果更新没有结束,就不进入正常加载流程
         if (gData.appData.updateState == UpdateState.ForceUpdateFinish) {
             gData.appData.updateState = UpdateState.CheckHot;
             this.checkHotUpdate();
         }
 
+        if (gData.appData.updateState == UpdateState.IsUpdate) {
+            this.lbl_progress.string = '正在更新中,请耐心等待';
+            this.bar.setProgress(gData.appData.updatePercent);
+            return;
+        }
+
         if (gData.appData.updateState != UpdateState.UpdateFinish) {
             return;
         }
@@ -50,9 +77,9 @@ export default class Login extends cc.Component {
         }
 
         if (gData.loginData.loadResCompelete) {
-            if (gData.appData.getDeviceInfoCompelete) {
+            if (mk.aliRiskManager.getRiskCode) {
+                mk.aliRiskManager.getRiskCode = false;
                 this.login();
-                gData.appData.getDeviceInfoCompelete = false;
             }
             else if (gData.gameData.dataFinish) {//登录流程完毕
                 if (mk.storage.getStorage("agreementTip", false) != 1) {
@@ -79,7 +106,6 @@ export default class Login extends cc.Component {
         let coreGame = await mk.loader.load('game/coregame/coregame', cc.Prefab);
         mainNode.addChild(cc.instantiate(coreGame));
     }
-
     /** 设置进度 */
     private setProgress(current) {
         this.bar.setProgress(current);
@@ -92,9 +118,10 @@ export default class Login extends cc.Component {
         JsbSystem.getWxAppId();
         //获取手机授权
         JsbSystem.checkPermission();
-        //获取设备信息
-        // JsbSystem.getDeviceInfo();
-        console.log('appversion   ', gData.appData.appVersion);
+    }
+
+    /** 获取设备信息后 */
+    public async getDeviceInfoBack() {
         //获取登录需要的sessionkey
         gData.loginData.init();
         await this.checkForceUpate();
@@ -145,6 +172,7 @@ export default class Login extends cc.Component {
     //发送请求整包更新
     public async getForceVersionInfo() {
         if (CC_DEBUG) {
+            //测试用配置版本号
             gData.appData.tfChannel = "1";
             gData.appData.appVersion = "1.0.0";
         }
@@ -154,6 +182,8 @@ export default class Login extends cc.Component {
             version: gData.appData.appVersion
         }
 
+        mk.console.logSingle('getForceVersionInfo  ', data);
+
         let response = await mk.http.sendRequest("getForceVersionInfo", 'POST', JSON.stringify(data), false, false)
         if (response.data) {
             gData.appData.needForceUpdate = response.data.isForceUpdate;
@@ -189,13 +219,9 @@ export default class Login extends cc.Component {
     public login() {
         //初始化相关数据
         mk.pool.init(gData.gameData.pools);
-        //取消构造的时候自动初始化,手动初始化
-        mk.ad.init();
-
         gData.appData.init();
         gData.adData.init();
-        // gData.loginData.init();
-        console.log("[FC] gData.appData.appId", gData.appData.appId);
+        mk.console.log("[FC] gData.appData.appId", gData.appData.appId);
         //登录
         gData.loginData.login();
     }

+ 3 - 0
assets/script/mk/sdk/ad/toppon/AnyThinkAdsMgr/ATBanner.ts

@@ -105,6 +105,7 @@ export default class ATBanner extends zgSingleton {
     onBannerAdLoadFail(placementId, errorInfo) {
         this.bannerAdState = BannerAdState.LoadFail;
         // ATJSSDK.printLog("AnyThinkBannerDemo::onBannerAdLoadFail(" + placementId + ", " + errorInfo + ")");
+        gData.adData.updateADLog(14, placementId);
     }
 
     /**
@@ -116,6 +117,8 @@ export default class ATBanner extends zgSingleton {
     onBannerAdShow(placementId, callbackInfo) {
         this.bannerAdState = BannerAdState.Show;
         // ATJSSDK.printLog("AnyThinkBannerDemo::onBannerAdShow(" + placementId + ", " + callbackInfo + ")");
+        let data = JSON.parse(callbackInfo);
+        gData.adData.updateADLog(7, placementId, data);
     }
 
     /**

+ 64 - 56
assets/script/mk/sdk/ad/toppon/AnyThinkAdsMgr/ATInterstitial.ts

@@ -13,7 +13,7 @@ export default class ATInterstitial extends zgSingleton {
     private ATInterstitialJS: any;
 
     /** 插屏广告类型 0 插屏 1全屏 */
-    private interAdType: number = 0;
+    private interAdType: number = -1;
     /** 插屏广告状态 */
     private interAdState: InterAdState = 0;
     /** 是否加载完显示 */
@@ -27,6 +27,7 @@ export default class ATInterstitial extends zgSingleton {
 
         if (this.interAdState == InterAdState.Unload) {
             this.loadInter(0);
+            this.loadInter(1);
         }
     }
 
@@ -50,6 +51,29 @@ export default class ATInterstitial extends zgSingleton {
         }
     }
 
+    /**
+     * 检查当前广告类型
+     * @param placementId 当前广告id 
+     * @returns 0 插屏 1 全屏
+     */
+    checkPlacementIDType(placementId) {
+        if (cc.sys.os === cc.sys.OS_IOS) {
+            if (placementId == ATSDKMgr.topon_inter_placementId) {
+                return 0;
+            }
+            else if (placementId == ATSDKMgr.topon_fullinter_placementId) {
+                return 1;
+            }
+        } else if (cc.sys.os === cc.sys.OS_ANDROID) {
+            if (placementId == ATSDKMgr.topon_inter_placementId) {
+                return 0;
+            }
+            else if (placementId == ATSDKMgr.topon_fullinter_placementId) {
+                return 1;
+            }
+        }
+    }
+
     //广告逻辑部分------------------------------------------------------------------------
     /** 检测是否插屏预备好了 */
     hasAdReady() {
@@ -61,23 +85,10 @@ export default class ATInterstitial extends zgSingleton {
      * @param type 0 插屏 1 全屏
      */
     loadInter(type: number, ifLoadShow: boolean = false) {
-
-        this.interAdType = type;
         this.ifLoadShow = ifLoadShow;
 
         this.interAdState = InterAdState.Loading;
         this.ATInterstitialJS.loadInter(type);
-
-        // // console.log('99999999   loadInterPre  ', type)
-        // if (!this.onloadInter) {
-        //     this.onloadInter = true
-        //     // console.log('99999999   loadInter  ', type)
-        //     //FC:UROI事件
-        //     if (GameM.commonData.ifUROI) {
-        //         let eventID = EncryptUtil.randomString(32);
-        //         AdM.sendUROIEvent(eventID, '', GameM.commonData.interPlaceId, "ad_request", "interstitial", 'other', '')
-        //     }
-        // }
     }
 
     /**
@@ -85,13 +96,12 @@ export default class ATInterstitial extends zgSingleton {
      * @param type 0 插屏 1 全屏
      */
     showInter(type: number) {
-
-        this.interAdType = type;
-
-        if (this.interAdState == InterAdState.Show) {
+        if (this.interAdState == InterAdState.Show && type == this.interAdType) {
             //正在显示不重复弹出
+            console.log('当前插屏类型正在展示');
         }
         else {
+            this.interAdType = type;
             if (this.hasAdReady()) {
                 this.interAdState = InterAdState.Show;
                 this.ATInterstitialJS.showInter(type);
@@ -111,29 +121,27 @@ export default class ATInterstitial extends zgSingleton {
 
     //广告回调部分------------------------------------------------------------------------
     onInterstitialAdLoaded(placementId) {
-
         this.interAdState = InterAdState.LoadSuccess;
 
         if (this.ifLoadShow) {
-            this.showInter(this.interAdType);
+            let type = this.checkPlacementIDType(placementId);
+            this.showInter(type);
         }
-
-        // if (GameM.commonData.ifUROI) {
-        //     let eventID = EncryptUtil.randomString(32);
-        //     AdM.sendUROIEvent(eventID, '', placementId, "ad_fill", "interstitial", 'other', '')
-        // }
     }
 
     onInterstitialAdLoadFail(placementId, errorInfo) {
         this.interAdState = InterAdState.LoadFail;
 
-        // if (placementId == GameM.commonData.fullInterPlaceId) {
-        //     EffectNode.instance.PlayTip('拉取全屏视频失败,请稍后再试')
-        //     GameM.commonData.updateADLog(10, placementId)
-        // }
-        // else if (placementId == GameM.commonData.interPlaceId) {
-        //     GameM.commonData.updateADLog(11, placementId)
-        // }
+        let id = 11
+        let type = this.checkPlacementIDType(placementId);
+        if (type == 0) {
+            id = 11
+        }
+        else if (type == 1) {
+            // mk.tip.pop('拉取全屏视频失败,请稍后再试');
+            id = 10
+        }
+        gData.adData.updateADLog(id, placementId);
     }
 
     //广告展示成功
@@ -141,17 +149,16 @@ export default class ATInterstitial extends zgSingleton {
         this.interAdState = InterAdState.Show;
 
         // // console.log('99999999   onInterstitialAdShow')
-        // let data = JSON.parse(callbackInfo)
-        // let id = 2
-        // if (placementId == GameM.commonData.interPlaceId) {
-        //     id = 2
-        // }
-        // else if (placementId == GameM.commonData.fullInterPlaceId) {
-        //     id = 9
-        // }
-        // GameM.commonData.updateADLog(id, placementId, data.adunit_format, data.network_type, data.network_placement_id,
-        //     data.network_firm_id, data.adsource_id, data.adsource_index, data.adsource_price,
-        //     data.adsource_isheaderbidding, data.publisher_revenue, data.precision, data.ecpm_level)
+        let data = JSON.parse(callbackInfo)
+        let id = 2
+        let type = this.checkPlacementIDType(placementId);
+        if (type == 0) {
+            id = 2
+        }
+        else if (type == 1) {
+            id = 9
+        }
+        gData.adData.updateADLog(id, placementId, data);
 
         // if (GameM.commonData.ifUROI) {
         //     let eventID = EncryptUtil.randomString(32);
@@ -175,21 +182,22 @@ export default class ATInterstitial extends zgSingleton {
     //插屏广告关闭
     onInterstitialAdClose(placementId, callbackInfo) {
         this.interAdState = InterAdState.Close;
-        this.loadInter(this.interAdType)
 
         // //给奖励
-        // // console.log('AnyThinkInterstitialDemo  ', this.interType)
-        // if (placementId == GameM.commonData.fullInterPlaceId) {
-        //     GameM.commonData.showFull = false
-        //     GameM.commonData.todayFullInterTimes++
-        //     GameM.globalStorage.setStorage(STORAGE_KEY.todayFullInterTimes, GameM.commonData.todayFullInterTimes)
-        //     AdM.videoReward()
-
-        //     let data = JSON.parse(callbackInfo)
-        //     GameM.commonData.updateADLog(8, placementId, data.adunit_format, data.network_type, data.network_placement_id,
-        //         data.network_firm_id, data.adsource_id, data.adsource_index, data.adsource_price,
-        //         data.adsource_isheaderbidding, data.publisher_revenue, data.precision, data.ecpm_level)
-        // }
+        let type = this.checkPlacementIDType(placementId);
+        if (type == 1) {
+            let data = JSON.parse(callbackInfo);
+            gData.adData.updateADLog(8, placementId, data);
+            this.loadInter(1);
+        }
+        else {
+            this.loadInter(0);
+        }
+    }
+
+    onInterstitialAdFailedToPlayVideo(placementId, errorInfo) {
+        mk.console.logSingle('onInterstitialAdFailedToPlayVideo  placementId >> ', placementId);
+        mk.console.logSingle('onInterstitialAdFailedToPlayVideo  ', errorInfo);
     }
 }
 

+ 4 - 1
assets/script/mk/sdk/ad/toppon/AnyThinkAdsMgr/ATInterstitialJS.js

@@ -65,7 +65,7 @@ var ATInterstitialJS = cc.Class({
      * @returns 
      */
     onInterstitialAdLoadFail: function (placementId, errorInfo) {
-        ATJSSDK.printLog("===[AnyThinkInterstitialDemo::onInterstitialAdLoadFail(" + placementId + ", " + errorInfo + ")");   
+        ATJSSDK.printLog("===[AnyThinkInterstitialDemo::onInterstitialAdLoadFail(" + placementId + ", " + errorInfo + ")");
         if (this.proxy == null) return;
         this.proxy.onInterstitialAdLoadFail(placementId, errorInfo);
     },
@@ -98,6 +98,7 @@ var ATInterstitialJS = cc.Class({
      * @param {*} callbackInfo 回调信息
      */
     onInterstitialAdEndPlayingVideo: function (placementId, callbackInfo) {
+
         // ATJSSDK.printLog("AnyThinkInterstitialDemo::onInterstitialAdEndPlayingVideo("  + placementId + ", " + callbackInfo + ")");
     },
 
@@ -108,6 +109,8 @@ var ATInterstitialJS = cc.Class({
      */
     onInterstitialAdFailedToPlayVideo: function (placementId, errorInfo) {
         // ATJSSDK.printLog("AnyThinkInterstitialDemo::onInterstitialAdFailedToPlayVideo(" + placementId + ", " + errorInfo + ")");
+        if (this.proxy == null) return;
+        this.proxy.onInterstitialAdFailedToPlayVideo(placementId, errorInfo);
     },
 
     /**

+ 3 - 5
assets/script/mk/sdk/ad/toppon/AnyThinkAdsMgr/ATNative.ts

@@ -178,6 +178,7 @@ export class ATNative extends zgSingleton {
     onNativeAdLoadFail(placementId, errorInfo) {
         this.nativeAdState = NativeAdState.LoadFail;
         // ATJSSDK.printLog("AnyThinkNativeDemo::onNativeAdLoadFail(" + placementId + ", " + errorInfo + ")");
+        gData.adData.updateADLog(12, placementId);
     }
 
     /**
@@ -189,11 +190,8 @@ export class ATNative extends zgSingleton {
 
         this.nativeAdState = NativeAdState.Show;
 
-        // 2021/06/03(勿删)此处为星云埋点,先注释,待接口调通,恢复
-        // let data = JSON.parse(callbackInfo)
-        // HttpMgr.Inst.updateADLog(3, placementId, data.adunit_format, data.network_type, data.network_placement_id,
-        //     data.network_firm_id, data.adsource_id, data.adsource_index, data.adsource_price,
-        //     data.adsource_isheaderbidding, data.publisher_revenue, data.precision, data.ecpm_level);
+        let data = JSON.parse(callbackInfo)
+        gData.adData.updateADLog(3, placementId, data);
     }
 
     /**

+ 9 - 20
assets/script/mk/sdk/ad/toppon/AnyThinkAdsMgr/ATRewardVideo.ts

@@ -54,7 +54,9 @@ export class ATRewardVideo extends zgSingleton {
 
         console.log("anythink === 加载激励视频广告 onload", RewardAdState[this.reawardAdState]);
         this.reawardAdState = RewardAdState.Loading;
-        this.ATRewardVideoJS.loadAd("userIdKey", "userDataKey");
+        this.ATRewardVideoJS.loadAd(gData.loginData.uin, "userDataKey");
+        // //test
+        // this.ATRewardVideoJS.loadAd("userDataID", "userDataKey");
     }
 
     /** 显示广告 */
@@ -105,9 +107,7 @@ export class ATRewardVideo extends zgSingleton {
 
         //视频埋点开始
         let data = JSON.parse(callbackInfo);
-        // HttpMgr.Inst.updateADLog(4, placementId, data.adunit_format, data.network_type, data.network_placement_id,
-        //     data.network_firm_id, data.adsource_id, data.adsource_index, data.adsource_price,
-        //     data.adsource_isheaderbidding, data.publisher_revenue, data.precision, data.ecpm_level);
+        gData.adData.updateADLog(4, placementId, data);
         gData.adData.updateData(placementId, data);
         mk.data.sendDataEvent(DataEventId.video_init, mk.ad.videoAdType);
         this.reawardAdState = RewardAdState.Unload;
@@ -132,15 +132,11 @@ export class ATRewardVideo extends zgSingleton {
      * @param callbackInfo 回调信息
      */
     onRewardedVideoAdPlayFailed(placementId, errorInfo, callbackInfo) {
-
-        //ATJSSDK.printLog("AnyThinkRewardedVideoDemo::onRewardedVideoAdPlayFailed(" + placementId + ", " + errorInfo + ", " + callbackInfo + ")");
-
-        // 2021/06/03(勿删)此处为星云埋点,先注释,待接口调通,恢复
-        // let data = JSON.parse(callbackInfo)
-        // HttpMgr.Inst.updateADLog(5, placementId, data.adunit_format, data.network_type, data.network_placement_id,
-        //     data.network_firm_id, data.adsource_id, data.adsource_index, data.adsource_price,
-        //     data.adsource_isheaderbidding, data.publisher_revenue, data.precision, data.ecpm_level);
-
+        mk.console.log("AnyThinkRewardedVideoDemo::onRewardedVideoAdPlayFailed placementId >> ", placementId);
+        mk.console.log("AnyThinkRewardedVideoDemo::onRewardedVideoAdPlayFailed errorInfo ", errorInfo);
+        mk.console.log("AnyThinkRewardedVideoDemo::onRewardedVideoAdPlayFailed callbackInfo ", callbackInfo);
+        let data = JSON.parse(callbackInfo)
+        gData.adData.updateADLog(5, placementId, data);
         ATSDKMgr.getInstance().watchVideoAdCallBack(AdPlayStateType.PlayFail);
     }
 
@@ -154,13 +150,6 @@ export class ATRewardVideo extends zgSingleton {
         // ATJSSDK.printLog("AnyThinkRewardedVideoDemo::onRewardedVideoAdClosed(" + placementId + ", " + callbackInfo + ")");
 
         if (this.ifWatchEnd) {
-            // 2021/06/03(勿删)此处为星云埋点,先注释,待接口调通,恢复
-            // 视频埋点结束
-            // let data = JSON.parse(callbackInfo)
-            // HttpMgr.Inst.updateVideoTimes(placementId, data.adunit_format, data.network_type, data.network_placement_id,
-            //     data.network_firm_id, data.adsource_id, data.adsource_index, data.adsource_price,
-            //     data.adsource_isheaderbidding, data.publisher_revenue, data.precision, data.ecpm_level);
-
             ATSDKMgr.getInstance().watchVideoAdCallBack(AdPlayStateType.WatchEnd);
             mk.data.sendDataEvent(DataEventId.video_end, mk.ad.videoAdType);
         }

+ 6 - 3
assets/script/mk/sdk/ad/toppon/AnyThinkAdsMgr/ATSDKMgr.ts

@@ -21,7 +21,7 @@ export default class ATSDKMgr extends zgSingleton implements IADSDKMgr {
     /**Topon 信息流广告位 */
     public static topon_native_placementId = "b5f8fa77aa5262";
     /**Topon 全屏插屏广告位 */
-    public static topon_fullinter_placementId = "b5f8fa77aa5262";
+    public static topon_fullinter_placementId = "b6113813b876a1";
     /**Topon 全屏插屏广告位 */
     public static topon_banner_placementId = "b5f8fa77aa5262";
 
@@ -61,7 +61,7 @@ export default class ATSDKMgr extends zgSingleton implements IADSDKMgr {
         let str = JsbSystem.getAdvertisingChannel();
         if (!str) {
             //channelId,AppId,AppSecreate,激励视频,插屏,信息流,开屏,banner
-            str = '1,a60cac090a6eb0,66b742dd0e502b64d783d9c66a9d30c4,b60cac0e43c0e1,b60cac0e4892fa,b60cac0e4d08e8,b60cac0e5754fc,b60cac0e524313';
+            str = '1,a60cac090a6eb0,66b742dd0e502b64d783d9c66a9d30c4,b60cac0e43c0e1,b60cac0e4892fa,b60cac0e4d08e8,b60cac0e5754fc,b60cac0e524313,b60cac0e524313';
         }
         console.log("getAdvertiseChannel..." + str);
 
@@ -72,8 +72,11 @@ export default class ATSDKMgr extends zgSingleton implements IADSDKMgr {
         ATSDKMgr.topon_rewardVideo_placementId = arr[3];
         ATSDKMgr.topon_inter_placementId = arr[4];
         ATSDKMgr.topon_native_placementId = arr[5];
-        ATSDKMgr.topon_fullinter_placementId = arr[6];
+
         ATSDKMgr.topon_banner_placementId = arr[7];
+        if (arr[8]) {
+            ATSDKMgr.topon_fullinter_placementId = arr[8];
+        }
     }
 
     //激励视频广告------------------------------------------------------------------------------

+ 12 - 0
assets/script/mk/sdk/aliRisk.meta

@@ -0,0 +1,12 @@
+{
+  "ver": "1.1.2",
+  "uuid": "7584430e-41b1-4e28-bf70-ff8c2edff656",
+  "isBundle": false,
+  "bundleName": "",
+  "priority": 1,
+  "compressionType": {},
+  "optimizeHotUpdate": {},
+  "inlineSpriteFrames": {},
+  "isRemoteBundle": {},
+  "subMetas": {}
+}

+ 19 - 0
assets/script/mk/sdk/aliRisk/AliRiskManager.ts

@@ -0,0 +1,19 @@
+import JsbSystem from "../../system/JsbSystem";
+
+const { ccclass } = cc._decorator;
+
+/**
+ * 阿里风控管理类
+ */
+@ccclass
+export default class AliRiskManager {
+    /** 风控返回码 0正常用户 */
+    public getRiskCode: boolean = false;
+    public deviceToken: string = '';
+
+    public init() {
+        this.deviceToken = JsbSystem.getAliRiskDeviceToken();
+        this.getRiskCode = true;
+        console.log("Ali_deviceToken", this.deviceToken);
+    }
+}

+ 9 - 0
assets/script/mk/sdk/aliRisk/AliRiskManager.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.0.8",
+  "uuid": "5c10ca01-bbfb-46c4-93a0-088f7e213c29",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 28 - 9
assets/script/mk/system/AdSystem.ts

@@ -1,3 +1,4 @@
+import Util from "../../before/util/Util";
 import { VideoAdType } from "../../game/data/GameData";
 import { IADSDKMgr } from "../sdk/ad/IADSDKMgr";
 import JsbSystem from "./JsbSystem";
@@ -32,10 +33,12 @@ export default class AdSystem {
 
         //判定下平台
         if (cc.sys.os == cc.sys.OS_ANDROID) {
-            this.ifShowAd = true;
+            this.ifShowAd = gData.gameData.configs.ServerConfig.ifShowAd == '1';
         }
         else {
-            this.ifShowAd = false;
+            // this.ifShowAd = false;
+            //test
+            this.ifShowAd = gData.gameData.configs.ServerConfig.ifShowAd == '1';
         }
 
         //初始化Topon广告SDK
@@ -59,7 +62,6 @@ export default class AdSystem {
         else {
             if (cc.sys.platform != cc.sys.WECHAT_GAME) {
                 if (cc.sys.os == cc.sys.OS_ANDROID) {
-                    // jsb.reflection.callStaticMethod("org/cocos2dx/javascript/config/TTAdManagerHolder", "showVideo", "(I)V", pop);
                     this.adSdk.showVideo();
                 }
                 else if (cc.sys.os == cc.sys.OS_IOS) {
@@ -90,6 +92,8 @@ export default class AdSystem {
      */
     public wacthAdSuccess(placementId = '') {
         mk.console.log("=== wacthAdSuccess");
+        //累计视频次数
+        mk.data.setTAEventUser(1, 'video_time', 1);
         //广告过后,渲染会有问题,统一下一帧再处理逻辑
         mk.ui.scheduleOnce(() => {
             if (!gData.adData.checkAdMax()) {
@@ -108,7 +112,6 @@ export default class AdSystem {
 
         if (cc.sys.platform != cc.sys.WECHAT_GAME) {
             if (cc.sys.os == cc.sys.OS_ANDROID) {
-                // jsb.reflection.callStaticMethod("org/cocos2dx/javascript/config/TTAdManagerHolder", "showVideo", "(I)V", pop);
                 this.adSdk.showNative(type);
             }
             else if (cc.sys.os == cc.sys.OS_IOS) {
@@ -129,7 +132,6 @@ export default class AdSystem {
 
         if (cc.sys.platform != cc.sys.WECHAT_GAME) {
             if (cc.sys.os == cc.sys.OS_ANDROID) {
-                // jsb.reflection.callStaticMethod("org/cocos2dx/javascript/config/TTAdManagerHolder", "showVideo", "(I)V", pop);
                 this.adSdk.destroyNative();
             }
             else if (cc.sys.os == cc.sys.OS_IOS) {
@@ -165,9 +167,14 @@ export default class AdSystem {
     }
 
     public showBanner() {
+        if (CC_DEBUG) {
+            return;
+        }
+
         if (!this.ifShowAd) {
             return;
         }
+
         // console.log("===[AdSystem gameData.adShowConfig", gData.gameData.adShowConfig.is_show_banner);
         // if (gData.gameData.adShowConfig && gData.gameData.adShowConfig.is_show_banner == 1) {
         this.adSdk.showBanner();
@@ -175,9 +182,14 @@ export default class AdSystem {
     }
 
     public destoryBanner() {
+        if (CC_DEBUG) {
+            return;
+        }
+
         if (!this.ifShowAd) {
             return;
         }
+
         this.adSdk.destoryBanner();
     }
 
@@ -186,6 +198,10 @@ export default class AdSystem {
      * @param type 0 插屏 1 全屏
      */
     public showInterAd(type: number) {
+        if (CC_DEBUG) {
+            return;
+        }
+
         if (!this.ifShowAd) {
             return;
         }
@@ -203,12 +219,15 @@ export default class AdSystem {
         if (!gData.gameData.adShowConfig) {
             return;
         }
+
         let chance = gData.gameData.configs.ServerConfig.interOpenChance;
-        if (!chance) {
-            chance = 0.4;
-        }
+
         if (Math.random() <= chance) {
-            this.showInterAd(0);
+            let delay = Number(gData.gameData.configs.ServerConfig.interOpenDelayMin)
+                + Math.random() * (Number(gData.gameData.configs.ServerConfig.interOpenDelayMax) - Number(gData.gameData.configs.ServerConfig.interOpenDelayMin));
+            setTimeout(() => {
+                this.showInterAd(0);
+            }, delay * 1000);
         }
         else {
             gData.moreGame.popMoreGamePopNode();

+ 20 - 0
assets/script/mk/system/DataSystem.ts

@@ -22,6 +22,26 @@ export default class DataSystem {
     }
 
     /**
+    * 设置人物属性
+    * @param type 0 set  1 add
+    * @param property 属性名
+    * @param value 浮点数值 
+    */
+    public setTAEventUser(type: number, property: string, value: number) {
+        JsbSystem.setTAEventUser(type, property, value);
+    }
+
+    /**
+    * 设置人物属性
+    * @param type 0 set  1 add
+    * @param property 属性名
+    * @param value 字符串数值 
+    */
+    public setTAEventUserStr(type: number, property: string, value: string) {
+        JsbSystem.setTAEventUserStr(type, property, value);
+    }
+
+    /**
      * 星云打点
      */
     public sendXYEvent(eventId: string, des: string) {

+ 62 - 3
assets/script/mk/system/JsbSystem.ts

@@ -59,7 +59,7 @@ export default class JsbSystem {
      * @param info  info(Java返回)
      */
     public static updateDeviceInfo(info) {
-        mk.console.log("===[JsbSystem] updateDeviceInfo" , info)
+        mk.console.log("===[JsbSystem] updateDeviceInfo", info)
         if (cc.sys.os == cc.sys.OS_ANDROID) {
             gData.appData.updateDeviceInfo(info);
         }
@@ -128,10 +128,18 @@ export default class JsbSystem {
         }
 
         let unicodeArr = unicodeStr.split(';');
-        if (!unicodeArr) {
+        if (unicodeArr) {
             gData.appData.appId = unicodeArr[0];
             gData.appData.version = unicodeArr[1];
         }
+
+        if (CC_DEBUG) {
+            gData.appData.appId = "wx3c0cc2f730c5ad5a";
+            gData.appData.version = "1.0.0";
+        }
+        // console.log('gData.appData  ', unicodeStr)
+        // console.log('gData.appData.appId  ', gData.appData.appId)
+        // console.log('gData.appData.version  ', gData.appData.version)
     }
 
     /**
@@ -149,7 +157,7 @@ export default class JsbSystem {
         }
         return str;
     }
-    
+
     /** 显示开屏 */
     static showSplash() {
         // mk.data.sendDataEvent('slashAd', '开屏')
@@ -312,6 +320,36 @@ export default class JsbSystem {
     }
 
     /**
+    * 设置人物属性
+    * @param type 0 set  1 add
+    * @param property 属性名
+    * @param value 数值
+    */
+    public static setTAEventUser(type: number, property: string, value: number) {
+        if (cc.sys.os == cc.sys.OS_ANDROID) {
+            this.callStaticMethod(this._JSB_ANDROID_PATH, "setTAEventUser", "(ILjava/lang/String;F)V", type, property, value);
+        }
+        else if (cc.sys.os == cc.sys.OS_IOS) {
+
+        }
+    }
+
+    /**
+    * 设置人物属性
+    * @param type 0 set  1 add
+    * @param property 属性名
+    * @param value 数值
+    */
+    public static setTAEventUserStr(type: number, property: string, value: string) {
+        if (cc.sys.os == cc.sys.OS_ANDROID) {
+            this.callStaticMethod(this._JSB_ANDROID_PATH, "setTAEventUserStr", "(ILjava/lang/String;Ljava/lang/String;)V", type, property, value);
+        }
+        else if (cc.sys.os == cc.sys.OS_IOS) {
+
+        }
+    }
+
+    /**
      * 微信授权
      * @description 微信SDK功能 CocosToJava
      */
@@ -423,6 +461,27 @@ export default class JsbSystem {
             return downloader
         }
     }
+
+    /** 上传开屏广告星云埋点 */
+    public static updateSplashAdLog(info) {
+        let arr = info.split('#')
+        // console.log('updateSplashAdLog  placementId ', arr[0])
+        // console.log('updateSplashAdLog  callbackInfo ', arr[1])
+        let data = JSON.parse(arr[1])
+        gData.adData.updateADLog(6, arr[0], data);
+    }
+
+    /** 获取阿里风控设备token */
+    public static getAliRiskDeviceToken() {
+        let token = '';
+        if (cc.sys.os == cc.sys.OS_ANDROID) {
+            token = this.callStaticMethod(this._JSB_ANDROID_PATH, "getAliDeviceToken", "()Ljava/lang/String;");
+        }
+        else if (cc.sys.os == cc.sys.OS_IOS) {
+            token = this.callStaticMethod("AppController", "openWx", "");
+        }
+        return token;
+    }
 }
 
 window['JsbMgr'] = JsbSystem

+ 5 - 0
assets/script/mk/system/MKSystem.ts

@@ -24,6 +24,7 @@ import GuideSystem from "./GuideSystem";
 import StringUtil from "../utils/StringUtil";
 import SetGray from "../../game/component/SetGray";
 import NumberAnim from "../../game/component/NumberAnim";
+import AliRiskManager from "../sdk/aliRisk/AliRiskManager";
 
 /**
  * @description mk系统
@@ -120,6 +121,10 @@ class MKSystem {
     public get guide(): GuideSystem {
         return this._guide || (this._guide = new GuideSystem());
     }
+    private _aliRiskManager: AliRiskManager;
+    public get aliRiskManager(): AliRiskManager {
+        return this._aliRiskManager || (this._aliRiskManager = new AliRiskManager());
+    }
 
     /** 挂载在MainScene的界面上,不需要new */
     private _ui: UISystem;

+ 6 - 3
assets/script/mk/system/UISystem.ts

@@ -48,8 +48,6 @@ export default class UISystem extends cc.Component {
 
             mk.loader.load(`${panelUrl}`, cc.Prefab)
                 .then((prefab) => {
-
-                    self.isPanelOpening = false;
                     let node_panel = cc.instantiate(prefab);
                     self.curOnPanelDic[panelName] = node_panel;
 
@@ -60,6 +58,7 @@ export default class UISystem extends cc.Component {
                     //如果父节点不存在,就默认把该节点定为panel的父节点
                     if (!self.panelParent) {
                         console.error("[UISystem] UI的父节点panelParent为null,请检查脚本挂载情况");
+                        self.isPanelOpening = false;
                         return;
                     }
 
@@ -91,6 +90,8 @@ export default class UISystem extends cc.Component {
 
                     //返回panel
                     resolve(node_panel);
+
+                    self.isPanelOpening = false;
                 })
                 .catch((err) => {
                     self.isPanelOpening = false;
@@ -141,7 +142,7 @@ export default class UISystem extends cc.Component {
      * 关闭所有界面,除了主界面
      * @param except 排除的ui
      */
-    closeAllUI(except: string[] = ["game","guide"]) {
+    closeAllUI(except: string[] = ["game", "guide"]) {
         for (let panelName in this.curOnPanelDic) {
             if (except && except.length > 0 && except.indexOf(panelName) != -1) {
                 continue;
@@ -157,6 +158,8 @@ export default class UISystem extends cc.Component {
         }
 
         this.isPanelClosing = false;
+        mk.ad.destroyNativeAd()
+        mk.ad.destoryBanner()
     }
 }
 

+ 2 - 2
build/jsb-link/.cocos-project.json

@@ -2,6 +2,6 @@
   "engine_version": "2.4.5",
   "has_native": true,
   "project_type": "js",
-  "projectName": "EasyEliminate",
-  "packageName": "com.aries.qsllx.mz"
+  "projectName": "kxnly",
+  "packageName": "com.aries.kxnly.mz"
 }

二進制
build/jsb-link/frameworks/runtime-src/proj.android-studio/.idea/caches/build_file_checksums.ser


+ 1 - 1
build/jsb-link/frameworks/runtime-src/proj.android-studio/.idea/gradle.xml

@@ -10,7 +10,7 @@
         <option name="gradleJvm" value="1.8" />
         <option name="modules">
           <set>
-            <option value="C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx" />
+            <option value="D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx" />
             <option value="$PROJECT_DIR$" />
             <option value="$PROJECT_DIR$/app" />
           </set>

+ 15 - 15
build/jsb-link/frameworks/runtime-src/proj.android-studio/.idea/jarRepositories.xml

@@ -47,6 +47,16 @@
       <option name="url" value="file:/D:/android/sdk/extras/android/m2repository" />
     </remote-repository>
     <remote-repository>
+      <option name="id" value="D:\work\android\sdk\extras\android\m2repository" />
+      <option name="name" value="D:\work\android\sdk\extras\android\m2repository" />
+      <option name="url" value="file:/D:/android/sdk/extras/android/m2repository" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="D:\work\android\sdk\extras\google\m2repository" />
+      <option name="name" value="D:\work\android\sdk\extras\google\m2repository" />
+      <option name="url" value="file:/D:/android/sdk/extras/google/m2repository" />
+    </remote-repository>
+    <remote-repository>
       <option name="id" value="D:\work\android\sdk\extras\google\m2repository" />
       <option name="name" value="D:\work\android\sdk\extras\google\m2repository" />
       <option name="url" value="file:/D:/android/sdk/extras/google/m2repository" />
@@ -57,6 +67,11 @@
       <option name="url" value="file:/D:/android/sdk/extras/m2repository" />
     </remote-repository>
     <remote-repository>
+      <option name="id" value="D:\work\android\sdk\extras\m2repository" />
+      <option name="name" value="D:\work\android\sdk\extras\m2repository" />
+      <option name="url" value="file:/D:/android/sdk/extras/m2repository" />
+    </remote-repository>
+    <remote-repository>
       <option name="id" value="C:\Users\lzg12073\AppData\Local\Android\Sdk\extras\android\m2repository" />
       <option name="name" value="C:\Users\lzg12073\AppData\Local\Android\Sdk\extras\android\m2repository" />
       <option name="url" value="file:/$USER_HOME$/AppData/Local/Android/Sdk/extras/android/m2repository" />
@@ -71,20 +86,5 @@
       <option name="name" value="C:\Users\lzg12073\AppData\Local\Android\Sdk\extras\m2repository" />
       <option name="url" value="file:/$USER_HOME$/AppData/Local/Android/Sdk/extras/m2repository" />
     </remote-repository>
-    <remote-repository>
-      <option name="id" value="D:\work\android\sdk\extras\android\m2repository" />
-      <option name="name" value="D:\work\android\sdk\extras\android\m2repository" />
-      <option name="url" value="file:/$PROJECT_DIR$/../../../../../../../android/sdk/extras/android/m2repository" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="D:\work\android\sdk\extras\google\m2repository" />
-      <option name="name" value="D:\work\android\sdk\extras\google\m2repository" />
-      <option name="url" value="file:/$PROJECT_DIR$/../../../../../../../android/sdk/extras/google/m2repository" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="D:\work\android\sdk\extras\m2repository" />
-      <option name="name" value="D:\work\android\sdk\extras\m2repository" />
-      <option name="url" value="file:/$PROJECT_DIR$/../../../../../../../android/sdk/extras/m2repository" />
-    </remote-repository>
   </component>
 </project>

+ 2 - 2
build/jsb-link/frameworks/runtime-src/proj.android-studio/.idea/modules.xml

@@ -2,8 +2,8 @@
 <project version="4">
   <component name="ProjectModuleManager">
     <modules>
-      <module fileurl="file://$PROJECT_DIR$/.idea/modules/app/EasyEliminate.iml" filepath="$PROJECT_DIR$/.idea/modules/app/EasyEliminate.iml" group="proj.android-studio/EasyEliminate" />
-      <module fileurl="file://$PROJECT_DIR$/.idea/modules/-52358525/android-libcocos2dx.iml" filepath="$PROJECT_DIR$/.idea/modules/-52358525/android-libcocos2dx.iml" group="proj.android-studio/libcocos2dx" />
+      <module fileurl="file://$PROJECT_DIR$/.idea/modules/app/kxnly.iml" filepath="$PROJECT_DIR$/.idea/modules/app/kxnly.iml" group="proj.android-studio/kxnly" />
+      <module fileurl="file://$PROJECT_DIR$/.idea/modules/1786486690/libcocos2dx.iml" filepath="$PROJECT_DIR$/.idea/modules/1786486690/libcocos2dx.iml" group="proj.android-studio/libcocos2dx" />
       <module fileurl="file://$PROJECT_DIR$/.idea/modules/proj.android-studio.iml" filepath="$PROJECT_DIR$/.idea/modules/proj.android-studio.iml" group="proj.android-studio" />
       <module fileurl="file://$PROJECT_DIR$/.idea/modules/-52358525/proj.android-studio-libcocos2dx.iml" filepath="$PROJECT_DIR$/.idea/modules/-52358525/proj.android-studio-libcocos2dx.iml" group="proj.android-studio/libcocos2dx" />
     </modules>

+ 0 - 99
build/jsb-link/frameworks/runtime-src/proj.android-studio/.idea/modules/-52358525/android-libcocos2dx.iml

@@ -1,99 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module external.linked.project.id=":libcocos2dx" external.linked.project.path="C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx" external.root.project.path="$MODULE_DIR$/../../.." external.system.id="GRADLE" external.system.module.group="proj.android-studio" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
-  <component name="FacetManager">
-    <facet type="android-gradle" name="Android-Gradle">
-      <configuration>
-        <option name="GRADLE_PROJECT_PATH" value=":libcocos2dx" />
-        <option name="LAST_SUCCESSFUL_SYNC_AGP_VERSION" value="3.3.3" />
-        <option name="LAST_KNOWN_AGP_VERSION" value="3.3.3" />
-      </configuration>
-    </facet>
-    <facet type="android" name="Android">
-      <configuration>
-        <option name="SELECTED_BUILD_VARIANT" value="debug" />
-        <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
-        <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
-        <afterSyncTasks>
-          <task>generateDebugSources</task>
-        </afterSyncTasks>
-        <option name="ALLOW_USER_CONFIGURATION" value="false" />
-        <option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
-        <option name="RES_FOLDERS_RELATIVE_PATH" value="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/main/res;file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/debug/res;file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/res/rs/debug;file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/res/resValues/debug" />
-        <option name="TEST_RES_FOLDERS_RELATIVE_PATH" value="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTest/res;file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/test/res;file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTestDebug/res;file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/testDebug/res;file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/res/rs/androidTest/debug;file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/res/resValues/androidTest/debug" />
-        <option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
-        <option name="PROJECT_TYPE" value="1" />
-      </configuration>
-    </facet>
-  </component>
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
-    <output url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes" />
-    <output-test url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/intermediates/javac/debugUnitTest/compileDebugUnitTestJavaWithJavac/classes" />
-    <exclude-output />
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/java/src">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/java/src" isTestSource="false" />
-    </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/source/apt/debug" isTestSource="false" generated="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/aidl_source_output_dir/debug/compileDebugAidl/out" isTestSource="false" generated="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/renderscript_source_output_dir/debug/compileDebugRenderscript/out" isTestSource="false" generated="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/res/rs/debug" type="java-resource" generated="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/res/resValues/debug" type="java-resource" generated="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/source/apt/androidTest/debug" isTestSource="true" generated="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/aidl_source_output_dir/debugAndroidTest/compileDebugAndroidTestAidl/out" isTestSource="true" generated="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/renderscript_source_output_dir/debugAndroidTest/compileDebugAndroidTestRenderscript/out" isTestSource="true" generated="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/res/rs/androidTest/debug" type="java-test-resource" generated="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/res/resValues/androidTest/debug" type="java-test-resource" generated="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/source/apt/test/debug" isTestSource="true" generated="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/debug/res" type="java-resource" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/debug/resources" type="java-resource" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/debug/assets" type="java-resource" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/debug/aidl" isTestSource="false" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/debug/java" isTestSource="false" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/debug/rs" isTestSource="false" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/debug/shaders" isTestSource="false" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTestDebug/res" type="java-test-resource" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTestDebug/resources" type="java-test-resource" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTestDebug/assets" type="java-test-resource" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTestDebug/aidl" isTestSource="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTestDebug/java" isTestSource="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTestDebug/rs" isTestSource="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTestDebug/shaders" isTestSource="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/testDebug/res" type="java-test-resource" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/testDebug/resources" type="java-test-resource" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/testDebug/assets" type="java-test-resource" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/testDebug/aidl" isTestSource="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/testDebug/java" isTestSource="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/testDebug/rs" isTestSource="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/testDebug/shaders" isTestSource="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/main/res" type="java-resource" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/main/resources" type="java-resource" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/main/assets" type="java-resource" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/main/aidl" isTestSource="false" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/main/java" isTestSource="false" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/main/rs" isTestSource="false" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/main/shaders" isTestSource="false" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTest/res" type="java-test-resource" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTest/resources" type="java-test-resource" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTest/assets" type="java-test-resource" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTest/aidl" isTestSource="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTest/java" isTestSource="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTest/rs" isTestSource="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTest/shaders" isTestSource="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/test/res" type="java-test-resource" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/test/resources" type="java-test-resource" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/test/assets" type="java-test-resource" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/test/aidl" isTestSource="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/test/java" isTestSource="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/test/rs" isTestSource="true" />
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/test/shaders" isTestSource="true" />
-      <excludeFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build" />
-    </content>
-    <orderEntry type="jdk" jdkName="Android API 29 Platform" jdkType="Android SDK" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="library" name="Gradle: C./CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/java/libs/com.android.vending.expansion.zipfile.jar" level="project" />
-    <orderEntry type="library" name="Gradle: C./CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/java/libs/okhttp-3.12.7.jar" level="project" />
-    <orderEntry type="library" name="Gradle: C./CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/java/libs/okio-1.15.0.jar" level="project" />
-  </component>
-</module>

+ 99 - 0
build/jsb-link/frameworks/runtime-src/proj.android-studio/.idea/modules/1786486690/libcocos2dx.iml

@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module external.linked.project.id=":libcocos2dx" external.linked.project.path="D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx" external.root.project.path="$MODULE_DIR$/../../.." external.system.id="GRADLE" external.system.module.group="proj.android-studio" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
+  <component name="FacetManager">
+    <facet type="android-gradle" name="Android-Gradle">
+      <configuration>
+        <option name="GRADLE_PROJECT_PATH" value=":libcocos2dx" />
+        <option name="LAST_SUCCESSFUL_SYNC_AGP_VERSION" value="3.3.3" />
+        <option name="LAST_KNOWN_AGP_VERSION" value="3.3.3" />
+      </configuration>
+    </facet>
+    <facet type="android" name="Android">
+      <configuration>
+        <option name="SELECTED_BUILD_VARIANT" value="debug" />
+        <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
+        <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
+        <afterSyncTasks>
+          <task>generateDebugSources</task>
+        </afterSyncTasks>
+        <option name="ALLOW_USER_CONFIGURATION" value="false" />
+        <option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
+        <option name="RES_FOLDERS_RELATIVE_PATH" value="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/main/res;file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/debug/res;file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/res/rs/debug;file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/res/resValues/debug" />
+        <option name="TEST_RES_FOLDERS_RELATIVE_PATH" value="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTest/res;file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/test/res;file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTestDebug/res;file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/testDebug/res;file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/res/rs/androidTest/debug;file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/res/resValues/androidTest/debug" />
+        <option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
+        <option name="PROJECT_TYPE" value="1" />
+      </configuration>
+    </facet>
+  </component>
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
+    <output url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes" />
+    <output-test url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/intermediates/javac/debugUnitTest/compileDebugUnitTestJavaWithJavac/classes" />
+    <exclude-output />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/java/src">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/java/src" isTestSource="false" />
+    </content>
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/source/apt/debug" isTestSource="false" generated="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/aidl_source_output_dir/debug/compileDebugAidl/out" isTestSource="false" generated="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/renderscript_source_output_dir/debug/compileDebugRenderscript/out" isTestSource="false" generated="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/res/rs/debug" type="java-resource" generated="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/res/resValues/debug" type="java-resource" generated="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/source/apt/androidTest/debug" isTestSource="true" generated="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/aidl_source_output_dir/debugAndroidTest/compileDebugAndroidTestAidl/out" isTestSource="true" generated="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/renderscript_source_output_dir/debugAndroidTest/compileDebugAndroidTestRenderscript/out" isTestSource="true" generated="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/res/rs/androidTest/debug" type="java-test-resource" generated="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/res/resValues/androidTest/debug" type="java-test-resource" generated="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build/generated/source/apt/test/debug" isTestSource="true" generated="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/debug/res" type="java-resource" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/debug/resources" type="java-resource" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/debug/assets" type="java-resource" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/debug/aidl" isTestSource="false" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/debug/java" isTestSource="false" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/debug/rs" isTestSource="false" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/debug/shaders" isTestSource="false" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTestDebug/res" type="java-test-resource" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTestDebug/resources" type="java-test-resource" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTestDebug/assets" type="java-test-resource" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTestDebug/aidl" isTestSource="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTestDebug/java" isTestSource="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTestDebug/rs" isTestSource="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTestDebug/shaders" isTestSource="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/testDebug/res" type="java-test-resource" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/testDebug/resources" type="java-test-resource" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/testDebug/assets" type="java-test-resource" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/testDebug/aidl" isTestSource="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/testDebug/java" isTestSource="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/testDebug/rs" isTestSource="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/testDebug/shaders" isTestSource="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/main/res" type="java-resource" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/main/resources" type="java-resource" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/main/assets" type="java-resource" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/main/aidl" isTestSource="false" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/main/java" isTestSource="false" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/main/rs" isTestSource="false" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/main/shaders" isTestSource="false" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTest/res" type="java-test-resource" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTest/resources" type="java-test-resource" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTest/assets" type="java-test-resource" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTest/aidl" isTestSource="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTest/java" isTestSource="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTest/rs" isTestSource="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/androidTest/shaders" isTestSource="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/test/res" type="java-test-resource" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/test/resources" type="java-test-resource" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/test/assets" type="java-test-resource" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/test/aidl" isTestSource="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/test/java" isTestSource="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/test/rs" isTestSource="true" />
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/src/test/shaders" isTestSource="true" />
+      <excludeFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx/build" />
+    </content>
+    <orderEntry type="jdk" jdkName="Android API 30 Platform" jdkType="Android SDK" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" name="Gradle: ./../../../../../../../CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/java/libs/com.android.vending.expansion.zipfile.jar" level="project" />
+    <orderEntry type="library" name="Gradle: ./../../../../../../../CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/java/libs/okhttp-3.12.7.jar" level="project" />
+    <orderEntry type="library" name="Gradle: ./../../../../../../../CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/java/libs/okio-1.15.0.jar" level="project" />
+  </component>
+</module>

+ 109 - 109
build/jsb-link/frameworks/runtime-src/proj.android-studio/.idea/modules/app/EasyEliminate.iml → build/jsb-link/frameworks/runtime-src/proj.android-studio/.idea/modules/app/kxnly.iml

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<module external.linked.project.id=":EasyEliminate" external.linked.project.path="$MODULE_DIR$/../../../app" external.root.project.path="$MODULE_DIR$/../../.." external.system.id="GRADLE" external.system.module.group="proj.android-studio" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
+<module external.linked.project.id=":kxnly" external.linked.project.path="$MODULE_DIR$/../../../app" external.root.project.path="$MODULE_DIR$/../../.." external.system.id="GRADLE" external.system.module.group="proj.android-studio" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
   <component name="FacetManager">
     <facet type="android-gradle" name="Android-Gradle">
       <configuration>
-        <option name="GRADLE_PROJECT_PATH" value=":EasyEliminate" />
+        <option name="GRADLE_PROJECT_PATH" value=":kxnly" />
         <option name="LAST_SUCCESSFUL_SYNC_AGP_VERSION" value="3.3.3" />
         <option name="LAST_KNOWN_AGP_VERSION" value="3.3.3" />
       </configuration>
@@ -33,155 +33,155 @@
     <output url="file://$MODULE_DIR$/../../../app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes" />
     <output-test url="file://$MODULE_DIR$/../../../app/build/intermediates/javac/debugUnitTest/compileDebugUnitTestJavaWithJavac/classes" />
     <exclude-output />
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos" isTestSource="false" />
+    <content url="file://$USER_HOME$/AppData/Local/Android/Sdk/ndk/20.0.5594570/sources/android/cpufeatures">
+      <sourceFolder url="file://$USER_HOME$/AppData/Local/Android/Sdk/ndk/20.0.5594570/sources/android/cpufeatures" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/2d">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/2d" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/audio">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/audio" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/2d">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/2d" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/audio/android">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/audio/android" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/audio">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/audio" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/audio/android/audio_utils">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/audio/android/audio_utils" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/audio/android">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/audio/android" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/audio/android/utils">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/audio/android/utils" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/audio/android/audio_utils">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/audio/android/audio_utils" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/base">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/base" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/audio/android/utils">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/audio/android/utils" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/base">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/base" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones-creator-support">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones-creator-support" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/animation">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/animation" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones-creator-support">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones-creator-support" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/armature">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/armature" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/animation">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/animation" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/core">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/core" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/armature">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/armature" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/event">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/event" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/core">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/core" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/factory">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/factory" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/event">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/event" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/geom">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/geom" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/factory">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/factory" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/model">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/model" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/geom">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/geom" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/parser">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/parser" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/model">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/model" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/particle">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/particle" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/parser">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/dragonbones/parser" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/spine">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/spine" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/particle">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/particle" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/spine-creator-support">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/spine-creator-support" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/spine">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/spine" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/math">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/math" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/spine-creator-support">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/editor-support/spine-creator-support" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/network">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/network" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/math">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/math" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/network">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/network" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/jni">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/jni" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/renderer">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/renderer" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/jni">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/jni" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/renderer/gfx">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/renderer/gfx" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/renderer">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/renderer" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/renderer/renderer">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/renderer/renderer" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/renderer/gfx">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/renderer/gfx" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/renderer/scene">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/renderer/scene" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/renderer/renderer">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/renderer/renderer" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/renderer/scene/assembler">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/renderer/scene/assembler" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/renderer/scene">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/renderer/scene" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/scripting/js-bindings/auto">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/scripting/js-bindings/auto" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/renderer/scene/assembler">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/renderer/scene/assembler" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/scripting/js-bindings/event">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/scripting/js-bindings/event" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/scripting/js-bindings/auto">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/scripting/js-bindings/auto" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/scripting/js-bindings/jswrapper">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/scripting/js-bindings/jswrapper" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/scripting/js-bindings/event">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/scripting/js-bindings/event" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/scripting/js-bindings/jswrapper/v8">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/scripting/js-bindings/jswrapper/v8" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/scripting/js-bindings/jswrapper">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/scripting/js-bindings/jswrapper" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/scripting/js-bindings/jswrapper/v8/debugger">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/scripting/js-bindings/jswrapper/v8/debugger" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/scripting/js-bindings/jswrapper/v8">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/scripting/js-bindings/jswrapper/v8" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/scripting/js-bindings/manual">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/scripting/js-bindings/manual" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/scripting/js-bindings/jswrapper/v8/debugger">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/scripting/js-bindings/jswrapper/v8/debugger" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/storage/local-storage">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/storage/local-storage" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/scripting/js-bindings/manual">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/scripting/js-bindings/manual" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/ui/edit-box">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/ui/edit-box" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/storage/local-storage">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/storage/local-storage" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/ui/videoplayer">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/ui/videoplayer" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/ui/edit-box">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/ui/edit-box" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/ui/webview">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/ui/webview" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/ui/videoplayer">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/ui/videoplayer" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/extensions/assets-manager">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/extensions/assets-manager" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/ui/webview">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/ui/webview" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/ConvertUTF">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/ConvertUTF" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/extensions/assets-manager">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/extensions/assets-manager" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/edtaa3func">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/edtaa3func" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/ConvertUTF">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/ConvertUTF" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/pvmp3dec/src">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/pvmp3dec/src" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/edtaa3func">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/edtaa3func" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/pvmp3dec/src/asm">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/pvmp3dec/src/asm" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/pvmp3dec/src">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/pvmp3dec/src" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/tinyxml2">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/tinyxml2" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/pvmp3dec/src/asm">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/pvmp3dec/src/asm" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/tremolo/Tremolo">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/tremolo/Tremolo" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/tinyxml2">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/tinyxml2" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/unzip">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/unzip" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/tremolo/Tremolo">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/tremolo/Tremolo" isTestSource="false" />
     </content>
-    <content url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/xxtea">
-      <sourceFolder url="file://C:/CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/xxtea" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/unzip">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/unzip" isTestSource="false" />
     </content>
-    <content url="file://$MODULE_DIR$/../../../../../../../../../../android/sdk/ndk/20.1.5948944/sources/android/cpufeatures">
-      <sourceFolder url="file://$MODULE_DIR$/../../../../../../../../../../android/sdk/ndk/20.1.5948944/sources/android/cpufeatures" isTestSource="false" />
+    <content url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/xxtea">
+      <sourceFolder url="file://D:/CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external/sources/xxtea" isTestSource="false" />
     </content>
     <content url="file://$MODULE_DIR$/../../../../Classes">
       <sourceFolder url="file://$MODULE_DIR$/../../../../Classes" isTestSource="false" />
@@ -264,16 +264,15 @@
     <content url="file://$MODULE_DIR$/../../../src">
       <sourceFolder url="file://$MODULE_DIR$/../../../src" isTestSource="false" />
     </content>
-    <orderEntry type="jdk" jdkName="Android API 29 Platform" jdkType="Android SDK" />
+    <orderEntry type="jdk" jdkName="Android API 30 Platform" jdkType="Android SDK" />
     <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="library" scope="TEST" name="Gradle: androidx.multidex:multidex-instrumentation:2.0.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: ./app/libs/topon/libs/gson-2.8.4.jar" level="project" />
     <orderEntry type="library" name="Gradle: ./app/libs/umeng/umeng-common-9.4.0.jar" level="project" />
     <orderEntry type="library" name="Gradle: ./app/libs/umeng/umeng-game-9.2.0+G.jar" level="project" />
     <orderEntry type="library" name="Gradle: ./app/libs/umeng/utdid4all-1.5.2.1-proguard.jar" level="project" />
-    <orderEntry type="library" name="Gradle: C./CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/java/libs/com.android.vending.expansion.zipfile.jar" level="project" />
-    <orderEntry type="library" name="Gradle: C./CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/java/libs/okhttp-3.12.7.jar" level="project" />
-    <orderEntry type="library" name="Gradle: C./CocosDashboard_1.0.11/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/java/libs/okio-1.15.0.jar" level="project" />
+    <orderEntry type="library" name="Gradle: ./../../../../../../../CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/java/libs/com.android.vending.expansion.zipfile.jar" level="project" />
+    <orderEntry type="library" name="Gradle: ./../../../../../../../CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/java/libs/okhttp-3.12.7.jar" level="project" />
+    <orderEntry type="library" name="Gradle: ./../../../../../../../CocosCreatorIDE/CocosDashboard/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/java/libs/okio-1.15.0.jar" level="project" />
     <orderEntry type="library" name="Gradle: androidx.collection:collection:1.0.0@jar" level="project" />
     <orderEntry type="library" name="Gradle: androidx.lifecycle:lifecycle-common:2.0.0@jar" level="project" />
     <orderEntry type="library" name="Gradle: androidx.arch.core:core-common:2.0.0@jar" level="project" />
@@ -299,8 +298,9 @@
     <orderEntry type="library" name="Gradle: ./app/libs/topon/libs/windAd-2.25.2.aar" level="project" />
     <orderEntry type="library" name="Gradle: ./app/libs/oaid/oaid_sdk_1.0.25.aar" level="project" />
     <orderEntry type="library" name="Gradle: ./app/libs/thinkingdata/ThinkingSDK.aar" level="project" />
-    <orderEntry type="library" name="Gradle: ./app/libs/umeng/umeng-apm-armeabi-v1.3.1.aar" level="project" />
+    <orderEntry type="library" name="Gradle: ./app/libs/umeng/umeng-abtest-v1.0.0.aar" level="project" />
     <orderEntry type="library" name="Gradle: ./app/libs/umeng/umeng-asms-armeabi-v1.2.3.aar" level="project" />
+    <orderEntry type="library" name="Gradle: ./app/libs/aliRisk/Android-AliyunDevice-10017.aar" level="project" />
     <orderEntry type="library" name="Gradle: com.tencent.mm.opensdk:wechat-sdk-android-without-mta:6.7.9@aar" level="project" />
     <orderEntry type="library" name="Gradle: com.google.android.material:material:1.0.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: androidx.appcompat:appcompat:1.0.0@aar" level="project" />
@@ -333,6 +333,6 @@
     <orderEntry type="library" name="Gradle: androidx.lifecycle:lifecycle-livedata:2.0.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: androidx.lifecycle:lifecycle-livedata-core:2.0.0@aar" level="project" />
     <orderEntry type="library" name="Gradle: androidx.arch.core:core-runtime:2.0.0@aar" level="project" />
-    <orderEntry type="module" module-name="android-libcocos2dx" />
+    <orderEntry type="module" module-name="libcocos2dx" />
   </component>
 </module>

+ 4 - 3
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/AndroidManifest.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.aries.qsllx.mz"
+    package="com.aries.kxnly.mz"
     android:installLocation="auto">
 
     <uses-feature android:glEsVersion="0x00020000" />
@@ -23,6 +23,7 @@
     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
 
     <application
+        android:name="org.cocos2dx.javascript.thirdSdk.umeng.MyApplication"
         android:allowBackup="true"
         android:label="@string/app_name"
         android:usesCleartextTraffic="true"
@@ -47,11 +48,11 @@
         </activity>
 
         <activity
-            android:name="com.aries.qsllx.mz.wxapi.WXEntryActivity"
+            android:name="com.aries.kxnly.mz.wxapi.WXEntryActivity"
             android:label="@string/app_name"
             android:theme="@android:style/Theme.Translucent.NoTitleBar"
             android:exported="true"
-            android:taskAffinity="com.aries.qsllx.mz"
+            android:taskAffinity="com.aries.kxnly.mz"
             android:launchMode="singleTask">
         </activity>
 

+ 9 - 6
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/build.gradle

@@ -24,7 +24,7 @@ android {
                     // skip the NDK Build step if PROP_NDK_MODE is none
                     targets 'cocos2djs'
                     arguments 'NDK_TOOLCHAIN_VERSION=clang'
-                    
+
                     def module_paths = [project.file("${System.getenv("COCOSCREATOR_HOME")}/resources/.editors/Creator/2.4.5/resources/cocos2d-x"),
                                         project.file("${System.getenv("COCOSCREATOR_HOME")}/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos"),
                                         project.file("${System.getenv("COCOSCREATOR_HOME")}/resources/.editors/Creator/2.4.5/resources/cocos2d-x/external")]
@@ -61,11 +61,11 @@ android {
 
     signingConfigs {
 
-       release {
-           storeFile file(new File('./keystore/eliminate.keystore'))
-           storePassword RELEASE_STORE_PASSWORD
-           keyAlias RELEASE_KEY_ALIAS
-           keyPassword RELEASE_KEY_PASSWORD
+        release {
+            storeFile file(new File('./keystore/mokakey.keystore'))
+            storePassword RELEASE_STORE_PASSWORD
+            keyAlias RELEASE_KEY_ALIAS
+            keyPassword RELEASE_KEY_PASSWORD
         }
     }
 
@@ -179,4 +179,7 @@ dependencies {
 
     //友盟SDK(手动导入SDK包)
     api fileTree(include: ['*.jar','*.aar'], dir: 'libs/umeng')
+
+    //阿里风控
+    api fileTree(include: ['*.jar','*.aar'], dir: 'libs/aliRisk')
 }

+ 5 - 5
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/gradle.properties

@@ -7,11 +7,11 @@ KS_CHANNEL="kuaishou";    //快手渠道
 UM_AID="60c17c51e044530ff09f30a3"; //友盟appid
 UM_CHANNEL="ttaxx_juliang"; //友盟渠道
 UM_SECRET="";       //友盟秘钥
-WX_APP_ID="wxcf31f0e54f7fefda"; //微信appid
-MY_APP_NAME=\u5929\u5929\u7231\u6d88\u6d88
-PACKAGE_NAME=com.aries.qsllx.mz
-VERSION_NAME=1.0.1
-VERSION_CODE=2
+WX_APP_ID="wx3c0cc2f730c5ad5a"; //微信appid
+MY_APP_NAME=\u5f00\u5fc3\u519c\u4e50\u56ed
+PACKAGE_NAME=com.aries.kxnly.mz
+VERSION_NAME=1.0.0
+VERSION_CODE=1
 TOPON="a60cac090a6eb0,66b742dd0e502b64d783d9c66a9d30c4,b60cac0e43c0e1,b60cac0e4892fa,b60cac0e4d08e8,b60cac0e5754fc,b60cac0e524313"; //巨量渠道topon的 AppId,AppSecreate,激励视频,插屏,信息流,全屏开屏,banner
 APP_CONFIG_CODE="1.0.0"
 

二進制
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/keystore/eliminate.keystore


二進制
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/keystore/mokakey.keystore


+ 3 - 0
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/keystore/mokakey_README.md

@@ -0,0 +1,3 @@
+文件名:mokakey.jks
+别名:mokakey
+密码:szmoka

二進制
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/libs/aliRisk/Android-AliyunDevice-10017.aar


二進制
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/libs/umeng/umeng-abtest-v1.0.0.aar


二進制
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/libs/umeng/umeng-apm-armeabi-v1.3.1.aar


+ 3 - 3
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/com/aries/qsllx/mz/wxapi/WXEntryActivity.java → build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/com/aries/kxnly/mz/wxapi/WXEntryActivity.java

@@ -1,4 +1,4 @@
-package com.aries.qsllx.mz.wxapi;
+package com.aries.kxnly.mz.wxapi;
 
 import android.app.Activity;
 import android.app.ProgressDialog;
@@ -14,8 +14,8 @@ import android.widget.Toast;
 
 //import org.cocos2dx.javascript.thridSdk.ThirdSdkMgr;
 
-import com.aries.qsllx.mz.BuildConfig;
-import com.aries.qsllx.mz.R;
+import com.aries.kxnly.mz.BuildConfig;
+import com.aries.kxnly.mz.R;
 import com.tencent.mm.opensdk.modelbase.BaseReq;
 import com.tencent.mm.opensdk.modelbase.BaseResp;
 import com.tencent.mm.opensdk.modelmsg.SendAuth;

+ 28 - 24
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/AppActivity.java

@@ -1,31 +1,32 @@
 /****************************************************************************
-Copyright (c) 2015-2016 Chukong Technologies Inc.
-Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.
- 
-http://www.cocos2d-x.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-****************************************************************************/
+ Copyright (c) 2015-2016 Chukong Technologies Inc.
+ Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.
+
+ http://www.cocos2d-x.org
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
+ ****************************************************************************/
 package org.cocos2dx.javascript;
 
 import org.cocos2dx.javascript.thirdSdk.ThirdSdkMgr;
 import org.cocos2dx.javascript.thirdSdk.thinkingdata.TDSDKMgr;
+import org.cocos2dx.javascript.thirdSdk.umeng.UMSDKMgr;
 import org.cocos2dx.javascript.util.DeviceUtil;
 import org.cocos2dx.lib.Cocos2dxActivity;
 import org.cocos2dx.lib.Cocos2dxGLSurfaceView;
@@ -46,7 +47,8 @@ import androidx.core.app.ActivityCompat;
 import androidx.core.content.ContextCompat;
 import androidx.core.content.FileProvider;
 
-import com.aries.qsllx.mz.BuildConfig;
+
+import com.aries.kxnly.mz.BuildConfig;
 
 import java.io.File;
 
@@ -74,6 +76,8 @@ public class AppActivity extends Cocos2dxActivity {
         ThirdSdkMgr.regToWx();
 
         TDSDKMgr.getInstance().initSdk(this);
+        //初始化阿里风控
+        ThirdSdkMgr.initAliRick();
     }
 
     @Override

+ 47 - 4
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/thirdSdk/ThirdSdkMgr.java

@@ -9,14 +9,17 @@ import android.util.Log;
 import android.webkit.WebSettings;
 import android.webkit.WebView;
 
+import com.aries.kxnly.mz.BuildConfig;
+import com.aries.kxnly.mz.wxapi.WXEntryActivity;
+
 import org.cocos2dx.javascript.AppActivity;
 import org.cocos2dx.javascript.thirdSdk.ad.SplashAdShowActivity;
+import org.cocos2dx.javascript.thirdSdk.aliRisk.AliRiskManager;
 import org.cocos2dx.javascript.thirdSdk.thinkingdata.TDSDKMgr;
+import org.cocos2dx.javascript.thirdSdk.umeng.UMSDKMgr;
 import org.cocos2dx.javascript.util.DeviceUtil;
 import org.cocos2dx.lib.Cocos2dxJavascriptJavaBridge;
 
-import com.aries.qsllx.mz.BuildConfig;
-import com.aries.qsllx.mz.wxapi.WXEntryActivity;
 
 public class ThirdSdkMgr {
 
@@ -31,7 +34,6 @@ public class ThirdSdkMgr {
 
     public static void regToWx()
     {
-
         WXEntryActivity.getInstance().regToWx(ThirdSdkMgr.appActivity);
     }
 
@@ -127,7 +129,7 @@ public class ThirdSdkMgr {
 
     /**获取微信appid*/
     public static String getWxAppId(){
-//        Log.d(">>>>> ", "getWXAppId: " + BuildConfig.WX_APP_ID);
+//        Log.d(">>>>> ", "getWXAppId: " + BuildConfig.WX_APP_ID + "    " + BuildConfig.APP_CONFIG_CODE);
         return BuildConfig.WX_APP_ID + ";" + BuildConfig.APP_CONFIG_CODE;
     }
     public static void requestPermission() {
@@ -142,6 +144,27 @@ public class ThirdSdkMgr {
      */
     public static void sendEvent(String eventID, String des){
         TDSDKMgr.getInstance().setTAEvent(eventID,des);
+        UMSDKMgr.getInstance()._UMSDKEvent(ThirdSdkMgr.appActivity, eventID, des);
+    }
+
+    /**
+     * 设置人物属性
+     * @param type 0 set  1 add
+     * @param property 属性名
+     * @param value 数值
+     */
+    public static void setTAEventUser(int type, String property, float value){
+        TDSDKMgr.getInstance().setTAEventUser(type, property, value);
+    }
+
+    /**
+     * 设置人物属性
+     * @param type 0 set  1 add
+     * @param property 属性名
+     * @param value 数值
+     */
+    public static void setTAEventUserStr(int type, String property, String value){
+        TDSDKMgr.getInstance().setTAEventUserStr(type, property, value);
     }
 
     //系统相关---------------------------------------------------------------------------------------
@@ -191,4 +214,24 @@ public class ThirdSdkMgr {
     public static void checkPermission(){
         ThirdSdkMgr.appActivity.checkPermission();
     }
+
+    public static void updateSplashAdLog(final String placementId, final String callbackInfo){
+        ThirdSdkMgr.appActivity.runOnGLThread(new Runnable() {
+            @Override
+            public void run() {
+                Cocos2dxJavascriptJavaBridge.evalString(cocosJsbMgrName + "updateSplashAdLog('" + placementId + "#" + callbackInfo + "');");
+            }
+        });
+    }
+
+    public static void initAliRick(){
+        AliRiskManager.getInstance().init(ThirdSdkMgr.appActivity);
+    }
+
+    /** 阿里风控获取deviceToken */
+    public static String getAliDeviceToken(){
+        String token = AliRiskManager.getInstance().getAliDeviceToken();
+        Log.d("getAliDeviceToken  ", token);
+        return token;
+    }
 }

+ 6 - 2
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/thirdSdk/ad/SplashAdShowActivity.java

@@ -19,8 +19,10 @@ import com.anythink.core.api.ATMediationRequestInfo;
 import com.anythink.core.api.AdError;
 import com.anythink.splashad.api.ATSplashAd;
 import com.anythink.splashad.api.ATSplashAdListener;
-import com.aries.qsllx.mz.BuildConfig;
-import com.aries.qsllx.mz.R;
+import com.aries.kxnly.mz.BuildConfig;
+import com.aries.kxnly.mz.R;
+
+import org.cocos2dx.javascript.thirdSdk.ThirdSdkMgr;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -129,6 +131,8 @@ public class SplashAdShowActivity extends FragmentActivity implements ATSplashAd
     public void onAdShow(ATAdInfo atAdInfo) {
         //ATAdInfo可区分广告平台以及获取广告平台的广告位ID等
         //请参考 https://docs.toponad.com/#/zh-cn/android/android_doc/android_sdk_callback_access?id=callback_info
+        Log.i("SplashAdShowActivity", "onAdShow:\n" + atAdInfo.toString());
+        ThirdSdkMgr.updateSplashAdLog(unitId, atAdInfo.toString());
     }
 
     @Override

+ 57 - 0
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/thirdSdk/aliRisk/AliRiskManager.java

@@ -0,0 +1,57 @@
+package org.cocos2dx.javascript.thirdSdk.aliRisk;
+
+import android.util.Log;
+
+
+import net.security.device.api.SecurityCode;
+import net.security.device.api.SecurityDevice;
+import net.security.device.api.SecurityInitListener;
+import net.security.device.api.SecuritySession;
+
+import org.cocos2dx.javascript.AppActivity;
+
+/**
+ * 阿里风控管理类
+ */
+public class AliRiskManager {
+    private static final String userAppKey = "38ad875e38bea654272bcefc51fc5cac";
+
+    //单例模式
+    private static AliRiskManager mInstance = null;
+
+    public static AliRiskManager getInstance() {
+        if (null == mInstance) {
+            mInstance = new AliRiskManager();
+        }
+        return mInstance;
+    }
+
+    public void init(AppActivity context){
+        //阿里云风控初始化
+        SecurityDevice.getInstance().init(context, userAppKey, new SecurityInitListener() {
+            @Override
+            public void onInitFinish(int i) {
+                Log.d("AliyunInitFinish", "code: " + i);
+            }
+        });
+    }
+
+    /** 阿里风控获取deviceToken */
+    public String getAliDeviceToken(){
+        SecuritySession securitySession = SecurityDevice.getInstance().getSession();
+        if(null != securitySession){
+            if(SecurityCode.SC_SUCCESS == securitySession.code){
+                Log.d("AliyunDevice", "session: " + securitySession.session);
+                return securitySession.session;
+                // 发送session到业务自有服务器并查询阿里云设备风险识别接口。
+                // sendToAPPServer(securitySession.session);
+            } else {
+                Log.e("AliyunDevice", "getSession error, code: " + securitySession.code);
+                return null;
+            }
+        } else {
+            Log.e("AliyunDevice", "getSession is null.");
+            return null;
+        }
+    }
+}

+ 68 - 0
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/thirdSdk/thinkingdata/TDSDKMgr.java

@@ -2,6 +2,7 @@ package org.cocos2dx.javascript.thirdSdk.thinkingdata;
 
 import android.util.Log;
 
+
 import org.cocos2dx.javascript.AppActivity;
 import org.json.JSONException;
 import org.json.JSONObject;
@@ -44,6 +45,17 @@ public class TDSDKMgr {
         TDSDKMgr.getInstance().setTAEventRegister();
     }
 
+    public void sendSuperRole(){
+        try {
+            JSONObject superProperties = new JSONObject();
+            superProperties.put("device_id", TDInstance.getDeviceId());
+
+            TDInstance.setSuperProperties(superProperties);
+        } catch (JSONException e) {
+            e.printStackTrace();
+        }
+    }
+
     public void setTAEvent(String eventID, String des) {
         if (this.TDInstance == null) {
             return;
@@ -89,4 +101,60 @@ public class TDSDKMgr {
         Log.d("TAEvent", "setTAEventUser: "+timeString);
         return timeString;
     }
+
+    /**
+     * 设置人物属性
+     * @param type 0 set  1 add
+     * @param property 属性名
+     * @param value 数值
+     */
+    public void setTAEventUser(int type, String property, float value){
+        if(type == 0){
+            try {
+                JSONObject properties = new JSONObject();
+                properties.put(property,value);
+                TDInstance.user_set(properties);
+            } catch (JSONException e) {
+                e.printStackTrace();
+            }
+        }
+        else{
+            try {
+                JSONObject properties = new JSONObject();
+                properties.put(property,value);
+                TDInstance.user_add(properties);
+            } catch (JSONException e) {
+                e.printStackTrace();
+            }
+        }
+
+        this.sendSuperRole();
+    }
+
+    /**
+     * 设置人物属性
+     * @param type 0 set  1 add
+     * @param property 属性名
+     * @param value 数值
+     */
+    public void setTAEventUserStr(int type, String property, String value){
+        if(type == 0){
+            try {
+                JSONObject properties = new JSONObject();
+                properties.put(property,value);
+                TDInstance.user_set(properties);
+            } catch (JSONException e) {
+                e.printStackTrace();
+            }
+        }
+        else{
+            try {
+                JSONObject properties = new JSONObject();
+                properties.put(property,value);
+                TDInstance.user_add(properties);
+            } catch (JSONException e) {
+                e.printStackTrace();
+            }
+        }
+    }
 }

+ 1 - 14
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/thirdSdk/umeng/MyApplication.java

@@ -1,9 +1,6 @@
 package org.cocos2dx.javascript.thirdSdk.umeng;
 
 import android.app.Application;
-import android.util.Log;
-
-import com.umeng.commonsdk.UMConfigure;
 
 public class MyApplication extends Application {
     @Override
@@ -15,18 +12,8 @@ public class MyApplication extends Application {
         // 参数三:渠道名称;
         // 参数四:设备类型,必须参数,传参数为UMConfigure.DEVICE_TYPE_PHONE则表示手机;传参数为UMConfigure.DEVICE_TYPE_BOX则表示盒子;默认为手机;
         // 参数五:Push推送业务的secret 填充Umeng Message Secret对应信息(需替换)
-
-        Log.d("友盟SDK初始化","onCreate");
-
         UMSDKMgr.getInstance().myApplication = this;
 
-        //设置友盟SDK加密
-        UMConfigure.setEncryptEnabled(true);
-        // 打开统计SDK调试模式
-//        UMConfigure.setLogEnabled(true);
-
-        UMSDKMgr.getInstance()._UMPREInit();
-
-        UMSDKMgr.getInstance()._UMSDKStartAuto();
+        UMSDKMgr.getInstance().init();
     }
 }

+ 12 - 1
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/thirdSdk/umeng/UMSDKMgr.java

@@ -4,7 +4,7 @@ import android.app.Application;
 import android.content.Context;
 import android.util.Log;
 
-import com.aries.qsllx.mz.BuildConfig;
+import com.aries.kxnly.mz.BuildConfig;
 import com.umeng.analytics.MobclickAgent;
 import com.umeng.commonsdk.UMConfigure;
 
@@ -25,6 +25,17 @@ public class UMSDKMgr {
 
     public Application myApplication = null;
 
+    public void init(){
+        Log.d("友盟SDK初始化","onCreate");
+        //设置友盟SDK加密
+        UMConfigure.setEncryptEnabled(true);
+        // 打开统计SDK调试模式
+//        UMConfigure.setLogEnabled(true);
+
+        UMSDKMgr.getInstance()._UMPREInit();
+        UMSDKMgr.getInstance()._UMSDKInit();
+        UMSDKMgr.getInstance()._UMSDKStartAuto();
+    }
     /**
      * appkey和channel参数必须和后续调用的UMConfigure.init初始化函数appkey、channel参数值一致。
      */

+ 0 - 1
build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/util/DeviceUtil.java

@@ -13,7 +13,6 @@ import android.telephony.TelephonyManager;
 import android.util.Log;
 import android.widget.Toast;
 
-import com.aries.qsllx.mz.R;
 
 import org.cocos2dx.javascript.thirdSdk.oaid.OaidHelper;
 

+ 7 - 7
build/jsb-link/frameworks/runtime-src/proj.android-studio/gradle.properties

@@ -18,13 +18,13 @@
 # org.gradle.parallel=true
 
 # Android SDK version that will be used as the compile project
-PROP_COMPILE_SDK_VERSION=29
+PROP_COMPILE_SDK_VERSION=30
 
 # Android SDK version that will be used as the earliest version of android this application can run on
-PROP_MIN_SDK_VERSION=16
+PROP_MIN_SDK_VERSION=21
 
 # Android SDK version that will be used as the latest version of android this application has been tested on
-PROP_TARGET_SDK_VERSION=29
+PROP_TARGET_SDK_VERSION=30
 
 # Android Build Tools version that will be used as the compile project
 PROP_BUILD_TOOLS_VERSION=28.0.3
@@ -36,10 +36,10 @@ PROP_BUILD_TOOLS_VERSION=28.0.3
 PROP_APP_ABI=armeabi-v7a
 
 # fill in sign information for release mode
-#RELEASE_STORE_FILE=D:/work/cocos/mk_framework/build/jsb-link/frameworks/runtime-src/proj.android-studio/app/keystore/eliminate.keystore
-RELEASE_STORE_PASSWORD=666888
-RELEASE_KEY_ALIAS=eliminate_1
-RELEASE_KEY_PASSWORD=123456
+#RELEASE_STORE_FILE=D:/mokaszProjects/team1_nc/build/jsb-link/frameworks/runtime-src/proj.android-studio/app/keystore/mokakey.keystore
+RELEASE_STORE_PASSWORD=szmoka
+RELEASE_KEY_ALIAS=mokakey
+RELEASE_KEY_PASSWORD=szmoka
 
 android.injected.testOnly=false
 

二進制
build/jsb-link/frameworks/runtime-src/proj.android-studio/res/mipmap-hdpi/ic_launcher.png


二進制
build/jsb-link/frameworks/runtime-src/proj.android-studio/res/mipmap-ldpi/ic_launcher.png


二進制
build/jsb-link/frameworks/runtime-src/proj.android-studio/res/mipmap-mdpi/ic_launcher.png


二進制
build/jsb-link/frameworks/runtime-src/proj.android-studio/res/mipmap-xhdpi/ic_launcher.png


二進制
build/jsb-link/frameworks/runtime-src/proj.android-studio/res/mipmap-xxhdpi/ic_launcher.png


二進制
build/jsb-link/frameworks/runtime-src/proj.android-studio/res/mipmap-xxxhdpi/ic_launcher.png


+ 1 - 1
build/jsb-link/frameworks/runtime-src/proj.android-studio/res/values/strings.xml

@@ -1,3 +1,3 @@
 <resources>
-    <string name="app_name" translatable="false">轻松连连消</string>
+    <string name="app_name" translatable="false">开心农乐园</string>
 </resources>

+ 2 - 2
build/jsb-link/frameworks/runtime-src/proj.android-studio/settings.gradle

@@ -1,5 +1,5 @@
 //include ':libcocos2dx',':game', ':instantapp' //FC:去除game、instantapp
 include ':libcocos2dx'
 project(':libcocos2dx').projectDir = new File("${System.getenv("COCOSCREATOR_HOME")}/resources/.editors/Creator/2.4.5/resources/cocos2d-x/cocos/platform/android/libcocos2dx")
-include ':EasyEliminate'
-project(':EasyEliminate').projectDir = new File(settingsDir, 'app')
+include ':kxnly'
+project(':kxnly').projectDir = new File(settingsDir, 'app')

+ 20 - 20
build/jsb-link/frameworks/runtime-src/proj.ios_mac/EasyEliminate.xcodeproj/project.pbxproj → build/jsb-link/frameworks/runtime-src/proj.ios_mac/_backup/kxnly.xcodeproj/project.pbxproj

@@ -140,7 +140,7 @@
 		4D697BD91CBD301C00A5AF29 /* libjs_static.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libjs_static.a; path = "D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/external/ios/libs/libjs_static.a"; sourceTree = "<absolute>"; };
 		4D697BDC1CBD303100A5AF29 /* libjs_static.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libjs_static.a; path = "D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/external/mac/libs/libjs_static.a"; sourceTree = "<absolute>"; };
 		502380DB17EBB88200990C9B /* libcurl.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libcurl.dylib; path = usr/lib/libcurl.dylib; sourceTree = SDKROOT; };
-		509D4AAA17EBB24E00697056 /* EasyEliminate-desktop.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "EasyEliminate-desktop.app"; sourceTree = BUILT_PRODUCTS_DIR; };
+		509D4AAA17EBB24E00697056 /* kxnly-desktop.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "kxnly-desktop.app"; sourceTree = BUILT_PRODUCTS_DIR; };
 		509D4AAB17EBB2AB00697056 /* AppController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppController.h; path = ios/AppController.h; sourceTree = "<group>"; };
 		509D4AAC17EBB2AB00697056 /* AppController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppController.mm; path = ios/AppController.mm; sourceTree = "<group>"; };
 		509D4AB717EBB2AB00697056 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = ios/Info.plist; sourceTree = "<group>"; };
@@ -154,7 +154,7 @@
 		509D4AE617EBB81800697056 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; };
 		509D4AE817EBB82000697056 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
 		509D4AEA17EBB82600697056 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; };
-		A922753D1517C094001B78AA /* EasyEliminate-mobile.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "EasyEliminate-mobile.app"; sourceTree = BUILT_PRODUCTS_DIR; };
+		A922753D1517C094001B78AA /* kxnly-mobile.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "kxnly-mobile.app"; sourceTree = BUILT_PRODUCTS_DIR; };
 		A92275411517C094001B78AA /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
 		A92275431517C094001B78AA /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
 		A92275451517C094001B78AA /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; };
@@ -306,8 +306,8 @@
 		A922753E1517C094001B78AA /* Products */ = {
 			isa = PBXGroup;
 			children = (
-				A922753D1517C094001B78AA /* EasyEliminate-mobile.app */,
-				509D4AAA17EBB24E00697056 /* EasyEliminate-desktop.app */,
+				A922753D1517C094001B78AA /* kxnly-mobile.app */,
+				509D4AAA17EBB24E00697056 /* kxnly-desktop.app */,
 			);
 			name = Products;
 			sourceTree = "<group>";
@@ -394,9 +394,9 @@
 /* End PBXGroup section */
 
 /* Begin PBXNativeTarget section */
-		509D4A7517EBB24E00697056 /* EasyEliminate-desktop */ = {
+		509D4A7517EBB24E00697056 /* kxnly-desktop */ = {
 			isa = PBXNativeTarget;
-			buildConfigurationList = 509D4AA717EBB24E00697056 /* Build configuration list for PBXNativeTarget "EasyEliminate-desktop" */;
+			buildConfigurationList = 509D4AA717EBB24E00697056 /* Build configuration list for PBXNativeTarget "kxnly-desktop" */;
 			buildPhases = (
 				509D4A8017EBB24E00697056 /* Sources */,
 				509D4A9317EBB24E00697056 /* Resources */,
@@ -407,14 +407,14 @@
 			dependencies = (
 				4DD5E6AA1CDAF6330046171E /* PBXTargetDependency */,
 			);
-			name = "EasyEliminate-desktop";
-			productName = EasyEliminate;
-			productReference = 509D4AAA17EBB24E00697056 /* EasyEliminate-desktop.app */;
+			name = "kxnly-desktop";
+			productName = kxnly;
+			productReference = 509D4AAA17EBB24E00697056 /* kxnly-desktop.app */;
 			productType = "com.apple.product-type.application";
 		};
-		A922753C1517C094001B78AA /* EasyEliminate-mobile */ = {
+		A922753C1517C094001B78AA /* kxnly-mobile */ = {
 			isa = PBXNativeTarget;
-			buildConfigurationList = A92277001517C097001B78AA /* Build configuration list for PBXNativeTarget "EasyEliminate-mobile" */;
+			buildConfigurationList = A92277001517C097001B78AA /* Build configuration list for PBXNativeTarget "kxnly-mobile" */;
 			buildPhases = (
 				A92275391517C094001B78AA /* Sources */,
 				A922753A1517C094001B78AA /* Frameworks */,
@@ -425,9 +425,9 @@
 			dependencies = (
 				4DD5E6B01CDAF6520046171E /* PBXTargetDependency */,
 			);
-			name = "EasyEliminate-mobile";
-			productName = EasyEliminate;
-			productReference = A922753D1517C094001B78AA /* EasyEliminate-mobile.app */;
+			name = "kxnly-mobile";
+			productName = kxnly;
+			productReference = A922753D1517C094001B78AA /* kxnly-mobile.app */;
 			productType = "com.apple.product-type.application";
 		};
 /* End PBXNativeTarget section */
@@ -438,7 +438,7 @@
 			attributes = {
 				LastUpgradeCheck = 0500;
 			};
-			buildConfigurationList = A92275371517C094001B78AA /* Build configuration list for PBXProject "EasyEliminate" */;
+			buildConfigurationList = A92275371517C094001B78AA /* Build configuration list for PBXProject "kxnly" */;
 			compatibilityVersion = "Xcode 3.2";
 			developmentRegion = English;
 			hasScannedForEncodings = 0;
@@ -459,8 +459,8 @@
 			);
 			projectRoot = "";
 			targets = (
-				A922753C1517C094001B78AA /* EasyEliminate-mobile */,
-				509D4A7517EBB24E00697056 /* EasyEliminate-desktop */,
+				A922753C1517C094001B78AA /* kxnly-mobile */,
+				509D4A7517EBB24E00697056 /* kxnly-desktop */,
 			);
 		};
 /* End PBXProject section */
@@ -742,7 +742,7 @@
 /* End XCBuildConfiguration section */
 
 /* Begin XCConfigurationList section */
-		509D4AA717EBB24E00697056 /* Build configuration list for PBXNativeTarget "EasyEliminate-desktop" */ = {
+		509D4AA717EBB24E00697056 /* Build configuration list for PBXNativeTarget "kxnly-desktop" */ = {
 			isa = XCConfigurationList;
 			buildConfigurations = (
 				509D4AA817EBB24E00697056 /* Debug */,
@@ -751,7 +751,7 @@
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;
 		};
-		A92275371517C094001B78AA /* Build configuration list for PBXProject "EasyEliminate" */ = {
+		A92275371517C094001B78AA /* Build configuration list for PBXProject "kxnly" */ = {
 			isa = XCConfigurationList;
 			buildConfigurations = (
 				A92276FE1517C097001B78AA /* Debug */,
@@ -760,7 +760,7 @@
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;
 		};
-		A92277001517C097001B78AA /* Build configuration list for PBXNativeTarget "EasyEliminate-mobile" */ = {
+		A92277001517C097001B78AA /* Build configuration list for PBXNativeTarget "kxnly-mobile" */ = {
 			isa = XCConfigurationList;
 			buildConfigurations = (
 				A92277011517C097001B78AA /* Debug */,

+ 1 - 1
build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Info.plist

@@ -11,7 +11,7 @@
     <key>CFBundleIcons~ipad</key>
     <dict/>
     <key>CFBundleIdentifier</key>
-    <string>com.aries.qsllx.mz</string>
+    <string>com.aries.kxnly.mz</string>
     <key>CFBundleInfoDictionaryVersion</key>
     <string>6.0</string>
     <key>CFBundleName</key>

+ 1 - 1
build/jsb-link/frameworks/runtime-src/proj.ios_mac/ios/Prefix.pch

@@ -1,5 +1,5 @@
 //
-// Prefix header for all source files of the 'EasyEliminate' target in the 'EasyEliminate' project
+// Prefix header for all source files of the 'kxnly' target in the 'kxnly' project
 //
 
 #ifdef __OBJC__

+ 775 - 0
build/jsb-link/frameworks/runtime-src/proj.ios_mac/kxnly.xcodeproj/project.pbxproj

@@ -0,0 +1,775 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 46;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		1A37E9DA200DEF120078AF72 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A37E9D9200DEF110078AF72 /* SystemConfiguration.framework */; };
+		1A37E9DC200DEF190078AF72 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A37E9DB200DEF190078AF72 /* SystemConfiguration.framework */; };
+		1A499EBB1F0CDDC3004E6AEC /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A499EBA1F0CDDC3004E6AEC /* CFNetwork.framework */; };
+		1A499EBD1F0CDDD9004E6AEC /* libicucore.A.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A499EBC1F0CDDD9004E6AEC /* libicucore.A.tbd */; };
+		1A82F5FB169AC92500C4B13A /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A82F5FA169AC92500C4B13A /* libsqlite3.dylib */; };
+		1AC22EDE18CA0E11007112B9 /* project.json in Resources */ = {isa = PBXBuildFile; fileRef = 1A1A081B18C9DF05005C6854 /* project.json */; };
+		1ACA99231F550A20002DE225 /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1ACA99221F550A20002DE225 /* JavaScriptCore.framework */; };
+		1ACA99251F550A28002DE225 /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1ACA99241F550A28002DE225 /* JavaScriptCore.framework */; };
+		1AD7E0A818C9DB93004817A6 /* main.js in Resources */ = {isa = PBXBuildFile; fileRef = 1A6BF21418C9DB5900FB0E1C /* main.js */; };
+		1AD7E0A918C9DBE3004817A6 /* main.js in Resources */ = {isa = PBXBuildFile; fileRef = 1A6BF21418C9DB5900FB0E1C /* main.js */; };
+		1AE159EC18C9DF3600FCA372 /* project.json in Resources */ = {isa = PBXBuildFile; fileRef = 1A1A081B18C9DF05005C6854 /* project.json */; };
+		1AFFCD7E1F7A5D5400628F2C /* LaunchScreenBackground.png in Resources */ = {isa = PBXBuildFile; fileRef = 1AFFCD7B1F7A5D4F00628F2C /* LaunchScreenBackground.png */; };
+		1AFFCD7F1F7A5D5400628F2C /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1ABC56911F7A005D00826282 /* Images.xcassets */; };
+		22CC757121BA5B5C00FBF2F7 /* SDKWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 22CC756D21BA5B5C00FBF2F7 /* SDKWrapper.m */; };
+		286B0E9524075FE000095E1A /* assets in Resources */ = {isa = PBXBuildFile; fileRef = 28A34C0F225B462E00926306 /* assets */; };
+		28A34C10225B462E00926306 /* assets in Resources */ = {isa = PBXBuildFile; fileRef = 28A34C0F225B462E00926306 /* assets */; };
+		294D7D801D0D668F002CE7B7 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 294D7D7F1D0D668F002CE7B7 /* CoreText.framework */; };
+		4011F9CF212BD6750091CC5B /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4011F9D1212BD6750091CC5B /* LaunchScreen.storyboard */; };
+		4011F9D5212BD7050091CC5B /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4011F9D7212BD7050091CC5B /* Localizable.strings */; };
+		4033CDBC20E4935100DAA37B /* jsb-adapter in Resources */ = {isa = PBXBuildFile; fileRef = 4033CDBB20E4935000DAA37B /* jsb-adapter */; };
+		4033CDBD20E4935100DAA37B /* jsb-adapter in Resources */ = {isa = PBXBuildFile; fileRef = 4033CDBB20E4935000DAA37B /* jsb-adapter */; };
+		467AF6082321FBED00770112 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 467AF6072321FBED00770112 /* WebKit.framework */; };
+		467AF613232881E400770112 /* AVKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 467AF612232881E400770112 /* AVKit.framework */; };
+		467AF615232881EB00770112 /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 467AF614232881EB00770112 /* CoreMedia.framework */; };
+		4DD5E6AB1CDAF6430046171E /* libcocos2d Mac.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DD0DB561CDAF5F40099AD86 /* libcocos2d Mac.a */; };
+		4DD5E6B11CDAF65C0046171E /* libcocos2d iOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DD0DB581CDAF5F40099AD86 /* libcocos2d iOS.a */; };
+		502380DC17EBB88200990C9B /* libcurl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 502380DB17EBB88200990C9B /* libcurl.dylib */; };
+		509D4A8117EBB24E00697056 /* AppDelegate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D4545215156E28EF00887EB5 /* AppDelegate.cpp */; };
+		509D4A8817EBB24E00697056 /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A82F5FA169AC92500C4B13A /* libsqlite3.dylib */; };
+		509D4A8917EBB24E00697056 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D454520B156E22BD00887EB5 /* libz.dylib */; };
+		509D4A8A17EBB24E00697056 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A92275411517C094001B78AA /* QuartzCore.framework */; };
+		509D4A8C17EBB24E00697056 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A92275451517C094001B78AA /* OpenAL.framework */; };
+		509D4A8D17EBB24E00697056 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A92275471517C094001B78AA /* AudioToolbox.framework */; };
+		509D4A8E17EBB24E00697056 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A92275491517C094001B78AA /* AVFoundation.framework */; };
+		509D4A9017EBB24E00697056 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A922754D1517C094001B78AA /* Foundation.framework */; };
+		509D4A9117EBB24E00697056 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A922754F1517C094001B78AA /* CoreGraphics.framework */; };
+		509D4ABC17EBB2AB00697056 /* AppController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 509D4AAC17EBB2AB00697056 /* AppController.mm */; };
+		509D4AC817EBB2AB00697056 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 509D4AB817EBB2AB00697056 /* main.m */; };
+		509D4AC917EBB2AB00697056 /* RootViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 509D4ABB17EBB2AB00697056 /* RootViewController.mm */; };
+		509D4ACF17EBB2BE00697056 /* Icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 509D4ACB17EBB2BE00697056 /* Icon.icns */; };
+		509D4AE717EBB81800697056 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 509D4AE617EBB81800697056 /* OpenGL.framework */; };
+		509D4AE917EBB82000697056 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 509D4AE817EBB82000697056 /* AppKit.framework */; };
+		509D4AEB17EBB82600697056 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 509D4AEA17EBB82600697056 /* IOKit.framework */; };
+		A92275421517C094001B78AA /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A92275411517C094001B78AA /* QuartzCore.framework */; };
+		A92275441517C094001B78AA /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A92275431517C094001B78AA /* OpenGLES.framework */; };
+		A92275461517C094001B78AA /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A92275451517C094001B78AA /* OpenAL.framework */; };
+		A92275481517C094001B78AA /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A92275471517C094001B78AA /* AudioToolbox.framework */; };
+		A922754A1517C094001B78AA /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A92275491517C094001B78AA /* AVFoundation.framework */; };
+		A922754C1517C094001B78AA /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A922754B1517C094001B78AA /* UIKit.framework */; };
+		A922754E1517C094001B78AA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A922754D1517C094001B78AA /* Foundation.framework */; };
+		A92275501517C094001B78AA /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A922754F1517C094001B78AA /* CoreGraphics.framework */; };
+		ABE456E31D34F87300F1F400 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABE456E21D34F87300F1F400 /* CFNetwork.framework */; };
+		ABE456E51D34F87A00F1F400 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABE456E41D34F87A00F1F400 /* CoreFoundation.framework */; };
+		ABE456E71D34F87F00F1F400 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABE456E61D34F87F00F1F400 /* MobileCoreServices.framework */; };
+		ABE456E91D34F88A00F1F400 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABE456E81D34F88A00F1F400 /* SystemConfiguration.framework */; };
+		ABE456EB1D34F89000F1F400 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABE456EA1D34F89000F1F400 /* GameController.framework */; };
+		BA3A85EC1A724AE900924D24 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA3A85EB1A724AE900924D24 /* Security.framework */; };
+		BAEE4D841AC40C11003BEB0F /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BAEE4D831AC40C11003BEB0F /* Security.framework */; };
+		C03780EB18BEE0E400FE4F13 /* src in Resources */ = {isa = PBXBuildFile; fileRef = C03780EA18BEE0E400FE4F13 /* src */; };
+		C03780EC18BEE0E400FE4F13 /* src in Resources */ = {isa = PBXBuildFile; fileRef = C03780EA18BEE0E400FE4F13 /* src */; };
+		C06E23CC18CEFE680093C81A /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C06E23CB18CEFE680093C81A /* main.cpp */; };
+		D454520C156E22BD00887EB5 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D454520B156E22BD00887EB5 /* libz.dylib */; };
+		D4545227156E28EF00887EB5 /* AppDelegate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D4545215156E28EF00887EB5 /* AppDelegate.cpp */; };
+		D6B061241803AB9F0077942B /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6B061231803AB9F0077942B /* CoreMotion.framework */; };
+		FA676C761C71AFA200E091E3 /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = FA676C751C71AFA200E091E3 /* libiconv.dylib */; };
+		FA676C781C71AFAB00E091E3 /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = FA676C771C71AFAB00E091E3 /* libiconv.dylib */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+		4DD0DB551CDAF5F40099AD86 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 1AC6FB34180E9ACB004C840B /* cocos2d_libs.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = 1551A33F158F2AB200E66CFE;
+			remoteInfo = "libcocos2d Mac";
+		};
+		4DD0DB571CDAF5F40099AD86 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 1AC6FB34180E9ACB004C840B /* cocos2d_libs.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = A07A4D641783777C0073F6A7;
+			remoteInfo = "libcocos2d iOS";
+		};
+		4DD5E6A91CDAF6330046171E /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 1AC6FB34180E9ACB004C840B /* cocos2d_libs.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = 1551A33E158F2AB200E66CFE;
+			remoteInfo = "libcocos2d Mac";
+		};
+		4DD5E6AF1CDAF6520046171E /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 1AC6FB34180E9ACB004C840B /* cocos2d_libs.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = A07A4C241783777C0073F6A7;
+			remoteInfo = "libcocos2d iOS";
+		};
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+		051C018121E32AE400D4A347 /* UserConfigIOS.release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = UserConfigIOS.release.xcconfig; path = ios/UserConfigIOS.release.xcconfig; sourceTree = "<group>"; };
+		051C018221E32AE400D4A347 /* UserConfigIOS.debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = UserConfigIOS.debug.xcconfig; path = ios/UserConfigIOS.debug.xcconfig; sourceTree = "<group>"; };
+		051C018521E32AF000D4A347 /* UserConfigMac.release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = UserConfigMac.release.xcconfig; sourceTree = "<group>"; };
+		051C018621E32AF100D4A347 /* UserConfigMac.debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = UserConfigMac.debug.xcconfig; sourceTree = "<group>"; };
+		05A8AD8A2449A9F900A65D12 /* NativeConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NativeConfig.h; sourceTree = "<group>"; };
+		1A1A081B18C9DF05005C6854 /* project.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; name = project.json; path = ../../../project.json; sourceTree = "<group>"; };
+		1A37E9D9200DEF110078AF72 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.2.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; };
+		1A37E9DB200DEF190078AF72 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
+		1A499EBA1F0CDDC3004E6AEC /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; };
+		1A499EBC1F0CDDD9004E6AEC /* libicucore.A.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libicucore.A.tbd; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/usr/lib/libicucore.A.tbd; sourceTree = DEVELOPER_DIR; };
+		1A6BF21418C9DB5900FB0E1C /* main.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; name = main.js; path = ../../../main.js; sourceTree = "<group>"; };
+		1A82F5FA169AC92500C4B13A /* libsqlite3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = usr/lib/libsqlite3.dylib; sourceTree = SDKROOT; };
+		1A96A4F2174A3432008653A9 /* libcurl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcurl.a; path = "../../cocos2d-x/cocos2dx/platform/third_party/ios/libraries/libcurl.a"; sourceTree = "<group>"; };
+		1ABC56911F7A005D00826282 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = ios/Images.xcassets; sourceTree = "<group>"; };
+		1AC6FB34180E9ACB004C840B /* cocos2d_libs.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = cocos2d_libs.xcodeproj; path = "D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/build/cocos2d_libs.xcodeproj"; sourceTree = "<absolute>"; };
+		1ACA99221F550A20002DE225 /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
+		1ACA99241F550A28002DE225 /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; };
+		1AFFCD7B1F7A5D4F00628F2C /* LaunchScreenBackground.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = LaunchScreenBackground.png; path = ios/LaunchScreenBackground.png; sourceTree = "<group>"; };
+		22CC756D21BA5B5C00FBF2F7 /* SDKWrapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDKWrapper.m; path = ios/SDKWrapper.m; sourceTree = "<group>"; };
+		22CC756F21BA5B5C00FBF2F7 /* SDKDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDKDelegate.h; sourceTree = "<group>"; };
+		22CC757021BA5B5C00FBF2F7 /* SDKWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDKWrapper.h; path = ios/SDKWrapper.h; sourceTree = "<group>"; };
+		28A34C0F225B462E00926306 /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = assets; path = ../../../assets; sourceTree = "<group>"; };
+		294D7D7F1D0D668F002CE7B7 /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/CoreText.framework; sourceTree = DEVELOPER_DIR; };
+		4011F9D2212BD6810091CC5B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
+		4011F9D8212BD7150091CC5B /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Localizable.strings; sourceTree = "<group>"; };
+		4011F9D9212BD73A0091CC5B /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = "<group>"; };
+		4033CDBB20E4935000DAA37B /* jsb-adapter */ = {isa = PBXFileReference; lastKnownFileType = folder; name = "jsb-adapter"; path = "../../../jsb-adapter"; sourceTree = "<group>"; };
+		467AF6072321FBED00770112 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/WebKit.framework; sourceTree = DEVELOPER_DIR; };
+		467AF612232881E400770112 /* AVKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/AVKit.framework; sourceTree = DEVELOPER_DIR; };
+		467AF614232881EB00770112 /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/CoreMedia.framework; sourceTree = DEVELOPER_DIR; };
+		4D697BD91CBD301C00A5AF29 /* libjs_static.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libjs_static.a; path = "D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/external/ios/libs/libjs_static.a"; sourceTree = "<absolute>"; };
+		4D697BDC1CBD303100A5AF29 /* libjs_static.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libjs_static.a; path = "D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/external/mac/libs/libjs_static.a"; sourceTree = "<absolute>"; };
+		502380DB17EBB88200990C9B /* libcurl.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libcurl.dylib; path = usr/lib/libcurl.dylib; sourceTree = SDKROOT; };
+		509D4AAA17EBB24E00697056 /* kxnly-desktop.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "kxnly-desktop.app"; sourceTree = BUILT_PRODUCTS_DIR; };
+		509D4AAB17EBB2AB00697056 /* AppController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppController.h; path = ios/AppController.h; sourceTree = "<group>"; };
+		509D4AAC17EBB2AB00697056 /* AppController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppController.mm; path = ios/AppController.mm; sourceTree = "<group>"; };
+		509D4AB717EBB2AB00697056 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = ios/Info.plist; sourceTree = "<group>"; };
+		509D4AB817EBB2AB00697056 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ios/main.m; sourceTree = "<group>"; };
+		509D4AB917EBB2AB00697056 /* Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Prefix.pch; path = ios/Prefix.pch; sourceTree = "<group>"; };
+		509D4ABA17EBB2AB00697056 /* RootViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RootViewController.h; path = ios/RootViewController.h; sourceTree = "<group>"; };
+		509D4ABB17EBB2AB00697056 /* RootViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = RootViewController.mm; path = ios/RootViewController.mm; sourceTree = "<group>"; };
+		509D4ACB17EBB2BE00697056 /* Icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = Icon.icns; sourceTree = "<group>"; };
+		509D4ACC17EBB2BE00697056 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+		509D4ACE17EBB2BE00697056 /* Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Prefix.pch; sourceTree = "<group>"; };
+		509D4AE617EBB81800697056 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; };
+		509D4AE817EBB82000697056 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
+		509D4AEA17EBB82600697056 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; };
+		A922753D1517C094001B78AA /* kxnly-mobile.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "kxnly-mobile.app"; sourceTree = BUILT_PRODUCTS_DIR; };
+		A92275411517C094001B78AA /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
+		A92275431517C094001B78AA /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
+		A92275451517C094001B78AA /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; };
+		A92275471517C094001B78AA /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
+		A92275491517C094001B78AA /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
+		A922754B1517C094001B78AA /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+		A922754D1517C094001B78AA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+		A922754F1517C094001B78AA /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
+		ABE456E21D34F87300F1F400 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/CFNetwork.framework; sourceTree = DEVELOPER_DIR; };
+		ABE456E41D34F87A00F1F400 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/CoreFoundation.framework; sourceTree = DEVELOPER_DIR; };
+		ABE456E61D34F87F00F1F400 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/MobileCoreServices.framework; sourceTree = DEVELOPER_DIR; };
+		ABE456E81D34F88A00F1F400 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; };
+		ABE456EA1D34F89000F1F400 /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/GameController.framework; sourceTree = DEVELOPER_DIR; };
+		BA3A85EB1A724AE900924D24 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; };
+		BA4E718019EB6E3E00932425 /* MediaPlayer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaPlayer.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.0.sdk/System/Library/Frameworks/MediaPlayer.framework; sourceTree = DEVELOPER_DIR; };
+		BA4E718219EB6E4600932425 /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.0.sdk/System/Library/Frameworks/GameController.framework; sourceTree = DEVELOPER_DIR; };
+		BAEE4D831AC40C11003BEB0F /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
+		C03780EA18BEE0E400FE4F13 /* src */ = {isa = PBXFileReference; lastKnownFileType = folder; name = src; path = ../../../src; sourceTree = "<group>"; };
+		C06E23CB18CEFE680093C81A /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = "<group>"; };
+		C0799CB518BAE62000E9C828 /* res */ = {isa = PBXFileReference; lastKnownFileType = folder; name = res; path = ../../../res; sourceTree = "<group>"; };
+		D454520B156E22BD00887EB5 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
+		D4545215156E28EF00887EB5 /* AppDelegate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AppDelegate.cpp; sourceTree = "<group>"; };
+		D4545216156E28EF00887EB5 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
+		D6B061231803AB9F0077942B /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/System/Library/Frameworks/CoreMotion.framework; sourceTree = DEVELOPER_DIR; };
+		FA676C751C71AFA200E091E3 /* libiconv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libiconv.dylib; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.4.sdk/usr/lib/libiconv.dylib; sourceTree = DEVELOPER_DIR; };
+		FA676C771C71AFAB00E091E3 /* libiconv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libiconv.dylib; path = usr/lib/libiconv.dylib; sourceTree = SDKROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		509D4A8217EBB24E00697056 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				1A37E9DC200DEF190078AF72 /* SystemConfiguration.framework in Frameworks */,
+				1ACA99231F550A20002DE225 /* JavaScriptCore.framework in Frameworks */,
+				1A499EBB1F0CDDC3004E6AEC /* CFNetwork.framework in Frameworks */,
+				4DD5E6AB1CDAF6430046171E /* libcocos2d Mac.a in Frameworks */,
+				FA676C781C71AFAB00E091E3 /* libiconv.dylib in Frameworks */,
+				BAEE4D841AC40C11003BEB0F /* Security.framework in Frameworks */,
+				502380DC17EBB88200990C9B /* libcurl.dylib in Frameworks */,
+				509D4A8817EBB24E00697056 /* libsqlite3.dylib in Frameworks */,
+				509D4A8917EBB24E00697056 /* libz.dylib in Frameworks */,
+				509D4AEB17EBB82600697056 /* IOKit.framework in Frameworks */,
+				509D4AE917EBB82000697056 /* AppKit.framework in Frameworks */,
+				509D4AE717EBB81800697056 /* OpenGL.framework in Frameworks */,
+				509D4A8A17EBB24E00697056 /* QuartzCore.framework in Frameworks */,
+				509D4A8C17EBB24E00697056 /* OpenAL.framework in Frameworks */,
+				509D4A8D17EBB24E00697056 /* AudioToolbox.framework in Frameworks */,
+				509D4A8E17EBB24E00697056 /* AVFoundation.framework in Frameworks */,
+				509D4A9017EBB24E00697056 /* Foundation.framework in Frameworks */,
+				509D4A9117EBB24E00697056 /* CoreGraphics.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		A922753A1517C094001B78AA /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				467AF615232881EB00770112 /* CoreMedia.framework in Frameworks */,
+				467AF613232881E400770112 /* AVKit.framework in Frameworks */,
+				467AF6082321FBED00770112 /* WebKit.framework in Frameworks */,
+				1A37E9DA200DEF120078AF72 /* SystemConfiguration.framework in Frameworks */,
+				1ACA99251F550A28002DE225 /* JavaScriptCore.framework in Frameworks */,
+				1A499EBD1F0CDDD9004E6AEC /* libicucore.A.tbd in Frameworks */,
+				ABE456EB1D34F89000F1F400 /* GameController.framework in Frameworks */,
+				ABE456E91D34F88A00F1F400 /* SystemConfiguration.framework in Frameworks */,
+				ABE456E71D34F87F00F1F400 /* MobileCoreServices.framework in Frameworks */,
+				ABE456E51D34F87A00F1F400 /* CoreFoundation.framework in Frameworks */,
+				ABE456E31D34F87300F1F400 /* CFNetwork.framework in Frameworks */,
+				294D7D801D0D668F002CE7B7 /* CoreText.framework in Frameworks */,
+				4DD5E6B11CDAF65C0046171E /* libcocos2d iOS.a in Frameworks */,
+				FA676C761C71AFA200E091E3 /* libiconv.dylib in Frameworks */,
+				BA3A85EC1A724AE900924D24 /* Security.framework in Frameworks */,
+				D6B061241803AB9F0077942B /* CoreMotion.framework in Frameworks */,
+				1A82F5FB169AC92500C4B13A /* libsqlite3.dylib in Frameworks */,
+				D454520C156E22BD00887EB5 /* libz.dylib in Frameworks */,
+				A92275421517C094001B78AA /* QuartzCore.framework in Frameworks */,
+				A92275441517C094001B78AA /* OpenGLES.framework in Frameworks */,
+				A92275461517C094001B78AA /* OpenAL.framework in Frameworks */,
+				A92275481517C094001B78AA /* AudioToolbox.framework in Frameworks */,
+				A922754A1517C094001B78AA /* AVFoundation.framework in Frameworks */,
+				A922754C1517C094001B78AA /* UIKit.framework in Frameworks */,
+				A922754E1517C094001B78AA /* Foundation.framework in Frameworks */,
+				A92275501517C094001B78AA /* CoreGraphics.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		15628F5B15F0F5C2000CF24B /* Resources */ = {
+			isa = PBXGroup;
+			children = (
+				4033CDBB20E4935000DAA37B /* jsb-adapter */,
+				1A1A081B18C9DF05005C6854 /* project.json */,
+				1A6BF21418C9DB5900FB0E1C /* main.js */,
+				C0799CB518BAE62000E9C828 /* res */,
+				C03780EA18BEE0E400FE4F13 /* src */,
+				4011F9D7212BD7050091CC5B /* Localizable.strings */,
+			);
+			name = Resources;
+			sourceTree = "<group>";
+		};
+		22CC756E21BA5B5C00FBF2F7 /* service */ = {
+			isa = PBXGroup;
+			children = (
+				22CC756F21BA5B5C00FBF2F7 /* SDKDelegate.h */,
+			);
+			name = service;
+			path = ios/service;
+			sourceTree = "<group>";
+		};
+		4DD0DB511CDAF5F40099AD86 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				4DD0DB561CDAF5F40099AD86 /* libcocos2d Mac.a */,
+				4DD0DB581CDAF5F40099AD86 /* libcocos2d iOS.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		509D4ACA17EBB2BE00697056 /* mac */ = {
+			isa = PBXGroup;
+			children = (
+				051C018621E32AF100D4A347 /* UserConfigMac.debug.xcconfig */,
+				051C018521E32AF000D4A347 /* UserConfigMac.release.xcconfig */,
+				C06E23CB18CEFE680093C81A /* main.cpp */,
+				509D4ACB17EBB2BE00697056 /* Icon.icns */,
+				509D4ACC17EBB2BE00697056 /* Info.plist */,
+				509D4ACE17EBB2BE00697056 /* Prefix.pch */,
+			);
+			path = mac;
+			sourceTree = "<group>";
+		};
+		A92275321517C094001B78AA = {
+			isa = PBXGroup;
+			children = (
+				28A34C0F225B462E00926306 /* assets */,
+				1AC6FB34180E9ACB004C840B /* cocos2d_libs.xcodeproj */,
+				D4545214156E28EF00887EB5 /* Classes */,
+				A92275401517C094001B78AA /* Frameworks */,
+				D45446CC156DE73F00887EB5 /* ios */,
+				509D4ACA17EBB2BE00697056 /* mac */,
+				A922753E1517C094001B78AA /* Products */,
+				15628F5B15F0F5C2000CF24B /* Resources */,
+			);
+			sourceTree = "<group>";
+		};
+		A922753E1517C094001B78AA /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				A922753D1517C094001B78AA /* kxnly-mobile.app */,
+				509D4AAA17EBB24E00697056 /* kxnly-desktop.app */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		A92275401517C094001B78AA /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				467AF614232881EB00770112 /* CoreMedia.framework */,
+				467AF612232881E400770112 /* AVKit.framework */,
+				467AF6072321FBED00770112 /* WebKit.framework */,
+				1A37E9D9200DEF110078AF72 /* SystemConfiguration.framework */,
+				1A37E9DB200DEF190078AF72 /* SystemConfiguration.framework */,
+				1ACA99241F550A28002DE225 /* JavaScriptCore.framework */,
+				1ACA99221F550A20002DE225 /* JavaScriptCore.framework */,
+				1A499EBC1F0CDDD9004E6AEC /* libicucore.A.tbd */,
+				1A499EBA1F0CDDC3004E6AEC /* CFNetwork.framework */,
+				ABE456EA1D34F89000F1F400 /* GameController.framework */,
+				ABE456E81D34F88A00F1F400 /* SystemConfiguration.framework */,
+				ABE456E61D34F87F00F1F400 /* MobileCoreServices.framework */,
+				ABE456E41D34F87A00F1F400 /* CoreFoundation.framework */,
+				ABE456E21D34F87300F1F400 /* CFNetwork.framework */,
+				294D7D7F1D0D668F002CE7B7 /* CoreText.framework */,
+				4D697BDC1CBD303100A5AF29 /* libjs_static.a */,
+				4D697BD91CBD301C00A5AF29 /* libjs_static.a */,
+				FA676C771C71AFAB00E091E3 /* libiconv.dylib */,
+				FA676C751C71AFA200E091E3 /* libiconv.dylib */,
+				BAEE4D831AC40C11003BEB0F /* Security.framework */,
+				BA3A85EB1A724AE900924D24 /* Security.framework */,
+				BA4E718219EB6E4600932425 /* GameController.framework */,
+				BA4E718019EB6E3E00932425 /* MediaPlayer.framework */,
+				D6B061231803AB9F0077942B /* CoreMotion.framework */,
+				502380DB17EBB88200990C9B /* libcurl.dylib */,
+				509D4AEA17EBB82600697056 /* IOKit.framework */,
+				509D4AE817EBB82000697056 /* AppKit.framework */,
+				509D4AE617EBB81800697056 /* OpenGL.framework */,
+				1A96A4F2174A3432008653A9 /* libcurl.a */,
+				1A82F5FA169AC92500C4B13A /* libsqlite3.dylib */,
+				D454520B156E22BD00887EB5 /* libz.dylib */,
+				A92275411517C094001B78AA /* QuartzCore.framework */,
+				A92275431517C094001B78AA /* OpenGLES.framework */,
+				A92275451517C094001B78AA /* OpenAL.framework */,
+				A92275471517C094001B78AA /* AudioToolbox.framework */,
+				A92275491517C094001B78AA /* AVFoundation.framework */,
+				A922754B1517C094001B78AA /* UIKit.framework */,
+				A922754D1517C094001B78AA /* Foundation.framework */,
+				A922754F1517C094001B78AA /* CoreGraphics.framework */,
+			);
+			name = Frameworks;
+			sourceTree = "<group>";
+		};
+		D45446CC156DE73F00887EB5 /* ios */ = {
+			isa = PBXGroup;
+			children = (
+				051C018221E32AE400D4A347 /* UserConfigIOS.debug.xcconfig */,
+				051C018121E32AE400D4A347 /* UserConfigIOS.release.xcconfig */,
+				22CC756E21BA5B5C00FBF2F7 /* service */,
+				4011F9D1212BD6750091CC5B /* LaunchScreen.storyboard */,
+				1AFFCD7B1F7A5D4F00628F2C /* LaunchScreenBackground.png */,
+				1ABC56911F7A005D00826282 /* Images.xcassets */,
+				509D4AAB17EBB2AB00697056 /* AppController.h */,
+				509D4AAC17EBB2AB00697056 /* AppController.mm */,
+				509D4AB717EBB2AB00697056 /* Info.plist */,
+				509D4AB817EBB2AB00697056 /* main.m */,
+				509D4AB917EBB2AB00697056 /* Prefix.pch */,
+				509D4ABA17EBB2AB00697056 /* RootViewController.h */,
+				509D4ABB17EBB2AB00697056 /* RootViewController.mm */,
+				22CC757021BA5B5C00FBF2F7 /* SDKWrapper.h */,
+				22CC756D21BA5B5C00FBF2F7 /* SDKWrapper.m */,
+			);
+			name = ios;
+			sourceTree = "<group>";
+		};
+		D4545214156E28EF00887EB5 /* Classes */ = {
+			isa = PBXGroup;
+			children = (
+				05A8AD8A2449A9F900A65D12 /* NativeConfig.h */,
+				D4545215156E28EF00887EB5 /* AppDelegate.cpp */,
+				D4545216156E28EF00887EB5 /* AppDelegate.h */,
+			);
+			name = Classes;
+			path = ../Classes;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		509D4A7517EBB24E00697056 /* kxnly-desktop */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 509D4AA717EBB24E00697056 /* Build configuration list for PBXNativeTarget "kxnly-desktop" */;
+			buildPhases = (
+				509D4A8017EBB24E00697056 /* Sources */,
+				509D4A9317EBB24E00697056 /* Resources */,
+				509D4A8217EBB24E00697056 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				4DD5E6AA1CDAF6330046171E /* PBXTargetDependency */,
+			);
+			name = "kxnly-desktop";
+			productName = kxnly;
+			productReference = 509D4AAA17EBB24E00697056 /* kxnly-desktop.app */;
+			productType = "com.apple.product-type.application";
+		};
+		A922753C1517C094001B78AA /* kxnly-mobile */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = A92277001517C097001B78AA /* Build configuration list for PBXNativeTarget "kxnly-mobile" */;
+			buildPhases = (
+				A92275391517C094001B78AA /* Sources */,
+				A922753A1517C094001B78AA /* Frameworks */,
+				A922753B1517C094001B78AA /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				4DD5E6B01CDAF6520046171E /* PBXTargetDependency */,
+			);
+			name = "kxnly-mobile";
+			productName = kxnly;
+			productReference = A922753D1517C094001B78AA /* kxnly-mobile.app */;
+			productType = "com.apple.product-type.application";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		A92275341517C094001B78AA /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+				LastUpgradeCheck = 0500;
+			};
+			buildConfigurationList = A92275371517C094001B78AA /* Build configuration list for PBXProject "kxnly" */;
+			compatibilityVersion = "Xcode 3.2";
+			developmentRegion = English;
+			hasScannedForEncodings = 0;
+			knownRegions = (
+				English,
+				en,
+				Base,
+				"zh-Hans",
+			);
+			mainGroup = A92275321517C094001B78AA;
+			productRefGroup = A922753E1517C094001B78AA /* Products */;
+			projectDirPath = "";
+			projectReferences = (
+				{
+					ProductGroup = 4DD0DB511CDAF5F40099AD86 /* Products */;
+					ProjectRef = 1AC6FB34180E9ACB004C840B /* cocos2d_libs.xcodeproj */;
+				},
+			);
+			projectRoot = "";
+			targets = (
+				A922753C1517C094001B78AA /* kxnly-mobile */,
+				509D4A7517EBB24E00697056 /* kxnly-desktop */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+		4DD0DB561CDAF5F40099AD86 /* libcocos2d Mac.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = "libcocos2d Mac.a";
+			remoteRef = 4DD0DB551CDAF5F40099AD86 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		4DD0DB581CDAF5F40099AD86 /* libcocos2d iOS.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = "libcocos2d iOS.a";
+			remoteRef = 4DD0DB571CDAF5F40099AD86 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+/* End PBXReferenceProxy section */
+
+/* Begin PBXResourcesBuildPhase section */
+		509D4A9317EBB24E00697056 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				286B0E9524075FE000095E1A /* assets in Resources */,
+				1AC22EDE18CA0E11007112B9 /* project.json in Resources */,
+				1AD7E0A918C9DBE3004817A6 /* main.js in Resources */,
+				4033CDBD20E4935100DAA37B /* jsb-adapter in Resources */,
+				509D4ACF17EBB2BE00697056 /* Icon.icns in Resources */,
+				C03780EC18BEE0E400FE4F13 /* src in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		A922753B1517C094001B78AA /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				28A34C10225B462E00926306 /* assets in Resources */,
+				4033CDBC20E4935100DAA37B /* jsb-adapter in Resources */,
+				1AFFCD7F1F7A5D5400628F2C /* Images.xcassets in Resources */,
+				1AFFCD7E1F7A5D5400628F2C /* LaunchScreenBackground.png in Resources */,
+				1AE159EC18C9DF3600FCA372 /* project.json in Resources */,
+				1AD7E0A818C9DB93004817A6 /* main.js in Resources */,
+				C03780EB18BEE0E400FE4F13 /* src in Resources */,
+				4011F9CF212BD6750091CC5B /* LaunchScreen.storyboard in Resources */,
+				4011F9D5212BD7050091CC5B /* Localizable.strings in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		509D4A8017EBB24E00697056 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				509D4A8117EBB24E00697056 /* AppDelegate.cpp in Sources */,
+				C06E23CC18CEFE680093C81A /* main.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		A92275391517C094001B78AA /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				509D4AC917EBB2AB00697056 /* RootViewController.mm in Sources */,
+				D4545227156E28EF00887EB5 /* AppDelegate.cpp in Sources */,
+				509D4AC817EBB2AB00697056 /* main.m in Sources */,
+				22CC757121BA5B5C00FBF2F7 /* SDKWrapper.m in Sources */,
+				509D4ABC17EBB2AB00697056 /* AppController.mm in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+		4DD5E6AA1CDAF6330046171E /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = "libcocos2d Mac";
+			targetProxy = 4DD5E6A91CDAF6330046171E /* PBXContainerItemProxy */;
+		};
+		4DD5E6B01CDAF6520046171E /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = "libcocos2d iOS";
+			targetProxy = 4DD5E6AF1CDAF6520046171E /* PBXContainerItemProxy */;
+		};
+/* End PBXTargetDependency section */
+
+/* Begin PBXVariantGroup section */
+		4011F9D1212BD6750091CC5B /* LaunchScreen.storyboard */ = {
+			isa = PBXVariantGroup;
+			children = (
+				4011F9D2212BD6810091CC5B /* Base */,
+			);
+			name = LaunchScreen.storyboard;
+			path = ios;
+			sourceTree = "<group>";
+		};
+		4011F9D7212BD7050091CC5B /* Localizable.strings */ = {
+			isa = PBXVariantGroup;
+			children = (
+				4011F9D8212BD7150091CC5B /* Base */,
+				4011F9D9212BD73A0091CC5B /* zh-Hans */,
+			);
+			name = Localizable.strings;
+			path = ios;
+			sourceTree = "<group>";
+		};
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+		509D4AA817EBB24E00697056 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 051C018621E32AF100D4A347 /* UserConfigMac.debug.xcconfig */;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = YES;
+				ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+				COMBINE_HIDPI_IMAGES = YES;
+				DEAD_CODE_STRIPPING = YES;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = mac/Prefix.pch;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					CC_TARGET_OS_MAC,
+					"$(inherited)",
+				);
+				GCC_SYMBOLS_PRIVATE_EXTERN = YES;
+				HEADER_SEARCH_PATHS = "";
+				INFOPLIST_FILE = mac/Info.plist;
+				LIBRARY_SEARCH_PATHS = "D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/external/mac/libs";
+				OTHER_LDFLAGS = "";
+				SDKROOT = macosx;
+				USER_HEADER_SEARCH_PATHS = "$(inherited) D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos/platform/mac D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/external/glfw3/include/mac D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/external/mac/include/ D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/external/mac/include/spidermonkey";
+			};
+			name = Debug;
+		};
+		509D4AA917EBB24E00697056 /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 051C018521E32AF000D4A347 /* UserConfigMac.release.xcconfig */;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = YES;
+				ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+				COMBINE_HIDPI_IMAGES = YES;
+				DEAD_CODE_STRIPPING = YES;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = mac/Prefix.pch;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					CC_TARGET_OS_MAC,
+					"$(inherited)",
+				);
+				GCC_SYMBOLS_PRIVATE_EXTERN = YES;
+				HEADER_SEARCH_PATHS = "";
+				INFOPLIST_FILE = mac/Info.plist;
+				LIBRARY_SEARCH_PATHS = "D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/external/mac/libs";
+				OTHER_LDFLAGS = "";
+				SDKROOT = macosx;
+				USER_HEADER_SEARCH_PATHS = "$(inherited) D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos/platform/mac D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/external/glfw3/include/mac D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/external/mac/include/ D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/external/mac/include/spidermonkey";
+			};
+			name = Release;
+		};
+		A92276FE1517C097001B78AA /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
+				CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				COPY_PHASE_STRIP = NO;
+				GCC_C_LANGUAGE_STANDARD = c99;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"COCOS2D_DEBUG=1",
+					USE_FILE32API,
+					COCOS2D_JAVASCRIPT,
+				);
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "";
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+				MACOSX_DEPLOYMENT_TARGET = 10.9;
+				ONLY_ACTIVE_ARCH = YES;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				USER_HEADER_SEARCH_PATHS = "D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos/base D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos/physics D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos/math/kazmath D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos/2d D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos/gui D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos/network D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos/audio/include D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos/editor-support D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/extensions D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/external D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/external/sources D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/external/chipmunk/include/chipmunk D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/external/mac/include/v8 D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos/scripting/js-bindings/auto D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos/scripting/js-bindings/manual D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos/renderer";
+			};
+			name = Debug;
+		};
+		A92276FF1517C097001B78AA /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
+				CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				GCC_C_LANGUAGE_STANDARD = c99;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					NDEBUG,
+					USE_FILE32API,
+					COCOS2D_JAVASCRIPT,
+				);
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "";
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+				MACOSX_DEPLOYMENT_TARGET = 10.9;
+				OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				USER_HEADER_SEARCH_PATHS = "D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos/base D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos/physics D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos/math/kazmath D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos/2d D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos/gui D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos/network D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos/audio/include D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos/editor-support D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/extensions D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/external D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/external/sources D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/external/chipmunk/include/chipmunk D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/external/mac/include/v8 D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos/scripting/js-bindings/auto D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos/scripting/js-bindings/manual D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos/renderer";
+				VALIDATE_PRODUCT = YES;
+			};
+			name = Release;
+		};
+		A92277011517C097001B78AA /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 051C018221E32AE400D4A347 /* UserConfigIOS.debug.xcconfig */;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = YES;
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				CODE_SIGN_IDENTITY = "iPhone Developer";
+				COMPRESS_PNG_FILES = NO;
+				ENABLE_BITCODE = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = ios/Prefix.pch;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					CC_TARGET_OS_IPHONE,
+					"$(inherited)",
+				);
+				GCC_SYMBOLS_PRIVATE_EXTERN = YES;
+				HEADER_SEARCH_PATHS = "";
+				INFOPLIST_FILE = ios/Info.plist;
+				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
+				LIBRARY_SEARCH_PATHS = "D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/external/ios/libs";
+				OTHER_LDFLAGS = (
+					"-ObjC",
+					"$(inherited)",
+				);
+				SDKROOT = iphoneos;
+				STRIP_PNG_TEXT = NO;
+				TARGETED_DEVICE_FAMILY = "1,2";
+				USER_HEADER_SEARCH_PATHS = "$(inherited) D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos/platform/ios D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/plugin/jsbindings/auto D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/plugin/jsbindings/manual D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/external/ios/include D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/external/ios/include/spidermonkey";
+			};
+			name = Debug;
+		};
+		A92277021517C097001B78AA /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 051C018121E32AE400D4A347 /* UserConfigIOS.release.xcconfig */;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = YES;
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				CODE_SIGN_IDENTITY = "iPhone Developer";
+				COMPRESS_PNG_FILES = NO;
+				ENABLE_BITCODE = NO;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = ios/Prefix.pch;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					CC_TARGET_OS_IPHONE,
+					"$(inherited)",
+				);
+				GCC_SYMBOLS_PRIVATE_EXTERN = YES;
+				HEADER_SEARCH_PATHS = "";
+				INFOPLIST_FILE = ios/Info.plist;
+				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
+				LIBRARY_SEARCH_PATHS = "D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/external/ios/libs";
+				OTHER_LDFLAGS = (
+					"-ObjC",
+					"$(inherited)",
+				);
+				SDKROOT = iphoneos;
+				STRIP_PNG_TEXT = NO;
+				TARGETED_DEVICE_FAMILY = "1,2";
+				USER_HEADER_SEARCH_PATHS = "$(inherited) D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/cocos/platform/ios D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/plugin/jsbindings/auto D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/plugin/jsbindings/manual D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/external/ios/include D:\Develop\CocosDashboard_1.0.9\resources\.editors\Creator\2.4.5\resources\cocos2d-x/external/ios/include/spidermonkey";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		509D4AA717EBB24E00697056 /* Build configuration list for PBXNativeTarget "kxnly-desktop" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				509D4AA817EBB24E00697056 /* Debug */,
+				509D4AA917EBB24E00697056 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		A92275371517C094001B78AA /* Build configuration list for PBXProject "kxnly" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				A92276FE1517C097001B78AA /* Debug */,
+				A92276FF1517C097001B78AA /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		A92277001517C097001B78AA /* Build configuration list for PBXNativeTarget "kxnly-mobile" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				A92277011517C097001B78AA /* Debug */,
+				A92277021517C097001B78AA /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = A92275341517C094001B78AA /* Project object */;
+}

+ 1 - 1
build/jsb-link/frameworks/runtime-src/proj.ios_mac/mac/Info.plist

@@ -9,7 +9,7 @@
 	<key>CFBundleIconFile</key>
 	<string>Icon</string>
 	<key>CFBundleIdentifier</key>
-	<string>com.aries.qsllx.mz</string>
+	<string>com.aries.kxnly.mz</string>
 	<key>CFBundleInfoDictionaryVersion</key>
 	<string>6.0</string>
 	<key>CFBundleName</key>

+ 1 - 1
build/jsb-link/frameworks/runtime-src/proj.win32/EasyEliminate.sln → build/jsb-link/frameworks/runtime-src/proj.win32/kxnly.sln

@@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio 2013
 VisualStudioVersion = 12.0.21005.1
 MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EasyEliminate", "EasyEliminate.vcxproj", "{3B0B58B1-2734-488E-A542-ECEC11EB2455}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "kxnly", "kxnly.vcxproj", "{3B0B58B1-2734-488E-A542-ECEC11EB2455}"
 	ProjectSection(ProjectDependencies) = postProject
 		{39379840-825A-45A0-B363-C09FFEF864BD} = {39379840-825A-45A0-B363-C09FFEF864BD}
 		{98A51BA8-FC3A-415B-AC8F-8C7BD464E93E} = {98A51BA8-FC3A-415B-AC8F-8C7BD464E93E}

+ 1 - 1
build/jsb-link/frameworks/runtime-src/proj.win32/EasyEliminate.vcxproj → build/jsb-link/frameworks/runtime-src/proj.win32/kxnly.vcxproj

@@ -12,7 +12,7 @@
   </ItemGroup>
   <PropertyGroup Label="Globals">
     <ProjectGuid>{3B0B58B1-2734-488E-A542-ECEC11EB2455}</ProjectGuid>
-    <RootNamespace>EasyEliminate</RootNamespace>
+    <RootNamespace>kxnly</RootNamespace>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">

+ 0 - 0
build/jsb-link/frameworks/runtime-src/proj.win32/EasyEliminate.vcxproj.filters → build/jsb-link/frameworks/runtime-src/proj.win32/kxnly.vcxproj.filters


+ 0 - 0
build/jsb-link/frameworks/runtime-src/proj.win32/EasyEliminate.vcxproj.user → build/jsb-link/frameworks/runtime-src/proj.win32/kxnly.vcxproj.user


+ 69 - 69
build/jsb-link/js backups (useful for debugging)/cocos2d-jsb.js

@@ -36487,16 +36487,16 @@ return e.join("");
 253: [ (function(t, e, i) {
 "use strict";
 i.__esModule = !0;
-i.default = V;
+i.default = L;
 i.unpackJSONs = function(t, e) {
-if (t[0] < f) throw new Error(cc.debug.getError(5304, t[0]));
-R(t, !0, e);
-L(t);
-for (var i = new N(t[0]), n = t[1], r = t[2], s = t[3], o = t[4], a = t[b], c = 0; c < a.length; ++c) a[c].unshift(i, n, r, s, o);
+if (t[0] < 1) throw new Error(cc.debug.getError(5304, t[0]));
+D(t, !0, e);
+P(t);
+for (var i = new O(t[0]), n = t[1], r = t[2], s = t[3], o = t[4], a = t[v], c = 0; c < a.length; ++c) a[c].unshift(i, n, r, s, o);
 return a;
 };
 i.packCustomObjData = function(t, e, i) {
-return [ f, d, d, [ t ], d, i ? [ e, -1 ] : [ e ], [ 0 ], d, [], [], [] ];
+return [ 1, f, f, [ t ], f, i ? [ e, -1 ] : [ e ], [ 0 ], f, [], [], [] ];
 };
 i.hasNativeDep = function(t) {
 var e = t[5], i = e[e.length - 1];
@@ -36514,21 +36514,21 @@ return t && t.__esModule ? t : {
 default: t
 };
 }
-var f = 1, d = 0, p = [ r.default, s.default, o.default, u.default, a.default, c.default, l.default, h.default ];
-function m(t, e) {
+var f = 0, d = [ r.default, s.default, o.default, u.default, a.default, c.default, l.default, h.default ];
+function p(t, e) {
 t.x = e[1];
 t.y = e[2];
 t.z = e[3];
 t.w = e[4];
 }
-var y = [ function(t, e) {
+var m = [ function(t, e) {
 t.x = e[1];
 t.y = e[2];
 }, function(t, e) {
 t.x = e[1];
 t.y = e[2];
 t.z = e[3];
-}, m, m, function(t, e) {
+}, p, p, function(t, e) {
 t._val = e[1];
 }, function(t, e) {
 t.width = e[1];
@@ -36540,7 +36540,7 @@ t.width = e[3];
 t.height = e[4];
 }, function(t, e) {
 h.default.fromArray(t, e, 1);
-} ], v = 0, g = 0, b = 5, C = (function() {
+} ], y = 0, v = 5, g = (function() {
 function t() {
 this.uuidObjList = null;
 this.uuidPropList = null;
@@ -36564,13 +36564,13 @@ this.uuidList.push(i);
 };
 return t;
 })();
-C.pool = new n.default.Pool(function(t) {
+g.pool = new n.default.Pool(function(t) {
 t.reset();
 }, 5);
-C.pool.get = function() {
-return this._get() || new C();
+g.pool.get = function() {
+return this._get() || new g();
 };
-function x(t, e, i) {
+function b(t, e, i) {
 for (var n = t.length - 1, r = 0, s = 3 * t[n]; r < s; r += 3) {
 var o = t[r], a = e[t[r + 2]], c = t[r + 1];
 c >= 0 ? o[i[c]] = a : o[~c] = a;
@@ -36580,127 +36580,127 @@ var l = e[t[r]], u = e[t[r + 2]], h = t[r + 1];
 h >= 0 ? l[i[h]] = u : l[~h] = u;
 }
 }
-function A(t, e) {
+function C(t, e) {
 for (var i = t[4][e[0]], n = i[0], r = new (0, n[0])(), s = n[1], o = n[2], a = i[i.length - 1], c = 1; c < a; ++c) r[s[i[c]]] = e[c];
 for (;c < e.length; ++c) {
 var l = s[i[c]], u = n[i[c] + o];
-(0, B[u])(t, r, l, e[c]);
+(0, E[u])(t, r, l, e[c]);
 }
 return r;
 }
-function S(t, e, i) {
+function x(t, e, i) {
 var r = new e();
 r._deserialize ? r._deserialize(i, t[0]) : cc.errorID(5303, n.default.getClassName(e));
 return r;
 }
-function T(t, e, i, n) {
+function A(t, e, i, n) {
 n >= 0 ? e[i] = t[5][n] : t[7][3 * ~n] = e;
 }
-function w(t) {
+function S(t) {
 return function(e, i, n, r) {
 i[n] = r;
 for (var s = 0; s < r.length; ++s) t(e, r, s, r[s]);
 };
 }
-function E(t, e, i, n) {
+function T(t, e, i, n) {
 e[i] = null;
 t[8][n] = e;
 }
-function M(t, e, i, n) {
-e[i] = A(t, n);
+function w(t, e, i, n) {
+e[i] = C(t, n);
 }
-var B = new Array(13);
-B[0] = function(t, e, i, n) {
+var E = new Array(13);
+E[0] = function(t, e, i, n) {
 e[i] = n;
 };
-B[1] = T;
-B[2] = w(T);
-B[3] = w(E);
-B[4] = M;
-B[5] = function(t, e, i, n) {
-y[n[0]](e[i], n);
+E[1] = A;
+E[2] = S(A);
+E[3] = S(T);
+E[4] = w;
+E[5] = function(t, e, i, n) {
+m[n[0]](e[i], n);
 };
-B[6] = E;
-B[7] = function(t, e, i, n) {
+E[6] = T;
+E[7] = function(t, e, i, n) {
 e[i].set(n);
 };
-B[8] = function(t, e, i, n) {
-var r = new p[n[0]]();
-y[n[0]](r, n);
+E[8] = function(t, e, i, n) {
+var r = new d[n[0]]();
+m[n[0]](r, n);
 e[i] = r;
 };
-B[9] = w(M);
-B[10] = function(t, e, i, n) {
+E[9] = S(w);
+E[10] = function(t, e, i, n) {
 var r = t[3][n[0]];
-e[i] = S(t, r, n[1]);
+e[i] = x(t, r, n[1]);
 };
-B[11] = function(t, e, i, n) {
+E[11] = function(t, e, i, n) {
 var r = n[0];
 e[i] = r;
 for (var s = 1; s < n.length; s += 3) {
 var o = n[s], a = n[s + 1], c = n[s + 2];
-(0, B[a])(t, r, o, c);
+(0, E[a])(t, r, o, c);
 }
 };
-B[12] = function(t, e, i, n) {
+E[12] = function(t, e, i, n) {
 var r = n[0];
 e[i] = r;
 for (var s = 0; s < r.length; ++s) {
 var o = r[s], a = n[s + 1];
-0 !== a && (0, B[a])(t, r, s, o);
+0 !== a && (0, E[a])(t, r, s, o);
 }
 };
-function I(t) {
-var e = t[5], i = t[6], n = i === d ? 0 : i.length, r = e[e.length - 1], s = e.length - n;
+function M(t) {
+var e = t[5], i = t[6], n = 0 === i ? 0 : i.length, r = e[e.length - 1], s = e.length - n;
 if ("number" != typeof r) r = 0; else {
 r < 0 && (r = ~r);
 --s;
 }
-for (var o = 0; o < s; ++o) e[o] = A(t, e[o]);
+for (var o = 0; o < s; ++o) e[o] = C(t, e[o]);
 for (var a = t[3], c = 0; c < n; ++c, ++o) {
 var l = i[c], u = e[o];
 if (l >= 0) {
 var h = a[l];
-e[o] = S(t, h, u);
-} else (0, B[l = ~l])(t, e, o, u);
+e[o] = x(t, h, u);
+} else (0, E[l = ~l])(t, e, o, u);
 }
 return r;
 }
-function D(t, e) {
-t || V.reportMissingClass(e);
+function B(t, e) {
+t || L.reportMissingClass(e);
 return Object;
 }
-function P(t, e, i, n, r, s) {
+function I(t, e, i, n, r, s) {
 var o = t(e);
 if (!o) {
 if (r) {
 i[n] = (function(e, i, n) {
 return function() {
-var r = t(n) || D(s, n);
+var r = t(n) || B(s, n);
 e[i] = r;
 return new r();
 };
 })(i, n, e);
 return;
 }
-o = D(s, e);
+o = B(s, e);
 }
 i[n] = o;
 }
-function R(t, e, i) {
+function D(t, e, i) {
 for (var r = i || n.default._getClassById, s = t[3], o = 0; o < s.length; ++o) {
 var a = s[o];
-"string" != typeof a ? P(r, a[v], a, v, e, i) : P(r, a, s, o, e, i);
+"string" != typeof a ? I(r, a[0], a, y, e, i) : I(r, a, s, o, e, i);
 }
 }
-function L(t) {
+function P(t) {
 var e = t[4];
 if (e) for (var i = t[3], n = 0; n < e.length; ++n) {
 var r = e[n];
-r[g] = i[r[g]];
+r[0] = i[r[0]];
 }
 }
-function O(t) {
+function R(t) {
 for (var e = t[5], i = t[2], n = t[1], r = t[8], s = t[9], o = t[10], a = 0; a < r.length; ++a) {
 var c = r[a];
 "number" == typeof c && (r[a] = e[c]);
@@ -36713,34 +36713,34 @@ var u = o[a];
 "number" == typeof u && (o[a] = n[u]);
 }
 }
-function V(t, e, i) {
+function L(t, e, i) {
 "string" == typeof t && (t = JSON.parse(t));
 var n = !e;
-(e = e || C.pool.get()).init(t);
+(e = e || g.pool.get()).init(t);
 i = i || {};
 var r = t[0], s = !1;
 if ("object" == typeof r) {
 s = r.preprocessed;
 r = r.version;
 }
-if (r < f) throw new Error(cc.debug.getError(5304, r));
+if (r < 1) throw new Error(cc.debug.getError(5304, r));
 i._version = r;
 i.result = e;
 t[0] = i;
 if (!s) {
-R(t, !1, i.classFinder);
-L(t);
+D(t, !1, i.classFinder);
+P(t);
 }
 cc.game._isCloning = !0;
-var o = t[5], a = I(t);
+var o = t[5], a = M(t);
 cc.game._isCloning = !1;
-t[7] && x(t[7], o, t[2]);
-O(t);
-n && C.pool.put(e);
+t[7] && b(t[7], o, t[2]);
+R(t);
+n && g.pool.put(e);
 return o[a];
 }
-V.Details = C;
-var N = function(t) {
+L.Details = g;
+var O = function(t) {
 this.preprocessed = !0;
 this.version = t;
 };

File diff suppressed because it is too large
+ 432 - 99
build/jsb-link/js backups (useful for debugging)/main.index.js


+ 2 - 2
packages-hot-update/cfg.json

@@ -8,7 +8,7 @@
         "https://xcx-box.oss-cn-hangzhou.aliyuncs.com/hotgame/EasyEliminateTest/baseRemote/",
         "https://xcx-box.oss-cn-hangzhou.aliyuncs.com/hotgame/EasyEliminate/baseRemote/"
     ],
-    "buildTime": 1627552880061,
-    "genTime": 1627552880061,
+    "buildTime": 1629283090243,
+    "genTime": 1629283090243,
     "genVersion": null
 }

+ 2 - 2
settings/builder.json

@@ -1,5 +1,5 @@
 {
-  "title": "EasyEliminate",
+  "title": "kxnly",
   "packageName": "org.cocos2d.demo",
   "startScene": "6f522a54-3e0e-404d-a06c-bec8b4307c95",
   "excludeScenes": [],
@@ -22,7 +22,7 @@
   "zipCompressJs": true,
   "fb-instant-games": {},
   "android": {
-    "packageName": "com.aries.qsllx.mz",
+    "packageName": "com.aries.kxnly.mz",
     "REMOTE_SERVER_ROOT": ""
   },
   "ios": {

+ 1 - 1
settings/project.json

@@ -36,6 +36,6 @@
       "enable": false
     }
   },
-  "last-module-event-record-time": 1628242996259,
+  "last-module-event-record-time": 1629276046252,
   "start-scene": "6f522a54-3e0e-404d-a06c-bec8b4307c95"
 }

Some files were not shown because too many files changed in this diff