Browse Source

Merge branch 'master' of http://192.168.123.2:3000/ck/XiuXianGame

李桃 1 ngày trước cách đây
mục cha
commit
e06163a003
63 tập tin đã thay đổi với 2379 bổ sung416 xóa
  1. 117 1
      Assets/Art/Dujie/predujie.playable
  2. 0 9
      Assets/Art/Environment/cj01.prefab
  3. 1 1
      Assets/Art/VFX/Materials/UIMat/ui_ob_yindao_glow_add.mat
  4. 2 2
      Assets/Art/VFX/Materials/UIMat/ui_renwu_lg.mat
  5. 1359 19
      Assets/Art/cs3.scene
  6. 3 3
      Assets/Res/Config/BuffConfig.json
  7. 1 1
      Assets/Res/Config/EventConfig.json
  8. 47 31
      Assets/Res/Config/LanguageChineseConfig.json
  9. 24 24
      Assets/Res/Config/LanguageChineseConfig_skill.json
  10. 20 20
      Assets/Res/Config/SentimentEffectConfig.json
  11. 1 1
      Assets/Res/UI/Canvas/Canvas.prefab
  12. 4 4
      Assets/Scenes/testCombat.scene
  13. 23 7
      Assets/Scripts/Core/Editor/BuildEtitor/BuildEditor.cs
  14. 22 5
      Assets/Scripts/Core/Editor/HybridCLR/BuildAssetsCommand.cs
  15. 22 1
      Assets/Scripts/Core/Log/LogServer.cs
  16. 1 1
      Assets/Scripts/GameData/ExcelConfig/SentimentEffectConfig.cs
  17. 6 53
      Assets/Scripts/GameLogic/Bag/BagController.cs
  18. 5 1
      Assets/Scripts/GameLogic/Combat/Buff/BuffBasic.cs
  19. 4 5
      Assets/Scripts/GameLogic/Combat/Hero/CombatHeroEntity.cs
  20. 25 2
      Assets/Scripts/GameLogic/Hero/HeroInfo.cs
  21. 8 1
      Assets/Scripts/GameLogic/Player/PlayerManager.cs
  22. 3 1
      Assets/Scripts/GameLogic/Player/SummonManager.cs
  23. 1 1
      Assets/Scripts/GameLogic/RedDot/RedDotData.cs
  24. 14 0
      Assets/Scripts/GameLogic/SDK/DBManager.cs
  25. 2 1
      Assets/Scripts/GameLogic/Shop/ShopManger.cs
  26. 1 1
      Assets/Scripts/GameUI/Combat/CombatDrive.cs
  27. 1 0
      Assets/Scripts/GameUI/Combat/LevelBattleCombatMono.cs
  28. 1 0
      Assets/Scripts/GameUI/EventManager/DialogueManager.cs
  29. 3 1
      Assets/Scripts/GameUI/EventManager/EventSystemManager.cs
  30. 18 1
      Assets/Scripts/GameUI/GameApplction.cs
  31. 2 5
      Assets/Scripts/GameUI/UI/AppBarPanel/TitlePanel.cs
  32. 1 0
      Assets/Scripts/GameUI/UI/BoxPanel/BoxPanel.cs
  33. 2 0
      Assets/Scripts/GameUI/UI/BoxPanel/GachaPanel.cs
  34. 1 1
      Assets/Scripts/GameUI/UI/BoxPanel/OpenBoxScorePanel.cs
  35. 13 0
      Assets/Scripts/GameUI/UI/CombatPanel/HeroHpWidget.cs
  36. 7 0
      Assets/Scripts/GameUI/UI/CombatPanel/ZhuanPanPanel.cs
  37. 2 1
      Assets/Scripts/GameUI/UI/DaoYouPanel/DaoYouInfoPanel.cs
  38. 1 0
      Assets/Scripts/GameUI/UI/DaoYouPanel/DaoYouLevelWidget.cs
  39. 3 1
      Assets/Scripts/GameUI/UI/DivineSence/DivineSenceRestoredWidget.cs
  40. 4 1
      Assets/Scripts/GameUI/UI/GongFaUpgradePanel/GongFaUpgradePanel.cs
  41. 1 0
      Assets/Scripts/GameUI/UI/GuidePanel/PlayerGuideManager.cs
  42. 5 4
      Assets/Scripts/GameUI/UI/HeroInformationPanel/HeroBreakthroughPanel.cs
  43. 1 7
      Assets/Scripts/GameUI/UI/HeroInformationPanel/HeroHerlp.cs
  44. 25 32
      Assets/Scripts/GameUI/UI/HeroInformationPanel/HeroInformationPanel.cs
  45. 1 0
      Assets/Scripts/GameUI/UI/HeroInformationPanel/UseExpElixirPanel.cs
  46. 3 0
      Assets/Scripts/GameUI/UI/MainHeroPnael/SelectFaBaoPanel.cs
  47. 3 10
      Assets/Scripts/GameUI/UI/MainPanel/MainPanel.cs
  48. 2 0
      Assets/Scripts/GameUI/UI/QiankundaiPanel/QiankundaiPanel.cs
  49. 1 0
      Assets/Scripts/GameUI/UI/SentimentPanel/SentimentInfoPanel.cs
  50. 1 0
      Assets/Scripts/GameUI/UI/ShopPanel/ShopGachaPanel.cs
  51. 1 0
      Assets/Scripts/GameUI/UI/TowerPanel/TowerLevelWidget.cs
  52. 236 0
      Assets/Scripts/GameUI/VersionChecker.cs
  53. 11 0
      Assets/Scripts/GameUI/VersionChecker.cs.meta
  54. 0 0
      Assets/StreamingAssets/assetConfig.txt
  55. BIN
      Excel2Json/Excel/EventConfig.xlsx
  56. BIN
      Excel2Json/Excel/Language.xlsx
  57. BIN
      Excel2Json/Excel/Sentiment.xlsx
  58. 3 3
      UserSettings/EditorUserSettings.asset
  59. 147 101
      UserSettings/Layouts/CurrentMaximizeLayout.dwlt
  60. 161 52
      UserSettings/Layouts/default-2022.dwlt
  61. 2 0
      XiuXianGame.sln.DotSettings.user
  62. BIN
      美术/商店所需/无logo宣传图横.png
  63. BIN
      美术/商店所需/无logo宣传图竖.png

+ 117 - 1
Assets/Art/Dujie/predujie.playable

@@ -1,5 +1,28 @@
 %YAML 1.1
 %TAG !u! tag:yousandi.cn,2023:
+--- !u!114 &-9174596349028513306
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 48853ae485fa386428341ac1ea122570, type: 3}
+  m_Name: ControlPlayableAsset(Clone)
+  m_EditorClassIdentifier: 
+  sourceGameObject:
+    exposedName: 255281cd94c19e94baf8ee339778948d
+    defaultValue: {fileID: 0}
+  prefabGameObject: {fileID: 0}
+  updateParticle: 1
+  particleRandomSeed: 7985
+  updateDirector: 1
+  updateITimeControl: 1
+  searchHierarchy: 1
+  active: 1
+  postPlayback: 2
 --- !u!114 &-8392393903099103772
 MonoBehaviour:
   m_ObjectHideFlags: 1
@@ -394,6 +417,7 @@ MonoBehaviour:
   - {fileID: -8392393903099103772}
   - {fileID: 7597280952754388909}
   - {fileID: -4133211833681818352}
+  - {fileID: 4715551344722035080}
   m_FixedDuration: 0
   m_EditorSettings:
     m_Framerate: 60
@@ -423,6 +447,98 @@ MonoBehaviour:
   searchHierarchy: 1
   active: 1
   postPlayback: 2
+--- !u!114 &4715551344722035080
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 15e0374501f39d54eb30235764636e0e, type: 3}
+  m_Name: Control Track (2)
+  m_EditorClassIdentifier: 
+  m_Version: 3
+  m_AnimClip: {fileID: 0}
+  m_Locked: 0
+  m_Muted: 0
+  m_CustomPlayableFullTypename: 
+  m_Curves: {fileID: 0}
+  m_Parent: {fileID: 11400000}
+  m_Children: []
+  m_Clips:
+  - m_Version: 1
+    m_Start: 2.25
+    m_ClipIn: 0
+    m_Asset: {fileID: -9174596349028513306}
+    m_Duration: 5
+    m_TimeScale: 1
+    m_ParentTrack: {fileID: 4715551344722035080}
+    m_EaseInDuration: 0
+    m_EaseOutDuration: 0
+    m_BlendInDuration: 0
+    m_BlendOutDuration: 0
+    m_MixInCurve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 1
+        value: 1
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    m_MixOutCurve:
+      serializedVersion: 2
+      m_Curve:
+      - serializedVersion: 3
+        time: 0
+        value: 1
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      - serializedVersion: 3
+        time: 1
+        value: 0
+        inSlope: 0
+        outSlope: 0
+        tangentMode: 0
+        weightedMode: 0
+        inWeight: 0
+        outWeight: 0
+      m_PreInfinity: 2
+      m_PostInfinity: 2
+      m_RotationOrder: 4
+    m_BlendInCurveMode: 0
+    m_BlendOutCurveMode: 0
+    m_ExposedParameterNames: []
+    m_AnimationCurves: {fileID: 0}
+    m_Recordable: 0
+    m_PostExtrapolationMode: 0
+    m_PreExtrapolationMode: 0
+    m_PostExtrapolationTime: 0
+    m_PreExtrapolationTime: 0
+    m_DisplayName: fx_ui_dujie_sd
+  m_Markers:
+    m_Objects: []
 --- !u!114 &6656762707459004628
 MonoBehaviour:
   m_ObjectHideFlags: 1
@@ -538,7 +654,7 @@ MonoBehaviour:
   m_Children: []
   m_Clips:
   - m_Version: 1
-    m_Start: 2
+    m_Start: 1.3
     m_ClipIn: 0
     m_Asset: {fileID: 2771148085318837006}
     m_Duration: 5

+ 0 - 9
Assets/Art/Environment/cj01.prefab

@@ -63,7 +63,6 @@ MeshRenderer:
   m_virtualGeometry: 0
   m_virtualGeometryShadow: 0
   m_ShadingRate: 0
-  m_ForceDisableGRD: 0
   m_RenderingLayerMask: 4294967295
   m_RendererPriority: 0
   m_Materials:
@@ -185,7 +184,6 @@ MeshRenderer:
   m_virtualGeometry: 0
   m_virtualGeometryShadow: 0
   m_ShadingRate: 0
-  m_ForceDisableGRD: 0
   m_RenderingLayerMask: 1
   m_RendererPriority: 0
   m_Materials:
@@ -273,7 +271,6 @@ MeshRenderer:
   m_virtualGeometry: 0
   m_virtualGeometryShadow: 0
   m_ShadingRate: 0
-  m_ForceDisableGRD: 0
   m_RenderingLayerMask: 1
   m_RendererPriority: 0
   m_Materials:
@@ -394,7 +391,6 @@ MeshRenderer:
   m_virtualGeometry: 0
   m_virtualGeometryShadow: 0
   m_ShadingRate: 0
-  m_ForceDisableGRD: 0
   m_RenderingLayerMask: 1
   m_RendererPriority: 0
   m_Materials:
@@ -482,7 +478,6 @@ MeshRenderer:
   m_virtualGeometry: 0
   m_virtualGeometryShadow: 0
   m_ShadingRate: 0
-  m_ForceDisableGRD: 0
   m_RenderingLayerMask: 1
   m_RendererPriority: 0
   m_Materials:
@@ -570,7 +565,6 @@ MeshRenderer:
   m_virtualGeometry: 0
   m_virtualGeometryShadow: 0
   m_ShadingRate: 0
-  m_ForceDisableGRD: 0
   m_RenderingLayerMask: 1
   m_RendererPriority: 0
   m_Materials:
@@ -650,7 +644,6 @@ MeshRenderer:
   m_virtualGeometry: 0
   m_virtualGeometryShadow: 0
   m_ShadingRate: 0
-  m_ForceDisableGRD: 0
   m_RenderingLayerMask: 1
   m_RendererPriority: 0
   m_Materials:
@@ -746,7 +739,6 @@ MeshRenderer:
   m_virtualGeometry: 0
   m_virtualGeometryShadow: 0
   m_ShadingRate: 0
-  m_ForceDisableGRD: 0
   m_RenderingLayerMask: 1
   m_RendererPriority: 0
   m_Materials:
@@ -843,7 +835,6 @@ MeshRenderer:
   m_virtualGeometry: 0
   m_virtualGeometryShadow: 0
   m_ShadingRate: 0
-  m_ForceDisableGRD: 0
   m_RenderingLayerMask: 1
   m_RendererPriority: 0
   m_Materials:

+ 1 - 1
Assets/Art/VFX/Materials/UIMat/ui_ob_yindao_glow_add.mat

@@ -57,7 +57,7 @@ Material:
         m_Offset: {x: 0, y: 0}
     m_Ints: []
     m_Floats:
-    - _Alpha: 0
+    - _Alpha: 0.010265116
     - _AlphaCutoff: 0.5
     - _ColorMask: 15
     - _EnableExternalAlpha: 0

+ 2 - 2
Assets/Art/VFX/Materials/UIMat/ui_renwu_lg.mat

@@ -57,13 +57,13 @@ Material:
         m_Offset: {x: 0, y: 0}
     m_Ints: []
     m_Floats:
-    - _Alpha: 0.042883515
+    - _Alpha: 0.15635878
     - _AlphaCutoff: 0.5
     - _ColorMask: 15
     - _EnableExternalAlpha: 0
     - _MainSpeedU: 0.5
     - _MainSpeedV: 0.5
-    - _MainTexOffsetU: 0.4539436
+    - _MainTexOffsetU: 0.26735592
     - _MainTexOffsetV: 0
     - _MainTilingU: 0.8
     - _MainTilingV: 1

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1359 - 19
Assets/Art/cs3.scene


+ 3 - 3
Assets/Res/Config/BuffConfig.json

@@ -43,7 +43,7 @@
     {
       "ID": 10031,
       "nameTest": "毒",
-      "decTest": "每层毒对敌人每秒成{0}%木属性伤害,{1}层毒时毒气会入侵五脏,敌人每使用一次功法对应功法的伤势增加1",
+      "decTest": "每层毒对敌人每秒成{0}%木属性伤害,{1}层毒时毒气会入侵五脏,敌人每使用一次功法对应功法的伤势增加1",
       "icon": "icon_b1003",
       "buffName": 10723,
       "buffEffectDes": 10756,
@@ -65,7 +65,7 @@
     {
       "ID": 10051,
       "nameTest": "灼热",
-      "decTest": "对敌人成{0}火属性灼烧伤害,满层时敌人会受到痛苦,敌人使用功法时自身受到当前生命{1}%伤害",
+      "decTest": "对敌人成{0}火属性灼烧伤害,满层时敌人会受到痛苦,敌人使用功法时自身受到当前生命{1}%伤害",
       "icon": "icon_b1005",
       "buffName": 10725,
       "buffEffectDes": 10758,
@@ -248,7 +248,7 @@
     {
       "ID": 10161,
       "nameTest": "冰魄牢域",
-      "decTest": "乌龟的技能,神龟的所有主动伤害型技能命中目标后都会施加一层寒气,\n寒气每叠到{0}层时,消耗所有层寒气对敌人成{0}秒的冰冻效果",
+      "decTest": "乌龟的技能,神龟的所有主动伤害型技能命中目标后都会施加一层寒气,\n寒气每叠到{0}层时,消耗所有层寒气对敌人成{0}秒的冰冻效果",
       "icon": "icon_b1016",
       "buffName": 10736,
       "buffEffectDes": 10769,

+ 1 - 1
Assets/Res/Config/EventConfig.json

@@ -6382,7 +6382,7 @@
         3
       ],
       "EventValue": [
-        30023,
+        9141,
         101
       ],
       "EventName": 4277,

+ 47 - 31
Assets/Res/Config/LanguageChineseConfig.json

@@ -2866,7 +2866,7 @@
     },
     {
       "ID": 717,
-      "txt": "伤害很高)(前摇时间长):很多剑从远处汇聚到boss周围,然后以一字行快速贯穿目标对目标成{0}伤害,每命中目标肉体{1}次防御削减{2}%,目标肉体{3}次所有伤势+{4}  \n,如果目标上有剑毅,每丙剑消耗{5}层剑毅让敌人受到{6}额外的伤害"
+      "txt": "伤害很高)(前摇时间长):很多剑从远处汇聚到boss周围,然后以一字行快速贯穿目标对目标成{0}伤害,每命中目标肉体{1}次防御削减{2}%,目标肉体{3}次所有伤势+{4}  \n,如果目标上有剑毅,每丙剑消耗{5}层剑毅让敌人受到{6}额外的伤害"
     },
     {
       "ID": 718,
@@ -2878,11 +2878,11 @@
     },
     {
       "ID": 720,
-      "txt": "发射2丙剑,对敌人成{0}伤害"
+      "txt": "发射2丙剑,对敌人成{0}伤害"
     },
     {
       "ID": 721,
-      "txt": "发射2丙剑,对敌人成{0}伤害"
+      "txt": "发射2丙剑,对敌人成{0}伤害"
     },
     {
       "ID": 722,
@@ -7986,19 +7986,19 @@
     },
     {
       "ID": 1997,
-      "txt": "赠送铜钱"
+      "txt": "赠送灵石"
     },
     {
       "ID": 1998,
-      "txt": "赠送铜钱"
+      "txt": "赠送灵石"
     },
     {
       "ID": 1999,
-      "txt": "赠送铜钱"
+      "txt": "赠送灵石"
     },
     {
       "ID": 2000,
-      "txt": "赠送铜钱"
+      "txt": "赠送灵石"
     },
     {
       "ID": 2001,
@@ -8018,19 +8018,19 @@
     },
     {
       "ID": 2005,
-      "txt": "赠送灵"
+      "txt": "赠送灵"
     },
     {
       "ID": 2006,
-      "txt": "赠送灵"
+      "txt": "赠送灵"
     },
     {
       "ID": 2007,
-      "txt": "赠送灵"
+      "txt": "赠送灵"
     },
     {
       "ID": 2008,
-      "txt": "赠送灵"
+      "txt": "赠送灵"
     },
     {
       "ID": 2009,
@@ -8050,19 +8050,19 @@
     },
     {
       "ID": 2013,
-      "txt": "这位道友离开时会给与玩家少量铜钱奖励"
+      "txt": "这位道友离开时会给与玩家少量灵石奖励"
     },
     {
       "ID": 2014,
-      "txt": "这位道友离开时会给与玩家一些铜钱奖励"
+      "txt": "这位道友离开时会给与玩家一些灵石奖励"
     },
     {
       "ID": 2015,
-      "txt": "这位道友离开时会给与玩家很多铜钱奖励"
+      "txt": "这位道友离开时会给与玩家很多灵石奖励"
     },
     {
       "ID": 2016,
-      "txt": "这位道友离开时会给与玩家丰厚铜钱奖励"
+      "txt": "这位道友离开时会给与玩家丰厚灵石奖励"
     },
     {
       "ID": 2017,
@@ -8082,19 +8082,19 @@
     },
     {
       "ID": 2021,
-      "txt": "这位道友离开时会给与玩家少量法宝灵奖励"
+      "txt": "这位道友离开时会给与玩家少量法宝灵奖励"
     },
     {
       "ID": 2022,
-      "txt": "这位道友离开时会给与玩家一些法宝灵奖励"
+      "txt": "这位道友离开时会给与玩家一些法宝灵奖励"
     },
     {
       "ID": 2023,
-      "txt": "这位道友离开时会给与玩家很多法宝灵奖励"
+      "txt": "这位道友离开时会给与玩家很多法宝灵奖励"
     },
     {
       "ID": 2024,
-      "txt": "这位道友离开时会给与玩家丰厚法宝灵奖励"
+      "txt": "这位道友离开时会给与玩家丰厚法宝灵奖励"
     },
     {
       "ID": 2025,
@@ -12126,7 +12126,7 @@
     },
     {
       "ID": 3032,
-      "txt": "毒专精:毒成的伤害+{0}%,且蔓延速度加快{1}%"
+      "txt": "毒专精:毒成的伤害+{0}%,且蔓延速度加快{1}%"
     },
     {
       "ID": 3033,
@@ -12546,7 +12546,7 @@
     },
     {
       "ID": 3137,
-      "txt": "星辰道启动期间释放的功法带有星辰之力,对敌人额外成30%当前伤害"
+      "txt": "星辰道启动期间释放的功法带有星辰之力,对敌人额外成30%当前伤害"
     },
     {
       "ID": 3138,
@@ -12582,7 +12582,7 @@
     },
     {
       "ID": 3146,
-      "txt": "毒成的伤害+2%,且蔓延速度加快5%"
+      "txt": "毒成的伤害+2%,且蔓延速度加快5%"
     },
     {
       "ID": 3147,
@@ -12602,7 +12602,7 @@
     },
     {
       "ID": 3151,
-      "txt": "毒成的伤害+1%,且蔓延速度加快2%"
+      "txt": "毒成的伤害+1%,且蔓延速度加快2%"
     },
     {
       "ID": 3152,
@@ -37878,7 +37878,7 @@
     },
     {
       "ID": 10210,
-      "txt": "功法数量:{0}/{1}"
+      "txt": "主动功法:{0}/{1}"
     },
     {
       "ID": 10211,
@@ -39198,19 +39198,19 @@
     },
     {
       "ID": 10540,
-      "txt": "毒成的伤害+3%,且蔓延速度加快10%"
+      "txt": "毒成的伤害+3%,且蔓延速度加快10%"
     },
     {
       "ID": 10541,
-      "txt": "毒成的伤害+4%,且蔓延速度加快15%"
+      "txt": "毒成的伤害+4%,且蔓延速度加快15%"
     },
     {
       "ID": 10542,
-      "txt": "毒成的伤害+5%,且蔓延速度加快20%"
+      "txt": "毒成的伤害+5%,且蔓延速度加快20%"
     },
     {
       "ID": 10543,
-      "txt": "毒成的伤害+6%,且蔓延速度加快25%"
+      "txt": "毒成的伤害+6%,且蔓延速度加快25%"
     },
     {
       "ID": 10544,
@@ -40062,7 +40062,7 @@
     },
     {
       "ID": 10756,
-      "txt": "每层毒对敌人每秒成{0}%木属性伤害,{1}层毒时毒气会入侵五脏,敌人每使用一次功法对应功法的伤势增加1"
+      "txt": "每层毒对敌人每秒成{0}%木属性伤害,{1}层毒时毒气会入侵五脏,敌人每使用一次功法对应功法的伤势增加1"
     },
     {
       "ID": 10757,
@@ -40070,7 +40070,7 @@
     },
     {
       "ID": 10758,
-      "txt": "对敌人成{0}火属性灼烧伤害,满层时敌人会受到痛苦,敌人使用功法时自身受到当前生命{1}%伤害"
+      "txt": "对敌人成{0}火属性灼烧伤害,满层时敌人会受到痛苦,敌人使用功法时自身受到当前生命{1}%伤害"
     },
     {
       "ID": 10759,
@@ -40114,7 +40114,7 @@
     },
     {
       "ID": 10769,
-      "txt": "乌龟的技能,神龟的所有主动伤害型技能命中目标后都会施加一层寒气,\n寒气每叠到{0}层时,消耗所有层寒气对敌人成{0}秒的冰冻效果"
+      "txt": "乌龟的技能,神龟的所有主动伤害型技能命中目标后都会施加一层寒气,\n寒气每叠到{0}层时,消耗所有层寒气对敌人成{0}秒的冰冻效果"
     },
     {
       "ID": 10770,
@@ -40303,6 +40303,22 @@
     {
       "ID": 10816,
       "txt": "任务"
+    },
+    {
+      "ID": 10817,
+      "txt": "上传后覆盖远程记录,确认吗?"
+    },
+    {
+      "ID": 10818,
+      "txt": "下载后覆盖本地记录,确认吗?"
+    },
+    {
+      "ID": 10819,
+      "txt": "游戏已发布新版本,请前往您的应用商店下载新版本"
+    },
+    {
+      "ID": 10820,
+      "txt": "挂机修为已达上限."
     }
   ]
 }

+ 24 - 24
Assets/Res/Config/LanguageChineseConfig_skill.json

@@ -3318,27 +3318,27 @@
     },
     {
       "ID": 1190010,
-      "txt": "(前摇时间长):最多从汇聚10柄剑到自身周围,然后以一字行快速贯穿目标对目标成{0}%攻击力的伤害,每命中目标肉体{1}次将削减{2}%的防御,目标肉体{3}次则所有伤势+{4}  ,如果目标上有剑意,每柄剑消耗{5}层剑意让敌人受到额外{6}%的伤害"
+      "txt": "(前摇时间长):最多从汇聚10柄剑到自身周围,然后以一字行快速贯穿目标对目标成{0}%攻击力的伤害,每命中目标肉体{1}次将削减{2}%的防御,目标肉体{3}次则所有伤势+{4}  ,如果目标上有剑意,每柄剑消耗{5}层剑意让敌人受到额外{6}%的伤害"
     },
     {
       "ID": 1190011,
-      "txt": "(前摇时间长):最多从汇聚10柄剑到自身周围,然后以一字行快速贯穿目标对目标成{0}%攻击力的伤害,每命中目标肉体{1}次将削减{2}%的防御,目标肉体{3}次则所有伤势+{4}  ,如果目标上有剑意,每柄剑消耗{5}层剑意让敌人受到额外{6}%的伤害"
+      "txt": "(前摇时间长):最多从汇聚10柄剑到自身周围,然后以一字行快速贯穿目标对目标成{0}%攻击力的伤害,每命中目标肉体{1}次将削减{2}%的防御,目标肉体{3}次则所有伤势+{4}  ,如果目标上有剑意,每柄剑消耗{5}层剑意让敌人受到额外{6}%的伤害"
     },
     {
       "ID": 1190012,
-      "txt": "(前摇时间长):最多从汇聚10柄剑到自身周围,然后以一字行快速贯穿目标对目标成{0}%攻击力的伤害,每命中目标肉体{1}次将削减{2}%的防御,目标肉体{3}次则所有伤势+{4}  ,如果目标上有剑意,每柄剑消耗{5}层剑意让敌人受到额外{6}%的伤害"
+      "txt": "(前摇时间长):最多从汇聚10柄剑到自身周围,然后以一字行快速贯穿目标对目标成{0}%攻击力的伤害,每命中目标肉体{1}次将削减{2}%的防御,目标肉体{3}次则所有伤势+{4}  ,如果目标上有剑意,每柄剑消耗{5}层剑意让敌人受到额外{6}%的伤害"
     },
     {
       "ID": 1190013,
-      "txt": "(前摇时间长):最多从汇聚10柄剑到自身周围,然后以一字行快速贯穿目标对目标成{0}%攻击力的伤害,每命中目标肉体{1}次将削减{2}%的防御,目标肉体{3}次则所有伤势+{4}  ,如果目标上有剑意,每柄剑消耗{5}层剑意让敌人受到额外{6}%的伤害"
+      "txt": "(前摇时间长):最多从汇聚10柄剑到自身周围,然后以一字行快速贯穿目标对目标成{0}%攻击力的伤害,每命中目标肉体{1}次将削减{2}%的防御,目标肉体{3}次则所有伤势+{4}  ,如果目标上有剑意,每柄剑消耗{5}层剑意让敌人受到额外{6}%的伤害"
     },
     {
       "ID": 1190014,
-      "txt": "(前摇时间长):最多从汇聚10柄剑到自身周围,然后以一字行快速贯穿目标对目标成{0}%攻击力的伤害,每命中目标肉体{1}次将削减{2}%的防御,目标肉体{3}次则所有伤势+{4}  ,如果目标上有剑意,每柄剑消耗{5}层剑意让敌人受到额外{6}%的伤害"
+      "txt": "(前摇时间长):最多从汇聚10柄剑到自身周围,然后以一字行快速贯穿目标对目标成{0}%攻击力的伤害,每命中目标肉体{1}次将削减{2}%的防御,目标肉体{3}次则所有伤势+{4}  ,如果目标上有剑意,每柄剑消耗{5}层剑意让敌人受到额外{6}%的伤害"
     },
     {
       "ID": 1190015,
-      "txt": "(前摇时间长):最多从汇聚10柄剑到自身周围,然后以一字行快速贯穿目标对目标成{0}%攻击力的伤害,每命中目标肉体{1}次将削减{2}%的防御,目标肉体{3}次则所有伤势+{4}  ,如果目标上有剑意,每柄剑消耗{5}层剑意让敌人受到额外{6}%的伤害"
+      "txt": "(前摇时间长):最多从汇聚10柄剑到自身周围,然后以一字行快速贯穿目标对目标成{0}%攻击力的伤害,每命中目标肉体{1}次将削减{2}%的防御,目标肉体{3}次则所有伤势+{4}  ,如果目标上有剑意,每柄剑消耗{5}层剑意让敌人受到额外{6}%的伤害"
     },
     {
       "ID": 1190020,
@@ -3370,51 +3370,51 @@
     },
     {
       "ID": 1190040,
-      "txt": "发射3柄剑,对敌人成{0}%攻击力的伤害"
+      "txt": "发射3柄剑,对敌人成{0}%攻击力的伤害"
     },
     {
       "ID": 1190041,
-      "txt": "发射3柄剑,对敌人成{0}%攻击力的伤害"
+      "txt": "发射3柄剑,对敌人成{0}%攻击力的伤害"
     },
     {
       "ID": 1190042,
-      "txt": "发射3柄剑,对敌人成{0}%攻击力的伤害"
+      "txt": "发射3柄剑,对敌人成{0}%攻击力的伤害"
     },
     {
       "ID": 1190043,
-      "txt": "发射3柄剑,对敌人成{0}%攻击力的伤害"
+      "txt": "发射3柄剑,对敌人成{0}%攻击力的伤害"
     },
     {
       "ID": 1190044,
-      "txt": "发射3柄剑,对敌人成{0}%攻击力的伤害"
+      "txt": "发射3柄剑,对敌人成{0}%攻击力的伤害"
     },
     {
       "ID": 1190045,
-      "txt": "发射3柄剑,对敌人成{0}%攻击力的伤害"
+      "txt": "发射3柄剑,对敌人成{0}%攻击力的伤害"
     },
     {
       "ID": 1190050,
-      "txt": "发射3柄剑,对敌人成{0}%攻击力的伤害"
+      "txt": "发射3柄剑,对敌人成{0}%攻击力的伤害"
     },
     {
       "ID": 1190051,
-      "txt": "发射3柄剑,对敌人成{0}%攻击力的伤害"
+      "txt": "发射3柄剑,对敌人成{0}%攻击力的伤害"
     },
     {
       "ID": 1190052,
-      "txt": "发射3柄剑,对敌人成{0}%攻击力的伤害"
+      "txt": "发射3柄剑,对敌人成{0}%攻击力的伤害"
     },
     {
       "ID": 1190053,
-      "txt": "发射3柄剑,对敌人成{0}%攻击力的伤害"
+      "txt": "发射3柄剑,对敌人成{0}%攻击力的伤害"
     },
     {
       "ID": 1190054,
-      "txt": "发射3柄剑,对敌人成{0}%攻击力的伤害"
+      "txt": "发射3柄剑,对敌人成{0}%攻击力的伤害"
     },
     {
       "ID": 1190055,
-      "txt": "发射3柄剑,对敌人成{0}%攻击力的伤害"
+      "txt": "发射3柄剑,对敌人成{0}%攻击力的伤害"
     },
     {
       "ID": 1190110,
@@ -3466,27 +3466,27 @@
     },
     {
       "ID": 1190130,
-      "txt": "凤凰在血量还剩{0}%的时触发,寒气笼罩自身5秒,期间凤凰免疫任何伤害,并慢慢回血,直到恢复满,恢复满后凤凰所有灵根增加{1}。冰块爆开,生成一个冲击波,对当前场上所有的弹道成当前强度的强度攻击(强度不够的弹道会被摧毁),生成{2}枚冰锥冲向敌人造成{3}%攻击力的伤害"
+      "txt": "凤凰在血量还剩{0}%的时触发,寒气笼罩自身5秒,期间凤凰免疫任何伤害,并慢慢回血,直到恢复满,恢复满后凤凰所有灵根增加{1}。冰块爆开,生成一个冲击波,对当前场上所有的弹道成当前强度的强度攻击(强度不够的弹道会被摧毁),生成{2}枚冰锥冲向敌人造成{3}%攻击力的伤害"
     },
     {
       "ID": 1190131,
-      "txt": "凤凰在血量还剩{0}%的时触发,寒气笼罩自身5秒,期间凤凰免疫任何伤害,并慢慢回血,直到恢复满,恢复满后凤凰所有灵根增加{1}。冰块爆开,生成一个冲击波,对当前场上所有的弹道成当前强度的强度攻击(强度不够的弹道会被摧毁),生成{2}枚冰锥冲向敌人造成{3}%攻击力的伤害"
+      "txt": "凤凰在血量还剩{0}%的时触发,寒气笼罩自身5秒,期间凤凰免疫任何伤害,并慢慢回血,直到恢复满,恢复满后凤凰所有灵根增加{1}。冰块爆开,生成一个冲击波,对当前场上所有的弹道成当前强度的强度攻击(强度不够的弹道会被摧毁),生成{2}枚冰锥冲向敌人造成{3}%攻击力的伤害"
     },
     {
       "ID": 1190132,
-      "txt": "凤凰在血量还剩{0}%的时触发,寒气笼罩自身5秒,期间凤凰免疫任何伤害,并慢慢回血,直到恢复满,恢复满后凤凰所有灵根增加{1}。冰块爆开,生成一个冲击波,对当前场上所有的弹道成当前强度的强度攻击(强度不够的弹道会被摧毁),生成{2}枚冰锥冲向敌人造成{3}%攻击力的伤害"
+      "txt": "凤凰在血量还剩{0}%的时触发,寒气笼罩自身5秒,期间凤凰免疫任何伤害,并慢慢回血,直到恢复满,恢复满后凤凰所有灵根增加{1}。冰块爆开,生成一个冲击波,对当前场上所有的弹道成当前强度的强度攻击(强度不够的弹道会被摧毁),生成{2}枚冰锥冲向敌人造成{3}%攻击力的伤害"
     },
     {
       "ID": 1190133,
-      "txt": "凤凰在血量还剩{0}%的时触发,寒气笼罩自身5秒,期间凤凰免疫任何伤害,并慢慢回血,直到恢复满,恢复满后凤凰所有灵根增加{1}。冰块爆开,生成一个冲击波,对当前场上所有的弹道成当前强度的强度攻击(强度不够的弹道会被摧毁),生成{2}枚冰锥冲向敌人造成{3}%攻击力的伤害"
+      "txt": "凤凰在血量还剩{0}%的时触发,寒气笼罩自身5秒,期间凤凰免疫任何伤害,并慢慢回血,直到恢复满,恢复满后凤凰所有灵根增加{1}。冰块爆开,生成一个冲击波,对当前场上所有的弹道成当前强度的强度攻击(强度不够的弹道会被摧毁),生成{2}枚冰锥冲向敌人造成{3}%攻击力的伤害"
     },
     {
       "ID": 1190134,
-      "txt": "凤凰在血量还剩{0}%的时触发,寒气笼罩自身5秒,期间凤凰免疫任何伤害,并慢慢回血,直到恢复满,恢复满后凤凰所有灵根增加{1}。冰块爆开,生成一个冲击波,对当前场上所有的弹道成当前强度的强度攻击(强度不够的弹道会被摧毁),生成{2}枚冰锥冲向敌人造成{3}%攻击力的伤害"
+      "txt": "凤凰在血量还剩{0}%的时触发,寒气笼罩自身5秒,期间凤凰免疫任何伤害,并慢慢回血,直到恢复满,恢复满后凤凰所有灵根增加{1}。冰块爆开,生成一个冲击波,对当前场上所有的弹道成当前强度的强度攻击(强度不够的弹道会被摧毁),生成{2}枚冰锥冲向敌人造成{3}%攻击力的伤害"
     },
     {
       "ID": 1190135,
-      "txt": "凤凰在血量还剩{0}%的时触发,寒气笼罩自身5秒,期间凤凰免疫任何伤害,并慢慢回血,直到恢复满,恢复满后凤凰所有灵根增加{1}。冰块爆开,生成一个冲击波,对当前场上所有的弹道成当前强度的强度攻击(强度不够的弹道会被摧毁),生成{2}枚冰锥冲向敌人造成{3}%攻击力的伤害"
+      "txt": "凤凰在血量还剩{0}%的时触发,寒气笼罩自身5秒,期间凤凰免疫任何伤害,并慢慢回血,直到恢复满,恢复满后凤凰所有灵根增加{1}。冰块爆开,生成一个冲击波,对当前场上所有的弹道成当前强度的强度攻击(强度不够的弹道会被摧毁),生成{2}枚冰锥冲向敌人造成{3}%攻击力的伤害"
     },
     {
       "ID": 1190140,

+ 20 - 20
Assets/Res/Config/SentimentEffectConfig.json

@@ -127,8 +127,8 @@
       "icon": "icon",
       "massge": 3141,
       "pos": 1,
-      "lastSentimentEffectId": -1,
-      "unlockLevel": 0,
+      "lastSentimentEffectId": 1,
+      "unlockLevel": 1,
       "effectType": 1,
       "effectVale": [
         2
@@ -144,8 +144,8 @@
       "icon": "icon",
       "massge": 10520,
       "pos": 1,
-      "lastSentimentEffectId": -1,
-      "unlockLevel": 0,
+      "lastSentimentEffectId": 1,
+      "unlockLevel": 1,
       "effectType": 1,
       "effectVale": [
         3
@@ -161,8 +161,8 @@
       "icon": "icon",
       "massge": 10521,
       "pos": 1,
-      "lastSentimentEffectId": -1,
-      "unlockLevel": 0,
+      "lastSentimentEffectId": 1,
+      "unlockLevel": 1,
       "effectType": 1,
       "effectVale": [
         4
@@ -178,8 +178,8 @@
       "icon": "icon",
       "massge": 10522,
       "pos": 1,
-      "lastSentimentEffectId": -1,
-      "unlockLevel": 0,
+      "lastSentimentEffectId": 1,
+      "unlockLevel": 1,
       "effectType": 1,
       "effectVale": [
         5
@@ -195,8 +195,8 @@
       "icon": "icon",
       "massge": 10523,
       "pos": 1,
-      "lastSentimentEffectId": -1,
-      "unlockLevel": 0,
+      "lastSentimentEffectId": 1,
+      "unlockLevel": 1,
       "effectType": 1,
       "effectVale": [
         6
@@ -297,8 +297,8 @@
       "icon": "icon",
       "massge": 3143,
       "pos": 3,
-      "lastSentimentEffectId": -1,
-      "unlockLevel": 0,
+      "lastSentimentEffectId": 1,
+      "unlockLevel": 1,
       "effectType": 7,
       "effectVale": [
         2
@@ -314,8 +314,8 @@
       "icon": "icon",
       "massge": 10528,
       "pos": 3,
-      "lastSentimentEffectId": -1,
-      "unlockLevel": 0,
+      "lastSentimentEffectId": 1,
+      "unlockLevel": 1,
       "effectType": 7,
       "effectVale": [
         3
@@ -331,8 +331,8 @@
       "icon": "icon",
       "massge": 10529,
       "pos": 3,
-      "lastSentimentEffectId": -1,
-      "unlockLevel": 0,
+      "lastSentimentEffectId": 1,
+      "unlockLevel": 1,
       "effectType": 7,
       "effectVale": [
         4
@@ -348,8 +348,8 @@
       "icon": "icon",
       "massge": 10530,
       "pos": 3,
-      "lastSentimentEffectId": -1,
-      "unlockLevel": 0,
+      "lastSentimentEffectId": 1,
+      "unlockLevel": 1,
       "effectType": 7,
       "effectVale": [
         5
@@ -365,8 +365,8 @@
       "icon": "icon",
       "massge": 10531,
       "pos": 3,
-      "lastSentimentEffectId": -1,
-      "unlockLevel": 0,
+      "lastSentimentEffectId": 1,
+      "unlockLevel": 1,
       "effectType": 7,
       "effectVale": [
         6

+ 1 - 1
Assets/Res/UI/Canvas/Canvas.prefab

@@ -262,7 +262,7 @@ MonoBehaviour:
   m_ScaleFactor: 1
   m_ReferenceResolution: {x: 750, y: 1624}
   m_ScreenMatchMode: 0
-  m_MatchWidthOrHeight: 1
+  m_MatchWidthOrHeight: 0
   m_PhysicalUnit: 3
   m_FallbackScreenDPI: 96
   m_DefaultSpriteDPI: 96

+ 4 - 4
Assets/Scenes/testCombat.scene

@@ -156,7 +156,7 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   ShaderVariantCollection: {fileID: 20000000, guid: 3536136831feec548bbaa7febad775f8, type: 2}
-  LoadType: 1
+  LoadType: 0
   h5Url: http://127.0.0.1:8000
   isOpenHotFix: 0
   isLoadDll: 0
@@ -773,7 +773,7 @@ MonoBehaviour:
   m_ScaleFactor: 1
   m_ReferenceResolution: {x: 750, y: 1624}
   m_ScreenMatchMode: 0
-  m_MatchWidthOrHeight: 1
+  m_MatchWidthOrHeight: 0
   m_PhysicalUnit: 3
   m_FallbackScreenDPI: 96
   m_DefaultSpriteDPI: 96
@@ -1237,7 +1237,7 @@ MonoBehaviour:
   m_OnValueChanged:
     m_PersistentCalls:
       m_Calls: []
---- !u!213 &1477443412
+--- !u!213 &1555479024
 Sprite:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
@@ -1510,7 +1510,7 @@ MonoBehaviour:
   m_OnCullStateChanged:
     m_PersistentCalls:
       m_Calls: []
-  m_Sprite: {fileID: 1477443412}
+  m_Sprite: {fileID: 1555479024}
   m_Type: 0
   m_PreserveAspect: 0
   m_FillCenter: 1

+ 23 - 7
Assets/Scripts/Core/Editor/BuildEtitor/BuildEditor.cs

@@ -10,6 +10,7 @@ using ICSharpCode.SharpZipLib.Checksum;
 using ICSharpCode.SharpZipLib.Zip;
 using UnityEditor;
 using UnityEngine;
+using UnityFS;
 
 namespace Fort23.Editor
 {
@@ -133,10 +134,9 @@ namespace Fort23.Editor
         private static void Build(PlatformType type, BuildAssetBundleOptions buildAssetBundleOptions,
             BuildOptions buildOptions, bool isBuildExe, bool isContainAB, bool clearFolder)
         {
-           
             AssetDatabase.Refresh();
             var buildTarget = BuildTarget.StandaloneWindows;
-            var exeName = "release";
+            var exeName = Application.version;
             switch (type)
             {
                 case PlatformType.PC:
@@ -158,7 +158,7 @@ namespace Fort23.Editor
                     break;
             }
 
-         
+
             var build = string.Format(buildFolder, type,
                 $"{1}.{1}.{1}");
             string bundlePath = string.Format(bundleFolder, type);
@@ -196,7 +196,7 @@ namespace Fort23.Editor
             AssetBundleEditor.BuildAllBundle(buildTarget);
             LogTool.Log("资源标记完成");
             AssetBundleBuild[] buildMap = new AssetBundleBuild[1];
-            
+
             BuildPipeline.BuildAssetBundles(bundlePath, buildAssetBundleOptions, buildTarget);
             var assetMd5Info = new AssetMD5Info(new List<MD5FileInfo>());
             var allBundles = Directory.GetFiles(bundlePath);
@@ -208,7 +208,7 @@ namespace Fort23.Editor
                 string fileName = fileInfo.Name;
                 if (fileInfo.Name.Equals("UnityBundle"))
                 {
-                    fileName="UnityBundle.unity3d";
+                    fileName = "UnityBundle.unity3d";
                 }
 
                 // data = DllTool.KeyEncryption(data);
@@ -245,7 +245,6 @@ namespace Fort23.Editor
                 md5Info.size = fileInfo.Length;
                 md5Info.fileName = Path.GetFileName(assetConfigPath);
                 assetMd5Info.fileInfo.Add(md5Info);
-                
             }
 
             LogTool.Log("完成资源打包");
@@ -277,11 +276,28 @@ namespace Fort23.Editor
 
             if (isBuildExe)
             {
+                string path = $"{relativeDirPrefix}/{Application.version}";
+                string apkPath = $"{path}/{exeName}";
                 AssetDatabase.Refresh();
                 LogTool.Log("开始EXE打包");
                 SaveGroup();
-                BuildPipeline.BuildPlayer(EditorBuildSettings.scenes, $"{relativeDirPrefix}/{exeName}", buildTarget, buildOptions);
+                BuildPipeline.BuildPlayer(EditorBuildSettings.scenes, apkPath, buildTarget, buildOptions);
                 LogTool.Log("完成exe打包");
+                var assetMd5Info1 = new AssetMD5Info(new List<MD5FileInfo>());
+                var md5Info = new MD5FileInfo();
+                using (FileStream file = new FileStream(apkPath, FileMode.Open))
+                {
+                    md5Info.size = file.Length;
+                    var data = file.ReadAllBytes();
+                    md5Info.md5 = MD5Helper.FileMD5(data);
+                }
+
+                md5Info.fileName = Path.GetFileName(apkPath);
+                assetMd5Info1.fileInfo.Add(md5Info);
+
+                var md5Json1 = JsonHelper.ToJson(assetMd5Info1);
+                File.WriteAllText(path + "/MD5.txt", md5Json1);
+
                 string url = Application.dataPath.Split("Assets")[0] + relativeDirPrefix.Split("./")[1];
                 Application.OpenURL(url);
             }

+ 22 - 5
Assets/Scripts/Core/Editor/HybridCLR/BuildAssetsCommand.cs

@@ -23,7 +23,7 @@ namespace HybridCLR.Editor
             var build = Application.streamingAssetsPath + "/Dll/";
             if (Directory.Exists(build))
             {
-                Directory.Delete(build,true);
+                Directory.Delete(build, true);
             }
 
             Directory.CreateDirectory(build);
@@ -46,6 +46,8 @@ namespace HybridCLR.Editor
 
             var md5Json = JsonHelper.ToJson(assetMd5Info);
             File.WriteAllText(build + "DllMD5.txt", md5Json);
+
+
             LogTool.Log("MD5文件生成完成");
             PlatformType platformType;
 #if UNITY_ANDROID
@@ -59,8 +61,22 @@ namespace HybridCLR.Editor
 #else
 			platformType = PlatformType.None;
 #endif
-           // var build = Application.streamingAssetsPath;
-            // BuildAndCopyAOTHotUpdateDlls(build);
+
+
+            var build1 = string.Format(BuildEditor.buildDllFolder, platformType,
+                $"{1}.{1}.{1}");
+            foreach (var bundle in allBundles)
+            {
+                if (bundle.Contains(".manifest")) continue;
+                var fileInfo = new FileInfo(bundle);
+                byte[] data = File.ReadAllBytes(bundle);
+                string fileName = fileInfo.Name;
+                string p = build1 + fileName;
+
+                File.WriteAllBytes(p, data);
+            }
+
+            File.WriteAllText(build1 + "DllMD5.txt", md5Json);
             AssetDatabase.SaveAssets();
             AssetDatabase.Refresh();
         }
@@ -112,6 +128,7 @@ namespace HybridCLR.Editor
             {
                 Directory.CreateDirectory(buildDstDir);
             }
+
             BuildTarget target = EditorUserBuildSettings.activeBuildTarget;
             PrebuildCommandExt.CompileAndObfuscateDll();
             // ObfuscateUtil.CompileAndObfuscateHotUpdateAssemblies(target);
@@ -146,8 +163,8 @@ namespace HybridCLR.Editor
                 Debug.Log($"[CopyAOTAssembliesToStreamingAssets] copy AOT dll {srcDllPath} -> {dllBytesPath}");
             }
         }
-        
-        
+
+
         // [MenuItem("Build/CompileAndObfuscateAndCopyToStreamingAssets")]
         // public static void CompileAndObfuscateAndCopyToStreamingAssets()
         // {

+ 22 - 1
Assets/Scripts/Core/Log/LogServer.cs

@@ -16,12 +16,13 @@ public class LogServer : Singleton<LogServer>
     public string version;
     private string deviceModel;
     private string operatingSystem;
+    private Dictionary<string, float> _hashDic = new Dictionary<string, float>();
 
     public void Init(string gameName)
     {
         this.gameName = gameName;
         version = Application.version;
-        deviceModel = SystemInfo.deviceName + "  " + SystemInfo.deviceModel+"   "+SystemInfo.deviceUniqueIdentifier;
+        deviceModel = SystemInfo.deviceName + "  " + SystemInfo.deviceModel + "   " + SystemInfo.deviceUniqueIdentifier;
         operatingSystem = SystemInfo.operatingSystem;
     }
 
@@ -71,6 +72,26 @@ public class LogServer : Singleton<LogServer>
 
     private async Task UpdatToServer(LogServeData logServeData)
     {
+        float ct = Time.time;
+        if (_hashDic.Count > 200)
+        {
+            _hashDic.Clear();
+        }
+
+        if (_hashDic.TryGetValue(logServeData.hash, out float t))
+        {
+            if ((ct - t) < 10)
+            {
+                return;
+            }
+
+            _hashDic[logServeData.hash] = ct;
+        }
+        else
+        {
+            _hashDic.Add(logServeData.hash, t);
+        }
+
         string json = LitJson.JsonMapper.ToJson(logServeData);
         byte[] logData = Encoding.UTF8.GetBytes(json);
         using var httpClient = new HttpClient();

+ 1 - 1
Assets/Scripts/GameData/ExcelConfig/SentimentEffectConfig.cs

@@ -85,7 +85,7 @@ namespace Excel2Json
 		
 
 		/// <summary>
-		///前置条件 (-1是主属性)
+		///前置条件 (1是主属性)
 		/// </summary>
 #if !COMBAT_SERVER
 		public int lastSentimentEffectId;

+ 6 - 53
Assets/Scripts/GameLogic/Bag/BagController.cs

@@ -39,61 +39,9 @@ namespace GameLogic.Bag
             }
         }
 
-        #region 快速添加和扣除常用道具
 
-        /// <summary>
-        /// 加金币
-        /// </summary>
-        /// <param name="count"></param>
-        public void AddCoin(long count)
-        {
-            AddItem(GlobalParam.Item_Coin_ID, count);
-        }
 
-        /// <summary>
-        /// 扣金币
-        /// </summary>
-        /// <param name="count"></param>
-        public bool DeductCoin(long count)
-        {
-            return DeductItem(GlobalParam.Item_Coin_ID, count);
-        }
-
-        /// <summary>
-        /// 加钻石
-        /// </summary>
-        /// <param name="count"></param>
-        public void AddDiamond(long count)
-        {
-            AddItem(GlobalParam.Item_Diamond_ID, count);
-        }
 
-        /// <summary>
-        /// 扣钻石
-        /// </summary>
-        /// <param name="count"></param>
-        public bool DeductDiamond(long count)
-        {
-            return DeductItem(GlobalParam.Item_Diamond_ID, count);
-        }
-
-        /// <summary>
-        /// 加英雄经验
-        /// </summary>
-        /// <param name="count"></param>
-        public void AddHeroExp(long count)
-        {
-            AddItem(GlobalParam.Item_HeroExp_ID, count);
-        }
-
-        /// <summary>
-        /// 扣英雄经验
-        /// </summary>
-        /// <param name="count"></param>
-        public bool DuctHeroExp(long count)
-        {
-            return DeductItem(GlobalParam.Item_HeroExp_ID, count);
-        }
 
 
         /// <summary>
@@ -131,7 +79,6 @@ namespace GameLogic.Bag
             return IsEnough(item, count);
         }
 
-        #endregion
 
         public bool AddItem(int itemId, long count, string guid = "")
         {
@@ -195,10 +142,12 @@ namespace GameLogic.Bag
                 if (faaData != null)
                 {
                     // item.isSuiPian = true;
+                    //TODO 转碎片
                     return AddItem(item.config.associateVlaue[0], item.config.associateVlaue[2] * count);
                 }
                 else
                 {
+                    //TODO 完全体
                     faaData = new AccountFileInfo.FaBaoData();
                     faaData.id = item.config.associateVlaue[1];
                     faaData.level = 1;
@@ -218,10 +167,12 @@ namespace GameLogic.Bag
                 if (skillData != null)
                 {
                     // item.isSuiPian = true;
+                    //TODO 转碎片
                     return AddItem(item.config.associateVlaue[0], item.config.associateVlaue[2] * count);
                 }
                 else
                 {
+                    //TODO 完全体
                     skillData = new AccountFileInfo.SkillData();
                     skillData.id = item.config.associateVlaue[1];
                     skillData.star = 1;
@@ -243,6 +194,7 @@ namespace GameLogic.Bag
             }
             else if (item.config.itemTag == 9)
             {
+                //TODO 代金卷需要二次计算数量
                 return AddItem(item.config.associateVlaue[0], item.config.associateVlaue[1]);
             }
             else if (item.config.itemTag == 28)
@@ -270,6 +222,7 @@ namespace GameLogic.Bag
             {
                 if (item.count >= item.config.associateVlaue[0])
                 {
+                    //TODO 合成广告卡
                     AddItem(item.config.associateVlaue[1], 1);
                 }
             }

+ 5 - 1
Assets/Scripts/GameLogic/Combat/Buff/BuffBasic.cs

@@ -263,6 +263,11 @@ namespace GameLogic.Combat.Buff
 
         public void DelectBuff()
         {
+            if (combatHeroEntity == null || combatHeroEntity.BuffControl == null)
+            {
+                return;
+            }
+
             combatHeroEntity.BuffControl.RemoveBuff(this);
         }
 
@@ -276,7 +281,6 @@ namespace GameLogic.Combat.Buff
                 combatHeroEntity.BuffControl.RemoveBuff(this);
                 return;
             }
-           
 
 
             UpdateEffect();

+ 4 - 5
Assets/Scripts/GameLogic/Combat/Hero/CombatHeroEntity.cs

@@ -466,10 +466,9 @@ public class CombatHeroEntity : ShowBaiscEntity, ITimeLineAnimtion, ITimeLineGet
         }
         heroMagicWeaponControl?.Dispose();
         _isDis = true;
-        BuffControl.Dispose();
-        _isDis = true;
 
         CombatHeroSkillControl.Dispose();
+        BuffControl.Dispose();
         CombatAIBasic.Dispose();
         combatHeroTimeLineControl.Dispose();
         combatHeroAnimtion.Dispose();
@@ -487,11 +486,11 @@ public class CombatHeroEntity : ShowBaiscEntity, ITimeLineAnimtion, ITimeLineGet
         }
         heroMagicWeaponControl?.Dispose();
         _isDis = true;
-        BuffControl.Dispose();
+       
         combatHeroGameObject.Dispose();
         isDie = true;
         CombatHeroSkillControl.Dispose();
-
+        BuffControl.Dispose();
         CombatAIBasic.Dispose();
         combatHeroTimeLineControl.Dispose();
         combatHeroAnimtion.Dispose();
@@ -503,7 +502,7 @@ public class CombatHeroEntity : ShowBaiscEntity, ITimeLineAnimtion, ITimeLineGet
 
     private void ProDormancyObj()
     {
-        CombatHeroSkillControl.ProDormancyObj();
+        CombatHeroSkillControl?.ProDormancyObj();
     }
 
     public override void ActiveObj()

+ 25 - 2
Assets/Scripts/GameLogic/Hero/HeroInfo.cs

@@ -74,9 +74,9 @@ namespace GameLogic.Hero
             Dictionary<string, object> dictionary = new Dictionary<string, object>();
             dictionary.Add("JingJie", heroData.heroPowerId.ToString());
             DBManager.Instance.CustomEvent("Hero_levelup", dictionary);
-            int currentMiao = (int)((TimeHelper.ClientNow() - PlayerManager.Instance.myHero.heroData.upTime) / 1000);
 
-            float allexp = currentMiao * PlayerManager.Instance.myHero.powerUpConfig.AutoXiuwei;
+
+            float allexp = GetGuaJiExp();
             heroData.exp += allexp;
             heroData.exp -= powerUpConfig.levelUpExp;
             heroData.upTime = TimeHelper.ClientNow();
@@ -90,6 +90,29 @@ namespace GameLogic.Hero
             return this;
         }
 
+        public float GetGuaJiExp()
+        {
+            int currentMiao = (int)((TimeHelper.ClientNow() - PlayerManager.Instance.myHero.heroData.upTime) / 1000);
+            currentMiao = currentMiao > PlayerManager.Instance.gameConstantConfig.offlineexpMaxTime
+                ? PlayerManager.Instance.gameConstantConfig.offlineexpMaxTime
+                : currentMiao;
+            float allexp = currentMiao * PlayerManager.Instance.myHero.powerUpConfig.AutoXiuwei;
+            return allexp;
+        }
+        
+        public float GetAllExp()
+        {
+
+            return GetGuaJiExp() + heroData.exp;
+        }
+    
+
+        public bool IsGuaijiShangXian()
+        {
+            int currentMiao = (int)((TimeHelper.ClientNow() - PlayerManager.Instance.myHero.heroData.upTime) / 1000);
+           return currentMiao >= PlayerManager.Instance.gameConstantConfig.offlineexpMaxTime;
+        }
+
         public void GetDaoLvBl()
         {
             daolvBl.Clear();

+ 8 - 1
Assets/Scripts/GameLogic/Player/PlayerManager.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.IO;
 using System.Linq;
 using Core.Audio;
 using Core.Language;
@@ -79,7 +80,7 @@ public class PlayerManager : Singleton<PlayerManager>
     public void Init()
     {
         AccountFileInfo.Instance.LoadPlayerData();
-        LogServer.Instance.playerID= AccountFileInfo.Instance.playerData.playerId;
+        LogServer.Instance.playerID = AccountFileInfo.Instance.playerData.playerId;
         SetConfigs();
 
         InitGameData();
@@ -484,6 +485,12 @@ public class PlayerManager : Singleton<PlayerManager>
     {
         if (TimeHelper.ClientNow() > AccountFileInfo.Instance.playerData.nextRefence)
         {
+            //每天删一次日志
+            if (File.Exists(Path.Combine(Application.persistentDataPath, "GameLog.txt")))
+            {
+                File.Delete(Path.Combine(Application.persistentDataPath, "GameLog.txt"));
+            }
+
             AccountFileInfo.Instance.playerData.todayTotalAds = 0;
             AccountFileInfo.Instance.playerData.nextRefence =
                 TimeHelper.GetBaseRefreshTime(TimeHelper.ClientNow());

+ 3 - 1
Assets/Scripts/GameLogic/Player/SummonManager.cs

@@ -109,6 +109,7 @@ namespace GameLogic.Player
                         if (PlayerManager.Instance.BagController.IsEnough(openBoxConfig.CostItemID,
                                 openBoxConfig.oneConsume) || openBoxConfig.CostItemID == 1007)
                         {
+                            //TODO 消耗:抽功法 (count 1/10)
                             PlayerManager.Instance.BagController.DeductItem(openBoxConfig.CostItemID,
                                 openBoxConfig.oneConsume);
                         }
@@ -179,6 +180,7 @@ namespace GameLogic.Player
                         if (PlayerManager.Instance.BagController.IsEnough(openBoxConfig.CostItemID,
                                 openBoxConfig.tenConsume) || openBoxConfig.CostItemID == 1007)
                         {
+                            //TODO 消耗:抽功法 (count = 1 / 10)
                             PlayerManager.Instance.BagController.DeductItem(openBoxConfig.CostItemID,
                                 openBoxConfig.tenConsume);
                         }
@@ -250,7 +252,7 @@ namespace GameLogic.Player
                 // 检查是否触发保底2重置
                 CheckBaodi2Reset(summonData, normalItems, baodiItemSet);
             }
-
+//TODO 抽卡:通过openBoxConfig判断来源
             PlayerManager.Instance.BagController.AddItem(allItem);
 
 

+ 1 - 1
Assets/Scripts/GameLogic/RedDot/RedDotData.cs

@@ -153,7 +153,7 @@ namespace Fort23.Mono
                         case 1:
 
                             int currentMiao =
-                                (int)((TimeHelper.ClientNow() - PlayerManager.Instance.myHero.heroData.upTime) /
+                                (int)((PlayerManager.Instance.myHero.GetAllExp()) /
                                       1000);
 
                             float allexp = currentMiao * PlayerManager.Instance.myHero.powerUpConfig.AutoXiuwei;

+ 14 - 0
Assets/Scripts/GameLogic/SDK/DBManager.cs

@@ -1,5 +1,6 @@
 using System.Collections;
 using System.Collections.Generic;
+using GameLogic.Bag;
 using UnityEngine;
 using Utility;
 
@@ -27,5 +28,18 @@ public class DBManager : Singleton<DBManager>
     {
         
     }
+
+    public void GetItems(string source, List<ItemInfo> items)
+    {
+        Dictionary<string, object> properties = null;
+        CustomEvent("#get_items", properties);
+    }
+
+    public void CostItems(string source, List<ItemInfo> items)
+    {
+        Dictionary<string, object> properties = null;
+        CustomEvent("#cost_items", properties);
+        
+    }
     
 }

+ 2 - 1
Assets/Scripts/GameLogic/Shop/ShopManger.cs

@@ -317,6 +317,7 @@ public class ShopManger : Singleton<ShopManger>
         }
         else
         {
+            //TODO 消耗:商店购买 (ps:可能是其他UI直购,比如神识丹,暂时可以忽略)
             if (PlayerManager.Instance.BagController.DeductItem(shopItemConfig.costItemId,
                     shopItemConfig.price * count))
             {
@@ -334,7 +335,7 @@ public class ShopManger : Singleton<ShopManger>
 
                 itemList.Add(itemInfo);
             }
-
+//TODO 抽卡:商店购买
             PlayerManager.Instance.BagController.AddItem(itemList);
             //更新商店数据
             AccountFileInfo.Instance.SavePlayerData();

+ 1 - 1
Assets/Scripts/GameUI/Combat/CombatDrive.cs

@@ -119,7 +119,7 @@ namespace GameLogic.Combat
 
         protected async void CombatFinish(bool isWin)
         {
-            UIManager.Instance.HideUIUIPanel<CombatHPPanel>();
+            
             await LoadCombatFinishUI(isWin);
 
             // MainPanel mainPanel = UIManager.Instance.GetComponent<MainPanel>();

+ 1 - 0
Assets/Scripts/GameUI/Combat/LevelBattleCombatMono.cs

@@ -28,6 +28,7 @@ namespace GameUI.Combat
             await UIManager.Instance.HideUIUIPanel<CombatPanel>();
             CombatDrive.Instance.CombatToStage(CombatController.currActiveCombat.isWin);
             CombatController.currActiveCombat.ChangeState(CombatController.idle);
+            UIManager.Instance.HideUIUIPanel<CombatHPPanel>();
         }
     }
 }

+ 1 - 0
Assets/Scripts/GameUI/EventManager/DialogueManager.cs

@@ -276,6 +276,7 @@ public class DialogueManager : Singleton<DialogueManager>
             case 4:
                 for (var i = 0; i < dialogueConfig.optionPara1.Length; i++)
                 {
+                    //TODO 消耗:事件需求
                     PlayerManager.Instance.BagController.DeductItem(dialogueConfig.optionPara1[i],
                         dialogueConfig.optionPara2[i]);
                 }

+ 3 - 1
Assets/Scripts/GameUI/EventManager/EventSystemManager.cs

@@ -510,11 +510,13 @@ public class EventSystemManager : Singleton<EventSystemManager>
 
             if (itemInfoType1 != null)
             {
+                //TODO 消耗:神识符(概率)
                 PlayerManager.Instance.BagController.DeductItem(itemInfoType1.itemID, 1);
             }
 
             if (itemInfoType2 != null)
             {
+                //TODO 消耗:神识符箓(特定资源)
                 PlayerManager.Instance.BagController.DeductItem(itemInfoType2.itemID, 1);
             }
 
@@ -1312,7 +1314,7 @@ public class EventSystemManager : Singleton<EventSystemManager>
             itemInfos.Add(new ItemInfo(eventListItemInfo));
         }
 
-
+//TODO 完成事件 (eventConfig)
         PlayerManager.Instance.BagController.AddItem(itemInfos);
 
 

+ 18 - 1
Assets/Scripts/GameUI/GameApplction.cs

@@ -48,7 +48,7 @@ public class GameApplction : IGameStart, ILogSend
     private GameStartUIPanel gameStartUIPanel;
     private System.Action LoadFinish;
 
-    private static string LogPath =>
+    public static string LogPath =>
         Path.Combine(Application.persistentDataPath, "GameLog.txt");
 
     private static readonly StringBuilder _cache = new StringBuilder();
@@ -56,6 +56,23 @@ public class GameApplction : IGameStart, ILogSend
     public async void StartGame(LoadType LoadType, string h5Url, GameStartUIPanel gameStartUIPanel,
         System.Action LoadFinish)
     {
+        // VersionChecker versionChecker = new VersionChecker();
+        // if (!await versionChecker.Start())
+        // {
+        //     bool isok = await TipsPanle.OpenPnael(10819);
+        //     if (isok)
+        //     {
+        //         versionChecker.OpenOtherApp("com.xmcy.hykb");
+        //     }
+        //     else
+        //     {
+        //         Application.Quit();
+        //     }
+        //
+        //     return;
+        // }
+
+
         Debug.Log("开始游戏逻辑");
         HotSyncContent.DownloadUI = gameStartUIPanel;
         this.LoadFinish = LoadFinish;

+ 2 - 5
Assets/Scripts/GameUI/UI/AppBarPanel/TitlePanel.cs

@@ -73,13 +73,10 @@ namespace Fort23.Mono
                 allexp += heroPowerUpConfig.levelUpExp;
             }
 
-            int currentMiao = (int)((TimeHelper.ClientNow() - PlayerManager.Instance.myHero.heroData.upTime) / 1000);
 
-            float heroAllexp = currentMiao * PlayerManager.Instance.myHero.powerUpConfig.AutoXiuwei;
-            heroAllexp = PlayerManager.Instance.myHero.heroData.exp + heroAllexp;
 
 
-            int bl = (int)((heroAllexp / allexp) * 100);
+            int bl = (int)((PlayerManager.Instance.myHero.GetAllExp() / allexp) * 100);
             bl = bl > 100 ? 100 : bl;
 
             Text_JingJie.text =
@@ -103,7 +100,7 @@ namespace Fort23.Mono
         [CustomMethod(CustomMethodType.Update)]
         public void Update()
         {
-            int currentMiao = (int)((TimeHelper.ClientNow() - PlayerManager.Instance.myHero.heroData.upTime) / 1000);
+            int currentMiao = (int)((PlayerManager.Instance.myHero.GetAllExp()) / 1000);
 
             float allexp = currentMiao * PlayerManager.Instance.myHero.powerUpConfig.AutoXiuwei;
 

+ 1 - 0
Assets/Scripts/GameUI/UI/BoxPanel/BoxPanel.cs

@@ -107,6 +107,7 @@ namespace Fort23.Mono
 
                 if (PlayerGuideManager.Instance.curPhase == 8 && openBoxConfig.ID == 2)
                 {
+                    //TODO 消耗:不记引导
                     PlayerManager.Instance.BagController.DeductItem(openBoxConfig.CostItemID, openBoxConfig.oneConsume);
 
                     var item = DropManager.Instance.DropItem(999011);

+ 2 - 0
Assets/Scripts/GameUI/UI/BoxPanel/GachaPanel.cs

@@ -98,7 +98,9 @@ namespace Fort23.Mono
                 foreach (var itemInfo in itemInfos)
                 {
                     ItemInfo itemInfo1 = new ItemInfo(itemInfo.itemID, (long)(itemInfo.count.Value * (beLv - 1)));
+                    //TODO 功法双倍奖励
                     PlayerManager.Instance.BagController.AddItem(itemInfo1);
+                    
                 }
 
                 if (itemInfos.Count == 1)

+ 1 - 1
Assets/Scripts/GameUI/UI/BoxPanel/OpenBoxScorePanel.cs

@@ -165,7 +165,7 @@ namespace Fort23.Mono
                 {
                     summonSocreData.currentCount = 0;
                 }
-
+                //TODO 200抽挑战后
                 PlayerManager.Instance.BagController.AddItem(itemInfos);
                 AccountFileInfo.Instance.SavePlayerData();
                 RewardsPanel.OpenPanel(itemInfos);

+ 13 - 0
Assets/Scripts/GameUI/UI/CombatPanel/HeroHpWidget.cs

@@ -144,6 +144,7 @@ namespace Fort23.Mono
                 }
 
                 buBetterList.Clear();
+                RemoveEvent();
                 if (string.IsNullOrEmpty(poolObjName))
                 {
                     return;
@@ -153,6 +154,18 @@ namespace Fort23.Mono
             }
         }
 
+        private void RemoveEvent()
+        {
+            CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroHpUpdate, HeroHpUpdateEventData);
+            CombatEventManager.Instance.RemoveEventListener(CombatEventType.ClearHeroHp, ClearHeroHp);
+            CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroDie, HeroDie);
+            CombatEventManager.Instance.RemoveEventListener(CombatEventType.AddBuff,
+                AddBuff);
+            CombatEventManager.Instance.RemoveEventListener(CombatEventType.RemoveBuff,
+                RemoveBuff);
+            StaticUpdater.Instance.RemoveRenderUpdateCallBack(Update);
+        }
+
         public void Init(CombatHeroEntity combatHeroEntity)
         {
             this.combatHeroEntity = combatHeroEntity;

+ 7 - 0
Assets/Scripts/GameUI/UI/CombatPanel/ZhuanPanPanel.cs

@@ -222,6 +222,7 @@ namespace Fort23.Mono
         public override void DelEvent()
         {
             StaticUpdater.Instance.RemoveLateUpdateCallBack(Update);
+            UIManager.Instance.DormancyAllGComponent<UseQuqueSkill>();
             CombatEventManager.Instance.RemoveEventListener(CombatEventType.UseSkill, UseSkill);
             CombatEventManager.Instance.RemoveEventListener(CombatEventType.ExercisesAlter, ExercisesAlter);
             CombatEventManager.Instance.RemoveEventListener(CombatEventType.TaoismSkillAlter, TaoismSkillAlter);
@@ -229,6 +230,12 @@ namespace Fort23.Mono
             CombatEventManager.Instance.RemoveEventListener(CombatEventType.UseSkillFinish, UseSkillFinish);
         }
 
+        public override void DestroyObj()
+        {
+            StaticUpdater.Instance.RemoveLateUpdateCallBack(Update);
+            base.DestroyObj();
+        }
+
         private async void UseSkillFinish(IEventData ieveData)
         {
             UseSkillFinishEventData eventData = ieveData as UseSkillFinishEventData;

+ 2 - 1
Assets/Scripts/GameUI/UI/DaoYouPanel/DaoYouInfoPanel.cs

@@ -143,6 +143,7 @@ namespace Fort23.Mono
                 //加好感
                 if (widgetItem1 != null && daoyouGiftConfig.ID != 0)
                 {
+                    //TODO 消耗:送礼给道友
                     PlayerManager.Instance.BagController.DeductItem(daoyouGiftConfig.ItemID, count);
 
 
@@ -198,7 +199,7 @@ namespace Fort23.Mono
                         TipMessagePanel.OpenTipMessagePanel("心情已经到最高");
                         return;
                     }
-
+                    //TODO 消耗:送礼给道友
                     PlayerManager.Instance.BagController.DeductItem(widgetItem1.itemInfo.itemID, count);
                     daoYouData.emotionValue += widgetItem1.itemInfo.config.associateVlaue[0];
 

+ 1 - 0
Assets/Scripts/GameUI/UI/DaoYouPanel/DaoYouLevelWidget.cs

@@ -52,6 +52,7 @@ namespace Fort23.Mono
                 daoYouData.awardLevels.Add(_daoyouLevelupConfig.ID);
                 if (items.Count > 0)
                 {
+                    //TODO 道友好感度 
                     PlayerManager.Instance.BagController.AddItem(items);
                     RewardsPanel.OpenPanel(items);
                 }

+ 3 - 1
Assets/Scripts/GameUI/UI/DivineSence/DivineSenceRestoredWidget.cs

@@ -64,6 +64,7 @@ namespace Fort23.Mono
                                 AccountFileInfo.Instance.playerData.divineSensePoint +=
                                     itemInfo.config.associateVlaue[0];
                                 EventManager.Instance.Dispatch(CustomEventType.DivineSensePointChange, null);
+                                //TODO 消耗:神识丹(代金卷直购)
                                 PlayerManager.Instance.BagController.DeductItem(itemInfo.config.ID, 1);
                             }
                         }
@@ -78,7 +79,7 @@ namespace Fort23.Mono
                         TipMessagePanel.OpenTipMessagePanel(833, Vector2.zero);
                     }
                 }
-                //世界使用道具
+                //直接使用道具
                 else
                 {
                     if (PlayerManager.Instance.BagController.IsEnough(itemConfig.ID, 1))
@@ -86,6 +87,7 @@ namespace Fort23.Mono
                         AudioManager.Instance.PlayAudio("ui_tycg.wav");
                         AccountFileInfo.Instance.playerData.divineSensePoint +=
                             itemConfig.associateVlaue[0];
+                        //TODO 消耗:神识丹(自有道具)
                         PlayerManager.Instance.BagController.DeductItem(itemConfig.ID, 1);
                         EventManager.Instance.Dispatch(CustomEventType.DivineSensePointChange, null);
                         UIManager.Instance.GetComponent<DivineSenceRestoredPanel>().CreatWidget();

+ 4 - 1
Assets/Scripts/GameUI/UI/GongFaUpgradePanel/GongFaUpgradePanel.cs

@@ -161,6 +161,7 @@ namespace Fort23.Mono
                 CustomInit(_skillInfo);
                 foreach (var keyValuePair in itemInfo)
                 {
+                    //TODO 功法重置
                     PlayerManager.Instance.BagController.AddItem(keyValuePair.Value);
                 }
 
@@ -194,7 +195,8 @@ namespace Fort23.Mono
             SkillConstant skillConstant = ConfigComponent.Instance.Get<SkillConstant>(itemConfig.quality);
 
             int count = skillConstant.SkillPromoteNeedPieceNum[_skillInfo.skillConfig.level - 1];
-
+            
+            //TODO 消耗:功法升星
             if (!PlayerManager.Instance.BagController.DeductItem(_skillInfo.skillConfig.PieceID, count))
             {
                 AudioManager.Instance.PlayAudio("ui_chaozuoshibai.wav");
@@ -269,6 +271,7 @@ namespace Fort23.Mono
             //扣除道具
             for (var i = 0; i < _skillInfo.SkillPowerupConfig.LevelupItem.Length; i++)
             {
+                //TODO 消耗:功法升级
                 PlayerManager.Instance.BagController.DeductItem(_skillInfo.SkillPowerupConfig.LevelupItem[i],
                     _skillInfo.SkillPowerupConfig.LevelupItemNum[i]);
             }

+ 1 - 0
Assets/Scripts/GameUI/UI/GuidePanel/PlayerGuideManager.cs

@@ -703,6 +703,7 @@ namespace Fort23.Mono
             {
                 for (var i = 0; i < guideConfig.AwardItem.Length; i++)
                 {
+                    //TODO 不记录引导赠送
                     PlayerManager.Instance.BagController.AddItem(new ItemInfo(guideConfig.AwardItem[i],
                         guideConfig.AwardItemNum[i]));
                 }

+ 5 - 4
Assets/Scripts/GameUI/UI/HeroInformationPanel/HeroBreakthroughPanel.cs

@@ -62,7 +62,7 @@ namespace Fort23.Mono
                 }
 
 
-                if (PlayerManager.Instance.myHero.heroData.exp + HeroHerlp.GetHeroExp() <
+                if (PlayerManager.Instance.myHero.GetAllExp() <
                     PlayerManager.Instance.myHero.powerUpConfig.levelUpExp)
                 {
                     return;
@@ -117,6 +117,7 @@ namespace Fort23.Mono
 
                     for (var i = 0; i < PlayerManager.Instance.myHero.powerUpConfig.DujieItemIDs?.Length; i++)
                     {
+                        //TODO 消耗:突破境界(可选道具)
                         PlayerManager.Instance.BagController.DeductItem(
                             PlayerManager.Instance.myHero.powerUpConfig.DujieItemIDs[i], 1);
                     }
@@ -135,6 +136,7 @@ namespace Fort23.Mono
                              i < PlayerManager.Instance.myHero.powerUpConfig.DujieMustItemIDs.Length;
                              i++)
                         {
+                            //TODO 消耗:突破境界(必选道具)
                             PlayerManager.Instance.BagController.DeductItem(
                                 PlayerManager.Instance.myHero.powerUpConfig.DujieMustItemIDs[i], 1);
                         }
@@ -267,8 +269,8 @@ namespace Fort23.Mono
 
         private int RemoveHeroItem(int failBl)
         {
-            float allexp = HeroHerlp.GetHeroExp();
-            PlayerManager.Instance.myHero.heroData.exp += allexp;
+            // float allexp = HeroHerlp.GetHeroExp();
+            PlayerManager.Instance.myHero.heroData.exp += PlayerManager.Instance.myHero.GetGuaJiExp();
             //扣除失败后的经验
             float failbl = failBl == 0
                 ? PlayerManager.Instance.myHero.powerUpConfig.FailureExpReduce
@@ -278,7 +280,6 @@ namespace Fort23.Mono
 
             PlayerManager.Instance.myHero.heroData.exp -= failXw;
             PlayerManager.Instance.myHero.heroData.upTime = TimeHelper.ClientNow();
-            // PlayerManager.Instance.myHero.heroData.isCombat = false;
             AccountFileInfo.Instance.SavePlayerData();
             return failXw;
         }

+ 1 - 7
Assets/Scripts/GameUI/UI/HeroInformationPanel/HeroHerlp.cs

@@ -145,12 +145,6 @@ namespace Fort23.Mono
             return heroAttributeDataList;
         }
 
-        public static float GetHeroExp()
-        {
-            int currentMiao = (int)((TimeHelper.ClientNow() - PlayerManager.Instance.myHero.heroData.upTime) / 1000);
-
-            float allexp = currentMiao * PlayerManager.Instance.myHero.powerUpConfig.AutoXiuwei;
-            return allexp;
-        }
+  
     }
 }

+ 25 - 32
Assets/Scripts/GameUI/UI/HeroInformationPanel/HeroInformationPanel.cs

@@ -110,11 +110,7 @@ namespace Fort23.Mono
                     return;
                 }
 
-                int currentMiao = (int)((TimeHelper.ClientNow() - PlayerManager.Instance.myHero.heroData.upTime) /
-                                        1000);
-
-                float allexp = currentMiao * PlayerManager.Instance.myHero.powerUpConfig.AutoXiuwei;
-                if (PlayerManager.Instance.myHero.heroData.exp + allexp <
+                if (PlayerManager.Instance.myHero.GetAllExp() <
                     PlayerManager.Instance.myHero.powerUpConfig.levelUpExp)
                 {
                     AudioManager.Instance.PlayAudio("ui_chaozuoshibai.wav");
@@ -189,23 +185,18 @@ namespace Fort23.Mono
         }
 
         int redDotID = 5;
-        private int currentMiao = 0;
-        private float allexp = 0;
+
 
         public async CTask CustomInit()
         {
             ClosePool();
 
-            currentMiao = (int)((TimeHelper.ClientNow() - PlayerManager.Instance.myHero.heroData.upTime) /
-                                1000);
-
-            allexp = currentMiao * PlayerManager.Instance.myHero.powerUpConfig.AutoXiuwei;
 
             Slider_Exp.maxValue = PlayerManager.Instance.myHero.powerUpConfig.levelUpExp;
-            Slider_Exp.value = PlayerManager.Instance.myHero.heroData.exp + allexp;
+            Slider_Exp.value = PlayerManager.Instance.myHero.GetAllExp();
 
             Text_exp.text =
-                $"{(int)PlayerManager.Instance.myHero.heroData.exp + allexp}/{PlayerManager.Instance.myHero.powerUpConfig.levelUpExp}";
+                $"{(int)PlayerManager.Instance.myHero.GetAllExp()}/{PlayerManager.Instance.myHero.powerUpConfig.levelUpExp}";
 
             for (var i = 0; i < JingJieIcons.Count; i++)
             {
@@ -231,7 +222,7 @@ namespace Fort23.Mono
 
 
             int miao = (int)((PlayerManager.Instance.myHero.powerUpConfig.levelUpExp -
-                              (PlayerManager.Instance.myHero.heroData.exp + allexp)) /
+                              (PlayerManager.Instance.myHero.GetAllExp())) /
                              PlayerManager.Instance.myHero.powerUpConfig.AutoXiuwei);
             if (miao > 0)
             {
@@ -363,7 +354,7 @@ namespace Fort23.Mono
                 fx_ui_pojing_loop.gameObject.SetActive(false);
                 fx_ui_pojing_loop2.gameObject.SetActive(false);
                 fx_ui_dujie_loop.gameObject.SetActive(false);
-                if (PlayerManager.Instance.myHero.heroData.exp + allexp >=
+                if (PlayerManager.Instance.myHero.GetAllExp() >=
                     PlayerManager.Instance.myHero.powerUpConfig.levelUpExp)
                 {
                     if (PlayerManager.Instance.myHero.powerUpConfig.jingjie1 == heroInfo.powerUpConfig.jingjie1)
@@ -437,33 +428,37 @@ namespace Fort23.Mono
             // }
             //
             // timer = 0;
-            currentMiao =
-                (int)((TimeHelper.ClientNow() - PlayerManager.Instance.myHero.heroData.upTime) / 1000);
 
-            allexp = currentMiao * PlayerManager.Instance.myHero.powerUpConfig.AutoXiuwei;
 
-            Slider_Exp.value = PlayerManager.Instance.myHero.heroData.exp + allexp;
+            Slider_Exp.value = PlayerManager.Instance.myHero.GetAllExp();
 
             Text_exp.text =
-                $"{(int)(PlayerManager.Instance.myHero.heroData.exp + allexp)}/{PlayerManager.Instance.myHero.powerUpConfig.levelUpExp}";
-
-            int miao = (int)((PlayerManager.Instance.myHero.powerUpConfig.levelUpExp -
-                              (PlayerManager.Instance.myHero.heroData.exp + allexp)) /
-                             PlayerManager.Instance.myHero.powerUpConfig.AutoXiuwei);
-            if (miao > 0)
+                $"{(int)(PlayerManager.Instance.myHero.GetAllExp())}/{PlayerManager.Instance.myHero.powerUpConfig.levelUpExp}";
+            if (PlayerManager.Instance.myHero.IsGuaijiShangXian())
             {
-                Text_Speed.text = LanguageManager.Instance.Text(10230,
-                    PlayerManager.Instance.myHero.powerUpConfig.AutoXiuwei, PlayerManager.TimeToHSM(miao));
+                Text_Speed.text = LanguageManager.Instance.Text(10820);
             }
             else
             {
-                Text_Speed.text = LanguageManager.Instance.Text(10266,
-                    PlayerManager.Instance.myHero.powerUpConfig.AutoXiuwei);
+                int miao = (int)((PlayerManager.Instance.myHero.powerUpConfig.levelUpExp -
+                                  (PlayerManager.Instance.myHero.GetAllExp())) /
+                                 PlayerManager.Instance.myHero.powerUpConfig.AutoXiuwei);
+                if (miao > 0)
+                {
+                    Text_Speed.text = LanguageManager.Instance.Text(10230,
+                        PlayerManager.Instance.myHero.powerUpConfig.AutoXiuwei, PlayerManager.TimeToHSM(miao));
+                }
+                else
+                {
+                    Text_Speed.text = LanguageManager.Instance.Text(10266,
+                        PlayerManager.Instance.myHero.powerUpConfig.AutoXiuwei);
+                }
             }
 
+
             if (!fx_ui_tupo_loop.gameObject.activeSelf)
             {
-                if (PlayerManager.Instance.myHero.heroData.exp + allexp >=
+                if (PlayerManager.Instance.myHero.GetAllExp() >=
                     PlayerManager.Instance.myHero.powerUpConfig.levelUpExp)
                 {
                     Btn_TuPo.transform.RecoverColor();
@@ -553,8 +548,6 @@ namespace Fort23.Mono
         public async override CTask Close()
         {
             fx_ui_tupo_loop.gameObject.SetActive(false);
-            currentMiao = 0;
-            allexp = 0;
             ClosePool();
             await base.Close();
         }

+ 1 - 0
Assets/Scripts/GameUI/UI/HeroInformationPanel/UseExpElixirPanel.cs

@@ -67,6 +67,7 @@ namespace Fort23.Mono
                 return;
             }
 
+            //TODO 消耗:修为丹
             if (PlayerManager.Instance.BagController.DeductItem(elixirItemWidget.ItemConfig.ID, 1))
             {
                 // PlayerManager.Instance.myHero.heroData.exp += elixirItemWidget.ItemConfig.associateVlaue[0];

+ 3 - 0
Assets/Scripts/GameUI/UI/MainHeroPnael/SelectFaBaoPanel.cs

@@ -161,6 +161,7 @@ namespace Fort23.Mono
                 }
                 foreach (var keyValuePair in itemInfo)
                 {
+                    //TODO 法宝重置
                     PlayerManager.Instance.BagController.AddItem(keyValuePair.Value);
                 }
                 RewardsPanel.OpenPanel(itemInfo);
@@ -232,6 +233,7 @@ namespace Fort23.Mono
 
                 for (var i = 0; i < selectedFaBaoInfo.FabaoPowerupConfig.PowerupItemIDs.Length; i++)
                 {
+                    //TODO 消耗:法宝升级
                     PlayerManager.Instance.BagController.DeductItem(
                         selectedFaBaoInfo.FabaoPowerupConfig.PowerupItemIDs[i],
                         selectedFaBaoInfo.FabaoPowerupConfig.PowerupItemCosts[i]);
@@ -240,6 +242,7 @@ namespace Fort23.Mono
                 if (selectedFaBaoInfo.FabaoPowerupConfig.PromotePieceNum != null &&
                     selectedFaBaoInfo.FabaoPowerupConfig.PromotePieceNum[itemConfig2.quality - 1] != -1)
                 {
+                    //TODO 消耗:法宝突破
                     PlayerManager.Instance.BagController.DeductItem(itemConfig.associateVlaue[0],
                         selectedFaBaoInfo.FabaoPowerupConfig.PromotePieceNum[itemConfig2.quality - 1]);
                 }

+ 3 - 10
Assets/Scripts/GameUI/UI/MainPanel/MainPanel.cs

@@ -90,12 +90,8 @@ namespace Fort23.Mono
 
                 if (EventSystemManager.Instance.IsEventCompleted(10003) && PlayerGuideManager.Instance.GuideIsCanDo(6) && PlayerManager.Instance.myHero.powerUpConfig.jingjie3 != 10)
                 {
-                    int currentMiao =
-                        (int)((TimeHelper.ClientNow() - PlayerManager.Instance.myHero.heroData.upTime) /
-                              1000);
-
-                    float allexp = currentMiao * PlayerManager.Instance.myHero.powerUpConfig.AutoXiuwei;
-                    if (PlayerManager.Instance.myHero.heroData.exp + allexp >=
+      
+                    if (PlayerManager.Instance.myHero.GetAllExp() >=
                         PlayerManager.Instance.myHero.powerUpConfig.levelUpExp)
                     {
                         await PlayerGuideManager.Instance.SetGuid(6);
@@ -323,10 +319,7 @@ namespace Fort23.Mono
                 allexp += heroPowerUpConfig.levelUpExp;
             }
 
-            int currentMiao = (int)((TimeHelper.ClientNow() - PlayerManager.Instance.myHero.heroData.upTime) / 1000);
-
-            float heroAllexp = currentMiao * PlayerManager.Instance.myHero.powerUpConfig.AutoXiuwei;
-            heroAllexp = PlayerManager.Instance.myHero.heroData.exp + heroAllexp;
+            float heroAllexp = PlayerManager.Instance.myHero.GetAllExp();
 
 
             int bl = (int)((heroAllexp / allexp) * 100);

+ 2 - 0
Assets/Scripts/GameUI/UI/QiankundaiPanel/QiankundaiPanel.cs

@@ -36,6 +36,7 @@ namespace Fort23.Mono
                 foreach (var playerDataQiankundaiItemData in AccountFileInfo.Instance.playerData.QiankundaiItemDatas)
                 {
                     ItemInfo itemInfo = new ItemInfo(playerDataQiankundaiItemData);
+                    //TODO 挂机
                     PlayerManager.Instance.BagController.AddItem(itemInfo);
                     itemInfos.Add(itemInfo);
                 }
@@ -52,6 +53,7 @@ namespace Fort23.Mono
                                 qiankundaiConfig.DropCount[i]);
                             foreach (var info in itemInfo)
                             {
+                                //TODO 挂机(一日一次的)
                                 PlayerManager.Instance.BagController.AddItem(info);
                                 itemInfos.Add(info);
                             }

+ 1 - 0
Assets/Scripts/GameUI/UI/SentimentPanel/SentimentInfoPanel.cs

@@ -119,6 +119,7 @@ namespace Fort23.Mono
                 SentimentEffectConfig sentimentEffectConfig =
                     ConfigComponent.Instance.Get<SentimentEffectConfig>(conFigId);
 
+                //TODO 消耗:心境点
                 if (!PlayerManager.Instance.BagController.DeductItem(sentimentEffectConfig.upConstItemId,
                         sentimentEffectConfig.upConstCount))
                 {

+ 1 - 0
Assets/Scripts/GameUI/UI/ShopPanel/ShopGachaPanel.cs

@@ -90,6 +90,7 @@ namespace Fort23.Mono
                 {
                     ItemInfo itemInfo1 = new ItemInfo(itemInfo.itemID,
                         (long)(itemInfo.config.associateVlaue[1] * (beLv - 1)));
+                    //TODO 代金卷双倍
                     PlayerManager.Instance.BagController.AddItem(itemInfo1);
                 }
 

+ 1 - 0
Assets/Scripts/GameUI/UI/TowerPanel/TowerLevelWidget.cs

@@ -45,6 +45,7 @@ namespace Fort23.Mono
                 for (var i = 0; i < _towerInfoConfig.reward.Length; i++)
                 {
                     ItemInfo itemInfo = new ItemInfo(_towerInfoConfig.reward[i], _towerInfoConfig.rewardCount[i]);
+                    //TODO 命运峰 
                     PlayerManager.Instance.BagController.AddItem(itemInfo);
                     itemInfos.Add(itemInfo);
                 }

+ 236 - 0
Assets/Scripts/GameUI/VersionChecker.cs

@@ -0,0 +1,236 @@
+using System;
+using System.IO;
+using System.Text;
+using Fort23.Core;
+using Fort23.GameData;
+using Fort23.UTool;
+using hirdParty.DownloadSystem;
+using ThirdParty;
+using ThirdParty.DownloadSystem;
+using UnityEngine;
+using UnityEngine.Networking;
+
+public class VersionChecker
+{
+    private string versionUrl;
+    string savePath;
+    private AssetMD5Info _assetMD5Info;
+    private VersionInfo versionInfo = null;
+
+
+    public async CTask<bool> Start()
+    {
+        versionUrl = $"{HotSyncContent.AssetURL}/version.json";
+        savePath = Path.Combine(Application.persistentDataPath, versionInfo.apkVersion + "update.apk");
+
+        versionInfo = await GetRemoteVersion();
+        string local = Application.version;
+
+        if (versionInfo != null && versionInfo.apkVersion != local)
+        {
+            return false;
+
+            // await GetMd5();
+            // if (!await Cheek())
+            // {
+            //     Debug.Log("检测到新版本,开始下载...");
+            //     await DownloadAndInstall();
+            // }
+        }
+
+        return true;
+    }
+
+
+    public void OpenOtherApp(string packageName)
+    {
+#if UNITY_ANDROID && !UNITY_EDITOR
+        try
+        {
+            AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
+            AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
+
+            AndroidJavaObject packageManager = currentActivity.Call<AndroidJavaObject>("getPackageManager");
+            AndroidJavaObject launchIntent =
+ packageManager.Call<AndroidJavaObject>("getLaunchIntentForPackage", packageName);
+
+            if (launchIntent != null)
+            {
+                currentActivity.Call("startActivity", launchIntent);
+            }
+            else
+            {
+                Application.OpenURL("https://www.3839.com/a/189449.htm");
+                Debug.Log("应用未安装: " + packageName);
+            }
+        }
+        catch (System.Exception e)
+        {
+            Debug.Log("打开应用失败: " + e.Message);
+        }
+#endif
+    }
+
+    private async CTask GetMd5()
+    {
+        CTask cTask = CTask.Create();
+        DownloadFileData downloadFileData2 = new DownloadFileData();
+        downloadFileData2.remoteUrl = $"{HotSyncContent.AssetURL}/{versionInfo.apkVersion}/MD5.txt";
+        downloadFileData2.maxCount = int.MaxValue;
+        downloadFileData2.timeOut = 10;
+        DownloadHander downloadHander2 = FileDownloadSystem.Instance.DownloadFile(downloadFileData2);
+        DownLoadHanderGroup downLoadHanderGroup = new DownLoadHanderGroup();
+        downLoadHanderGroup.AddHander(downloadHander2);
+        downLoadHanderGroup.OnCallBack = async delegate
+        {
+            if (downloadHander2.HttpDownloadBasic.DownloadHander.HttpDownloadBasic.Result() !=
+                UnityWebRequest.Result.Success)
+            {
+                LogTool.Warning("获取MD5失败,尝试重新获取");
+                await GetMd5();
+                cTask.SetResult();
+                return;
+            }
+
+            string json = UTF8Encoding.UTF8.GetString(downloadHander2.Data);
+            _assetMD5Info = JsonHelper.FromJson<AssetMD5Info>(json);
+            cTask.SetResult();
+        };
+
+        downLoadHanderGroup.StartUpdate();
+        await cTask;
+    }
+
+    private CTask<bool> Cheek()
+    {
+        CTask<bool> cheekTask = CTask<bool>.Create();
+        CheckFilePool _checkFileThrans = new CheckFilePool();
+        _checkFileThrans.isStreamingAssetsPath = false;
+        _checkFileThrans.streamingAssetsPath = Application.persistentDataPath;
+        _checkFileThrans.Start(Application.persistentDataPath,
+            _assetMD5Info.fileInfo);
+        _checkFileThrans.OnFinish = async delegate
+        {
+            //失败
+            if (_checkFileThrans.shiBaiFile.Count > 0)
+            {
+                cheekTask.SetResult(false);
+            }
+            else
+            {
+                cheekTask.SetResult(true);
+            }
+        };
+        return cheekTask;
+    }
+
+
+    private async CTask<VersionInfo> GetRemoteVersion()
+    {
+        UnityWebRequest req = UnityWebRequest.Get(versionUrl);
+        var s = req.SendWebRequest();
+        CTask cTask = CTask.Create();
+        s.completed += operation => cTask.SetResult();
+        await cTask;
+
+        if (req.result != UnityWebRequest.Result.Success)
+        {
+            LogTool.Error("版本号获取失败:" + req.error);
+            return await GetRemoteVersion();
+        }
+
+        var json = req.downloadHandler.text;
+        var data = JsonUtility.FromJson<VersionInfo>(json);
+        return data;
+    }
+
+    private async CTask DownloadAndInstall()
+    {
+        CTask cTask = CTask.Create();
+
+        Debug.Log("APK 下载路径:" + savePath);
+
+
+        DownLoadHanderGroup downLoadHanderGroup = new DownLoadHanderGroup();
+        DownloadFileData downloadFileData = new DownloadFileData();
+        downloadFileData.remoteUrl = versionInfo.apkUrl;
+        Debug.Log("下载文件" + downloadFileData.remoteUrl);
+        downloadFileData.localPath = savePath;
+        DownloadHander fileDow = FileDownloadSystem.Instance.DownloadFile(downloadFileData);
+
+        downLoadHanderGroup.AddHander(fileDow);
+
+        float m = downLoadHanderGroup.size / 1024f / 1024f;
+        float speed = fileDow.UnityWebRequestAsyncOperation.webRequest.downloadedBytes / 1024f;
+        LogTool.Log(
+            $"Downloading:   {m.ToString("0.00")}M / {_assetMD5Info.fileInfo[0].size.ToString("0.00")}M  speed {HotSyncContent.FormatSpeed(speed)}");
+
+        downLoadHanderGroup.OnCallBack = async () =>
+        {
+            if (fileDow.HttpDownloadBasic.DownloadHander.HttpDownloadBasic.Result() != UnityWebRequest.Result.Success)
+            {
+                await DownloadAndInstall();
+                cTask.SetResult();
+                return;
+            }
+
+            Debug.Log("APK 下载成功");
+            if (!await Cheek())
+            {
+                LogTool.Warning("md5对比失败,重新下载");
+                await DownloadAndInstall();
+                return;
+            }
+
+
+            InstallAPK(savePath);
+            cTask.SetResult();
+        };
+        downLoadHanderGroup.StartUpdate();
+        await cTask;
+    }
+
+    static void InstallAPK(string apkPath)
+    {
+#if UNITY_ANDROID
+        try
+        {
+            AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
+            AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
+
+            AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent");
+            AndroidJavaObject intent = new AndroidJavaObject("android.content.Intent");
+
+            string ACTION_VIEW = intentClass.GetStatic<string>("ACTION_VIEW");
+            intent.Call<AndroidJavaObject>("setAction", ACTION_VIEW);
+
+            AndroidJavaClass fileClass = new AndroidJavaClass("java.io.File");
+            AndroidJavaObject fileObj = new AndroidJavaObject("java.io.File", apkPath);
+
+            AndroidJavaClass uriClass = new AndroidJavaClass("androidx.core.content.FileProvider");
+            AndroidJavaObject context = currentActivity.Call<AndroidJavaObject>("getApplicationContext");
+            AndroidJavaObject uri = uriClass.CallStatic<AndroidJavaObject>("getUriForFile",
+                context,
+                "com.yourgame.fileprovider",
+                fileObj);
+
+            intent.Call<AndroidJavaObject>("setDataAndType", uri, "application/vnd.android.package-archive");
+            intent.Call<AndroidJavaObject>("addFlags", 1 << 25); // FLAG_GRANT_READ_URI_PERMISSION
+            intent.Call<AndroidJavaObject>("addFlags", 1 << 31); // FLAG_ACTIVITY_NEW_TASK
+
+            currentActivity.Call("startActivity", intent);
+        }
+        catch (Exception ex)
+        {
+            Debug.LogError("安装 APK 出错:" + ex.Message);
+        }
+#endif
+    }
+}
+
+[Serializable]
+public class VersionInfo
+{
+    public string apkVersion;
+    public string apkUrl;
+}

+ 11 - 0
Assets/Scripts/GameUI/VersionChecker.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: CX0etX/5AigsqZI2j0FijXKKnnU33xgqolTNgYgbmuUBga78Dnfh6GOUuLQz
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
Assets/StreamingAssets/assetConfig.txt


BIN
Excel2Json/Excel/EventConfig.xlsx


BIN
Excel2Json/Excel/Language.xlsx


BIN
Excel2Json/Excel/Sentiment.xlsx


+ 3 - 3
UserSettings/EditorUserSettings.asset

@@ -42,13 +42,13 @@ EditorUserSettings:
       value: 0002065506010b09555d0e7a12750a4443151a297a2e70317d7d4d6be1e1616f
       flags: 0
     RecentlyUsedSceneGuid-7:
-      value: 52570c02000d5e025a58597212725c4440161c2e797a75607f2c4467b7b3323e
+      value: 5a52520506055c0b5c5e082740725b4413161b7d7f7c7761297b1c67bbb26168
       flags: 0
     RecentlyUsedSceneGuid-8:
-      value: 5a50500553530b595d0f597343770941474e4c722e2a20367e794861e1b86c68
+      value: 5753045f5d005b5f0b0a082315715d44464e4b7b797125622e284430bbe66d68
       flags: 0
     RecentlyUsedSceneGuid-9:
-      value: 5753045f5d005b5f0b0a082315715d44464e4b7b797125622e284430bbe66d68
+      value: 52570c02000d5e025a58597212725c4440161c2e797a75607f2c4467b7b3323e
       flags: 0
     Systems Window:
       value: 183b144645154b7802000a2b17364d11021e17246e72662b47695d73a2a07478a2a505e1e82d6f2f100cca3210371526d1051c05e22a040f2507f00b32f01c061ccb5a9f5ace1e10d81c50a48d5d91a3959694aa9ad8efd7c9f2afe0f1c0fcfdf6f8b6f2a5a6dacfb89debbfa1cbc9c3f5c3bac18e9c89c1bbdec2d6f2b992939996c59699c79ae8d182b7baad82aba0b0aea88398abdbf1dd8a8ea765ffc520262728fafcf8f6c28eb162945c71898d6167877a72a980809c9f71cecece859d579fd5f106dbdadb21de0dde237c686c76706641634c764f547c624a7e622d6628286620686f653d2b635a0204003e0805017509093043470e3643041c5d5b415c54450e1c424b420f6e4b634e636263696655641a1f273c0f083c1102ec362de62318e9ea25ab61ade8ed0ee30655b0b6b7b8176615

+ 147 - 101
UserSettings/Layouts/CurrentMaximizeLayout.dwlt

@@ -21,8 +21,8 @@ MonoBehaviour:
     serializedVersion: 2
     x: 0
     y: 30
-    width: 2560
-    height: 1307
+    width: 1916
+    height: 976
   m_MinSize: {x: 400, y: 100}
   m_MaxSize: {x: 32384, y: 16192}
   vertical: 0
@@ -36,22 +36,22 @@ MonoBehaviour:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 0}
   m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 13974, guid: 0000000000000000e000000000000000, type: 0}
+  m_EditorHideFlags: 1
+  m_Script: {fileID: 12015, guid: 0000000000000000e000000000000000, type: 0}
   m_Name: 
   m_EditorClassIdentifier: 
   m_MinSize: {x: 200, y: 200}
   m_MaxSize: {x: 4000, y: 4000}
   m_TitleContent:
-    m_Text: Simulator
-    m_Image: {fileID: 8720083202187608617, guid: 0000000000000000d000000000000000, type: 0}
+    m_Text: Game
+    m_Image: {fileID: -6423792434712278376, guid: 0000000000000000d000000000000000, type: 0}
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 0
-    y: 346
-    width: 1209
-    height: 1013
+    x: 8
+    y: 312
+    width: 904
+    height: 725
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -62,38 +62,71 @@ MonoBehaviour:
     m_LastAppliedPresetName: Default
     m_SaveData: []
     m_OverlaysVisible: 1
-  m_SerializedViewNames:
-  - UnityEditor.GameView
-  m_SerializedViewValues:
-  - D:\Server\NetServer\NetServer\XiuXianGame\Library\PlayModeViewStates\b79c504529b25c048b1625849f5792f5
-  m_PlayModeViewName: Device Simulator
+  m_SerializedViewNames: []
+  m_SerializedViewValues: []
+  m_PlayModeViewName: GameView
   m_ShowGizmos: 0
   m_TargetDisplay: 0
-  m_ClearColor: {r: 0, g: 0, b: 0, a: 1}
-  m_TargetSize: {x: 961, y: 2081}
+  m_ClearColor: {r: 0, g: 0, b: 0, a: 0}
+  m_TargetSize: {x: 750, y: 1624}
   m_TextureFilterMode: 0
   m_TextureHideFlags: 61
   m_RenderIMGUI: 1
-  m_EnterPlayModeBehavior: 2
+  m_EnterPlayModeBehavior: 0
   m_UseMipMap: 0
-  m_SimulatorState:
-    controlPanelVisible: 0
-    controlPanelWidth: 0
-    controlPanelFoldoutKeys:
-    - UnityEditor.DeviceSimulation.ApplicationSettingsPlugin
-    controlPanelFoldoutValues: 00
-    pluginNames:
-    - UnityEditor.DeviceSimulation.ApplicationSettingsPlugin
-    pluginStates:
-    - '{}'
-    scale: 33
-    fitToScreenEnabled: 0
-    rotationDegree: 0
-    highlightSafeAreaEnabled: 0
-    friendlyName: Apple iPhone 12 Pro
-    screenIndex: 0
-    networkReachability: 1
-    systemLanguage: 10
+  m_VSyncEnabled: 0
+  m_Gizmos: 0
+  m_Stats: 0
+  m_SelectedSizes: 00000000000000000000000013000000000000000000000000000000000000000000000000000000
+  m_ZoomArea:
+    m_HRangeLocked: 0
+    m_VRangeLocked: 0
+    hZoomLockedByDefault: 0
+    vZoomLockedByDefault: 0
+    m_HBaseRangeMin: -375
+    m_HBaseRangeMax: 375
+    m_VBaseRangeMin: -812
+    m_VBaseRangeMax: 812
+    m_HAllowExceedBaseRangeMin: 1
+    m_HAllowExceedBaseRangeMax: 1
+    m_VAllowExceedBaseRangeMin: 1
+    m_VAllowExceedBaseRangeMax: 1
+    m_ScaleWithWindow: 0
+    m_HSlider: 0
+    m_VSlider: 0
+    m_IgnoreScrollWheelUntilClicked: 0
+    m_EnableMouseInput: 0
+    m_EnableSliderZoomHorizontal: 0
+    m_EnableSliderZoomVertical: 0
+    m_UniformScale: 1
+    m_UpDirection: 1
+    m_DrawArea:
+      serializedVersion: 2
+      x: 0
+      y: 21
+      width: 904
+      height: 704
+    m_Scale: {x: 0.43349755, y: 0.43349755}
+    m_Translation: {x: 452, y: 352}
+    m_MarginLeft: 0
+    m_MarginRight: 0
+    m_MarginTop: 0
+    m_MarginBottom: 0
+    m_LastShownAreaInsideMargins:
+      serializedVersion: 2
+      x: -1042.6818
+      y: -812
+      width: 2085.3635
+      height: 1624
+    m_MinimalGUI: 1
+  m_defaultScale: 0.43349755
+  m_LastWindowPixelSize: {x: 904, y: 725}
+  m_ClearInEditMode: 1
+  m_NoCameraWarning: 1
+  m_LowResolutionForAspectRatios: 01000001000000000000
+  m_XRRenderMode: 0
+  m_RenderTexture: {fileID: 0}
+  m_showToolbar: 1
 --- !u!114 &3
 MonoBehaviour:
   m_ObjectHideFlags: 52
@@ -113,8 +146,8 @@ MonoBehaviour:
     serializedVersion: 2
     x: 0
     y: 0
-    width: 1210
-    height: 1307
+    width: 905
+    height: 976
   m_MinSize: {x: 100, y: 100}
   m_MaxSize: {x: 8096, y: 16192}
   vertical: 1
@@ -137,10 +170,10 @@ MonoBehaviour:
     serializedVersion: 2
     x: 0
     y: 0
-    width: 1210
-    height: 273
-  m_MinSize: {x: 201, y: 221}
-  m_MaxSize: {x: 4001, y: 4021}
+    width: 905
+    height: 230
+  m_MinSize: {x: 200, y: 200}
+  m_MaxSize: {x: 4000, y: 4000}
   m_ActualView: {fileID: 5}
   m_Panes:
   - {fileID: 5}
@@ -166,10 +199,10 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 0
-    y: 73
-    width: 1209
-    height: 252
+    x: 8
+    y: 82
+    width: 904
+    height: 209
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -517,8 +550,21 @@ MonoBehaviour:
       layout: 4
       size: {x: 0, y: 0}
       sizeOverriden: 0
+    - dockPosition: 1
+      containerId: overlay-container--right
+      floating: 0
+      collapsed: 0
+      displayed: 1
+      snapOffset: {x: 48, y: 48}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: UnityEditor.SceneViewCameraOverlay
+      index: 13
+      layout: 4
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
     m_OverlaysVisible: 1
-  m_WindowGUID: e1470ae5da6abab429889f1c083ba9a1
+  m_WindowGUID: e8ca080b221d3f348856e12226052b9f
   m_Gizmos: 1
   m_OverrideSceneCullingMask: 6917529027641081856
   m_SceneIsLit: 1
@@ -528,9 +574,9 @@ MonoBehaviour:
   m_PlayAudio: 0
   m_AudioPlay: 0
   m_Position:
-    m_Target: {x: 0.30995086, y: -1.4264529, z: -0.005822844}
+    m_Target: {x: 375, y: 812, z: 0}
     speed: 2
-    m_Value: {x: 0.30995086, y: -1.4264529, z: -0.005822844}
+    m_Value: {x: 375, y: 812, z: 0}
   m_RenderMode: 0
   m_CameraMode:
     drawMode: 0
@@ -580,9 +626,9 @@ MonoBehaviour:
     speed: 2
     m_Value: {x: 0, y: 0, z: 0, w: 1}
   m_Size:
-    m_Target: 2.274583
+    m_Target: 1028.0233
     speed: 2
-    m_Value: 2.274583
+    m_Value: 1028.0233
   m_Ortho:
     m_Target: 1
     speed: 2
@@ -619,17 +665,17 @@ MonoBehaviour:
   m_Enabled: 1
   m_EditorHideFlags: 1
   m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
-  m_Name: SimulatorWindow
+  m_Name: 
   m_EditorClassIdentifier: 
   m_Children: []
   m_Position:
     serializedVersion: 2
     x: 0
-    y: 273
-    width: 1210
-    height: 1034
-  m_MinSize: {x: 201, y: 221}
-  m_MaxSize: {x: 4001, y: 4021}
+    y: 230
+    width: 905
+    height: 746
+  m_MinSize: {x: 200, y: 200}
+  m_MaxSize: {x: 4000, y: 4000}
   m_ActualView: {fileID: 2}
   m_Panes:
   - {fileID: 2}
@@ -650,10 +696,10 @@ MonoBehaviour:
   m_Children: []
   m_Position:
     serializedVersion: 2
-    x: 1210
+    x: 905
     y: 0
-    width: 411
-    height: 1307
+    width: 275
+    height: 976
   m_MinSize: {x: 202, y: 221}
   m_MaxSize: {x: 4002, y: 4021}
   m_ActualView: {fileID: 8}
@@ -681,10 +727,10 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 1210
-    y: 73
-    width: 409
-    height: 1286
+    x: 913
+    y: 82
+    width: 273
+    height: 955
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -698,9 +744,9 @@ MonoBehaviour:
   m_SceneHierarchy:
     m_TreeViewState:
       scrollPos: {x: 0, y: 0}
-      m_SelectedIDs: 
+      m_SelectedIDs: 64620100
       m_LastClickedID: 0
-      m_ExpandedIDs: 0aceedff94d1edffc2d4edffbcd5edffc6d5edffd0d5edffdad5edff28d7edff9c65efffc665efffca65efffce65efffdc65efff12e8faff
+      m_ExpandedIDs: eac0ffff
       m_RenameOverlay:
         m_UserAcceptedRename: 0
         m_Name: 
@@ -723,7 +769,7 @@ MonoBehaviour:
     m_LockTracker:
       m_IsLocked: 0
     m_CurrentSortingName: TransformSorting
-  m_WindowGUID: 76fda8ca3975cad4fbaf99caec123f54
+  m_WindowGUID: aaf4eaa9bcd57ea468179db2b9e4fb70
 --- !u!114 &9
 MonoBehaviour:
   m_ObjectHideFlags: 52
@@ -739,10 +785,10 @@ MonoBehaviour:
   m_Children: []
   m_Position:
     serializedVersion: 2
-    x: 1621
+    x: 1180
     y: 0
-    width: 367
-    height: 1307
+    width: 387
+    height: 976
   m_MinSize: {x: 232, y: 271}
   m_MaxSize: {x: 10002, y: 10021}
   m_ActualView: {fileID: 10}
@@ -770,10 +816,10 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 1621
-    y: 73
-    width: 365
-    height: 1286
+    x: 1188
+    y: 82
+    width: 385
+    height: 955
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -785,7 +831,7 @@ MonoBehaviour:
     m_SaveData: []
     m_OverlaysVisible: 1
   m_SearchFilter:
-    m_NameFilter: TESTC
+    m_NameFilter: gamer
     m_ClassNames: []
     m_AssetLabels: []
     m_AssetBundleNames: []
@@ -795,24 +841,24 @@ MonoBehaviour:
     m_SkipHidden: 0
     m_SearchArea: 1
     m_Folders:
-    - Assets
+    - Assets/Scripts/ThirdParty/Crasheye
     m_Globs: []
-    m_OriginalText: TESTC
+    m_OriginalText: gamer
     m_ImportLogFlags: 0
     m_FilterByTypeIntersection: 0
   m_ViewMode: 1
-  m_StartGridSize: 64
+  m_StartGridSize: 16
   m_LastFolders:
-  - Assets
-  m_LastFoldersGridSize: -1
+  - Assets/Scripts/ThirdParty/Crasheye
+  m_LastFoldersGridSize: 16
   m_LastProjectPath: D:\Server\NetServer\NetServer\XiuXianGame
   m_LockTracker:
     m_IsLocked: 0
   m_FolderTreeState:
-    scrollPos: {x: 0, y: 0}
-    m_SelectedIDs: 58ca0000
-    m_LastClickedID: 51800
-    m_ExpandedIDs: 000000005ea8000058ca00005aca00005cca00005eca000060ca000062ca000064ca000066ca000068ca00006aca00006cca00006eca000070ca000072ca000074ca000076ca000078ca00007aca00007cca00007eca000080ca000082ca000084ca000086ca000088ca00008aca000000ca9a3bffffff7f
+    scrollPos: {x: 0, y: 1049}
+    m_SelectedIDs: 0e710100
+    m_LastClickedID: 94478
+    m_ExpandedIDs: 00000000aaac0000326f0100346f0100366f0100386f01003a6f01003c6f01003e6f0100406f0100426f0100446f0100466f0100486f01004a6f01004c6f01004e6f0100506f0100526f0100546f0100566f0100586f01005a6f01005c6f01005e6f0100606f0100626f0100646f0100a46f0100ce70010000ca9a3bffffff7f
     m_RenameOverlay:
       m_UserAcceptedRename: 0
       m_Name: 
@@ -840,7 +886,7 @@ MonoBehaviour:
     scrollPos: {x: 0, y: 0}
     m_SelectedIDs: 
     m_LastClickedID: 0
-    m_ExpandedIDs: 000000005ea8000058ca00005aca00005cca00005eca000060ca000062ca000064ca000066ca000068ca00006aca00006cca00006eca000070ca000072ca000074ca000076ca000078ca00007aca00007cca00007eca000080ca000082ca000084ca000086ca000088ca00008aca000000ca9a3bffffff7f
+    m_ExpandedIDs: 00000000aaac0000326f0100346f0100366f0100386f01003a6f01003c6f01003e6f0100406f0100426f0100446f0100466f0100486f01004a6f01004c6f01004e6f0100506f0100526f0100546f0100566f0100586f01005a6f01005c6f01005e6f0100606f0100626f0100646f0100
     m_RenameOverlay:
       m_UserAcceptedRename: 0
       m_Name: 
@@ -865,8 +911,8 @@ MonoBehaviour:
       m_Icon: {fileID: 0}
       m_ResourceFile: 
   m_ListAreaState:
-    m_SelectedInstanceIDs: 
-    m_LastClickedInstanceID: 0
+    m_SelectedInstanceIDs: 64620100
+    m_LastClickedInstanceID: 90724
     m_HadKeyboardFocusLastEvent: 1
     m_ExpandedInstanceIDs: 
     m_RenameOverlay:
@@ -884,7 +930,7 @@ MonoBehaviour:
       m_IsRenaming: 0
       m_OriginalEventType: 11
       m_IsRenamingFilename: 1
-      m_ClientGUIView: {fileID: 0}
+      m_ClientGUIView: {fileID: 9}
     m_CreateAssetUtility:
       m_EndAction: {fileID: 0}
       m_InstanceID: 0
@@ -893,9 +939,9 @@ MonoBehaviour:
       m_ResourceFile: 
     m_NewAssetIndexInList: -1
     m_ScrollPosition: {x: 0, y: 0}
-    m_GridSize: 64
+    m_GridSize: 16
   m_SkipHiddenPackages: 0
-  m_DirectoriesAreaWidth: 115
+  m_DirectoriesAreaWidth: 175
 --- !u!114 &11
 MonoBehaviour:
   m_ObjectHideFlags: 52
@@ -911,12 +957,12 @@ MonoBehaviour:
   m_Children: []
   m_Position:
     serializedVersion: 2
-    x: 1988
+    x: 1567
     y: 0
-    width: 572
-    height: 1307
-  m_MinSize: {x: 276, y: 71}
-  m_MaxSize: {x: 4001, y: 4021}
+    width: 349
+    height: 976
+  m_MinSize: {x: 275, y: 50}
+  m_MaxSize: {x: 4000, y: 4000}
   m_ActualView: {fileID: 12}
   m_Panes:
   - {fileID: 12}
@@ -942,10 +988,10 @@ MonoBehaviour:
     m_Tooltip: 
   m_Pos:
     serializedVersion: 2
-    x: 1988
-    y: 73
-    width: 571
-    height: 1286
+    x: 1575
+    y: 82
+    width: 348
+    height: 955
   m_SerializedDataModeController:
     m_DataMode: 0
     m_PreferredDataMode: 0
@@ -959,11 +1005,11 @@ MonoBehaviour:
   m_ObjectsLockedBeforeSerialization: []
   m_InstanceIDsLockedBeforeSerialization: 
   m_PreviewResizer:
-    m_CachedPref: -160
+    m_CachedPref: 392
     m_ControlHash: -371814159
     m_PrefName: Preview_InspectorPreview
   m_LastInspectedObjectInstanceID: -1
-  m_LastVerticalScrollValue: 305
+  m_LastVerticalScrollValue: 0
   m_GlobalObjectId: 
   m_InspectorMode: 0
   m_LockTracker:

+ 161 - 52
UserSettings/Layouts/default-2022.dwlt

@@ -1,6 +1,30 @@
 %YAML 1.1
 %TAG !u! tag:yousandi.cn,2023:
 --- !u!114 &1
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 12004, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_PixelRect:
+    serializedVersion: 2
+    x: 2911
+    y: 502
+    width: 892
+    height: 537
+  m_ShowMode: 0
+  m_Title: Console
+  m_RootView: {fileID: 4}
+  m_MinSize: {x: 100, y: 121}
+  m_MaxSize: {x: 4000, y: 4021}
+  m_Maximized: 0
+--- !u!114 &2
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -19,12 +43,63 @@ MonoBehaviour:
     width: 2560
     height: 1357
   m_ShowMode: 4
-  m_Title: Hierarchy
-  m_RootView: {fileID: 2}
+  m_Title: Game
+  m_RootView: {fileID: 5}
   m_MinSize: {x: 875, y: 492}
   m_MaxSize: {x: 10000, y: 10000}
   m_Maximized: 1
---- !u!114 &2
+--- !u!114 &3
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: ConsoleWindow
+  m_EditorClassIdentifier: 
+  m_Children: []
+  m_Position:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 892
+    height: 537
+  m_MinSize: {x: 100, y: 100}
+  m_MaxSize: {x: 4000, y: 4000}
+  m_ActualView: {fileID: 15}
+  m_Panes:
+  - {fileID: 15}
+  m_Selected: 0
+  m_LastSelected: 0
+--- !u!114 &4
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Children:
+  - {fileID: 3}
+  m_Position:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 892
+    height: 537
+  m_MinSize: {x: 100, y: 121}
+  m_MaxSize: {x: 4000, y: 4021}
+  vertical: 0
+  controlID: 372
+  draggingID: 0
+--- !u!114 &5
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -37,9 +112,9 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_Children:
-  - {fileID: 3}
-  - {fileID: 4}
-  - {fileID: 5}
+  - {fileID: 6}
+  - {fileID: 7}
+  - {fileID: 8}
   m_Position:
     serializedVersion: 2
     x: 0
@@ -52,7 +127,7 @@ MonoBehaviour:
   m_TopViewHeight: 30
   m_UseBottomView: 1
   m_BottomViewHeight: 20
---- !u!114 &3
+--- !u!114 &6
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -74,7 +149,7 @@ MonoBehaviour:
   m_MinSize: {x: 0, y: 0}
   m_MaxSize: {x: 0, y: 0}
   m_LastLoadedLayoutName: 
---- !u!114 &4
+--- !u!114 &7
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -87,10 +162,10 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_Children:
-  - {fileID: 6}
-  - {fileID: 7}
-  - {fileID: 8}
   - {fileID: 9}
+  - {fileID: 10}
+  - {fileID: 11}
+  - {fileID: 12}
   m_Position:
     serializedVersion: 2
     x: 0
@@ -102,7 +177,7 @@ MonoBehaviour:
   vertical: 0
   controlID: 180
   draggingID: 0
---- !u!114 &5
+--- !u!114 &8
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -123,7 +198,7 @@ MonoBehaviour:
     height: 20
   m_MinSize: {x: 0, y: 0}
   m_MaxSize: {x: 0, y: 0}
---- !u!114 &6
+--- !u!114 &9
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -136,8 +211,8 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_Children:
-  - {fileID: 10}
-  - {fileID: 11}
+  - {fileID: 13}
+  - {fileID: 14}
   m_Position:
     serializedVersion: 2
     x: 0
@@ -149,7 +224,7 @@ MonoBehaviour:
   vertical: 1
   controlID: 29
   draggingID: 0
---- !u!114 &7
+--- !u!114 &10
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -168,14 +243,14 @@ MonoBehaviour:
     y: 0
     width: 367
     height: 1307
-  m_MinSize: {x: 202, y: 221}
-  m_MaxSize: {x: 4002, y: 4021}
-  m_ActualView: {fileID: 12}
+  m_MinSize: {x: 200, y: 200}
+  m_MaxSize: {x: 4000, y: 4000}
+  m_ActualView: {fileID: 16}
   m_Panes:
-  - {fileID: 12}
+  - {fileID: 16}
   m_Selected: 0
   m_LastSelected: 0
---- !u!114 &8
+--- !u!114 &11
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -196,12 +271,12 @@ MonoBehaviour:
     height: 1307
   m_MinSize: {x: 232, y: 271}
   m_MaxSize: {x: 10002, y: 10021}
-  m_ActualView: {fileID: 14}
+  m_ActualView: {fileID: 18}
   m_Panes:
-  - {fileID: 14}
+  - {fileID: 18}
   m_Selected: 0
   m_LastSelected: 0
---- !u!114 &9
+--- !u!114 &12
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -222,12 +297,12 @@ MonoBehaviour:
     height: 1307
   m_MinSize: {x: 276, y: 71}
   m_MaxSize: {x: 4001, y: 4021}
-  m_ActualView: {fileID: 13}
+  m_ActualView: {fileID: 17}
   m_Panes:
-  - {fileID: 13}
+  - {fileID: 17}
   m_Selected: 0
   m_LastSelected: 0
---- !u!114 &10
+--- !u!114 &13
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -246,14 +321,14 @@ MonoBehaviour:
     y: 0
     width: 1209
     height: 308
-  m_MinSize: {x: 201, y: 221}
-  m_MaxSize: {x: 4001, y: 4021}
-  m_ActualView: {fileID: 16}
+  m_MinSize: {x: 200, y: 200}
+  m_MaxSize: {x: 4000, y: 4000}
+  m_ActualView: {fileID: 20}
   m_Panes:
-  - {fileID: 16}
+  - {fileID: 20}
   m_Selected: 0
   m_LastSelected: 0
---- !u!114 &11
+--- !u!114 &14
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -274,12 +349,46 @@ MonoBehaviour:
     height: 999
   m_MinSize: {x: 201, y: 221}
   m_MaxSize: {x: 4001, y: 4021}
-  m_ActualView: {fileID: 15}
+  m_ActualView: {fileID: 19}
   m_Panes:
-  - {fileID: 15}
+  - {fileID: 19}
   m_Selected: 0
   m_LastSelected: 0
---- !u!114 &12
+--- !u!114 &15
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 12003, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_MinSize: {x: 100, y: 100}
+  m_MaxSize: {x: 4000, y: 4000}
+  m_TitleContent:
+    m_Text: Console
+    m_Image: {fileID: -4327648978806127646, guid: 0000000000000000d000000000000000, type: 0}
+    m_Tooltip: 
+  m_Pos:
+    serializedVersion: 2
+    x: 2911
+    y: 502
+    width: 892
+    height: 516
+  m_SerializedDataModeController:
+    m_DataMode: 0
+    m_PreferredDataMode: 0
+    m_SupportedDataModes: 
+    isAutomatic: 1
+  m_ViewDataDictionary: {fileID: 0}
+  m_OverlayCanvas:
+    m_LastAppliedPresetName: Default
+    m_SaveData: []
+    m_OverlaysVisible: 1
+--- !u!114 &16
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -318,7 +427,7 @@ MonoBehaviour:
       scrollPos: {x: 0, y: 0}
       m_SelectedIDs: 
       m_LastClickedID: 0
-      m_ExpandedIDs: 5efaffff
+      m_ExpandedIDs: b8faffff
       m_RenameOverlay:
         m_UserAcceptedRename: 0
         m_Name: 
@@ -334,7 +443,7 @@ MonoBehaviour:
         m_IsRenaming: 0
         m_OriginalEventType: 11
         m_IsRenamingFilename: 0
-        m_ClientGUIView: {fileID: 7}
+        m_ClientGUIView: {fileID: 10}
       m_SearchString: 
     m_ExpandedScenes: []
     m_CurrenRootInstanceID: 0
@@ -342,7 +451,7 @@ MonoBehaviour:
       m_IsLocked: 0
     m_CurrentSortingName: TransformSorting
   m_WindowGUID: aaf4eaa9bcd57ea468179db2b9e4fb70
---- !u!114 &13
+--- !u!114 &17
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -389,7 +498,7 @@ MonoBehaviour:
   m_LockTracker:
     m_IsLocked: 0
   m_PreviewWindow: {fileID: 0}
---- !u!114 &14
+--- !u!114 &18
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -424,7 +533,7 @@ MonoBehaviour:
     m_SaveData: []
     m_OverlaysVisible: 1
   m_SearchFilter:
-    m_NameFilter: LogT
+    m_NameFilter: 
     m_ClassNames: []
     m_AssetLabels: []
     m_AssetBundleNames: []
@@ -434,24 +543,24 @@ MonoBehaviour:
     m_SkipHidden: 0
     m_SearchArea: 1
     m_Folders:
-    - Assets/Scripts/GameUI/UI/MainPanel
+    - Assets/Scripts/Core/Log
     m_Globs: []
-    m_OriginalText: LogT
+    m_OriginalText: 
     m_ImportLogFlags: 0
     m_FilterByTypeIntersection: 0
   m_ViewMode: 1
   m_StartGridSize: 16
   m_LastFolders:
-  - Assets/Scripts/GameUI/UI/MainPanel
+  - Assets/Scripts/Core/Log
   m_LastFoldersGridSize: 16
   m_LastProjectPath: D:\Server\NetServer\NetServer\XiuXianGame
   m_LockTracker:
     m_IsLocked: 0
   m_FolderTreeState:
-    scrollPos: {x: 0, y: 1615}
-    m_SelectedIDs: 06cb0000
-    m_LastClickedID: 51974
-    m_ExpandedIDs: 0000000024a800001eca000020ca000022ca000024ca000026ca000028ca00002aca00002cca00002eca000030ca000032ca000034ca000036ca000038ca00003aca00003cca00003eca000040ca000042ca000044ca000046ca000048ca00004aca00004cca000088ca000008cb00000acb000000ca9a3bffffff7f
+    scrollPos: {x: 0, y: 366}
+    m_SelectedIDs: 26cb0000
+    m_LastClickedID: 52006
+    m_ExpandedIDs: 0000000016a8000010ca000012ca000014ca000016ca000018ca00001aca00001cca00001eca000020ca000022ca000024ca000026ca000028ca00002aca00002cca00002eca000030ca000032ca000034ca000036ca000038ca00003aca00003cca00003eca00007aca0000faca0000fcca000000ca9a3bffffff7f
     m_RenameOverlay:
       m_UserAcceptedRename: 0
       m_Name: 
@@ -479,7 +588,7 @@ MonoBehaviour:
     scrollPos: {x: 0, y: 0}
     m_SelectedIDs: 
     m_LastClickedID: 0
-    m_ExpandedIDs: 0000000024a800001eca000020ca000022ca000024ca000026ca000028ca00002aca00002cca00002eca000030ca000032ca000034ca000036ca000038ca00003aca00003cca00003eca000040ca000042ca000044ca000046ca000048ca00004aca00004cca0000
+    m_ExpandedIDs: 0000000016a8000010ca000012ca000014ca000016ca000018ca00001aca00001cca00001eca000020ca000022ca000024ca000026ca000028ca00002aca00002cca00002eca000030ca000032ca000034ca000036ca000038ca00003aca00003cca00003eca0000
     m_RenameOverlay:
       m_UserAcceptedRename: 0
       m_Name: 
@@ -506,7 +615,7 @@ MonoBehaviour:
   m_ListAreaState:
     m_SelectedInstanceIDs: 
     m_LastClickedInstanceID: 0
-    m_HadKeyboardFocusLastEvent: 0
+    m_HadKeyboardFocusLastEvent: 1
     m_ExpandedInstanceIDs: 
     m_RenameOverlay:
       m_UserAcceptedRename: 0
@@ -523,7 +632,7 @@ MonoBehaviour:
       m_IsRenaming: 0
       m_OriginalEventType: 11
       m_IsRenamingFilename: 1
-      m_ClientGUIView: {fileID: 8}
+      m_ClientGUIView: {fileID: 11}
     m_CreateAssetUtility:
       m_EndAction: {fileID: 0}
       m_InstanceID: 0
@@ -535,7 +644,7 @@ MonoBehaviour:
     m_GridSize: 16
   m_SkipHiddenPackages: 0
   m_DirectoriesAreaWidth: 175
---- !u!114 &15
+--- !u!114 &19
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -633,7 +742,7 @@ MonoBehaviour:
   m_LowResolutionForAspectRatios: 01000001000000000000
   m_XRRenderMode: 0
   m_RenderTexture: {fileID: 0}
---- !u!114 &16
+--- !u!114 &20
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}

+ 2 - 0
XiuXianGame.sln.DotSettings.user

@@ -84,6 +84,7 @@
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AS2002_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fa01b6d4ffd8a40da9aa90b33ff5055f23dc00_003Fce_003Fab212403_003FS2002_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AScreen_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5c4a01f363eb46748231fc41bd9bdd8517e000_003Fe9_003F4d041715_003FScreen_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AScriptableObject_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5c4a01f363eb46748231fc41bd9bdd8517e000_003Fee_003Fe3748593_003FScriptableObject_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
+	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ASHA1_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F3789ee403a53437cbb6b5d9ab6311f51573620_003Ff4_003F71b5cd79_003FSHA1_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AShader_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5c4a01f363eb46748231fc41bd9bdd8517e000_003F21_003Fcaaaf4a6_003FShader_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AShaderVariantCollection_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5c4a01f363eb46748231fc41bd9bdd8517e000_003F8c_003F3e54d954_003FShaderVariantCollection_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ASingle_002Ecs_002Fl_003AC_0021_003FUsers_003Fck_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fb18a8b3398e74bca86895881dd02956c573648_003F16_003F2be7d3ed_003FSingle_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
@@ -91,6 +92,7 @@
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATaskStatus_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F9c2967a135e648bdb993c5397a44991b573620_003F39_003F7aac61ac_003FTaskStatus_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATextAsset_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5c4a01f363eb46748231fc41bd9bdd8517e000_003F50_003F0344ee3c_003FTextAsset_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AThrowHelper_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fe4df6db7850b4c40b72002ff5da8188846ac00_003Ff0_003F199a436f_003FThrowHelper_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
+	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AThrowHelper_002Ecs_002Fl_003AC_0021_003FUsers_003Fck_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fc97329dd3fa74b7aa23fdb625c1fe90446ac00_003F52_003Ff694390e_003FThrowHelper_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AThrowHelper_002Ecs_002Fl_003AC_0021_003FUsers_003Fck_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fe4df6db7850b4c40b72002ff5da8188846ac00_003F3b_003F1a234af4_003FThrowHelper_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATime_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F52d61f6cbc024a7eab0cd1f462e4bc53104c00_003Fc6_003F8739ef35_003FTime_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATrailRenderer_002Ecs_002Fl_003AC_0021_003FUsers_003Fck_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5c4a01f363eb46748231fc41bd9bdd8517e000_003Fe4_003F6073d988_003FTrailRenderer_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>

BIN
美术/商店所需/无logo宣传图横.png


BIN
美术/商店所需/无logo宣传图竖.png


Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác