Browse Source

config

master
linquan 2 months ago
parent
commit
66ecd8073f
  1. 116
      package-lock.json
  2. 2
      package.json
  3. 2730
      src/api/common/consts.ts
  4. 955
      src/api/config/AchievementsConfigCategory.json
  5. 816
      src/api/config/AllItemConfigCategory.json
  6. 250
      src/api/config/BeastTideConfigCategory.json
  7. 45
      src/api/config/BuildFunctionConfigCategory.json
  8. 22
      src/api/config/BusinessManConfigCategory.json
  9. 72
      src/api/config/CommonShopConfigCategory.json
  10. 80
      src/api/config/DialogueConfigCategory.json
  11. 1342
      src/api/config/DropGroupConfigCategory.json
  12. 32
      src/api/config/ExploreEventConfigCategory.json
  13. 4
      src/api/config/ExploreFixedNodeConfigCategory.json
  14. 10
      src/api/config/FamilyDinnerEventConfigCategory.json
  15. 32
      src/api/config/FunctionItemConfigCategory.json
  16. 7
      src/api/config/GameAIConfigCategory.json
  17. 32
      src/api/config/GameUnitSizeInfoConfigCategory.json
  18. 8
      src/api/config/GemFusionConfigCategory.json
  19. 4
      src/api/config/GoodsForRecycleConfigCategory.json
  20. 62
      src/api/config/GoodsForSaleConfigCategory.json
  21. 115
      src/api/config/HeadIconConfigCategory.json
  22. 6
      src/api/config/HelpConfigCategory.json
  23. 3
      src/api/config/InitialNpcCategory.json
  24. 60
      src/api/config/LiveStockConfigCategory.json
  25. 4
      src/api/config/MainButtonConfigCategory.json
  26. 6
      src/api/config/MedicineConfigCategory.json
  27. 1549
      src/api/config/MonsterConfigCategory.json
  28. 6
      src/api/config/MonthlyCardConfigCategory.json
  29. 30
      src/api/config/NpcConfigCategory.json
  30. 8
      src/api/config/NpcPosInfoConfigCategory.json
  31. 22
      src/api/config/OptionsBehaviourConfigCategory.json
  32. 32
      src/api/config/OptionsConfigCategory.json
  33. 10
      src/api/config/PackageConfigCategory.json
  34. 21
      src/api/config/PetConfigCategory.json
  35. 3
      src/api/config/RechargeAddUpConfigCategory.json
  36. 11
      src/api/config/ReputationShopItemGroupConfigCategory.json
  37. 47
      src/api/config/ResourcesConfigCategory.json
  38. 84
      src/api/config/ResourcesPointConfigCategory.json
  39. 80
      src/api/config/RewardGroupConfigCategory.json
  40. 2
      src/api/config/ScaleConfigCategory.json
  41. 130
      src/api/config/ScienceConfigCategory.json
  42. 1500
      src/api/config/SiegeRewardsConfigCategory.json
  43. 384
      src/api/config/SkillBuffConfigCategory.json
  44. 40
      src/api/config/SkillConfigCategory.json
  45. 38
      src/api/config/SkillEffectConfigCategory.json
  46. 13
      src/api/config/StoryAnimationConfigCategory.json
  47. 347
      src/api/config/StructureConfigCategory.json
  48. 16
      src/api/config/StructureFightConfigCategory.json
  49. 170
      src/api/config/StructureStrengthenConfigCategory.json
  50. 264
      src/api/config/SynthesisConfigCategory.json
  51. 21
      src/api/config/SystemConditionsConfigCategory.json
  52. 150
      src/api/config/TaskConfigCategory.json
  53. 27
      src/api/config/TaskDialogueConfigCategory.json
  54. 35
      src/api/config/TaskStepConfigCategory.json
  55. 122
      src/api/config/TextConfigCategory.json
  56. 120
      src/api/config/TitleConfigCategory.json
  57. 80
      src/api/config/ValleyEffectConfigCategory.json
  58. 2698
      src/api/config/WarConfigCategory.json
  59. 11
      src/api/config/WarriorConfigCategory.json
  60. 10
      src/api/config/WorldParametersConfigCategory.json
  61. 48
      src/api/game/index.ts
  62. 6
      src/utils/game.ts
  63. 8
      src/utils/utils.ts
  64. 2
      src/views/gameBug/clientBug/index.vue
  65. 2
      src/views/gameCCD/hotfix/index.vue
  66. 2
      src/views/gameCCD/version/index.vue
  67. 124
      src/views/gameLoginUrl/list/component/editRecommend.vue
  68. 125
      src/views/gameLoginUrl/list/component/editState.vue
  69. 352
      src/views/gameLoginUrl/list/index.vue
  70. 2
      src/views/gameLoginUrl/routerList/index.vue
  71. 2
      src/views/gameLoginUrl/serverGeneralList/index.vue
  72. 2
      src/views/gameLoginUrl/serverList/index.vue
  73. 2
      src/views/gameLoginUrl/serverVersion/index.vue
  74. 28
      src/views/gameManage/copyUnit/index.vue
  75. 50
      src/views/gameManage/gm/index.vue
  76. 2
      src/views/gameOrder/deposit/index.vue
  77. 209
      src/views/gameOrder/getTransactionId/index.vue
  78. 17
      src/views/gameOrder/gmOrderList/index.vue
  79. 2
      src/views/gameOrder/orderList/index.vue
  80. 591
      src/views/gameOrder/orderLog/index.vue
  81. 1
      src/views/gameOrder/orderLog1/index.vue
  82. 2
      src/views/gameOrder/rechargePer/index.vue
  83. 6
      src/views/gameOrder/shopInfo/index.vue
  84. 62
      src/views/gameResetOrderSign/reset/index.vue
  85. 296
      src/views/gameRole/account/index.vue
  86. 162
      src/views/gameRole/deleteAccount/index.vue
  87. 64
      src/views/gameRole/role/index.vue
  88. 1
      src/views/gameRole/statics/index.vue
  89. 24
      src/views/gameSet/auditMode/index.vue
  90. 2
      src/views/gameWhiteList/blacklist/index.vue
  91. 2
      src/views/gameWhiteList/list/index.vue

116
package-lock.json generated

@ -300,11 +300,24 @@
"integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==",
"dev": true
},
"@types/jsonwebtoken": {
"version": "9.0.9",
"resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.9.tgz",
"integrity": "sha512-uoe+GxEuHbvy12OUQct2X9JenKM3qAscquYymuQN4fMWG9DBQtykrQEFcAbVACF7qaLw9BePSodUL0kquqBJpQ==",
"requires": {
"@types/ms": "*",
"@types/node": "*"
}
},
"@types/ms": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz",
"integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="
},
"@types/node": {
"version": "17.0.21",
"resolved": "https://registry.npmmirror.com/@types/node/-/node-17.0.21.tgz",
"integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==",
"dev": true
"integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ=="
},
"@types/nprogress": {
"version": "0.2.0",
@ -650,6 +663,11 @@
"fill-range": "^7.0.1"
}
},
"buffer-equal-constant-time": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
"integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA=="
},
"call-bind": {
"version": "1.0.7",
"resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.7.tgz",
@ -855,6 +873,14 @@
"integrity": "sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==",
"dev": true
},
"ecdsa-sig-formatter": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
"integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
"requires": {
"safe-buffer": "^5.0.1"
}
},
"echarts": {
"version": "5.3.0",
"resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.3.0.tgz",
@ -1698,11 +1724,54 @@
"integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
"dev": true
},
"jsonwebtoken": {
"version": "9.0.2",
"resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz",
"integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==",
"requires": {
"jws": "^3.2.2",
"lodash.includes": "^4.3.0",
"lodash.isboolean": "^3.0.3",
"lodash.isinteger": "^4.0.4",
"lodash.isnumber": "^3.0.3",
"lodash.isplainobject": "^4.0.6",
"lodash.isstring": "^4.0.1",
"lodash.once": "^4.0.0",
"ms": "^2.1.1",
"semver": "^7.5.4"
},
"dependencies": {
"semver": {
"version": "7.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
"integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA=="
}
}
},
"jsplumb": {
"version": "2.15.6",
"resolved": "https://registry.npmmirror.com/jsplumb/-/jsplumb-2.15.6.tgz",
"integrity": "sha512-sIpbpz5eMVM+vV+MQzFCidlaa1RsknrQs6LOTKYDjYUDdTAi2AN2bFi94TxB33TifcIsRNV1jebcaxg0tCoPzg=="
},
"jwa": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.2.tgz",
"integrity": "sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==",
"requires": {
"buffer-equal-constant-time": "^1.0.1",
"ecdsa-sig-formatter": "1.0.11",
"safe-buffer": "^5.0.1"
}
},
"jws": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
"integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
"requires": {
"jwa": "^1.4.1",
"safe-buffer": "^5.0.1"
}
},
"klona": {
"version": "2.0.5",
"resolved": "https://registry.npmmirror.com/klona/-/klona-2.0.5.tgz",
@ -1743,12 +1812,47 @@
"resolved": "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.2.tgz",
"integrity": "sha512-OGbEy+1P+UT26CYi4opY4gebD8cWRDxAT6MAObIVQMiqYdxZr1g3QHWCToVsm31x2NkLS4K3+MC2qInaRMa39g=="
},
"lodash.includes": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
"integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w=="
},
"lodash.isboolean": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
"integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg=="
},
"lodash.isinteger": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
"integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA=="
},
"lodash.isnumber": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
"integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw=="
},
"lodash.isplainobject": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
"integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA=="
},
"lodash.isstring": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
"integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw=="
},
"lodash.merge": {
"version": "4.6.2",
"resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz",
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
"dev": true
},
"lodash.once": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
"integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg=="
},
"lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
@ -1804,8 +1908,7 @@
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"nanoid": {
"version": "3.3.1",
@ -2103,6 +2206,11 @@
"queue-microtask": "^1.2.2"
}
},
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
},
"sass": {
"version": "1.49.9",
"resolved": "https://registry.npmmirror.com/sass/-/sass-1.49.9.tgz",

2
package.json

@ -15,6 +15,7 @@
},
"dependencies": {
"@element-plus/icons-vue": "^1.0.0",
"@types/jsonwebtoken": "^9.0.9",
"axios": "^0.26.0",
"countup.js": "^2.1.0",
"cropperjs": "^1.5.12",
@ -22,6 +23,7 @@
"echarts-gl": "^2.0.9",
"echarts-wordcloud": "^2.0.0",
"element-plus": "^2.0.4",
"jsonwebtoken": "^9.0.2",
"jsplumb": "^2.15.6",
"mitt": "^3.0.0",
"nprogress": "^0.2.0",

2730
src/api/common/consts.ts

File diff suppressed because it is too large Load Diff

955
src/api/config/AchievementsConfigCategory.json

@ -0,0 +1,955 @@
[
{
"AchievementsId": 1,
"AchievementsName": "神木擎天接紫霄",
"AchievementsType": 1,
"IsProgress": true,
"Describe": "不死树等级达到{0}",
"RequirementTpye": 41,
"TargetType": [
30
],
"RewareId1": 210000,
"RewardNumber1": 20000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 2,
"AchievementsName": "百榫连城筑铁壁",
"AchievementsType": 1,
"IsProgress": true,
"Describe": "累计加固建筑{0}次",
"RequirementTpye": 36,
"TargetType": [
100
],
"RewareId1": 210000,
"RewardNumber1": 20000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 3,
"AchievementsName": "桃谷春秋历百转",
"AchievementsType": 1,
"IsProgress": true,
"Describe": "桃谷度过{0}天",
"RequirementTpye": 43,
"TargetType": [
100
],
"RewareId1": 210000,
"RewardNumber1": 20000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 4,
"AchievementsName": "悬壶济世百草方",
"AchievementsType": 1,
"IsProgress": true,
"Describe": "累计使用药品{0}次",
"RequirementTpye": 35,
"TargetType": [
100
],
"RewareId1": 210000,
"RewardNumber1": 20000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 5,
"AchievementsName": "晨耕暮织五十笺",
"AchievementsType": 1,
"IsProgress": true,
"Describe": "累计完成日常任务{0}个",
"RequirementTpye": 38,
"TargetType": [
50
],
"RewareId1": 210000,
"RewardNumber1": 20000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 6,
"AchievementsName": "霓裳织就云霞色",
"AchievementsType": 1,
"IsProgress": true,
"Describe": "累计制作{0}件衣服",
"RequirementTpye": 40,
"TargetType": [
200
],
"RewareId1": 210000,
"RewardNumber1": 20000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 7,
"AchievementsName": "八野嘉禾覆阡陌",
"AchievementsType": 1,
"IsProgress": true,
"Describe": "解锁{0}种农作物",
"RequirementTpye": 32,
"TargetType": [
8
],
"RewareId1": 210000,
"RewardNumber1": 20000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 8,
"AchievementsName": "六千驿马络桃川",
"AchievementsType": 1,
"IsProgress": true,
"Describe": "{0}个村落声望值达到{3}",
"RequirementTpye": 12,
"TargetType": [
1,
6000
],
"RewareId1": 210000,
"RewardNumber1": 20000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 9,
"AchievementsName": "雄关血铸镇妖门",
"AchievementsType": 1,
"IsProgress": false,
"Describe": "成功研究{7}最高级科技",
"RequirementTpye": 33,
"TargetType": [
2310
],
"RewareId1": 210000,
"RewardNumber1": 20000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 10,
"AchievementsName": "金鸡栖梧鸣桃坞",
"AchievementsType": 1,
"IsProgress": true,
"Describe": "桃谷内同时存在鸡{0}只",
"RequirementTpye": 44,
"TargetType": [
50
],
"RewareId1": 210000,
"RewardNumber1": 20000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 11,
"AchievementsName": "采薇人归暮云深",
"AchievementsType": 1,
"IsProgress": true,
"Describe": "累计采集谷外小资源{0}次",
"RequirementTpye": 37,
"TargetType": [
500
],
"RewareId1": 210000,
"RewardNumber1": 20000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 12,
"AchievementsName": "比邻共饮桃花酿",
"AchievementsType": 1,
"IsProgress": false,
"Describe": "邀请一个邻居",
"RequirementTpye": 17,
"TargetType": [
0
],
"RewareId1": 210000,
"RewardNumber1": 20000,
"RewareId2": 7207,
"RewardNumber2": 1,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 13,
"AchievementsName": "二十炊烟绕新柳",
"AchievementsType": 1,
"IsProgress": false,
"Describe": "规模达到{0}",
"RequirementTpye": 1,
"TargetType": [
20
],
"RewareId1": 210000,
"RewardNumber1": 20000,
"RewareId2": 7211,
"RewardNumber2": 1,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 2001,
"AchievementsName": "桃谷春秋贮万粟",
"AchievementsType": 2,
"IsProgress": false,
"Describe": "桃谷基础食物达到{0}",
"RequirementTpye": 42,
"TargetType": [
100000
],
"RewareId1": 210000,
"RewardNumber1": 40000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 2002,
"AchievementsName": "玄甲夜戍五十更",
"AchievementsType": 2,
"IsProgress": true,
"Describe": "攻城战累计胜利{0}次",
"RequirementTpye": 8,
"TargetType": [
50
],
"RewareId1": 210000,
"RewardNumber1": 40000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 2003,
"AchievementsName": "踏遍千山寻仙踪",
"AchievementsType": 2,
"IsProgress": true,
"Describe": "累计完成探索{0}次",
"RequirementTpye": 10,
"TargetType": [
100
],
"RewareId1": 210000,
"RewardNumber1": 40000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 2004,
"AchievementsName": "百器流光缀桃源",
"AchievementsType": 2,
"IsProgress": true,
"Describe": "解锁{0}个建筑皮肤",
"RequirementTpye": 14,
"TargetType": [
5
],
"RewareId1": 210000,
"RewardNumber1": 40000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 2005,
"AchievementsName": "四海皆闻桃源名",
"AchievementsType": 2,
"IsProgress": true,
"Describe": "{0}个村落声望值达到{3}",
"RequirementTpye": 12,
"TargetType": [
4,
6000
],
"RewareId1": 210000,
"RewardNumber1": 40000,
"RewareId2": 140000,
"RewardNumber2": 1,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 2006,
"AchievementsName": "百家灯火续长明",
"AchievementsType": 2,
"IsProgress": true,
"Describe": "族谱中记录的村民数量累计{0}个",
"RequirementTpye": 22,
"TargetType": [
200
],
"RewareId1": 210000,
"RewardNumber1": 40000,
"RewareId2": 140001,
"RewardNumber2": 1,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 2007,
"AchievementsName": "初砺魂石现锋芒",
"AchievementsType": 2,
"IsProgress": true,
"Describe": "{0}个勇士的体魂达到{3}级",
"RequirementTpye": 9,
"TargetType": [
1,
10
],
"RewareId1": 210000,
"RewardNumber1": 40000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 2008,
"AchievementsName": "千里鹅毛寄桃源",
"AchievementsType": 2,
"IsProgress": true,
"Describe": "累计收到村落赠送的礼物{0}份",
"RequirementTpye": 34,
"TargetType": [
50
],
"RewareId1": 210000,
"RewardNumber1": 40000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 2009,
"AchievementsName": "千券化作炊烟去",
"AchievementsType": 2,
"IsProgress": true,
"Describe": "累计消耗{1}{0}个",
"RequirementTpye": 39,
"TargetType": [
701,
4000
],
"RewareId1": 210000,
"RewardNumber1": 40000,
"RewareId2": 140007,
"RewardNumber2": 1,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 2010,
"AchievementsName": "百战黄沙砺剑鸣",
"AchievementsType": 2,
"IsProgress": true,
"Describe": "累计进行{0}次兽潮挑战",
"RequirementTpye": 16,
"TargetType": [
100
],
"RewareId1": 210000,
"RewardNumber1": 40000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 3001,
"AchievementsName": "金瓜垂垂满秋架",
"AchievementsType": 3,
"IsProgress": true,
"Describe": "累计获得{0}个{1}",
"RequirementTpye": 7,
"TargetType": [
855,
1000
],
"RewareId1": 210000,
"RewardNumber1": 60000,
"RewareId2": 7208,
"RewardNumber2": 1,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 3002,
"AchievementsName": "水芝累累覆霜圃",
"AchievementsType": 3,
"IsProgress": true,
"Describe": "累计获得{0}个{1}",
"RequirementTpye": 7,
"TargetType": [
856,
1000
],
"RewareId1": 210000,
"RewardNumber1": 60000,
"RewareId2": 7207,
"RewardNumber2": 1,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 3003,
"AchievementsName": "千禽过隙录桃簿",
"AchievementsType": 3,
"IsProgress": true,
"Describe": "累计获得{0}只{1}",
"RequirementTpye": 7,
"TargetType": [
8001,
1000
],
"RewareId1": 210000,
"RewardNumber1": 60000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 3004,
"AchievementsName": "万粟流转太平策",
"AchievementsType": 3,
"IsProgress": true,
"Describe": "累计制作{0}份菜品",
"RequirementTpye": 11,
"TargetType": [
10000
],
"RewareId1": 210000,
"RewardNumber1": 60000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 3005,
"AchievementsName": "一竿钓尽武陵春",
"AchievementsType": 3,
"IsProgress": true,
"Describe": "累计获得{0}条{1}",
"RequirementTpye": 7,
"TargetType": [
131,
500
],
"RewareId1": 210000,
"RewardNumber1": 60000,
"RewareId2": 140002,
"RewardNumber2": 1,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 3006,
"AchievementsName": "千蟹横行入瓮来",
"AchievementsType": 3,
"IsProgress": true,
"Describe": "累计获得{0}只{1}",
"RequirementTpye": 7,
"TargetType": [
113,
1000
],
"RewareId1": 210000,
"RewardNumber1": 60000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 3007,
"AchievementsName": "渔溪慈航渡五十",
"AchievementsType": 3,
"IsProgress": true,
"Describe": "累计在{2}捐赠{0}次",
"RequirementTpye": 27,
"TargetType": [
3002,
50
],
"RewareId1": 210000,
"RewardNumber1": 60000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 3008,
"AchievementsName": "赤丘燃灯明千帐",
"AchievementsType": 3,
"IsProgress": true,
"Describe": "累计在{2}捐赠{0}次",
"RequirementTpye": 27,
"TargetType": [
3003,
50
],
"RewareId1": 210000,
"RewardNumber1": 60000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 3009,
"AchievementsName": "太姥织云庇万椽",
"AchievementsType": 3,
"IsProgress": true,
"Describe": "累计在{2}捐赠{0}次",
"RequirementTpye": 27,
"TargetType": [
3004,
50
],
"RewareId1": 210000,
"RewardNumber1": 60000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 3010,
"AchievementsName": "广纳流民筑新庐",
"AchievementsType": 3,
"IsProgress": true,
"Describe": "累计接纳{0}位难民",
"RequirementTpye": 21,
"TargetType": [
100
],
"RewareId1": 210000,
"RewardNumber1": 60000,
"RewareId2": 7320,
"RewardNumber2": 1,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 4001,
"AchievementsName": "人生七十古来稀",
"AchievementsType": 4,
"IsProgress": true,
"Describe": "累计{0}个村民寿命达到{3}岁",
"RequirementTpye": 2,
"TargetType": [
20,
70
],
"RewareId1": 210000,
"RewardNumber1": 80000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 4002,
"AchievementsName": "三魂淬火铸金身",
"AchievementsType": 4,
"IsProgress": true,
"Describe": "{0}个勇士的体魂达到{3}级",
"RequirementTpye": 9,
"TargetType": [
3,
15
],
"RewareId1": 210000,
"RewardNumber1": 80000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 4003,
"AchievementsName": "万贯春风扫落英",
"AchievementsType": 4,
"IsProgress": true,
"Describe": "累计获得{0}个铜钱",
"RequirementTpye": 7,
"TargetType": [
210000,
100000000
],
"RewareId1": 210000,
"RewardNumber1": 80000,
"RewareId2": 140005,
"RewardNumber2": 1,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 4004,
"AchievementsName": "百匠授业承星火",
"AchievementsType": 4,
"IsProgress": true,
"Describe": "累计有{0}个村民通过学习获得技能",
"RequirementTpye": 26,
"TargetType": [
100
],
"RewareId1": 210000,
"RewardNumber1": 80000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 4005,
"AchievementsName": "半百檐铃缀桃源",
"AchievementsType": 4,
"IsProgress": true,
"Describe": "解锁{0}种装饰品",
"RequirementTpye": 13,
"TargetType": [
50
],
"RewareId1": 210000,
"RewardNumber1": 80000,
"RewareId2": 140004,
"RewardNumber2": 1,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 4006,
"AchievementsName": "檐角流光驻春秋",
"AchievementsType": 4,
"IsProgress": true,
"Describe": "拥有{0}个建筑每日耐久度+1",
"RequirementTpye": 15,
"TargetType": [
3
],
"RewareId1": 210000,
"RewardNumber1": 80000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 4007,
"AchievementsName": "比翼楼前拾遗羽",
"AchievementsType": 4,
"IsProgress": true,
"Describe": "在比翼楼中触发羽毛掉落事件{0}次",
"RequirementTpye": 19,
"TargetType": [
99
],
"RewareId1": 210000,
"RewardNumber1": 80000,
"RewareId2": 140003,
"RewardNumber2": 1,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 4008,
"AchievementsName": "夜市点石成金手",
"AchievementsType": 4,
"IsProgress": true,
"Describe": "累计在{5}处获得{0}个铜钱",
"RequirementTpye": 20,
"TargetType": [
1070,
10000000
],
"RewareId1": 210000,
"RewardNumber1": 80000,
"RewareId2": 140006,
"RewardNumber2": 1,
"RewareId3": 100001,
"RewardNumber3": 1,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 4009,
"AchievementsName": "千金散作桃花雨",
"AchievementsType": 4,
"IsProgress": true,
"Describe": "累计在{5}处花费{0}个铜钱",
"RequirementTpye": 28,
"TargetType": [
1068,
10000000
],
"RewareId1": 210000,
"RewardNumber1": 80000,
"RewareId2": 100000,
"RewardNumber2": 1,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 5001,
"AchievementsName": "鹤寿盈门映桃源",
"AchievementsType": 5,
"IsProgress": true,
"Describe": "累计{0}个村民寿命达到{3}岁",
"RequirementTpye": 2,
"TargetType": [
50,
70
],
"RewareId1": 210000,
"RewardNumber1": 100000,
"RewareId2": 100002,
"RewardNumber2": 1,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 5002,
"AchievementsName": "万象玄功映星辰",
"AchievementsType": 5,
"IsProgress": true,
"Describe": "累计{0}个村民拥有{4}技能",
"RequirementTpye": 25,
"TargetType": [
100,
15
],
"RewareId1": 210000,
"RewardNumber1": 100000,
"RewareId2": 0,
"RewardNumber2": 0,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 5003,
"AchievementsName": "一脉世居桃花源",
"AchievementsType": 5,
"IsProgress": true,
"Describe": "累计{0}个村民姓氏相同",
"RequirementTpye": 24,
"TargetType": [
50
],
"RewareId1": 210000,
"RewardNumber1": 100000,
"RewareId2": 7227,
"RewardNumber2": 1,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 5004,
"AchievementsName": "担岳踏浪撼地鸣",
"AchievementsType": 5,
"IsProgress": true,
"Describe": "累计{0}个村民劳力达到{3}",
"RequirementTpye": 3,
"TargetType": [
1,
70
],
"RewareId1": 210000,
"RewardNumber1": 100000,
"RewareId2": 220000,
"RewardNumber2": 100,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 5005,
"AchievementsName": "观天织雾解玄机",
"AchievementsType": 5,
"IsProgress": true,
"Describe": "累计{0}个村民智力达到{3}",
"RequirementTpye": 4,
"TargetType": [
1,
70
],
"RewareId1": 210000,
"RewardNumber1": 100000,
"RewareId2": 220000,
"RewardNumber2": 100,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 5006,
"AchievementsName": "八旬仙人隐桃谷",
"AchievementsType": 5,
"IsProgress": true,
"Describe": "累计{0}个村民年龄达到{3}",
"RequirementTpye": 5,
"TargetType": [
1,
80
],
"RewareId1": 210000,
"RewardNumber1": 100000,
"RewareId2": 220000,
"RewardNumber2": 100,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
},
{
"AchievementsId": 5008,
"AchievementsName": "千姓共织桃源梦",
"AchievementsType": 5,
"IsProgress": true,
"Describe": "桃谷中出现过{0}个姓氏",
"RequirementTpye": 45,
"TargetType": [
300
],
"RewareId1": 210000,
"RewardNumber1": 100000,
"RewareId2": 140009,
"RewardNumber2": 1,
"RewareId3": 0,
"RewardNumber3": 0,
"RewareId4": 0,
"RewardNumber4": 0
}
]

816
src/api/config/AllItemConfigCategory.json

File diff suppressed because it is too large Load Diff

250
src/api/config/BeastTideConfigCategory.json

@ -998,5 +998,255 @@
"Id": 200,
"Challenge": 10200,
"ChallengeAward": 2200
},
{
"Id": 201,
"Challenge": 10201,
"ChallengeAward": 2201
},
{
"Id": 202,
"Challenge": 10202,
"ChallengeAward": 2202
},
{
"Id": 203,
"Challenge": 10203,
"ChallengeAward": 2203
},
{
"Id": 204,
"Challenge": 10204,
"ChallengeAward": 2204
},
{
"Id": 205,
"Challenge": 10205,
"ChallengeAward": 2205
},
{
"Id": 206,
"Challenge": 10206,
"ChallengeAward": 2206
},
{
"Id": 207,
"Challenge": 10207,
"ChallengeAward": 2207
},
{
"Id": 208,
"Challenge": 10208,
"ChallengeAward": 2208
},
{
"Id": 209,
"Challenge": 10209,
"ChallengeAward": 2209
},
{
"Id": 210,
"Challenge": 10210,
"ChallengeAward": 2210
},
{
"Id": 211,
"Challenge": 10211,
"ChallengeAward": 2211
},
{
"Id": 212,
"Challenge": 10212,
"ChallengeAward": 2212
},
{
"Id": 213,
"Challenge": 10213,
"ChallengeAward": 2213
},
{
"Id": 214,
"Challenge": 10214,
"ChallengeAward": 2214
},
{
"Id": 215,
"Challenge": 10215,
"ChallengeAward": 2215
},
{
"Id": 216,
"Challenge": 10216,
"ChallengeAward": 2216
},
{
"Id": 217,
"Challenge": 10217,
"ChallengeAward": 2217
},
{
"Id": 218,
"Challenge": 10218,
"ChallengeAward": 2218
},
{
"Id": 219,
"Challenge": 10219,
"ChallengeAward": 2219
},
{
"Id": 220,
"Challenge": 10220,
"ChallengeAward": 2220
},
{
"Id": 221,
"Challenge": 10221,
"ChallengeAward": 2221
},
{
"Id": 222,
"Challenge": 10222,
"ChallengeAward": 2222
},
{
"Id": 223,
"Challenge": 10223,
"ChallengeAward": 2223
},
{
"Id": 224,
"Challenge": 10224,
"ChallengeAward": 2224
},
{
"Id": 225,
"Challenge": 10225,
"ChallengeAward": 2225
},
{
"Id": 226,
"Challenge": 10226,
"ChallengeAward": 2226
},
{
"Id": 227,
"Challenge": 10227,
"ChallengeAward": 2227
},
{
"Id": 228,
"Challenge": 10228,
"ChallengeAward": 2228
},
{
"Id": 229,
"Challenge": 10229,
"ChallengeAward": 2229
},
{
"Id": 230,
"Challenge": 10230,
"ChallengeAward": 2230
},
{
"Id": 231,
"Challenge": 10231,
"ChallengeAward": 2231
},
{
"Id": 232,
"Challenge": 10232,
"ChallengeAward": 2232
},
{
"Id": 233,
"Challenge": 10233,
"ChallengeAward": 2233
},
{
"Id": 234,
"Challenge": 10234,
"ChallengeAward": 2234
},
{
"Id": 235,
"Challenge": 10235,
"ChallengeAward": 2235
},
{
"Id": 236,
"Challenge": 10236,
"ChallengeAward": 2236
},
{
"Id": 237,
"Challenge": 10237,
"ChallengeAward": 2237
},
{
"Id": 238,
"Challenge": 10238,
"ChallengeAward": 2238
},
{
"Id": 239,
"Challenge": 10239,
"ChallengeAward": 2239
},
{
"Id": 240,
"Challenge": 10240,
"ChallengeAward": 2240
},
{
"Id": 241,
"Challenge": 10241,
"ChallengeAward": 2241
},
{
"Id": 242,
"Challenge": 10242,
"ChallengeAward": 2242
},
{
"Id": 243,
"Challenge": 10243,
"ChallengeAward": 2243
},
{
"Id": 244,
"Challenge": 10244,
"ChallengeAward": 2244
},
{
"Id": 245,
"Challenge": 10245,
"ChallengeAward": 2245
},
{
"Id": 246,
"Challenge": 10246,
"ChallengeAward": 2246
},
{
"Id": 247,
"Challenge": 10247,
"ChallengeAward": 2247
},
{
"Id": 248,
"Challenge": 10248,
"ChallengeAward": 2248
},
{
"Id": 249,
"Challenge": 10249,
"ChallengeAward": 2249
},
{
"Id": 250,
"Challenge": 10250,
"ChallengeAward": 2250
}
]

45
src/api/config/BuildFunctionConfigCategory.json

@ -647,6 +647,17 @@
"HatchNum": 2,
"HatchTime": 2160
},
{
"Id": 581,
"ResourcesPointId": 0,
"ItemConversion": [
0
],
"LiveStockType": 2,
"PoultryNum": 5,
"FeedItem": 861,
"FeedStorage": 200
},
{
"Id": 582,
"ResourcesPointId": 0,
@ -661,6 +672,17 @@
"HatchNum": 4,
"HatchTime": 2160
},
{
"Id": 583,
"ResourcesPointId": 0,
"ItemConversion": [
0
],
"LiveStockType": 2,
"PoultryNum": 10,
"FeedItem": 861,
"FeedStorage": 400
},
{
"Id": 620,
"ResourcesPointId": 301,
@ -683,6 +705,14 @@
],
"HoardMonster": 5
},
{
"Id": 661,
"ResourcesPointId": 0,
"ItemConversion": [
0
],
"SettleIn": 8
},
{
"Id": 664,
"ResourcesPointId": 0,
@ -720,6 +750,14 @@
0
]
},
{
"Id": 672,
"ResourcesPointId": 0,
"ItemConversion": [
0
],
"SettleIn": 15
},
{
"Id": 1000,
"ResourcesPointId": 210,
@ -740,5 +778,12 @@
"ItemConversion": [
0
]
},
{
"Id": 1003,
"ResourcesPointId": 214,
"ItemConversion": [
0
]
}
]

22
src/api/config/BusinessManConfigCategory.json

@ -702,5 +702,27 @@
"ResetLimited": 0,
"ResetType": 2,
"ResetTypeParameter": 500
},
{
"Id": 4006,
"Name": "成就商人",
"Type": 4,
"TypeParameter": 0,
"ItemGroup": 406,
"ExtraItemGroup": 0,
"ExtraItemNum": 0,
"DiscountNum": 0,
"CommonRecycleItem": 0,
"RecycleItem": 0,
"RecycleItemNum": 0,
"HighPricedNum": 0,
"SaleRefreshTimes": 0,
"RecycleRefreshTimes": 0,
"ResetItem": 0,
"ResetItemNum": 0,
"Increment": 0,
"ResetLimited": 0,
"ResetType": 0,
"ResetTypeParameter": 0
}
]

72
src/api/config/CommonShopConfigCategory.json

@ -7,6 +7,8 @@
"Number": 50,
"Currency": 2,
"Price": 10,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 1
},
{
@ -17,6 +19,8 @@
"Number": 20,
"Currency": 2,
"Price": 100,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 1
},
{
@ -27,6 +31,8 @@
"Number": 20,
"Currency": 2,
"Price": 200,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 1
},
{
@ -37,6 +43,8 @@
"Number": 1,
"Currency": 2,
"Price": 3000,
"Discount": 100,
"DiscountWeight": 10,
"RefreshCycle": 0
},
{
@ -47,6 +55,8 @@
"Number": 1,
"Currency": 2,
"Price": 5000,
"Discount": 100,
"DiscountWeight": 10,
"RefreshCycle": 0
},
{
@ -57,6 +67,8 @@
"Number": 10,
"Currency": 2,
"Price": 20,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 1
},
{
@ -67,6 +79,8 @@
"Number": 10,
"Currency": 2,
"Price": 10,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 1
},
{
@ -77,6 +91,8 @@
"Number": 20,
"Currency": 2,
"Price": 100,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 1
},
{
@ -87,6 +103,8 @@
"Number": 1000,
"Currency": 2,
"Price": 1,
"Discount": 100,
"DiscountWeight": 10,
"RefreshCycle": 1
},
{
@ -97,6 +115,8 @@
"Number": 1000,
"Currency": 2,
"Price": 2,
"Discount": 50,
"DiscountWeight": 10,
"RefreshCycle": 1
},
{
@ -107,6 +127,8 @@
"Number": 1000,
"Currency": 2,
"Price": 3,
"Discount": 100,
"DiscountWeight": 10,
"RefreshCycle": 1
},
{
@ -117,6 +139,8 @@
"Number": 1000,
"Currency": 2,
"Price": 5,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 1
},
{
@ -127,6 +151,8 @@
"Number": 1000,
"Currency": 2,
"Price": 5,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 1
},
{
@ -137,6 +163,8 @@
"Number": 1000,
"Currency": 2,
"Price": 6,
"Discount": 100,
"DiscountWeight": 10,
"RefreshCycle": 1
},
{
@ -147,6 +175,8 @@
"Number": 20,
"Currency": 2,
"Price": 50,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 1
},
{
@ -157,6 +187,8 @@
"Number": 100,
"Currency": 2,
"Price": 2,
"Discount": 50,
"DiscountWeight": 10,
"RefreshCycle": 1
},
{
@ -167,6 +199,8 @@
"Number": 10,
"Currency": 2,
"Price": 5,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 0
},
{
@ -177,6 +211,8 @@
"Number": 10,
"Currency": 2,
"Price": 10,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 0
},
{
@ -187,6 +223,8 @@
"Number": 10,
"Currency": 2,
"Price": 20,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 0
},
{
@ -197,6 +235,8 @@
"Number": 10,
"Currency": 2,
"Price": 40,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 0
},
{
@ -207,6 +247,8 @@
"Number": 10,
"Currency": 2,
"Price": 2,
"Discount": 50,
"DiscountWeight": 10,
"RefreshCycle": 1
},
{
@ -217,6 +259,8 @@
"Number": 10,
"Currency": 2,
"Price": 5,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 1
},
{
@ -227,6 +271,8 @@
"Number": 1,
"Currency": 2,
"Price": 100,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 0
},
{
@ -237,6 +283,8 @@
"Number": 1,
"Currency": 2,
"Price": 100,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 0
},
{
@ -247,6 +295,8 @@
"Number": 1,
"Currency": 2,
"Price": 200,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 0
},
{
@ -257,6 +307,8 @@
"Number": 1,
"Currency": 2,
"Price": 200,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 0
},
{
@ -267,6 +319,8 @@
"Number": 1,
"Currency": 2,
"Price": 200,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 0
},
{
@ -277,6 +331,8 @@
"Number": 1,
"Currency": 2,
"Price": 200,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 0
},
{
@ -287,6 +343,8 @@
"Number": 1,
"Currency": 2,
"Price": 200,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 0
},
{
@ -297,6 +355,8 @@
"Number": 1,
"Currency": 2,
"Price": 200,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 0
},
{
@ -307,6 +367,8 @@
"Number": 1,
"Currency": 2,
"Price": 200,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 0
},
{
@ -317,6 +379,8 @@
"Number": 1,
"Currency": 2,
"Price": 300,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 0
},
{
@ -327,6 +391,8 @@
"Number": 1,
"Currency": 2,
"Price": 200,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 0
},
{
@ -337,6 +403,8 @@
"Number": 20,
"Currency": 2,
"Price": 300,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 0
},
{
@ -347,6 +415,8 @@
"Number": 50,
"Currency": 2,
"Price": 20,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 1
},
{
@ -357,6 +427,8 @@
"Number": 50,
"Currency": 2,
"Price": 30,
"Discount": 80,
"DiscountWeight": 10,
"RefreshCycle": 1
}
]

80
src/api/config/DialogueConfigCategory.json

@ -8169,58 +8169,90 @@
},
{
"Id": 220001,
"DialogueText": "乔河你看,那边有条小狗",
"IconFIle": "WarriorHead_yanggy_2",
"UIPrefabName": "UI_StoryCase_TaoXiaoQing",
"NameFile": "陶小青",
"DialogueText": "真的有蓝色小牛出现了!",
"IconFIle": "WarriorHead_qiaodn_1",
"UIPrefabName": "UI_StoryCase_QiaoHe",
"NameFile": "乔河",
"Position": 2
},
{
"Id": 220002,
"DialogueText": "走,我们过去看看!",
"DialogueText": "哞哞哞哞哞~(这些糖是给我的吗?)",
"IconFIle": "Niu",
"UIPrefabName": "UI_StoryCase_Niu",
"NameFile": "萌牛",
"Position": 2
},
{
"Id": 220003,
"DialogueText": "是的!都是特意给你准备的!你从哪里来呀?",
"IconFIle": "WarriorHead_qiaodn_1",
"UIPrefabName": "UI_StoryCase_QiaoHe",
"NameFile": "乔河",
"Position": 2
},
{
"Id": 220003,
"DialogueText": "它看起来无家可归,不如我们把它带回去吧",
"IconFIle": "WarriorHead_yanggy_2",
"UIPrefabName": "UI_StoryCase_TaoXiaoQing",
"NameFile": "陶小青",
"Id": 220004,
"DialogueText": "哞哞哞哞哞哞哞哞哞~(我来去自由,想去哪就去哪,已经忘了来时的路了)",
"IconFIle": "Niu",
"UIPrefabName": "UI_StoryCase_Niu",
"NameFile": "萌牛",
"Position": 2
},
{
"Id": 220004,
"DialogueText": "也行,可以训练它在兽潮来临前在城门处吠叫进行预警!",
"Id": 220005,
"DialogueText": "那你要不要跟我回桃谷?我们桃谷有许多友善的人,还有好吃的果子!",
"IconFIle": "WarriorHead_qiaodn_1",
"UIPrefabName": "UI_StoryCase_QiaoHe",
"NameFile": "乔河",
"Position": 2
},
{
"Id": 220005,
"DialogueText": "不错!那我们给它取个名吧?",
"IconFIle": "WarriorHead_yanggy_2",
"UIPrefabName": "UI_StoryCase_TaoXiaoQing",
"NameFile": "陶小青",
"Id": 220006,
"DialogueText": "哞哞哞(真的吗?他们会带我一起玩吗?)",
"IconFIle": "Niu",
"UIPrefabName": "UI_StoryCase_Niu",
"NameFile": "萌牛",
"Position": 2
},
{
"Id": 220006,
"DialogueText": "它毛发雪白,不然就叫它小白吧!",
"Id": 220007,
"DialogueText": "当然会啦!你有名字吗?",
"IconFIle": "WarriorHead_qiaodn_1",
"UIPrefabName": "UI_StoryCase_QiaoHe",
"NameFile": "乔河",
"Position": 2
},
{
"Id": 220007,
"DialogueText": "好小白!",
"IconFIle": "WarriorHead_yanggy_2",
"UIPrefabName": "UI_StoryCase_TaoXiaoQing",
"NameFile": "陶小青",
"Id": 220008,
"DialogueText": "哞哞(没有)",
"IconFIle": "Niu",
"UIPrefabName": "UI_StoryCase_Niu",
"NameFile": "萌牛",
"Position": 2
},
{
"Id": 220009,
"DialogueText": "那叫你萌牛好不好?",
"IconFIle": "WarriorHead_qiaodn_1",
"UIPrefabName": "UI_StoryCase_QiaoHe",
"NameFile": "乔河",
"Position": 2
},
{
"Id": 220010,
"DialogueText": "哞哞哞哞哞哞哞哞哞~(好呀,到了桃谷之后可以给我搭一个看得见星星的窝吗?)",
"IconFIle": "Niu",
"UIPrefabName": "UI_StoryCase_Niu",
"NameFile": "萌牛",
"Position": 2
},
{
"Id": 220011,
"DialogueText": "好!",
"IconFIle": "WarriorHead_qiaodn_1",
"UIPrefabName": "UI_StoryCase_QiaoHe",
"NameFile": "乔河",
"Position": 2
}
]

1342
src/api/config/DropGroupConfigCategory.json

File diff suppressed because it is too large Load Diff

32
src/api/config/ExploreEventConfigCategory.json

@ -842,7 +842,7 @@
1,
1
],
"Weight": 1000,
"Weight": 1400,
"Description": "破旧书页上,茶桌图纸线条清晰,工艺精湛"
},
{
@ -857,6 +857,18 @@
"Weight": 800,
"Description": "残破纸页中,包子小摊图纸栩栩如生,烟火气十足"
},
{
"Id": 144,
"GroupId": 2,
"DropType": 1,
"ItemId": 8525,
"VolumeRange": [
1,
1
],
"Weight": 800,
"Description": "残破纸页中,包子小摊图纸栩栩如生,烟火气十足"
},
{
"Id": 201,
"GroupId": 3,
@ -1283,7 +1295,7 @@
1,
1
],
"Weight": 1000,
"Weight": 1400,
"Description": "破旧书页上,茶桌图纸线条清晰,工艺精湛"
},
{
@ -1298,6 +1310,18 @@
"Weight": 800,
"Description": "残破纸页中,包子小摊图纸栩栩如生,烟火气十足"
},
{
"Id": 244,
"GroupId": 3,
"DropType": 1,
"ItemId": 8524,
"VolumeRange": [
1,
1
],
"Weight": 800,
"Description": "残破纸页中,包子小摊图纸栩栩如生,烟火气十足"
},
{
"Id": 301,
"GroupId": 4,
@ -1724,7 +1748,7 @@
1,
1
],
"Weight": 1000,
"Weight": 1500,
"Description": "破旧书页上,茶桌图纸线条清晰,工艺精湛"
},
{
@ -2165,7 +2189,7 @@
1,
1
],
"Weight": 1000,
"Weight": 1400,
"Description": "破旧书页上,茶桌图纸线条清晰,工艺精湛"
},
{

4
src/api/config/ExploreFixedNodeConfigCategory.json

@ -253,7 +253,7 @@
"Name": "土地祠",
"ExplorationTimeCondition": 530,
"ExplorationTime": 5,
"EventGroup": 1
"EventGroup": 4
},
{
"Id": 212,
@ -365,7 +365,7 @@
"Name": "卢家湾",
"ExplorationTimeCondition": 530,
"ExplorationTime": 5,
"EventGroup": 1
"EventGroup": 5
},
{
"Id": 312,

10
src/api/config/FamilyDinnerEventConfigCategory.json

@ -20,7 +20,10 @@
"玩得开心"
],
"Interaction1": "盛饭",
"Expendable1": 2009,
"Expendable1": [
2309,
2009
],
"ReactionText1": [
5011,
5012
@ -29,7 +32,10 @@
"希望留下",
"玩得开心"
],
"BaseValue1": 30,
"BaseValue1": [
72,
30
],
"Interaction2": "赠花",
"Expendable2": 30,
"BaseValue2": 20,

32
src/api/config/FunctionItemConfigCategory.json

@ -3047,6 +3047,22 @@
"UseTypeParameter": 6055,
"UseTypeParameter2": 0
},
{
"Id": 12556,
"Name": "图纸:雕像·鲍小翠",
"UseType": 3,
"ScaleCondition": 20,
"UseTypeParameter": 670,
"UseTypeParameter2": 0
},
{
"Id": 12557,
"Name": "图纸:雕像·乔河",
"UseType": 3,
"ScaleCondition": 20,
"UseTypeParameter": 671,
"UseTypeParameter2": 0
},
{
"Id": 13001,
"Name": "图纸残页:茅草木门",
@ -3247,6 +3263,22 @@
"UseTypeParameter": 8255,
"UseTypeParameter2": 4
},
{
"Id": 13026,
"Name": "图纸残页:雕像·鲍小翠",
"UseType": 25,
"ScaleCondition": 20,
"UseTypeParameter": 8256,
"UseTypeParameter2": 4
},
{
"Id": 13027,
"Name": "图纸残页:雕像·乔河",
"UseType": 25,
"ScaleCondition": 20,
"UseTypeParameter": 8257,
"UseTypeParameter2": 4
},
{
"Id": 14000,
"Name": "血珀石碎片",

7
src/api/config/GameAIConfigCategory.json

@ -208,5 +208,12 @@
"Order": 3,
"Name": "AI_Pet_Idle",
"NodeParams": []
},
{
"Id": 1401,
"AIConfigId": 14,
"Order": 1,
"Name": "AI_Check_Seed",
"NodeParams": []
}
]

32
src/api/config/GameUnitSizeInfoConfigCategory.json

@ -1044,6 +1044,13 @@
"Height": 7
}
},
{
"ConfigId": 581,
"PlaceSizeData": {
"Width": 8,
"Height": 9
}
},
{
"ConfigId": 582,
"PlaceSizeData": {
@ -1051,6 +1058,13 @@
"Height": 7
}
},
{
"ConfigId": 583,
"PlaceSizeData": {
"Width": 8,
"Height": 9
}
},
{
"ConfigId": 620,
"PlaceSizeData": {
@ -1163,6 +1177,20 @@
"Height": 9
}
},
{
"ConfigId": 670,
"PlaceSizeData": {
"Width": 3,
"Height": 3
}
},
{
"ConfigId": 671,
"PlaceSizeData": {
"Width": 3,
"Height": 3
}
},
{
"ConfigId": 1000,
"PlaceSizeData": {
@ -5093,8 +5121,8 @@
{
"ConfigId": 3002018,
"PlaceSizeData": {
"Width": 3,
"Height": 3
"Width": 2,
"Height": 2
}
},
{

8
src/api/config/GemFusionConfigCategory.json

@ -0,0 +1,8 @@
[
{
"Id": 1,
"GemId": 1204,
"ItemId": 1205,
"Num": 50
}
]

4
src/api/config/GoodsForRecycleConfigCategory.json

@ -223,7 +223,7 @@
{
"Id": 14,
"GroupId": 4,
"Scale": 16,
"Scale": 8,
"ItemId": 817,
"SaleNum": [
5,
@ -240,7 +240,7 @@
{
"Id": 15,
"GroupId": 4,
"Scale": 18,
"Scale": 8,
"ItemId": 818,
"SaleNum": [
1,

62
src/api/config/GoodsForSaleConfigCategory.json

@ -1121,6 +1121,28 @@
"Specialty": 0,
"RefreshCycle": 0
},
{
"Id": 5020,
"GroupId": 101,
"Scale": 0,
"ItemId": 213,
"SaleNum": [
2000,
2000
],
"Weight": 1,
"OverlayWeight": 0,
"SaleCondition": 2,
"SaleConditionParemeter": 8,
"SellingCurrencyType": 1,
"Price": 5,
"Discount": 90,
"DiscountWeight": 0,
"SaleMax": -1,
"DiscountMark": "",
"Specialty": 0,
"RefreshCycle": 0
},
{
"Id": 5101,
"GroupId": 102,
@ -1391,8 +1413,8 @@
"Scale": 0,
"ItemId": 213,
"SaleNum": [
500,
500
2000,
2000
],
"Weight": 1,
"OverlayWeight": 0,
@ -1941,8 +1963,8 @@
"Scale": 0,
"ItemId": 213,
"SaleNum": [
500,
500
2000,
2000
],
"Weight": 1,
"OverlayWeight": 0,
@ -2447,8 +2469,8 @@
"Scale": 0,
"ItemId": 213,
"SaleNum": [
500,
500
2000,
2000
],
"Weight": 1,
"OverlayWeight": 0,
@ -3297,7 +3319,7 @@
"SaleMax": 1,
"DiscountMark": "",
"Specialty": 0,
"RefreshCycle": 0
"RefreshCycle": 4
},
{
"Id": 6214,
@ -3319,7 +3341,7 @@
"SaleMax": 1,
"DiscountMark": "",
"Specialty": 0,
"RefreshCycle": 0
"RefreshCycle": 4
},
{
"Id": 6215,
@ -3341,7 +3363,7 @@
"SaleMax": 1,
"DiscountMark": "",
"Specialty": 0,
"RefreshCycle": 0
"RefreshCycle": 4
},
{
"Id": 6216,
@ -5697,6 +5719,28 @@
"Specialty": 0,
"RefreshCycle": 0
},
{
"Id": 7086,
"GroupId": 202,
"Scale": 0,
"ItemId": 7213,
"SaleNum": [
1,
1
],
"Weight": 100,
"OverlayWeight": 0,
"SaleCondition": 0,
"SaleConditionParemeter": 0,
"SellingCurrencyType": 1,
"Price": 10000,
"Discount": 90,
"DiscountWeight": 0,
"SaleMax": 2,
"DiscountMark": "",
"Specialty": 0,
"RefreshCycle": 0
},
{
"Id": 8001,
"GroupId": 301,

115
src/api/config/HeadIconConfigCategory.json

@ -4,104 +4,189 @@
"Type": 1,
"HeadIconName": "孩童男",
"HeadIcon": "Head_M_1001",
"Description": "孩童男"
"RequirementTpye": 1,
"RequirementCondition": 0,
"Description": "孩童男",
"GetMethod": "默认拥有"
},
{
"ID": 2,
"Type": 1,
"HeadIconName": "少年男",
"HeadIcon": "Head_M_2001",
"Description": "少年男"
"RequirementTpye": 1,
"RequirementCondition": 0,
"Description": "少年男",
"GetMethod": "默认拥有"
},
{
"ID": 3,
"Type": 1,
"HeadIconName": "青年男",
"HeadIcon": "Head_M_3001",
"Description": "青年男"
"RequirementTpye": 1,
"RequirementCondition": 0,
"Description": "青年男",
"GetMethod": "默认拥有"
},
{
"ID": 4,
"Type": 1,
"HeadIconName": "壮年男",
"HeadIcon": "Head_M_4001",
"Description": "壮年男"
"RequirementTpye": 1,
"RequirementCondition": 0,
"Description": "壮年男",
"GetMethod": "默认拥有"
},
{
"ID": 5,
"Type": 1,
"HeadIconName": "中年男",
"HeadIcon": "Head_M_5001",
"Description": "中年男"
"RequirementTpye": 1,
"RequirementCondition": 0,
"Description": "中年男",
"GetMethod": "默认拥有"
},
{
"ID": 6,
"Type": 1,
"HeadIconName": "老年男",
"HeadIcon": "Head_M_6001",
"Description": "老年男"
"RequirementTpye": 1,
"RequirementCondition": 0,
"Description": "老年男",
"GetMethod": "默认拥有"
},
{
"ID": 7,
"Type": 1,
"HeadIconName": "古稀男",
"HeadIcon": "Head_M_7001",
"Description": "古稀男"
"RequirementTpye": 1,
"RequirementCondition": 0,
"Description": "古稀男",
"GetMethod": "默认拥有"
},
{
"ID": 8,
"Type": 1,
"HeadIconName": "孩童女",
"HeadIcon": "Head_F_1001",
"Description": "孩童女"
"RequirementTpye": 1,
"RequirementCondition": 0,
"Description": "孩童女",
"GetMethod": "默认拥有"
},
{
"ID": 9,
"Type": 1,
"HeadIconName": "少年女",
"HeadIcon": "Head_F_2001",
"Description": "少年女"
"RequirementTpye": 1,
"RequirementCondition": 0,
"Description": "少年女",
"GetMethod": "默认拥有"
},
{
"ID": 10,
"Type": 1,
"HeadIconName": "青年女",
"HeadIcon": "Head_F_3001",
"Description": "青年女"
"RequirementTpye": 1,
"RequirementCondition": 0,
"Description": "青年女",
"GetMethod": "默认拥有"
},
{
"ID": 11,
"Type": 1,
"HeadIconName": "壮年女",
"HeadIcon": "Head_F_4001",
"Description": "壮年女"
"RequirementTpye": 1,
"RequirementCondition": 0,
"Description": "壮年女",
"GetMethod": "默认拥有"
},
{
"ID": 12,
"Type": 1,
"HeadIconName": "中年女",
"HeadIcon": "Head_F_5001",
"Description": "中年女"
"RequirementTpye": 1,
"RequirementCondition": 0,
"Description": "中年女",
"GetMethod": "默认拥有"
},
{
"ID": 13,
"Type": 1,
"HeadIconName": "老年女",
"HeadIcon": "Head_F_6001",
"Description": "老年女"
"RequirementTpye": 1,
"RequirementCondition": 0,
"Description": "老年女",
"GetMethod": "默认拥有"
},
{
"ID": 14,
"Type": 1,
"HeadIconName": "古稀女",
"HeadIcon": "Head_F_7001",
"Description": "古稀女"
"RequirementTpye": 1,
"RequirementCondition": 0,
"Description": "古稀女",
"GetMethod": "默认拥有"
},
{
"ID": 15,
"Type": 1,
"HeadIconName": "默认头像",
"HeadIcon": "Head_F_1003",
"RequirementTpye": 1,
"RequirementCondition": 0,
"Description": "默认头像",
"GetMethod": "默认拥有"
},
{
"ID": 1000,
"Type": 1,
"HeadIconName": "如花",
"HeadIcon": "Head_Ruhua",
"RequirementTpye": 2,
"RequirementCondition": 100000,
"Description": "桃源记1中的大受玩家欢迎的阿花",
"GetMethod": "成就-千金散作桃花雨"
},
{
"ID": 1001,
"Type": 1,
"HeadIconName": "老商人",
"HeadIcon": "Head_Laoshangren",
"RequirementTpye": 2,
"RequirementCondition": 100001,
"Description": "桃源记1中的商人",
"GetMethod": "成就-夜市点石成金手"
},
{
"ID": 1002,
"Type": 1,
"HeadIconName": "熊猫",
"HeadIcon": "Head_Xiongmao",
"RequirementTpye": 2,
"RequirementCondition": 100002,
"Description": "可爱胖达",
"GetMethod": "成就-人生七十古来稀"
},
{
"ID": 2000,
"Type": 2,
"HeadIconName": "默认头像框",
"HeadIcon": "HeadFrame_Default",
"Description": "默认头像框"
"RequirementTpye": 1,
"RequirementCondition": 0,
"Description": "默认头像框",
"GetMethod": "默认拥有"
}
]

6
src/api/config/HelpConfigCategory.json

@ -83,7 +83,7 @@
"Page": 1,
"Stencil": 3,
"Picture1": "",
"Text1": "1、每一期活动持续时间为一星期,将在每周一早上五点重置\n2、在获取食券界面可以用菜品兑换食券,也可以用铜币或桃花石购买食券\n3、在兑换宝物界面可以用食券兑换其他道具",
"Text1": "1、食券没有使用时间限制,可囤积\n2、每一期活动持续时间为一星期,将在每周一早上五点重置\n3、在获取食券界面可以用菜品兑换食券,也可以用铜币或桃花石购买食券\n4、在兑换宝物界面可以用食券兑换其他道具",
"Picture2": "",
"Text2": "",
"Picture3": "",
@ -187,7 +187,7 @@
"Page": 1,
"Stencil": 3,
"Picture1": "",
"Text1": "1、连续两天晚上都没有猪圈可住的猪将会逃跑\n2、若猪处于饥饿状态下,将有概率会逃跑,若成年猪处于饥饿状态的话将不会产仔\n2、猪圈损坏或被拆除时会将该猪圈中的猪分配至其他有空位的猪圈,若没有多余的位置则会变为无家可归的状态\n3、当一个猪圈中有2只成年猪未处于饥饿状态和无家可归状态时会产仔,产仔达到一定次数时将不再产蛋,当猪圈中的待收取猪仔数量达到上限时该猪圈中的猪将不会产仔",
"Text1": "1、连续两天晚上都没有猪圈可住的猪将会逃跑\n2、若猪处于饥饿状态下,将有概率会逃跑\n2、猪圈损坏或被拆除时会将该猪圈中的猪分配至其他有空位的猪圈,若没有多余的位置则会变为无家可归的状态\n3、当猪圈中的成年猪未处于饥饿状态、无家可归状态和可屠宰状态时会产仔,当猪圈中的待收取猪仔数量达到上限时该猪圈中的猪将不会产仔",
"Picture2": "",
"Text2": "",
"Picture3": "",
@ -239,7 +239,7 @@
"Page": 1,
"Stencil": 3,
"Picture1": "",
"Text1": "1.拖动未分配的村民到房屋中即可入住\n2.在房屋列表点击有对象的村民会显示伴侣所在位置\n3.在房屋列表点击村民会显示该村民的所有近亲,左下角有“亲”字,近亲之间不可婚配。\n4.村民右下角的数字表示年龄\n5.非近亲,且年龄差不超过15的异性单身村民住一起会第二天会形成夫妻关系\n6.结为夫妻的男女在同一个屋子中第二天有概率捡到小孩\n7.一个女性村民只会触发2次捡小孩事件\n8.女性村民超过45岁后,不会触发捡小孩事件\n9.当村民数量超过不死树庇护等级后,一个女性村民只会触发1次捡小孩事件",
"Text1": "1.拖动未分配的村民到房屋中即可入住\n2.在房屋列表点击有对象的村民会显示伴侣所在位置\n3.在房屋列表点击村民会显示该村民的所有近亲,左下角有“亲”字,近亲之间不可婚配。\n4.村民右下角的数字表示年龄\n5.非近亲,且年龄差不超过15的异性单身村民住一起会第二天会形成夫妻关系\n6.结为夫妻的男女从第二天开始有概率捡到小孩\n7.一个女性村民只会触发2次捡小孩事件\n8.女性村民超过45岁后,不会触发捡小孩事件\n9.当村民数量超过不死树庇护等级后,一个女性村民只会触发1次捡小孩事件",
"Picture2": "",
"Text2": "",
"Picture3": "",

3
src/api/config/InitialNpcCategory.json

@ -180,6 +180,9 @@
},
{
"NpcConfigId": 99004
},
{
"NpcConfigId": 99005
}
]
}

60
src/api/config/LiveStockConfigCategory.json

@ -6,9 +6,12 @@
"Egg": 110,
"Variety": 1,
"Life": 2,
"Meat": 0,
"NextStage": 1002,
"ConversionType": 111,
"ConversionBaseNum": 1,
"StartTime": -1,
"EndTime": -1,
"Output": 0,
"OutputBaseNum": [
0
@ -18,8 +21,9 @@
],
"OutputCD": 0,
"FeedConsume": 5,
"MoveSpeed": 5,
"MoveSpeed": 3,
"TransportSpeed": 0,
"Animate": "Eat",
"MalePrefabName": "Livestock_1001",
"FemalePrefabName": "Livestock_1001"
},
@ -30,9 +34,12 @@
"Egg": -1,
"Variety": 1,
"Life": 10,
"Meat": 0,
"NextStage": 0,
"ConversionType": 111,
"ConversionBaseNum": 1,
"StartTime": 1,
"EndTime": 10,
"Output": 110,
"OutputBaseNum": [
2,
@ -44,8 +51,9 @@
],
"OutputCD": 2,
"FeedConsume": 10,
"MoveSpeed": 10,
"MoveSpeed": 5,
"TransportSpeed": 0,
"Animate": "Eat",
"MalePrefabName": "Livestock_1002_M",
"FemalePrefabName": "Livestock_1002_F"
},
@ -56,9 +64,12 @@
"Egg": -1,
"Variety": 2,
"Life": 2,
"Meat": 0,
"NextStage": 2002,
"ConversionType": 111,
"ConversionBaseNum": 1,
"StartTime": -1,
"EndTime": -1,
"Output": 0,
"OutputBaseNum": [
0
@ -68,8 +79,9 @@
],
"OutputCD": 0,
"FeedConsume": 5,
"MoveSpeed": 5,
"MoveSpeed": 3,
"TransportSpeed": 0,
"Animate": "",
"MalePrefabName": "Livestock_1001",
"FemalePrefabName": "Livestock_1001"
},
@ -80,9 +92,12 @@
"Egg": -1,
"Variety": 2,
"Life": 10,
"Meat": 0,
"NextStage": 0,
"ConversionType": 111,
"ConversionBaseNum": 1,
"StartTime": -1,
"EndTime": -1,
"Output": 110,
"OutputBaseNum": [
2,
@ -94,8 +109,9 @@
],
"OutputCD": 2,
"FeedConsume": 10,
"MoveSpeed": 10,
"MoveSpeed": 5,
"TransportSpeed": 0,
"Animate": "",
"MalePrefabName": "Livestock_1002_M",
"FemalePrefabName": "Livestock_1002_F"
},
@ -105,10 +121,13 @@
"Type": 2,
"Egg": -1,
"Variety": 4,
"Life": 2,
"Life": 3,
"Meat": 0,
"NextStage": 4002,
"ConversionType": 101,
"ConversionBaseNum": 1,
"StartTime": -1,
"EndTime": -1,
"Output": 0,
"OutputBaseNum": [
0
@ -117,11 +136,12 @@
0
],
"OutputCD": 0,
"FeedConsume": 5,
"MoveSpeed": 5,
"FeedConsume": 1,
"MoveSpeed": 3,
"TransportSpeed": 0,
"MalePrefabName": "Livestock_1001",
"FemalePrefabName": "Livestock_1001"
"Animate": "Sleep",
"MalePrefabName": "Livestock_4001",
"FemalePrefabName": "Livestock_4001"
},
{
"Id": 4002,
@ -129,10 +149,13 @@
"Type": 2,
"Egg": -1,
"Variety": 4,
"Life": 10,
"Life": 7,
"Meat": 1,
"NextStage": 0,
"ConversionType": 101,
"ConversionBaseNum": 12,
"ConversionBaseNum": 3,
"StartTime": 5,
"EndTime": 10,
"Output": 8005,
"OutputBaseNum": [
1,
@ -140,15 +163,16 @@
3
],
"OutputWeight": [
989,
10,
20,
5,
1
],
"OutputCD": 7,
"FeedConsume": 10,
"MoveSpeed": 8,
"OutputCD": 3,
"FeedConsume": 2,
"MoveSpeed": 4,
"TransportSpeed": 0,
"MalePrefabName": "Livestock_1002_M",
"FemalePrefabName": "Livestock_1002_F"
"Animate": "Casual",
"MalePrefabName": "Livestock_4002",
"FemalePrefabName": "Livestock_4002"
}
]

4
src/api/config/MainButtonConfigCategory.json

@ -444,11 +444,11 @@
"UIName": "AchievementBtn",
"New": true,
"DisplayType": 1,
"Parameter": 25,
"Parameter": 3,
"Parameter2": 0,
"ShowText": 0,
"FatherButton": 0,
"UnlockCondition": "暂未开放"
"UnlockCondition": "达到规模3解锁"
},
{
"Id": 1420,

6
src/api/config/MedicineConfigCategory.json

@ -264,7 +264,7 @@
"Name": "六品生命丹",
"Type": 3,
"Toxicity": 0,
"MedicinalEfficacy": 10,
"MedicinalEfficacy": 20,
"TakeBody": 1,
"NumLimit": 10,
"Buff": 248
@ -274,7 +274,7 @@
"Name": "六品防御丹",
"Type": 3,
"Toxicity": 0,
"MedicinalEfficacy": 1,
"MedicinalEfficacy": 2,
"TakeBody": 1,
"NumLimit": 10,
"Buff": 249
@ -284,7 +284,7 @@
"Name": "六品攻击丹",
"Type": 3,
"Toxicity": 0,
"MedicinalEfficacy": 3,
"MedicinalEfficacy": 5,
"TakeBody": 1,
"NumLimit": 10,
"Buff": 250

1549
src/api/config/MonsterConfigCategory.json

File diff suppressed because it is too large Load Diff

6
src/api/config/MonthlyCardConfigCategory.json

@ -187,8 +187,8 @@
2
],
"ValleyEffect": 20,
"NotActivatedDescription": "可以扫荡兽潮挑战",
"ActivatedDescription": "可以扫荡兽潮挑战",
"Tips": "激活扫荡功能"
"NotActivatedDescription": "胜利1次后可以扫荡兽潮挑战",
"ActivatedDescription": "胜利1次后可以扫荡兽潮挑战",
"Tips": "胜利1次后可以扫荡兽潮挑战"
}
]

30
src/api/config/NpcConfigCategory.json

@ -1416,7 +1416,7 @@
"AppearTime": [],
"VisitDisplay": false,
"Icon": "Item_Icon_7821",
"Prefab": "SceneInteractiveObj_tao",
"Prefab": "SceneInteractiveObj_YuXitao",
"DialogueWay": false,
"Disappear": true,
"Repeat": false,
@ -2346,5 +2346,33 @@
"Repeat": false,
"Hide": true,
"Description": ""
},
{
"Id": 99005,
"Type": 6,
"Name": "成就商店",
"RelatedId": 4006,
"DialogueWithOptions": [
1
],
"BubbleText": 0,
"FixedPoint": true,
"MoveSpeed": 0,
"Area": 1001,
"CreateCondition1": 0,
"CreateParameter1": [],
"CreateCondition2": 0,
"CreateParameter2": [],
"DisappearCondition": 0,
"DisappearConditionParameter": [],
"AppearTime": [],
"VisitDisplay": false,
"Icon": "",
"Prefab": "",
"DialogueWay": false,
"Disappear": false,
"Repeat": false,
"Hide": true,
"Description": ""
}
]

8
src/api/config/NpcPosInfoConfigCategory.json

@ -616,6 +616,14 @@
"y": 51.4
},
"IsFlip": false
},
{
"ConfigId": 99005,
"Pos": {
"x": 24.37,
"y": 51.4
},
"IsFlip": false
}
]
}

22
src/api/config/OptionsBehaviourConfigCategory.json

@ -316,6 +316,14 @@
200
]
},
{
"Id": 4017,
"Type": 4,
"TypeParameter": [
114,
1000
]
},
{
"Id": 6000,
"Type": 6,
@ -433,6 +441,20 @@
6
]
},
{
"Id": 9007,
"Type": 9,
"TypeParameter": [
1037
]
},
{
"Id": 9008,
"Type": 9,
"TypeParameter": [
1038
]
},
{
"Id": 10001,
"Type": 10,

32
src/api/config/OptionsConfigCategory.json

@ -1284,5 +1284,37 @@
14051
],
"NextDialogue": 0
},
{
"Id": 200000,
"RoleState": [],
"Name": "和她聊聊",
"OptionsBehaviour": [],
"NextDialogue": 10066
},
{
"Id": 200001,
"RoleState": [],
"Name": "小牛?",
"OptionsBehaviour": [],
"NextDialogue": 10067
},
{
"Id": 200002,
"RoleState": [],
"Name": "好!",
"OptionsBehaviour": [
9007
],
"NextDialogue": 0
},
{
"Id": 200003,
"RoleState": [],
"Name": "放一些糖",
"OptionsBehaviour": [
4017
],
"NextDialogue": 0
}
]

10
src/api/config/PackageConfigCategory.json

@ -93,7 +93,7 @@
{
"Id": 10,
"Name": "青岩方墙",
"Type": 2,
"Type": 4,
"BuyType": 2,
"Parameter": 5,
"OriginalPrice": 8,
@ -106,7 +106,7 @@
{
"Id": 11,
"Name": "摇摇木马",
"Type": 2,
"Type": 4,
"BuyType": 2,
"Parameter": 5,
"OriginalPrice": 8,
@ -119,7 +119,7 @@
{
"Id": 12,
"Name": "紫楹石居",
"Type": 2,
"Type": 4,
"BuyType": 2,
"Parameter": 12,
"OriginalPrice": 30,
@ -132,7 +132,7 @@
{
"Id": 13,
"Name": "鹤池映月灯",
"Type": 2,
"Type": 4,
"BuyType": 2,
"Parameter": 30,
"OriginalPrice": 68,
@ -251,7 +251,7 @@
"Name": "精品魂石包",
"Type": 3,
"BuyType": 2,
"Parameter": 100,
"Parameter": 88,
"OriginalPrice": 140,
"ShowCondition": 2,
"UnlockParameter": 1000,

21
src/api/config/PetConfigCategory.json

@ -44,5 +44,26 @@
"Speed": 20,
"AIConfigId": 13,
"SkillEffectPrefab": "FX_Skill_DangKang"
},
{
"Id": 1003,
"Name": "萌牛",
"Type": 3,
"PrefabName": "Pet_1003",
"IdleGroup": [
"Casual",
"Casual2"
],
"MoveGroup": [
"Walk",
"Run"
],
"ActionWeight": [
1,
30
],
"Speed": 25,
"AIConfigId": 14,
"SkillEffectPrefab": "FX_SKill_MengNiu"
}
]

3
src/api/config/RechargeAddUpConfigCategory.json

@ -70,7 +70,8 @@
"Quota": 2000,
"Award": [
407,
422
422,
423
],
"ShowQuota": 1000,
"Privilege": 0,

11
src/api/config/ReputationShopItemGroupConfigCategory.json

@ -1319,6 +1319,17 @@
"ScaleCondition": 16,
"RefreshCycle": 1
},
{
"Id": 2031,
"Region": 3004,
"ItemId": 7213,
"Number": 2,
"Currency": 1,
"Price": 10000,
"ReputationConditon": 6000,
"ScaleCondition": 16,
"RefreshCycle": 0
},
{
"Id": 3001,
"Region": 3005,

47
src/api/config/ResourcesConfigCategory.json

@ -1938,6 +1938,53 @@
"MoonnightOut": 0,
"MoonnightOutProbability": 0
},
{
"Id": 214,
"BehaviourType": 7,
"ResourcesName": "打猎",
"MutexBehaviour": [
-1
],
"WorkerNumber": 1,
"RebornCondition": 2,
"RebornConditionParameters": [
1,
3
],
"ShowCondition": 0,
"ShowConditionParameter": [
2,
3
],
"Disappear": false,
"InResource": false,
"BaseOut": 204,
"OutAmount": 3000,
"BaseEfficient": 1,
"OutInterval": 10,
"ExtraOut": 38,
"ExtraOutProbability": [
[
0,
40
],
[
1,
50
],
[
2,
10
],
[
3,
0
]
],
"TriggerEvent": true,
"MoonnightOut": 0,
"MoonnightOutProbability": 0
},
{
"Id": 300,
"BehaviourType": 1,

84
src/api/config/ResourcesPointConfigCategory.json

@ -3,6 +3,7 @@
"Id": 1,
"ResourcesPointName": "杂草",
"Type": 1,
"Type2": 1,
"AccessableCondition": 0,
"AccessableParameter": [],
"WorkerType": [
@ -31,6 +32,7 @@
"Id": 2,
"ResourcesPointName": "甘草",
"Type": 1,
"Type2": 1,
"AccessableCondition": 0,
"AccessableParameter": [],
"WorkerType": [
@ -59,6 +61,7 @@
"Id": 3,
"ResourcesPointName": "浆果",
"Type": 1,
"Type2": 1,
"AccessableCondition": 0,
"AccessableParameter": [],
"WorkerType": [
@ -87,6 +90,7 @@
"Id": 4,
"ResourcesPointName": "野菜",
"Type": 1,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
1
@ -117,6 +121,7 @@
"Id": 5,
"ResourcesPointName": "葛草",
"Type": 1,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
1
@ -147,6 +152,7 @@
"Id": 6,
"ResourcesPointName": "茅草",
"Type": 1,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
1
@ -177,6 +183,7 @@
"Id": 7,
"ResourcesPointName": "亚麻",
"Type": 1,
"Type2": 1,
"AccessableCondition": 0,
"AccessableParameter": [],
"WorkerType": [
@ -205,6 +212,7 @@
"Id": 8,
"ResourcesPointName": "竹子",
"Type": 1,
"Type2": 1,
"AccessableCondition": 3,
"AccessableParameter": [
1004
@ -236,6 +244,7 @@
"Id": 9,
"ResourcesPointName": "树枝堆",
"Type": 1,
"Type2": 1,
"AccessableCondition": 0,
"AccessableParameter": [],
"WorkerType": [
@ -264,6 +273,7 @@
"Id": 10,
"ResourcesPointName": "迷谷树",
"Type": 1,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
4
@ -294,6 +304,7 @@
"Id": 11,
"ResourcesPointName": "桃树",
"Type": 1,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
1
@ -325,6 +336,7 @@
"Id": 12,
"ResourcesPointName": "柳树",
"Type": 1,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
1
@ -355,6 +367,7 @@
"Id": 13,
"ResourcesPointName": "桑树",
"Type": 1,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
2
@ -386,6 +399,7 @@
"Id": 14,
"ResourcesPointName": "松树",
"Type": 1,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
3
@ -416,6 +430,7 @@
"Id": 16,
"ResourcesPointName": "桢楠",
"Type": 1,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
4
@ -446,6 +461,7 @@
"Id": 17,
"ResourcesPointName": "黏土",
"Type": 1,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
1
@ -476,6 +492,7 @@
"Id": 18,
"ResourcesPointName": "碎石",
"Type": 1,
"Type2": 1,
"AccessableCondition": 3,
"AccessableParameter": [
1004
@ -506,6 +523,7 @@
"Id": 19,
"ResourcesPointName": "石头",
"Type": 1,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
1
@ -536,6 +554,7 @@
"Id": 20,
"ResourcesPointName": "石灰石",
"Type": 1,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
2
@ -566,6 +585,7 @@
"Id": 21,
"ResourcesPointName": "青石",
"Type": 1,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
3
@ -596,6 +616,7 @@
"Id": 22,
"ResourcesPointName": "花岗石",
"Type": 1,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
4
@ -626,6 +647,7 @@
"Id": 23,
"ResourcesPointName": "杂草",
"Type": 1,
"Type2": 2,
"AccessableCondition": 0,
"AccessableParameter": [],
"WorkerType": [
@ -654,6 +676,7 @@
"Id": 24,
"ResourcesPointName": "浆果丛",
"Type": 1,
"Type2": 1,
"AccessableCondition": 0,
"AccessableParameter": [],
"WorkerType": [
@ -682,6 +705,7 @@
"Id": 25,
"ResourcesPointName": "金矿",
"Type": 1,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
3
@ -712,6 +736,7 @@
"Id": 26,
"ResourcesPointName": "树枝堆",
"Type": 1,
"Type2": 2,
"AccessableCondition": 0,
"AccessableParameter": [],
"WorkerType": [
@ -740,6 +765,7 @@
"Id": 27,
"ResourcesPointName": "桦树",
"Type": 1,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
2
@ -770,6 +796,7 @@
"Id": 28,
"ResourcesPointName": "铁矿",
"Type": 1,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
2
@ -800,6 +827,7 @@
"Id": 29,
"ResourcesPointName": "银矿",
"Type": 1,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
3
@ -830,6 +858,7 @@
"Id": 30,
"ResourcesPointName": "亚麻",
"Type": 1,
"Type2": 2,
"AccessableCondition": 0,
"AccessableParameter": [],
"WorkerType": [
@ -858,6 +887,7 @@
"Id": 31,
"ResourcesPointName": "梨树",
"Type": 1,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
3
@ -888,6 +918,7 @@
"Id": 32,
"ResourcesPointName": "榕树",
"Type": 1,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
4
@ -918,6 +949,7 @@
"Id": 200,
"ResourcesPointName": "石矿洞",
"Type": 2,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
520
@ -948,6 +980,7 @@
"Id": 201,
"ResourcesPointName": "青石洞",
"Type": 2,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
522
@ -978,6 +1011,7 @@
"Id": 202,
"ResourcesPointName": "青石洞",
"Type": 2,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
524
@ -1009,6 +1043,7 @@
"Id": 203,
"ResourcesPointName": "黏土矿",
"Type": 2,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
521
@ -1039,6 +1074,7 @@
"Id": 204,
"ResourcesPointName": "黏土矿",
"Type": 2,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
523
@ -1070,6 +1106,7 @@
"Id": 205,
"ResourcesPointName": "卤水",
"Type": 2,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
502
@ -1100,6 +1137,7 @@
"Id": 206,
"ResourcesPointName": "鱼塘",
"Type": 2,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
340
@ -1130,6 +1168,7 @@
"Id": 207,
"ResourcesPointName": "鱼塘",
"Type": 2,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
341
@ -1160,6 +1199,7 @@
"Id": 208,
"ResourcesPointName": "鱼塘",
"Type": 2,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
342
@ -1190,6 +1230,7 @@
"Id": 209,
"ResourcesPointName": "鱼塘",
"Type": 2,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
343
@ -1220,6 +1261,7 @@
"Id": 210,
"ResourcesPointName": "伐木场",
"Type": 2,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
1000
@ -1250,6 +1292,7 @@
"Id": 211,
"ResourcesPointName": "采集厅",
"Type": 2,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
1001
@ -1280,6 +1323,7 @@
"Id": 212,
"ResourcesPointName": "猎人小屋",
"Type": 2,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
1002
@ -1310,6 +1354,7 @@
"Id": 213,
"ResourcesPointName": "石矿洞",
"Type": 2,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
526
@ -1337,10 +1382,42 @@
"FoundationPicture": "Foundation_Stone",
"Description": ""
},
{
"Id": 214,
"ResourcesPointName": "猎人小屋",
"Type": 2,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
1003
],
"WorkerType": [
1,
2,
3
],
"RelatedResources": [
214
],
"DailyInteractDropGroup": 0,
"RootOut": false,
"SaplingItemId": 0,
"Enter": true,
"Disperse": false,
"DisperseRadius": 0,
"Prefab": "Resource_214",
"MoonnightPrefab": [
"Resource_214"
],
"NamePicture": "Resources_Name_214",
"FoundationPicture": "Foundation_Tree",
"Description": ""
},
{
"Id": 300,
"ResourcesPointName": "水井",
"Type": 3,
"Type": 2,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
560
@ -1371,6 +1448,7 @@
"Id": 301,
"ResourcesPointName": "浆果园",
"Type": 3,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
620
@ -1401,6 +1479,7 @@
"Id": 302,
"ResourcesPointName": "野菜园",
"Type": 3,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
621
@ -1431,6 +1510,7 @@
"Id": 304,
"ResourcesPointName": "亚麻园",
"Type": 3,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
667
@ -1461,6 +1541,7 @@
"Id": 305,
"ResourcesPointName": "茅草园",
"Type": 3,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
668
@ -1491,6 +1572,7 @@
"Id": 306,
"ResourcesPointName": "葛草园",
"Type": 3,
"Type2": 1,
"AccessableCondition": 1,
"AccessableParameter": [
669

80
src/api/config/RewardGroupConfigCategory.json

@ -531,6 +531,15 @@
1
]
},
{
"Id": 423,
"ItemId": [
140008
],
"Number": [
1
]
},
{
"Id": 501,
"ItemId": [
@ -1420,13 +1429,60 @@
"Id": 923,
"ItemId": [
7315,
220000,
210000
],
"Number": [
2,
880,
80000
]
},
{
"Id": 924,
"ItemId": [
4154,
4153,
7861,
210000
],
"Number": [
1,
1,
1,
20000
]
},
{
"Id": 925,
"ItemId": [
140010,
220000,
210000,
7321
],
"Number": [
1,
666,
66666,
6
]
},
{
"Id": 926,
"ItemId": [
140011,
220000,
210000,
7321
],
"Number": [
1,
888,
88888,
8
]
},
{
"Id": 1001,
"ItemId": [
@ -2387,6 +2443,30 @@
1
]
},
{
"Id": 4040,
"ItemId": [
210000,
316
],
"Number": [
500,
1
]
},
{
"Id": 4041,
"ItemId": [
210000,
316,
8052
],
"Number": [
500,
1,
1
]
},
{
"Id": 5001,
"ItemId": [

2
src/api/config/ScaleConfigCategory.json

@ -428,7 +428,7 @@
"BusinessMan": 1015,
"MonsterWaves": [
1601,
1700
1800
],
"Challenge": 10017,
"FourEvilsBoss": 20004,

130
src/api/config/ScienceConfigCategory.json

@ -4367,6 +4367,136 @@
"ScienceDescribe": "怪物攻城防守失败时,耐久度损失降低10%",
"ResultDescribe": "怪物攻城防守失败时,耐久度损失降低10%"
},
{
"Id": 2711,
"Type": 2,
"Name": "战争耐久损耗",
"PrefixScience": 2710,
"ScienceGroup": 2701,
"ScienceLv": 11,
"Scale": 20,
"Structure": 234,
"Drawing": false,
"ItemId_1": 327,
"ItemNum_1": 550,
"ItemId_2": 210000,
"ItemNum_2": 1100,
"ItemId_3": 0,
"ItemNum_3": 0,
"Copper": 0,
"Volume": 20000,
"EffectType": 4,
"ObjectAction": 0,
"EffectParameter": 360,
"Icon": "Science_2701",
"Performance": 0,
"ScienceDescribe": "怪物攻城防守失败时,耐久度损失降低11%",
"ResultDescribe": "怪物攻城防守失败时,耐久度损失降低11%"
},
{
"Id": 2712,
"Type": 2,
"Name": "战争耐久损耗",
"PrefixScience": 2711,
"ScienceGroup": 2701,
"ScienceLv": 12,
"Scale": 20,
"Structure": 234,
"Drawing": false,
"ItemId_1": 327,
"ItemNum_1": 550,
"ItemId_2": 210000,
"ItemNum_2": 1100,
"ItemId_3": 0,
"ItemNum_3": 0,
"Copper": 0,
"Volume": 22000,
"EffectType": 4,
"ObjectAction": 0,
"EffectParameter": 361,
"Icon": "Science_2701",
"Performance": 0,
"ScienceDescribe": "怪物攻城防守失败时,耐久度损失降低12%",
"ResultDescribe": "怪物攻城防守失败时,耐久度损失降低12%"
},
{
"Id": 2713,
"Type": 2,
"Name": "战争耐久损耗",
"PrefixScience": 2712,
"ScienceGroup": 2701,
"ScienceLv": 13,
"Scale": 20,
"Structure": 234,
"Drawing": false,
"ItemId_1": 327,
"ItemNum_1": 550,
"ItemId_2": 210000,
"ItemNum_2": 1100,
"ItemId_3": 0,
"ItemNum_3": 0,
"Copper": 0,
"Volume": 24000,
"EffectType": 4,
"ObjectAction": 0,
"EffectParameter": 362,
"Icon": "Science_2701",
"Performance": 0,
"ScienceDescribe": "怪物攻城防守失败时,耐久度损失降低13%",
"ResultDescribe": "怪物攻城防守失败时,耐久度损失降低13%"
},
{
"Id": 2714,
"Type": 2,
"Name": "战争耐久损耗",
"PrefixScience": 2713,
"ScienceGroup": 2701,
"ScienceLv": 14,
"Scale": 20,
"Structure": 234,
"Drawing": false,
"ItemId_1": 327,
"ItemNum_1": 550,
"ItemId_2": 210000,
"ItemNum_2": 1100,
"ItemId_3": 0,
"ItemNum_3": 0,
"Copper": 0,
"Volume": 26000,
"EffectType": 4,
"ObjectAction": 0,
"EffectParameter": 363,
"Icon": "Science_2701",
"Performance": 0,
"ScienceDescribe": "怪物攻城防守失败时,耐久度损失降低14%",
"ResultDescribe": "怪物攻城防守失败时,耐久度损失降低14%"
},
{
"Id": 2715,
"Type": 2,
"Name": "战争耐久损耗",
"PrefixScience": 2714,
"ScienceGroup": 2701,
"ScienceLv": 15,
"Scale": 20,
"Structure": 234,
"Drawing": false,
"ItemId_1": 327,
"ItemNum_1": 550,
"ItemId_2": 210000,
"ItemNum_2": 1100,
"ItemId_3": 0,
"ItemNum_3": 0,
"Copper": 0,
"Volume": 28000,
"EffectType": 4,
"ObjectAction": 0,
"EffectParameter": 364,
"Icon": "Science_2701",
"Performance": 0,
"ScienceDescribe": "怪物攻城防守失败时,耐久度损失降低15%",
"ResultDescribe": "怪物攻城防守失败时,耐久度损失降低15%"
},
{
"Id": 2801,
"Type": 2,

1500
src/api/config/SiegeRewardsConfigCategory.json

File diff suppressed because it is too large Load Diff

384
src/api/config/SkillBuffConfigCategory.json

File diff suppressed because it is too large Load Diff

40
src/api/config/SkillConfigCategory.json

@ -14997,7 +14997,7 @@
"VisualEffectPrefab": "",
"Icon": "Skill_Icon_1601",
"Sound": "",
"Describe": "如果攻击被闪避,则下次命中率提升至100%。且伤害增加10%",
"Describe": "如果攻击被闪避,则下次命中率提升至100%。且伤害增加15%",
"Introduction": ""
},
{
@ -15036,7 +15036,7 @@
"VisualEffectPrefab": "",
"Icon": "Skill_Icon_1601",
"Sound": "",
"Describe": "如果攻击被闪避,则下次命中率提升至100%。且伤害增加20%",
"Describe": "如果攻击被闪避,则下次命中率提升至100%。且伤害增加30%",
"Introduction": ""
},
{
@ -15075,7 +15075,7 @@
"VisualEffectPrefab": "",
"Icon": "Skill_Icon_1601",
"Sound": "",
"Describe": "如果攻击被闪避,则下次命中率提升至100%。且伤害增加30%",
"Describe": "如果攻击被闪避,则下次命中率提升至100%。且伤害增加45%",
"Introduction": ""
},
{
@ -15114,7 +15114,7 @@
"VisualEffectPrefab": "",
"Icon": "Skill_Icon_1601",
"Sound": "",
"Describe": "如果攻击被闪避,则下次命中率提升至100%。且伤害增加40%",
"Describe": "如果攻击被闪避,则下次命中率提升至100%。且伤害增加60%",
"Introduction": ""
},
{
@ -15153,7 +15153,7 @@
"VisualEffectPrefab": "",
"Icon": "Skill_Icon_1601",
"Sound": "",
"Describe": "如果攻击被闪避,则下次命中率提升至100%。且伤害增加50%",
"Describe": "如果攻击被闪避,则下次命中率提升至100%。且伤害增加75%",
"Introduction": ""
},
{
@ -15192,7 +15192,7 @@
"VisualEffectPrefab": "",
"Icon": "Skill_Icon_1601",
"Sound": "",
"Describe": "如果攻击被闪避,则下次命中率提升至100%。且伤害增加60%",
"Describe": "如果攻击被闪避,则下次命中率提升至100%。且伤害增加90%",
"Introduction": ""
},
{
@ -15231,7 +15231,7 @@
"VisualEffectPrefab": "",
"Icon": "Skill_Icon_1601",
"Sound": "",
"Describe": "如果攻击被闪避,则下次命中率提升至100%。且伤害增加70%",
"Describe": "如果攻击被闪避,则下次命中率提升至100%。且伤害增加105%",
"Introduction": ""
},
{
@ -15270,7 +15270,7 @@
"VisualEffectPrefab": "",
"Icon": "Skill_Icon_1601",
"Sound": "",
"Describe": "如果攻击被闪避,则下次命中率提升至100%。且伤害增加80%",
"Describe": "如果攻击被闪避,则下次命中率提升至100%。且伤害增加120%",
"Introduction": ""
},
{
@ -15309,7 +15309,7 @@
"VisualEffectPrefab": "",
"Icon": "Skill_Icon_1601",
"Sound": "",
"Describe": "如果攻击被闪避,则下次命中率提升至100%。且伤害增加90%",
"Describe": "如果攻击被闪避,则下次命中率提升至100%。且伤害增加135%",
"Introduction": ""
},
{
@ -15348,7 +15348,7 @@
"VisualEffectPrefab": "",
"Icon": "Skill_Icon_1601",
"Sound": "",
"Describe": "如果攻击被闪避,则下次命中率提升至100%。且伤害增加100%",
"Describe": "如果攻击被闪避,则下次命中率提升至100%。且伤害增加150%",
"Introduction": ""
},
{
@ -15755,7 +15755,7 @@
"VisualEffectPrefab": "",
"Icon": "Skill_Icon_1641",
"Sound": "",
"Describe": "生命值低于20%时,普通攻并有2%的概率,眩晕敌人1秒",
"Describe": "生命值低于30%时,普通攻击有2%的概率,眩晕敌人1秒",
"Introduction": ""
},
{
@ -15792,7 +15792,7 @@
"VisualEffectPrefab": "",
"Icon": "Skill_Icon_1641",
"Sound": "",
"Describe": "生命值低于20%时,普通攻并有4%的概率,眩晕敌人1秒",
"Describe": "生命值低于30%时,普通攻击有4%的概率,眩晕敌人1秒",
"Introduction": ""
},
{
@ -15829,7 +15829,7 @@
"VisualEffectPrefab": "",
"Icon": "Skill_Icon_1641",
"Sound": "",
"Describe": "生命值低于20%时,普通攻并有6%的概率,眩晕敌人1秒",
"Describe": "生命值低于30%时,普通攻击有6%的概率,眩晕敌人1秒",
"Introduction": ""
},
{
@ -15866,7 +15866,7 @@
"VisualEffectPrefab": "",
"Icon": "Skill_Icon_1641",
"Sound": "",
"Describe": "生命值低于20%时,普通攻并有8%的概率,眩晕敌人1秒",
"Describe": "生命值低于30%时,普通攻击有8%的概率,眩晕敌人1秒",
"Introduction": ""
},
{
@ -15903,7 +15903,7 @@
"VisualEffectPrefab": "",
"Icon": "Skill_Icon_1641",
"Sound": "",
"Describe": "生命值低于20%时,普通攻并有10%的概率,眩晕敌人1秒",
"Describe": "生命值低于30%时,普通攻击有10%的概率,眩晕敌人1秒",
"Introduction": ""
},
{
@ -15940,7 +15940,7 @@
"VisualEffectPrefab": "",
"Icon": "Skill_Icon_1641",
"Sound": "",
"Describe": "生命值低于20%时,普通攻并有12%的概率,眩晕敌人1秒",
"Describe": "生命值低于30%时,普通攻击有12%的概率,眩晕敌人1秒",
"Introduction": ""
},
{
@ -15977,7 +15977,7 @@
"VisualEffectPrefab": "",
"Icon": "Skill_Icon_1641",
"Sound": "",
"Describe": "生命值低于20%时,普通攻并有14%的概率,眩晕敌人1秒",
"Describe": "生命值低于30%时,普通攻击有14%的概率,眩晕敌人1秒",
"Introduction": ""
},
{
@ -16014,7 +16014,7 @@
"VisualEffectPrefab": "",
"Icon": "Skill_Icon_1641",
"Sound": "",
"Describe": "生命值低于20%时,普通攻并有16%的概率,眩晕敌人1秒",
"Describe": "生命值低于30%时,普通攻击有16%的概率,眩晕敌人1秒",
"Introduction": ""
},
{
@ -16051,7 +16051,7 @@
"VisualEffectPrefab": "",
"Icon": "Skill_Icon_1641",
"Sound": "",
"Describe": "生命值低于20%时,普通攻并有18%的概率,眩晕敌人1秒",
"Describe": "生命值低于30%时,普通攻击有18%的概率,眩晕敌人1秒",
"Introduction": ""
},
{
@ -16088,7 +16088,7 @@
"VisualEffectPrefab": "",
"Icon": "Skill_Icon_1641",
"Sound": "",
"Describe": "生命值低于20%时,普通攻并有20%的概率,眩晕敌人1秒",
"Describe": "生命值低于30%时,普通攻击有20%的概率,眩晕敌人1秒",
"Introduction": ""
},
{

38
src/api/config/SkillEffectConfigCategory.json

@ -2131,63 +2131,63 @@
"Id": 1442,
"EffectType": 1411,
"EffectField": 1,
"NumericExpression": "4",
"NumericExpression": "6",
"WhetherCrit": false
},
{
"Id": 1443,
"EffectType": 1411,
"EffectField": 1,
"NumericExpression": "5",
"NumericExpression": "9",
"WhetherCrit": false
},
{
"Id": 1444,
"EffectType": 1411,
"EffectField": 1,
"NumericExpression": "6",
"NumericExpression": "12",
"WhetherCrit": false
},
{
"Id": 1445,
"EffectType": 1411,
"EffectField": 1,
"NumericExpression": "7",
"NumericExpression": "15",
"WhetherCrit": false
},
{
"Id": 1446,
"EffectType": 1411,
"EffectField": 1,
"NumericExpression": "8",
"NumericExpression": "18",
"WhetherCrit": false
},
{
"Id": 1447,
"EffectType": 1411,
"EffectField": 1,
"NumericExpression": "9",
"NumericExpression": "21",
"WhetherCrit": false
},
{
"Id": 1448,
"EffectType": 1411,
"EffectField": 1,
"NumericExpression": "10",
"NumericExpression": "24",
"WhetherCrit": false
},
{
"Id": 1449,
"EffectType": 1411,
"EffectField": 1,
"NumericExpression": "11",
"NumericExpression": "27",
"WhetherCrit": false
},
{
"Id": 1450,
"EffectType": 1411,
"EffectField": 1,
"NumericExpression": "12",
"NumericExpression": "30",
"WhetherCrit": false
},
{
@ -2761,70 +2761,70 @@
"Id": 1611,
"EffectType": 1432,
"EffectField": 1,
"NumericExpression": "10",
"NumericExpression": "15",
"WhetherCrit": false
},
{
"Id": 1612,
"EffectType": 1432,
"EffectField": 1,
"NumericExpression": "20",
"NumericExpression": "30",
"WhetherCrit": false
},
{
"Id": 1613,
"EffectType": 1432,
"EffectField": 1,
"NumericExpression": "30",
"NumericExpression": "45",
"WhetherCrit": false
},
{
"Id": 1614,
"EffectType": 1432,
"EffectField": 1,
"NumericExpression": "40",
"NumericExpression": "60",
"WhetherCrit": false
},
{
"Id": 1615,
"EffectType": 1432,
"EffectField": 1,
"NumericExpression": "50",
"NumericExpression": "75",
"WhetherCrit": false
},
{
"Id": 1616,
"EffectType": 1432,
"EffectField": 1,
"NumericExpression": "60",
"NumericExpression": "90",
"WhetherCrit": false
},
{
"Id": 1617,
"EffectType": 1432,
"EffectField": 1,
"NumericExpression": "70",
"NumericExpression": "105",
"WhetherCrit": false
},
{
"Id": 1618,
"EffectType": 1432,
"EffectField": 1,
"NumericExpression": "80",
"NumericExpression": "120",
"WhetherCrit": false
},
{
"Id": 1619,
"EffectType": 1432,
"EffectField": 1,
"NumericExpression": "90",
"NumericExpression": "135",
"WhetherCrit": false
},
{
"Id": 1620,
"EffectType": 1432,
"EffectField": 1,
"NumericExpression": "100",
"NumericExpression": "150",
"WhetherCrit": false
},
{

13
src/api/config/StoryAnimationConfigCategory.json

@ -232,5 +232,18 @@
0
],
"Region": 1001
},
{
"Id": 22,
"TriggerCondition": 1,
"ConditionParameter": [
1038
],
"AnimationName": "StoryCase_22",
"CloseWindow": true,
"RelatedTask": [
0
],
"Region": 3002
}
]

347
src/api/config/StructureConfigCategory.json

File diff suppressed because it is too large Load Diff

16
src/api/config/StructureFightConfigCategory.json

@ -1967,6 +1967,22 @@
"SonNum": 0,
"Skill": 0
},
{
"Id": 581,
"ATK": 0,
"DEF": 0,
"HP": 1000,
"HoldNum": 0,
"EquipType": 0,
"EquipNum": 0,
"AttackSpeed": 0,
"HitRate": 0,
"Hit": 0,
"DodgeRate": 0,
"Dodge": 0,
"SonNum": 0,
"Skill": 0
},
{
"Id": 620,
"ATK": 0,

170
src/api/config/StructureStrengthenConfigCategory.json

@ -5099,6 +5099,40 @@
"StrengIntegral2": 4,
"StrengIntegral3": 8
},
{
"Id": 581,
"Name": "猪圈",
"Schedule": 13,
"RepairItem1": 804,
"RepairItemNum1": 300,
"RepairItem2": 809,
"RepairItemNum2": 500,
"RepairItem3": 800,
"RepairItemNum3": 350,
"RepairItem4": 0,
"RepairItemNum4": 0,
"FirmCoinNum": 9200,
"StrengthenYesOrNo": true,
"Strengthen1Item1": 815,
"Strengthen1Item1Num": 80,
"Strengthen1Item2": 804,
"Strengthen1Item2Num": 10,
"Strengthen2Item1": 820,
"Strengthen2Item1Num": 78,
"Strengthen2Item2": 804,
"Strengthen2Item2Num": 20,
"Strengthen3Item1": 820,
"Strengthen3Item1Num": 156,
"Strengthen3Item2": 804,
"Strengthen3Item2Num": 50,
"StrengthenDurable1": 1500,
"StrengthenDurable2": 2100,
"StrengthenDurable3": 2700,
"Integral": 60,
"StrengIntegral1": 10,
"StrengIntegral2": 15,
"StrengIntegral3": 30
},
{
"Id": 582,
"Name": "鸡窝",
@ -5133,6 +5167,40 @@
"StrengIntegral2": 8,
"StrengIntegral3": 15
},
{
"Id": 583,
"Name": "猪圈",
"Schedule": 17,
"RepairItem1": 805,
"RepairItemNum1": 300,
"RepairItem2": 810,
"RepairItemNum2": 500,
"RepairItem3": 800,
"RepairItemNum3": 350,
"RepairItem4": 0,
"RepairItemNum4": 0,
"FirmCoinNum": 14000,
"StrengthenYesOrNo": true,
"Strengthen1Item1": 821,
"Strengthen1Item1Num": 51,
"Strengthen1Item2": 805,
"Strengthen1Item2Num": 10,
"Strengthen2Item1": 821,
"Strengthen2Item1Num": 102,
"Strengthen2Item2": 805,
"Strengthen2Item2Num": 20,
"Strengthen3Item1": 821,
"Strengthen3Item1Num": 204,
"Strengthen3Item2": 805,
"Strengthen3Item2Num": 50,
"StrengthenDurable1": 1500,
"StrengthenDurable2": 2100,
"StrengthenDurable3": 2700,
"Integral": 80,
"StrengIntegral1": 14,
"StrengIntegral2": 20,
"StrengIntegral3": 40
},
{
"Id": 620,
"Name": "浆果园",
@ -5677,6 +5745,74 @@
"StrengIntegral2": 8,
"StrengIntegral3": 15
},
{
"Id": 670,
"Name": "雕像·鲍小翠",
"Schedule": 20,
"RepairItem1": 807,
"RepairItemNum1": 80,
"RepairItem2": 0,
"RepairItemNum2": 0,
"RepairItem3": 0,
"RepairItemNum3": 0,
"RepairItem4": 0,
"RepairItemNum4": 820,
"FirmCoinNum": 400,
"StrengthenYesOrNo": false,
"Strengthen1Item1": 821,
"Strengthen1Item1Num": 54,
"Strengthen1Item2": 0,
"Strengthen1Item2Num": 0,
"Strengthen2Item1": 821,
"Strengthen2Item1Num": 108,
"Strengthen2Item2": 0,
"Strengthen2Item2Num": 0,
"Strengthen3Item1": 821,
"Strengthen3Item1Num": 216,
"Strengthen3Item2": 0,
"Strengthen3Item2Num": 0,
"StrengthenDurable1": 1500,
"StrengthenDurable2": 2100,
"StrengthenDurable3": 2700,
"Integral": 0,
"StrengIntegral1": 0,
"StrengIntegral2": 0,
"StrengIntegral3": 0
},
{
"Id": 671,
"Name": "雕像·乔河",
"Schedule": 20,
"RepairItem1": 807,
"RepairItemNum1": 80,
"RepairItem2": 0,
"RepairItemNum2": 0,
"RepairItem3": 0,
"RepairItemNum3": 0,
"RepairItem4": 0,
"RepairItemNum4": 820,
"FirmCoinNum": 400,
"StrengthenYesOrNo": false,
"Strengthen1Item1": 821,
"Strengthen1Item1Num": 54,
"Strengthen1Item2": 0,
"Strengthen1Item2Num": 0,
"Strengthen2Item1": 821,
"Strengthen2Item1Num": 108,
"Strengthen2Item2": 0,
"Strengthen2Item2Num": 0,
"Strengthen3Item1": 821,
"Strengthen3Item1Num": 216,
"Strengthen3Item2": 0,
"Strengthen3Item2Num": 0,
"StrengthenDurable1": 1500,
"StrengthenDurable2": 2100,
"StrengthenDurable3": 2700,
"Integral": 0,
"StrengIntegral1": 0,
"StrengIntegral2": 0,
"StrengIntegral3": 0
},
{
"Id": 1000,
"Name": "伐木场",
@ -5779,6 +5915,40 @@
"StrengIntegral2": 0,
"StrengIntegral3": 0
},
{
"Id": 1003,
"Name": "猎人小屋",
"Schedule": 13,
"RepairItem1": 0,
"RepairItemNum1": 0,
"RepairItem2": 0,
"RepairItemNum2": 0,
"RepairItem3": 0,
"RepairItemNum3": 0,
"RepairItem4": 0,
"RepairItemNum4": 0,
"FirmCoinNum": 0,
"StrengthenYesOrNo": false,
"Strengthen1Item1": 815,
"Strengthen1Item1Num": 80,
"Strengthen1Item2": 804,
"Strengthen1Item2Num": 10,
"Strengthen2Item1": 820,
"Strengthen2Item1Num": 78,
"Strengthen2Item2": 804,
"Strengthen2Item2Num": 20,
"Strengthen3Item1": 820,
"Strengthen3Item1Num": 156,
"Strengthen3Item2": 804,
"Strengthen3Item2Num": 50,
"StrengthenDurable1": 1500,
"StrengthenDurable2": 2100,
"StrengthenDurable3": 2700,
"Integral": 60,
"StrengIntegral1": 10,
"StrengIntegral2": 15,
"StrengIntegral3": 30
},
{
"Id": 1100,
"Name": "装备坊",

264
src/api/config/SynthesisConfigCategory.json

@ -4618,6 +4618,37 @@
"NextLv": 0,
"UpgradeItem": 0
},
{
"Id": 581,
"Name": "猪圈",
"MixtureType": 1,
"MaterialType": 0,
"MixtureID": 581,
"QualityMixtureID": 0,
"Copies": 1,
"TimeConsume": -1,
"SingleMaxNumber": -1,
"ItemId1": 804,
"ItemNum1": 300,
"ItemId2": 809,
"ItemNum2": 500,
"ItemId3": 800,
"ItemNum3": 350,
"ItemId4": 0,
"ItemNum4": 0,
"DisplayCondition": 1,
"DisplayParameter": [
13
],
"UnlockCondition": 1,
"UnlockParameter": [
13
],
"Drawing": false,
"Display": true,
"NextLv": 0,
"UpgradeItem": 0
},
{
"Id": 582,
"Name": "鸡窝",
@ -4649,6 +4680,37 @@
"NextLv": 0,
"UpgradeItem": 0
},
{
"Id": 583,
"Name": "猪圈",
"MixtureType": 1,
"MaterialType": 0,
"MixtureID": 583,
"QualityMixtureID": 0,
"Copies": 1,
"TimeConsume": -1,
"SingleMaxNumber": -1,
"ItemId1": 805,
"ItemNum1": 300,
"ItemId2": 810,
"ItemNum2": 500,
"ItemId3": 800,
"ItemNum3": 350,
"ItemId4": 0,
"ItemNum4": 0,
"DisplayCondition": 1,
"DisplayParameter": [
17
],
"UnlockCondition": 1,
"UnlockParameter": [
17
],
"Drawing": false,
"Display": false,
"NextLv": 0,
"UpgradeItem": 0
},
{
"Id": 620,
"Name": "浆果园",
@ -5145,6 +5207,68 @@
"NextLv": 0,
"UpgradeItem": 0
},
{
"Id": 670,
"Name": "雕像·鲍小翠",
"MixtureType": 1,
"MaterialType": 0,
"MixtureID": 670,
"QualityMixtureID": 0,
"Copies": 1,
"TimeConsume": -1,
"SingleMaxNumber": -1,
"ItemId1": 808,
"ItemNum1": 200,
"ItemId2": 0,
"ItemNum2": 0,
"ItemId3": 0,
"ItemNum3": 0,
"ItemId4": 0,
"ItemNum4": 0,
"DisplayCondition": 4,
"DisplayParameter": [
0
],
"UnlockCondition": 4,
"UnlockParameter": [
0
],
"Drawing": true,
"Display": true,
"NextLv": 0,
"UpgradeItem": 0
},
{
"Id": 671,
"Name": "雕像·乔河",
"MixtureType": 1,
"MaterialType": 0,
"MixtureID": 671,
"QualityMixtureID": 0,
"Copies": 1,
"TimeConsume": -1,
"SingleMaxNumber": -1,
"ItemId1": 808,
"ItemNum1": 200,
"ItemId2": 0,
"ItemNum2": 0,
"ItemId3": 0,
"ItemNum3": 0,
"ItemId4": 0,
"ItemNum4": 0,
"DisplayCondition": 4,
"DisplayParameter": [
0
],
"UnlockCondition": 4,
"UnlockParameter": [
0
],
"Drawing": true,
"Display": true,
"NextLv": 0,
"UpgradeItem": 0
},
{
"Id": 1000,
"Name": "伐木场",
@ -5238,6 +5362,37 @@
"NextLv": 0,
"UpgradeItem": 0
},
{
"Id": 1003,
"Name": "猎人小屋",
"MixtureType": 1,
"MaterialType": 0,
"MixtureID": 1003,
"QualityMixtureID": 0,
"Copies": 1,
"TimeConsume": -1,
"SingleMaxNumber": -1,
"ItemId1": 804,
"ItemNum1": 200,
"ItemId2": 809,
"ItemNum2": 200,
"ItemId3": 800,
"ItemNum3": 200,
"ItemId4": 0,
"ItemNum4": 0,
"DisplayCondition": 1,
"DisplayParameter": [
13
],
"UnlockCondition": 1,
"UnlockParameter": [
13
],
"Drawing": false,
"Display": true,
"NextLv": 0,
"UpgradeItem": 0
},
{
"Id": 1100,
"Name": "装备坊",
@ -10130,6 +10285,37 @@
"NextLv": 0,
"UpgradeItem": 0
},
{
"Id": 3065,
"Name": "饲料",
"MixtureType": 3,
"MaterialType": 4,
"MixtureID": 861,
"QualityMixtureID": 0,
"Copies": 1,
"TimeConsume": 1,
"SingleMaxNumber": -1,
"ItemId1": 1,
"ItemNum1": 15,
"ItemId2": 2000,
"ItemNum2": 40,
"ItemId3": 0,
"ItemNum3": 0,
"ItemId4": 0,
"ItemNum4": 0,
"DisplayCondition": 1,
"DisplayParameter": [
13
],
"UnlockCondition": 1,
"UnlockParameter": [
13
],
"Drawing": false,
"Display": true,
"NextLv": 0,
"UpgradeItem": 0
},
{
"Id": 4000,
"Name": "葛布春服",
@ -10210,7 +10396,7 @@
"TimeConsume": 30,
"SingleMaxNumber": -1,
"ItemId1": 839,
"ItemNum1": 10,
"ItemNum1": 5,
"ItemId2": 838,
"ItemNum2": 10,
"ItemId3": 209,
@ -10243,9 +10429,9 @@
"TimeConsume": 30,
"SingleMaxNumber": -1,
"ItemId1": 841,
"ItemNum1": 20,
"ItemNum1": 10,
"ItemId2": 839,
"ItemNum2": 20,
"ItemNum2": 5,
"ItemId3": 209,
"ItemNum3": 10,
"ItemId4": 0,
@ -10275,9 +10461,9 @@
"TimeConsume": 30,
"SingleMaxNumber": -1,
"ItemId1": 842,
"ItemNum1": 20,
"ItemNum1": 10,
"ItemId2": 205,
"ItemNum2": 20,
"ItemNum2": 10,
"ItemId3": 210,
"ItemNum3": 10,
"ItemId4": 0,
@ -10307,10 +10493,10 @@
"TimeConsume": 30,
"SingleMaxNumber": -1,
"ItemId1": 843,
"ItemNum1": 20,
"ItemNum1": 10,
"ItemId2": 216,
"ItemNum2": 20,
"ItemId3": 0,
"ItemNum2": 10,
"ItemId3": 211,
"ItemNum3": 10,
"ItemId4": 0,
"ItemNum4": 0,
@ -10338,9 +10524,9 @@
"TimeConsume": 30,
"SingleMaxNumber": -1,
"ItemId1": 844,
"ItemNum1": 20,
"ItemNum1": 10,
"ItemId2": 207,
"ItemNum2": 20,
"ItemNum2": 10,
"ItemId3": 212,
"ItemNum3": 15,
"ItemId4": 0,
@ -10473,7 +10659,7 @@
"ItemId1": 841,
"ItemNum1": 8,
"ItemId2": 839,
"ItemNum2": 20,
"ItemNum2": 4,
"ItemId3": 209,
"ItemNum3": 10,
"ItemId4": 0,
@ -10503,9 +10689,9 @@
"TimeConsume": 30,
"SingleMaxNumber": -1,
"ItemId1": 842,
"ItemNum1": 12,
"ItemNum1": 8,
"ItemId2": 205,
"ItemNum2": 20,
"ItemNum2": 10,
"ItemId3": 210,
"ItemNum3": 10,
"ItemId4": 0,
@ -10535,10 +10721,10 @@
"TimeConsume": 30,
"SingleMaxNumber": -1,
"ItemId1": 843,
"ItemNum1": 15,
"ItemNum1": 8,
"ItemId2": 216,
"ItemNum2": 20,
"ItemId3": 0,
"ItemNum2": 10,
"ItemId3": 211,
"ItemNum3": 10,
"ItemId4": 0,
"ItemNum4": 0,
@ -10566,9 +10752,9 @@
"TimeConsume": 30,
"SingleMaxNumber": -1,
"ItemId1": 844,
"ItemNum1": 15,
"ItemNum1": 8,
"ItemId2": 207,
"ItemNum2": 20,
"ItemNum2": 10,
"ItemId3": 212,
"ItemNum3": 15,
"ItemId4": 0,
@ -10666,7 +10852,7 @@
"TimeConsume": 30,
"SingleMaxNumber": -1,
"ItemId1": 839,
"ItemNum1": 10,
"ItemNum1": 5,
"ItemId2": 838,
"ItemNum2": 10,
"ItemId3": 209,
@ -10699,9 +10885,9 @@
"TimeConsume": 30,
"SingleMaxNumber": -1,
"ItemId1": 841,
"ItemNum1": 20,
"ItemNum1": 10,
"ItemId2": 839,
"ItemNum2": 20,
"ItemNum2": 5,
"ItemId3": 209,
"ItemNum3": 10,
"ItemId4": 0,
@ -10731,9 +10917,9 @@
"TimeConsume": 30,
"SingleMaxNumber": -1,
"ItemId1": 842,
"ItemNum1": 20,
"ItemNum1": 10,
"ItemId2": 205,
"ItemNum2": 20,
"ItemNum2": 10,
"ItemId3": 210,
"ItemNum3": 10,
"ItemId4": 0,
@ -10763,10 +10949,10 @@
"TimeConsume": 30,
"SingleMaxNumber": -1,
"ItemId1": 843,
"ItemNum1": 20,
"ItemNum1": 10,
"ItemId2": 216,
"ItemNum2": 20,
"ItemId3": 0,
"ItemNum2": 10,
"ItemId3": 211,
"ItemNum3": 10,
"ItemId4": 0,
"ItemNum4": 0,
@ -10794,9 +10980,9 @@
"TimeConsume": 30,
"SingleMaxNumber": -1,
"ItemId1": 844,
"ItemNum1": 20,
"ItemNum1": 10,
"ItemId2": 207,
"ItemNum2": 20,
"ItemNum2": 10,
"ItemId3": 212,
"ItemNum3": 15,
"ItemId4": 0,
@ -10894,7 +11080,7 @@
"TimeConsume": 30,
"SingleMaxNumber": -1,
"ItemId1": 839,
"ItemNum1": 12,
"ItemNum1": 6,
"ItemId2": 838,
"ItemNum2": 10,
"ItemId3": 209,
@ -10927,9 +11113,9 @@
"TimeConsume": 30,
"SingleMaxNumber": -1,
"ItemId1": 841,
"ItemNum1": 25,
"ItemNum1": 12,
"ItemId2": 839,
"ItemNum2": 20,
"ItemNum2": 6,
"ItemId3": 209,
"ItemNum3": 10,
"ItemId4": 0,
@ -10959,9 +11145,9 @@
"TimeConsume": 30,
"SingleMaxNumber": -1,
"ItemId1": 842,
"ItemNum1": 25,
"ItemNum1": 12,
"ItemId2": 205,
"ItemNum2": 20,
"ItemNum2": 10,
"ItemId3": 210,
"ItemNum3": 10,
"ItemId4": 0,
@ -10991,10 +11177,10 @@
"TimeConsume": 30,
"SingleMaxNumber": -1,
"ItemId1": 843,
"ItemNum1": 30,
"ItemNum1": 12,
"ItemId2": 216,
"ItemNum2": 20,
"ItemId3": 0,
"ItemNum2": 10,
"ItemId3": 211,
"ItemNum3": 10,
"ItemId4": 0,
"ItemNum4": 0,
@ -11022,9 +11208,9 @@
"TimeConsume": 30,
"SingleMaxNumber": -1,
"ItemId1": 844,
"ItemNum1": 30,
"ItemNum1": 12,
"ItemId2": 207,
"ItemNum2": 20,
"ItemNum2": 10,
"ItemId3": 212,
"ItemNum3": 20,
"ItemId4": 0,
@ -12650,7 +12836,7 @@
"ItemId1": 804,
"ItemNum1": 10,
"ItemId2": 839,
"ItemNum2": 10,
"ItemNum2": 20,
"ItemId3": 0,
"ItemNum3": 0,
"ItemId4": 0,

21
src/api/config/SystemConditionsConfigCategory.json

@ -110,5 +110,26 @@
"Name": "月卡特权显示标志",
"OpenConditionType": 4,
"ConditionParameter": 3
},
{
"Id": 18,
"OpenSystem": 18,
"Name": "成就系统",
"OpenConditionType": 4,
"ConditionParameter": 3
},
{
"Id": 19,
"OpenSystem": 19,
"Name": "称号系统",
"OpenConditionType": 4,
"ConditionParameter": 3
},
{
"Id": 20,
"OpenSystem": 20,
"Name": "资源一览功能",
"OpenConditionType": 4,
"ConditionParameter": 8
}
]

150
src/api/config/TaskConfigCategory.json

@ -149,11 +149,8 @@
"Parameter1": [
1031
],
"ConditionType2": 28,
"Parameter2": [
3002,
6000
],
"ConditionType2": 0,
"Parameter2": [],
"ConditionType3": 0,
"Parameter3": [],
"ConditionType4": 0,
@ -184,11 +181,8 @@
"Parameter1": [
1031
],
"ConditionType2": 28,
"Parameter2": [
3002,
6000
],
"ConditionType2": 0,
"Parameter2": [],
"ConditionType3": 0,
"Parameter3": [],
"ConditionType4": 0,
@ -219,11 +213,8 @@
"Parameter1": [
1031
],
"ConditionType2": 28,
"Parameter2": [
3002,
6000
],
"ConditionType2": 0,
"Parameter2": [],
"ConditionType3": 0,
"Parameter3": [],
"ConditionType4": 0,
@ -254,11 +245,8 @@
"Parameter1": [
2001
],
"ConditionType2": 28,
"Parameter2": [
3003,
6000
],
"ConditionType2": 0,
"Parameter2": [],
"ConditionType3": 0,
"Parameter3": [],
"ConditionType4": 0,
@ -289,11 +277,8 @@
"Parameter1": [
2001
],
"ConditionType2": 28,
"Parameter2": [
3003,
6000
],
"ConditionType2": 0,
"Parameter2": [],
"ConditionType3": 0,
"Parameter3": [],
"ConditionType4": 0,
@ -324,11 +309,8 @@
"Parameter1": [
2001
],
"ConditionType2": 28,
"Parameter2": [
3003,
6000
],
"ConditionType2": 0,
"Parameter2": [],
"ConditionType3": 0,
"Parameter3": [],
"ConditionType4": 0,
@ -359,11 +341,8 @@
"Parameter1": [
3001
],
"ConditionType2": 28,
"Parameter2": [
3004,
6000
],
"ConditionType2": 0,
"Parameter2": [],
"ConditionType3": 0,
"Parameter3": [],
"ConditionType4": 0,
@ -394,11 +373,8 @@
"Parameter1": [
3001
],
"ConditionType2": 28,
"Parameter2": [
3004,
6000
],
"ConditionType2": 0,
"Parameter2": [],
"ConditionType3": 0,
"Parameter3": [],
"ConditionType4": 0,
@ -429,11 +405,8 @@
"Parameter1": [
3001
],
"ConditionType2": 28,
"Parameter2": [
3004,
6000
],
"ConditionType2": 0,
"Parameter2": [],
"ConditionType3": 0,
"Parameter3": [],
"ConditionType4": 0,
@ -464,11 +437,8 @@
"Parameter1": [
4001
],
"ConditionType2": 28,
"Parameter2": [
3005,
6000
],
"ConditionType2": 0,
"Parameter2": [],
"ConditionType3": 0,
"Parameter3": [],
"ConditionType4": 0,
@ -499,11 +469,8 @@
"Parameter1": [
4001
],
"ConditionType2": 28,
"Parameter2": [
3005,
6000
],
"ConditionType2": 0,
"Parameter2": [],
"ConditionType3": 0,
"Parameter3": [],
"ConditionType4": 0,
@ -534,11 +501,8 @@
"Parameter1": [
4001
],
"ConditionType2": 28,
"Parameter2": [
3005,
6000
],
"ConditionType2": 0,
"Parameter2": [],
"ConditionType3": 0,
"Parameter3": [],
"ConditionType4": 0,
@ -1722,7 +1686,7 @@
"Id": 1036,
"Name": "更多的农田",
"Type": 2,
"Describe": "建造四块农田",
"Describe": "建造四块农田",
"MainLine": 0,
"ConditionType1": 1,
"Parameter1": [
@ -1750,6 +1714,70 @@
"AddNpc": [],
"AddMonster": []
},
{
"Id": 1037,
"Name": "渔溪村奇遇(一)",
"Type": 2,
"Describe": "和渔溪村的杂货商交流之后得知最近有怪事发生。",
"MainLine": 0,
"ConditionType1": 1,
"Parameter1": [
1031
],
"ConditionType2": 0,
"Parameter2": [],
"ConditionType3": 0,
"Parameter3": [],
"ConditionType4": 0,
"Parameter4": [],
"ReleaseType": 3,
"ReleaseTypeParameter": [],
"TaskStep": [
1037
],
"GiveUp": false,
"Repeat": false,
"CD": 0,
"ReAccess": false,
"TimeLimit": 0,
"Award": 4040,
"AddVillager": [],
"AddWarrior": [],
"AddNpc": [],
"AddMonster": []
},
{
"Id": 1038,
"Name": "渔溪村奇遇(二)",
"Type": 2,
"Describe": "在渔溪村西边的桃花树下放一些糖。",
"MainLine": 0,
"ConditionType1": 1,
"Parameter1": [
1037
],
"ConditionType2": 0,
"Parameter2": [],
"ConditionType3": 0,
"Parameter3": [],
"ConditionType4": 0,
"Parameter4": [],
"ReleaseType": 3,
"ReleaseTypeParameter": [],
"TaskStep": [
1038
],
"GiveUp": false,
"Repeat": false,
"CD": 0,
"ReAccess": false,
"TimeLimit": 0,
"Award": 4041,
"AddVillager": [],
"AddWarrior": [],
"AddNpc": [],
"AddMonster": []
},
{
"Id": 2001,
"Name": "解锁赤丘山",

27
src/api/config/TaskDialogueConfigCategory.json

@ -1007,7 +1007,7 @@
{
"Id": 10023,
"DialogueRole": 4,
"Content": "一棵桃树",
"Content": "在树下放一些糖试试吧",
"NextDialogue": 0,
"NextOptions": [
7
@ -1401,5 +1401,30 @@
"NextOptions": [
7
]
},
{
"Id": 10066,
"DialogueRole": 4,
"Content": "这几日总见一头蓝色小牛在村西头转悠,毛色油亮得像抹了层月光,可神气!",
"NextDialogue": 0,
"NextOptions": [
200001
]
},
{
"Id": 10067,
"DialogueRole": 4,
"Content": "我瞧它似乎有灵智。且它一直围着桃花树转悠,怕不是被桃花的香甜气息吸引了。",
"NextDialogue": 10068,
"NextOptions": []
},
{
"Id": 10068,
"DialogueRole": 4,
"Content": "或许你可以在我这买些糖放到渔溪村西边的那棵桃花树下试试那小牛会不会出现。",
"NextDialogue": 0,
"NextOptions": [
200002
]
}
]

35
src/api/config/TaskStepConfigCategory.json

@ -1168,6 +1168,41 @@
"TargetDescribe": "建造{0}",
"Number": true
},
{
"Id": 1037,
"Describe": "和渔溪村杂货商对话",
"TargetType1": 16,
"TargetParameter1": [
1060,
200000
],
"TargetType2": 0,
"TargetParameter2": [],
"TargetType3": 0,
"TargetParameter3": [],
"TargetType4": 0,
"TargetParameter4": [],
"TargetDescribe": "对话渔溪杂货商",
"Number": false
},
{
"Id": 1038,
"Describe": "在渔溪村西边的桃花树下放一些糖",
"TargetType1": 7,
"TargetParameter1": [
3002018,
4017,
200003
],
"TargetType2": 0,
"TargetParameter2": [],
"TargetType3": 0,
"TargetParameter3": [],
"TargetType4": 0,
"TargetParameter4": [],
"TargetDescribe": "西边桃树下放糖",
"Number": false
},
{
"Id": 2001,
"Describe": "打败[color=#009a04]赤丘山妖兽[/color]",

122
src/api/config/TextConfigCategory.json

@ -1064,6 +1064,46 @@
"Text": "兑换成功!请在邮件中领取!",
"Value": ""
},
{
"Id": 1214,
"Text": "保存蓝图将覆盖上一份,您确定要保存当前的蓝图吗?",
"Value": ""
},
{
"Id": 1215,
"Text": "该谷主未开通蓝图保存权限",
"Value": ""
},
{
"Id": 1216,
"Text": "已将当前设置的菜品存为预设",
"Value": ""
},
{
"Id": 1217,
"Text": "还未设置预设菜品",
"Value": ""
},
{
"Id": 1218,
"Text": "请选择村民!",
"Value": ""
},
{
"Id": 1219,
"Text": "需要长按图标并拖动以回收装饰品",
"Value": ""
},
{
"Id": 1220,
"Text": "当前没有预设菜品",
"Value": ""
},
{
"Id": 1221,
"Text": "已清空预设菜品",
"Value": ""
},
{
"Id": 2001,
"Text": "抵达中",
@ -3109,6 +3149,11 @@
"Text": "首充礼包改为这里了",
"Value": ""
},
{
"Id": 2411,
"Text": "注:设置预设菜品后勾选自动则每天会自动按照预设的菜品举办家宴",
"Value": ""
},
{
"Id": 2901,
"Text": "图鉴积分包括以下四个要素:<br/>建筑积分:包括建造建筑的积分和加固建筑的积分<br/>宝物积分:建筑上装备的宝物所提供的积分<br/>装饰品积分:解锁装饰品提供的积分<br/>皮肤积分:解锁建筑皮肤提供的积分<br/>当图鉴积分相同时,先上榜的人排在前面<br/>每日排行榜于每天晚上12点结算并发放奖励。",
@ -3286,7 +3331,7 @@
},
{
"Id": 2936,
"Text": "点击选择称号",
"Text": "未佩戴称号",
"Value": ""
},
{
@ -3414,6 +3459,81 @@
"Text": "加固建筑和学习维修费用相关科技,可以大幅度降低维修费用",
"Value": ""
},
{
"Id": 2962,
"Text": "山谷安静的发展,物品自产自销。",
"Value": ""
},
{
"Id": 2963,
"Text": "生产物资支援七孤城的将士抵抗妖兽入侵。",
"Value": ""
},
{
"Id": 2964,
"Text": "获取方式:桃谷货郎定期来收购物品<br/>最大收益:每日预计50万<br/>获取难度:难<br/>该模式下:兵工坊不再产生订单",
"Value": ""
},
{
"Id": 2965,
"Text": "获取方式:每日生产订单(可离线)<br/>最大收益:每日预计50万<br/>获取难度:简单<br/>该模式下:桃谷货郎不再收购物品",
"Value": ""
},
{
"Id": 2966,
"Text": "您确定要切换到{【模式名称】}模式吗,切换后次日5:00生效",
"Value": ""
},
{
"Id": 2967,
"Text": "可添加木材,布料和金属锭类材料",
"Value": ""
},
{
"Id": 2968,
"Text": "可添加食物材料",
"Value": ""
},
{
"Id": 2969,
"Text": "今日已完成订单,明日5:00点刷新",
"Value": ""
},
{
"Id": 2970,
"Text": "材料已经足够生产订单需求,不需要再添加了",
"Value": ""
},
{
"Id": 2971,
"Text": "材料不足生产该订单,请补足材料",
"Value": ""
},
{
"Id": 2972,
"Text": "立绘还在优化中,请期待",
"Value": ""
},
{
"Id": 2973,
"Text": "选择劳力高的村民有利于比赛~",
"Value": ""
},
{
"Id": 2974,
"Text": "选择直系亲人有利于村民更好地比赛~",
"Value": ""
},
{
"Id": 2975,
"Text": "选择药品进行自动喂药",
"Value": ""
},
{
"Id": 2976,
"Text": "山谷有危险,请解除危险后再布局",
"Value": ""
},
{
"Id": 3001,
"Text": "撤销建造将返还所有材料,是否撤销建造该建筑?",

120
src/api/config/TitleConfigCategory.json

@ -1,10 +1,12 @@
[
{
"Id": 101,
"Name": "厉害的媒人",
"Requirement": "在比翼楼中触发羽毛掉落事件{0}次",
"Name": "四海为家",
"Requirement": "成就-四海皆闻桃源名",
"RequirementTpye": 31,
"IdAndType": [
20
140000,
1
],
"Time": false,
"Level": 1,
@ -12,97 +14,119 @@
},
{
"Id": 102,
"Name": "良工巧匠",
"Requirement": "解锁{0}种装饰品",
"Name": "大家族",
"Requirement": "成就-百家灯火续长明",
"RequirementTpye": 31,
"IdAndType": [
50
140001,
1
],
"Time": false,
"Level": 1,
"Skin": "Tiltle_Pictrue_102"
},
{
"Id": 200,
"Name": "开图小能手",
"Requirement": "解锁{0}个村庄",
"Id": 103,
"Name": "美食家",
"Requirement": "成就-千券化作炊烟去",
"RequirementTpye": 31,
"IdAndType": [
1031,
2002,
3002,
4002
140007,
1
],
"Time": false,
"Level": 2,
"Skin": "Tiltle_Pictrue_200"
"Level": 1,
"Skin": "Tiltle_Pictrue_103"
},
{
"Id": 201,
"Name": "大家庭",
"Requirement": "族谱中记录的村民数量累计{0}个",
"Name": "捕鱼达人",
"Requirement": "成就-一竿钓尽武陵春",
"RequirementTpye": 31,
"IdAndType": [
200
140002,
1
],
"Time": false,
"Level": 2,
"Skin": "Tiltle_Pictrue_201"
},
{
"Id": 300,
"Name": "我姓钱",
"Requirement": "拥有{0}个{1}",
"Id": 301,
"Name": "歌唱家",
"Requirement": "成就-比翼楼前拾遗羽",
"RequirementTpye": 31,
"IdAndType": [
210000,
50000000
140003,
1
],
"Time": false,
"Level": 3,
"Skin": "Tiltle_Pictrue_300"
"Skin": "Tiltle_Pictrue_301"
},
{
"Id": 301,
"Name": "捕鱼达人",
"Requirement": "累计获得{0}条{1}",
"Id": 302,
"Name": "满庭芳",
"Requirement": "成就-半百檐铃缀桃源",
"RequirementTpye": 31,
"IdAndType": [
131,
1000
140004,
1
],
"Time": false,
"Level": 3,
"Skin": "Tiltle_Pictrue_301"
"Skin": "Tiltle_Pictrue_302"
},
{
"Id": 302,
"Name": "商人",
"Requirement": "累计在{5}处获得{0}个铜币",
"Id": 303,
"Name": "亿万富翁",
"Requirement": "成就-万贯春风扫落英",
"RequirementTpye": 31,
"IdAndType": [
1070,
50000000
140005,
1
],
"Time": false,
"Level": 3,
"Skin": "Tiltle_Pictrue_302"
"Skin": "Tiltle_Pictrue_303"
},
{
"Id": 400,
"Name": "美食家",
"Requirement": "累计获得{0}个{1}",
"Id": 304,
"Name": "资深商人",
"Requirement": "成就-夜市点石成金手",
"RequirementTpye": 31,
"IdAndType": [
701,
4000
140006,
1
],
"Time": false,
"Level": 4,
"Skin": "Tiltle_Pictrue_400"
"Level": 3,
"Skin": "Tiltle_Pictrue_304"
},
{
"Id": 500,
"Id": 401,
"Name": "大佬",
"Requirement": "累充2000元获得",
"RequirementTpye": 31,
"IdAndType": [
140008,
1
],
"Time": false,
"Level": 4,
"Skin": "Tiltle_Pictrue_401"
},
{
"Id": 402,
"Name": "龙的传人",
"Requirement": "成就-千姓共织桃源梦",
"RequirementTpye": 31,
"IdAndType": [
2000
140009,
1
],
"Time": true,
"Level": 5,
"Skin": "Tiltle_Pictrue_500"
"Time": false,
"Level": 4,
"Skin": "Tiltle_Pictrue_402"
}
]

80
src/api/config/ValleyEffectConfigCategory.json

@ -3341,6 +3341,86 @@
"IconFile": "Valley_Effect_359",
"Description": ""
},
{
"Id": 360,
"Name": "战争耐久损耗-11",
"EffectSource": 5,
"Enable": true,
"Gain": 1,
"Level": 11,
"Group": 274,
"EffectType": 21,
"CalType": 1,
"Parameter": -11,
"EffectParm": [],
"NeedShow": false,
"IconFile": "Valley_Effect_274",
"Description": ""
},
{
"Id": 361,
"Name": "战争耐久损耗-12",
"EffectSource": 5,
"Enable": true,
"Gain": 1,
"Level": 12,
"Group": 274,
"EffectType": 21,
"CalType": 1,
"Parameter": -12,
"EffectParm": [],
"NeedShow": false,
"IconFile": "Valley_Effect_274",
"Description": ""
},
{
"Id": 362,
"Name": "战争耐久损耗-13",
"EffectSource": 5,
"Enable": true,
"Gain": 1,
"Level": 13,
"Group": 274,
"EffectType": 21,
"CalType": 1,
"Parameter": -13,
"EffectParm": [],
"NeedShow": false,
"IconFile": "Valley_Effect_274",
"Description": ""
},
{
"Id": 363,
"Name": "战争耐久损耗-14",
"EffectSource": 5,
"Enable": true,
"Gain": 1,
"Level": 14,
"Group": 274,
"EffectType": 21,
"CalType": 1,
"Parameter": -14,
"EffectParm": [],
"NeedShow": false,
"IconFile": "Valley_Effect_274",
"Description": ""
},
{
"Id": 364,
"Name": "战争耐久损耗-15",
"EffectSource": 5,
"Enable": true,
"Gain": 1,
"Level": 15,
"Group": 274,
"EffectType": 21,
"CalType": 1,
"Parameter": -15,
"EffectParm": [],
"NeedShow": false,
"IconFile": "Valley_Effect_274",
"Description": ""
},
{
"Id": 500,
"Name": "离线研究",

2698
src/api/config/WarConfigCategory.json

File diff suppressed because it is too large Load Diff

11
src/api/config/WarriorConfigCategory.json

@ -50,6 +50,7 @@
"HeadIcon": "WarriorHead_qiaodn_1",
"PrefabName": "Warrior_Lead_M",
"Picture": "Warrior_Picture_1",
"Open": true,
"DefaultWeaponSkin": "weapon_dajian_0",
"Introduce": "出身在小渔村的寻常渔民家,从小就活泼好动,主意多。是不折不扣孩子王。曾经和青梅竹马的陶小青一起吃下不死树的果子,变成不会死亡的勇士。"
},
@ -106,6 +107,7 @@
"HeadIcon": "WarriorHead_yanggy_2",
"PrefabName": "Warrior_Lead_F",
"Picture": "Warrior_Picture_2",
"Open": false,
"DefaultWeaponSkin": "weapon_feibiao_0",
"Introduce": "出身于小渔村的寻常渔民家,与乔河是青梅竹马。很喜欢在溪边和乔河用石头打水漂嬉闹。一次外出和大家分散后进入了妖云密布的山谷,饥肠辘辘,孤立无援,在一棵树下捡到了果子并吃下想要恢复体力,意外成为了不会死亡的勇士。"
},
@ -160,6 +162,7 @@
"HeadIcon": "WarriorHead_liler_3",
"PrefabName": "Warrior_4",
"Picture": "Warrior_Picture_3",
"Open": false,
"DefaultWeaponSkin": "weapon_gongjian_0",
"Introduce": "出身猎户家,从小跟着父辈打猎为生。拥有出众的弓射技巧,少年时期就能击杀比她大好几倍的妖兽。在一次妖兽袭击中,和家人分散以后便四处流浪。"
},
@ -214,6 +217,7 @@
"HeadIcon": "WarriorHead_mengh_5",
"PrefabName": "Warrior_1",
"Picture": "Warrior_Picture_4",
"Open": true,
"DefaultWeaponSkin": "weapon_chuizi_0",
"Introduce": "原本是小镇上一家铁匠铺的学徒,有助人为乐的热心肠。妖兽乱世后,独自一人走上斩妖屠魔的道路。"
},
@ -268,6 +272,7 @@
"HeadIcon": "WarriorHead_hanf_6",
"PrefabName": "Warrior_3",
"Picture": "Warrior_Picture_5",
"Open": false,
"DefaultWeaponSkin": "weapon_gun_0",
"Introduce": "原本是个驯兽师,常年和食铁兽为伴。妖兽乱世后,食铁兽牺牲了。她凭借长期和各种野兽搏斗的技巧,独自一人走上屠妖的旅途。"
},
@ -322,6 +327,7 @@
"HeadIcon": "WarriorHead_murongw_7",
"PrefabName": "Warrior_2",
"Picture": "Warrior_Picture_6",
"Open": false,
"DefaultWeaponSkin": "weapon_shangdao_0",
"Introduce": "慕容家世代经营药铺,并行医。家乡被妖兽毁坏后,被迫四处流浪。精通各种草药知识,并拥有很精湛的医术。"
},
@ -376,6 +382,7 @@
"HeadIcon": "WarriorHead_luliu",
"PrefabName": "Warrior_5",
"Picture": "Warrior_Picture_7",
"Open": true,
"DefaultWeaponSkin": "weapon_chanzhang_0",
"Introduce": "身份不明的小沙弥,似乎和拥有不老不死能力的轩辕国有莫大的关系。妖兽乱世后,心地善良的他四处救助受难的人们,被称为“童菩萨”。"
},
@ -384,7 +391,7 @@
"FirstName": "啾",
"Name": "啾",
"ArmsLimit": 9,
"Gender": 2,
"Gender": 1,
"CombatPower": 2000,
"Age": 11,
"Labor": 2,
@ -430,6 +437,7 @@
"HeadIcon": "WarriorHead_Jiu",
"PrefabName": "Warrior_6",
"Picture": "Warrior_Picture_8",
"Open": true,
"DefaultWeaponSkin": "weapon_quantao_0",
"Introduce": "出生时因形貌怪异被遗弃,后被猴群养育长大。吃了一种有别于不死果的物品,也拥有不死的能力。在一次与妖兽搏斗中受伤,被陶先生所救。"
},
@ -484,6 +492,7 @@
"HeadIcon": "WarriorHead_xiaogui",
"PrefabName": "Warrior_9",
"Picture": "Warrior_Picture_9",
"Open": true,
"DefaultWeaponSkin": "weapon_bangchui_0",
"Introduce": ""
}

10
src/api/config/WorldParametersConfigCategory.json

@ -282,6 +282,7 @@
"MarketOpenTime": 1830,
"TeamSkillCD": 60,
"TeamSkillVal": 100000000,
"TeamSkillRange": 10,
"DrugSupply": 4,
"NewVilliagePos": {
"x": -46,
@ -358,7 +359,7 @@
"Sound_Dog"
],
"DogSoundInterval": 5,
"PigMaximmums": 5,
"PigMaximmums": 3,
"RefineInterval": 0.3,
"DmgReduceLimit": 50,
"DodgeLimit": 140,
@ -372,11 +373,12 @@
"CoinIncomeCap": 500000,
"TaohuashiIncomCap": 100,
"DaijinquanIncomCap": 10,
"BlueprintCap": 3,
"BlueprintPurchaseLimit": 3,
"BlueprintCap": 1,
"BlueprintPurchaseLimit": 1,
"NormalSweep": 4,
"VipSweep": 1,
"RenameMoney": 500,
"ConversionCost": 100
"ConversionCost": 100,
"DiscountItemNum": 1
}
]

48
src/api/game/index.ts

@ -131,14 +131,14 @@ export function gameSetclientgm(params: object) {
params: params,
});
}
export function gameListGm(params: object) {
return request({
url: '/api/v1/game/mange/listgm',
method: 'get',
params: params,
});
}
//
// export function gameListGm(params: object) {
// return request({
// url: '/api/v1/game/mange/listgm',
// method: 'get',
// params: params,
// });
// }
export function gameDeposit(params: object) {
return request({
@ -316,14 +316,6 @@ export function gameGMUpdateUnit(params: object) {
});
}
export function gameGMDelAccount(params: object) {
return request({
url: '/api/v1/game/mange/delAccount',
method: 'get',
params: params,
});
}
export function gameGMGetBazaarActivity(params: object) {
return request({
url: '/api/v1/game/bazaar/get',
@ -797,6 +789,14 @@ export function orderLog(params: object) {
});
}
export function orderLogPlatform(params: object) {
return request({
url: '/api/v1/game/order/logPlatform',
method: 'get',
params: params,
});
}
export function orderBehavior(params: object) {
return request({
url: '/api/v1/game/order/behavior',
@ -861,6 +861,14 @@ export function gameRechargeChangeStateDelete(params: object) {
});
}
export function gameGMDelAccount(params: object) {
return request({
url: '/api/v1/game/mange/delAccount',
method: 'get',
params: params,
});
}
export function gameDeleteAccount(params: object) {
return request({
url: '/api/v1/game/userDel',
@ -932,3 +940,11 @@ export function gmOrderList(params: object) {
params: params,
});
}
export function resetOrderSign(params: object) {
return request({
url: '/api/v1/game/order/resetSign',
method: 'get',
params: params,
});
}

6
src/utils/game.ts

@ -314,6 +314,12 @@ export const GameSetList = [
{ value: 'loginUrlChannelList', label: '登录类别检索' },
];
export const GameSetOrder = [
{ value: 'enableHotfix', label: '渠道+版本号 > 渠道' },
{ value: 'enableAccountLogin', label: '渠道+版本号 > 渠道' },
{ value: 'loginUrlChannelList', label: '渠道+版本号 > 渠道 > 版本号' },
];
export async function channelList(): Promise<object[]> {
const data = await gameGetAllChannel({});
return data.data.List ?? [];

8
src/utils/utils.ts

@ -90,3 +90,11 @@ export function gSwitchServer(serverSwitch, servers) {
return servers;
}
}
export function guid() {
return this.s4() + this.s4() + this.s4() + this.s4() + this.s4() + this.s4() + this.s4() + this.s4();
}
export function s4() {
return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
}

2
src/views/gameBug/clientBug/index.vue

@ -98,7 +98,7 @@ interface TableDataState {
}
export default defineComponent({
name: 'apiV1ClientBugList',
name: 'apiV1GameClientBug',
setup() {
const state = reactive<TableDataState>({
contentVisible: false,

2
src/views/gameCCD/hotfix/index.vue

@ -199,7 +199,7 @@ interface TableDataState {
}
export default defineComponent({
name: 'apiV1GameHotfix',
name: 'apiV1GameCcdAdd',
setup() {
const state = reactive<TableDataState>({
channel: [],

2
src/views/gameCCD/version/index.vue

@ -83,7 +83,7 @@ interface TableDataState{
}
export default defineComponent({
name: 'apiV1GameCCDVersion',
name: 'apiV1GameCcdList',
components: {EditConfig},
setup(){
const editDicRef = ref();

124
src/views/gameLoginUrl/list/component/editRecommend.vue

@ -0,0 +1,124 @@
<template>
<div>
<el-dialog :title="isNew ? '新增服务器推荐' : '修改服务器推荐'" v-model="isShowDialog" width="769px">
<el-form label-width="90px" label-position="right">
<el-form-item label="是否推荐" prop="recommend">
<el-select v-model="queryParams.recommend" class="m-2" placeholder="选择推荐">
<el-option label="推荐" :value="1" />
<el-option label="不推荐" :value="0" />
</el-select>
</el-form-item>
<el-form-item label="服务器" prop="servers">
<el-select v-model="serverSwitch" class="m-2" @change="changeServer" placeholder="选择服务器" size="large" style="width: 80px">
<el-option v-for="item in serverCategorize" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
<el-select v-model="queryParams.servers" multiple collapse-tags clearable class="m-2" placeholder="选择服务器" size="large">
<el-option v-for="item in switchServer()" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="onCancel" size="default"> </el-button>
<el-button size="default" type="primary" class="ml10" @click="addItem">
<el-icon>
<ele-EditPen />
</el-icon>
<div v-if="isNew">新增</div>
<div v-else>修改</div>
</el-button>
</span>
</template>
</el-dialog>
</div>
</template>
<script lang="ts">
import { reactive, toRefs, defineComponent } from 'vue';
import { ElLoading } from 'element-plus';
import { gameAddLoginUrl } from '/@/api/game';
import { ServerCategorize, serverList } from '/@/utils/game';
import { gSwitchServer } from '/@/utils/utils';
interface TableDataState {
isShowDialog: boolean;
isNew: boolean;
queryParams: object;
servers: object[];
serverSwitch: number;
serverCategorize: object[];
}
export default defineComponent({
name: 'systemEditRecommendData',
setup(prop, { emit }) {
const state = reactive<TableDataState>({
isShowDialog: false,
isNew: false,
queryParams: { recommend: 0, servers: [] },
servers: [],
serverCategorize: ServerCategorize,
serverSwitch: 0,
});
const switchServer = () => {
return gSwitchServer(state.serverSwitch, state.servers);
};
//
const openDialog = (row: any | null) => {
state.isShowDialog = true;
console.log('openDialog: >>>>>>>>>>>', row);
serverList().then((res) => {
state.servers = res;
});
};
//
const closeDialog = () => {
state.isShowDialog = false;
};
//
const onCancel = () => {
closeDialog();
};
//
const addItem = () => {
const loading = ElLoading.service({
lock: true,
text: 'Loading',
background: 'rgba(0, 0, 0, 0.7)',
});
for (let i in state.queryParams.servers) {
updateItem(state.queryParams.servers[i]);
}
loading.close();
closeDialog();
};
const updateItem = (server: number) => {
gameAddLoginUrl({ recommend: state.queryParams.recommend, id: server })
.then((res) => {
console.log(res);
emit('countList');
})
.finally(function () {});
};
const changeServer = () => {
let servers = gSwitchServer(state.serverSwitch, state.servers);
state.queryParams.servers = [];
for (let i in servers) {
state.queryParams.servers.push(servers[i].id);
}
};
return {
changeServer,
switchServer,
openDialog,
closeDialog,
onCancel,
addItem,
...toRefs(state),
};
},
});
</script>

125
src/views/gameLoginUrl/list/component/editState.vue

@ -0,0 +1,125 @@
<template>
<div>
<el-dialog :title="isNew ? '新增服务器状态' : '修改服务器状态'" v-model="isShowDialog" width="769px">
<el-form label-width="90px" label-position="right">
<el-form-item label="服务器状态" prop="state">
<el-select v-model="queryParams.state" class="m-2" placeholder="选择服务器状态">
<el-option label="正常" :value="1" />
<el-option label="维护" :value="2" />
<el-option label="白名单" :value="3" />
</el-select>
</el-form-item>
<el-form-item label="服务器" prop="servers">
<el-select v-model="serverSwitch" class="m-2" @change="changeServer" placeholder="选择服务器" size="large" style="width: 80px">
<el-option v-for="item in serverCategorize" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
<el-select v-model="queryParams.servers" multiple collapse-tags clearable class="m-2" placeholder="选择服务器" size="large">
<el-option v-for="item in switchServer()" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="onCancel" size="default"> </el-button>
<el-button size="default" type="primary" class="ml10" @click="addItem">
<el-icon>
<ele-EditPen />
</el-icon>
<div v-if="isNew">新增</div>
<div v-else>修改</div>
</el-button>
</span>
</template>
</el-dialog>
</div>
</template>
<script lang="ts">
import { reactive, toRefs, defineComponent } from 'vue';
import { ElLoading } from 'element-plus';
import { gameAddLoginUrl } from '/@/api/game';
import { ServerCategorize, serverList } from '/@/utils/game';
import { gSwitchServer } from '/@/utils/utils';
interface TableDataState {
isShowDialog: boolean;
isNew: boolean;
queryParams: object;
servers: object[];
serverSwitch: number;
serverCategorize: object[];
}
export default defineComponent({
name: 'systemEditRecommendData',
setup(prop, { emit }) {
const state = reactive<TableDataState>({
isShowDialog: false,
isNew: false,
queryParams: { state: 1, servers: [] },
servers: [],
serverCategorize: ServerCategorize,
serverSwitch: 0,
});
const switchServer = () => {
return gSwitchServer(state.serverSwitch, state.servers);
};
//
const openDialog = () => {
state.isShowDialog = true;
serverList().then((res) => {
state.servers = res;
console.log('openDialog: >>>>>>>>>>>', res);
});
};
//
const closeDialog = () => {
state.isShowDialog = false;
};
//
const onCancel = () => {
closeDialog();
};
//
const addItem = () => {
const loading = ElLoading.service({
lock: true,
text: 'Loading',
background: 'rgba(0, 0, 0, 0.7)',
});
for (let i in state.queryParams.servers) {
updateItem(state.queryParams.servers[i]);
}
loading.close();
closeDialog();
};
const updateItem = (server: number) => {
gameAddLoginUrl({ state: state.queryParams.state, id: server })
.then((res) => {
console.log(res);
emit('countList');
})
.finally(function () {});
};
const changeServer = () => {
let servers = gSwitchServer(state.serverSwitch, state.servers);
state.queryParams.servers = [];
for (let i in servers) {
state.queryParams.servers.push(servers[i].id);
}
};
return {
changeServer,
switchServer,
openDialog,
closeDialog,
onCancel,
addItem,
...toRefs(state),
};
},
});
</script>

352
src/views/gameLoginUrl/list/index.vue

@ -1,173 +1,205 @@
<template>
<div>
<!-- <el-card shadow="hover" header="">-->
<!-- <div class="mb15">-->
<el-form class="flex-warp" label-position="right">
<el-form-item>
<!-- <el-button type="success" class="ml10" @click="onOpenAddDic">-->
<!-- <el-icon>-->
<!-- <ele-FolderAdd/>-->
<!-- </el-icon>-->
<!-- 新增参数-->
<!-- </el-button>-->
<el-button type="success" class="ml10" @click="reloadServer">
<el-icon>
<ele-FolderAdd/>
</el-icon>
重载配置
</el-button>
</el-form-item>
<el-form-item>
<el-button type="success" class="ml10" @click="countList">
刷新列表
</el-button>
</el-form-item>
<el-table :data="tableData.data" style="width: 100%" stripe border>
<el-table-column prop="id" label="ID" width="60">
<template #default="scope">
{{scope.row.id}}
</template>
</el-table-column>
<el-table-column prop="remark" label="服务器名称" width="180"/>
<el-table-column prop="name" label="服务器名称" width="180"/>
<el-table-column prop="host" label="服务器地址" width="240"/>
<el-table-column prop="port" label="服务器端口" width="80"/>
<el-table-column prop="state" label="服务器状态" width="100">
<template #default="scope">
<div v-if="scope.row.state===1">正常</div>
<div v-else-if="scope.row.state===2">维护</div>
<div v-else-if="scope.row.state===3">白名单</div>
</template>
</el-table-column>
<el-table-column prop="recommend" label="推荐" width="100">
<template #default="scope">
<div v-if="scope.row.recommend===1">推荐</div>
<div v-else-if="scope.row.recommend===0">不推荐</div>
</template>
</el-table-column>
<el-table-column prop="difficulty" label="难度" width="100">
<template #default="scope">
<div v-if="scope.row.difficulty===1">普通</div>
<div v-else-if="scope.row.difficulty===2">困难</div>
</template>
</el-table-column>
<el-table-column>
<template #default="scope">
<el-button size="small" type="success" @click="onOpenEditDic(scope.row)">修改</el-button>
<!-- <el-button size="small" type="danger" @click="delLoginUrl(scope.row.id)">删除</el-button>-->
</template>
</el-table-column>
</el-table>
<el-row justify="space-evenly">
<el-pagination :hide-on-single-page="true" v-model:page-size="tableData.params.pageSize" :pager-count="5"
v-model:current-page="tableData.params.pageNum" layout="total, prev, pager, next" :total="tableData.total"
@current-change="handleCurrentChange"/>
</el-row>
</el-form>
<EditConfig ref="editDicRef" @countList="countList"/>
</div>
<div>
<el-form class="flex-warp" label-position="right">
<el-form-item>
<el-button type="success" class="ml10" @click="reloadServer">
<el-icon>
<ele-FolderAdd />
</el-icon>
重载配置
</el-button>
</el-form-item>
<el-form-item>
<el-button type="success" class="ml10" @click="countList"> 刷新列表</el-button>
</el-form-item>
<el-form-item>
<el-button type="success" class="ml10" @click="onOpenRecommendDic">批量修改推荐</el-button>
</el-form-item>
<el-form-item>
<el-button type="success" class="ml10" @click="onOpenStateDic">批量修改服务器状态</el-button>
</el-form-item>
<el-table :data="tableData.data" style="width: 100%" stripe border>
<el-table-column prop="id" label="ID" width="65">
<template #default="scope">
{{ scope.row.id }}
</template>
</el-table-column>
<el-table-column prop="remark" label="服务器名称" width="180" />
<el-table-column prop="name" label="服务器名称" width="180" />
<el-table-column prop="host" label="服务器地址" width="240" />
<el-table-column prop="port" label="服务器端口" width="80" />
<el-table-column prop="state" label="服务器状态" width="100">
<template #default="scope">
<div v-if="scope.row.state === 1">正常</div>
<div v-else-if="scope.row.state === 2">维护</div>
<div v-else-if="scope.row.state === 3">白名单</div>
</template>
</el-table-column>
<el-table-column prop="recommend" label="推荐" width="100">
<template #default="scope">
<div v-if="scope.row.recommend === 1">推荐</div>
<div v-else-if="scope.row.recommend === 0">不推荐</div>
</template>
</el-table-column>
<el-table-column prop="difficulty" label="难度" width="100">
<template #default="scope">
<div v-if="scope.row.difficulty === 1">普通</div>
<div v-else-if="scope.row.difficulty === 2">困难</div>
</template>
</el-table-column>
<el-table-column>
<template #default="scope">
<el-button size="small" type="success" @click="onOpenEditDic(scope.row)">修改</el-button>
</template>
</el-table-column>
</el-table>
<el-row justify="space-evenly">
<el-pagination
:hide-on-single-page="true"
v-model:page-size="tableData.params.pageSize"
:pager-count="5"
v-model:current-page="tableData.params.pageNum"
layout="total, prev, pager, next"
:total="tableData.total"
@current-change="handleCurrentChange"
/>
</el-row>
</el-form>
<EditConfig ref="editDicRef" @countList="countList" />
<EditRecommend ref="editRecommendRef" @countList="countList" />
<EditState ref="editStateRef" @countList="countList" />
</div>
</template>
<script lang="ts">
import {toRefs, reactive, onMounted, defineComponent, ref} from 'vue';
import EditConfig from '/@/views/gameLoginUrl/list/component/editConfig.vue';
import {gameGetLoginUrl, gameDelLoginUrl, gameReloadServer} from "/@/api/game";
import {PLATFORM} from "/@/api/common/consts";
import { toRefs, reactive, onMounted, defineComponent, ref } from 'vue';
import EditConfig from '/@/views/gameLoginUrl/list/component/editConfig.vue';
import EditRecommend from '/@/views/gameLoginUrl/list/component/editRecommend.vue';
import EditState from '/@/views/gameLoginUrl/list/component/editState.vue';
import { gameGetLoginUrl, gameDelLoginUrl, gameReloadServer } from '/@/api/game';
import { PLATFORM } from '/@/api/common/consts';
import { serverList } from '/@/utils/game';
//
interface TableData{
id: number;
ip: string;
}
//
interface TableData {
id: number;
remark: string;
name: string;
host: string;
port: number;
state: number;
recommend: number;
difficulty: number;
}
interface TableDataState{
tableData: {
data: Array<TableData>;
total: number;
params: {
pageNum: number;
pageSize: number;
};
};
platform: Array<{label: string, value: string}>
}
interface TableDataState {
tableData: {
data: Array<TableData>;
total: number;
params: {
pageNum: number;
pageSize: number;
};
};
platform: Array<{ label: string; value: string }>;
}
export default defineComponent({
name: 'apiV1GameLoginUrlList',
components: {EditConfig},
setup(){
const editDicRef = ref();
const state = reactive<TableDataState>({
platform: PLATFORM,
tableData: {
data: [],
total: 0,
params: {
pageNum: 1,
pageSize: 10,
},
},
});
//
const onOpenAddDic = () => {
editDicRef.value.openDialog();
};
//
const onOpenEditDic = (row: TableData) => {
editDicRef.value.openDialog(row);
};
const countList = () => {
gameGetLoginUrl(state.tableData.params).then(res => {
console.log("countList:", res);
state.tableData.total = res.data.total || 1;
state.tableData.data = res.data.loginUrlList ?? [];
console.log("countList:", state.tableData);
})
};
export default defineComponent({
name: 'apiV1ServerList',
components: { EditConfig, EditRecommend , EditState },
setup() {
const editDicRef = ref();
const editRecommendRef = ref();
const editStateRef = ref();
const state = reactive<TableDataState>({
platform: PLATFORM,
tableData: {
data: [],
total: 0,
params: {
pageNum: 1,
pageSize: 10,
},
},
});
//
const onOpenAddDic = () => {
editDicRef.value.openDialog();
};
//
const onOpenEditDic = (row: TableData) => {
editDicRef.value.openDialog(row);
};
//
const onOpenRecommendDic = () => {
editRecommendRef.value.openDialog();
};
//
const onOpenStateDic = () => {
editStateRef.value.openDialog();
};
const countList = () => {
gameGetLoginUrl(state.tableData.params).then((res) => {
console.log('countList:', res);
state.tableData.total = res.data.total || 1;
state.tableData.data = res.data.loginUrlList ?? [];
console.log('countList:', state.tableData);
});
};
const delLoginUrl = (id: number) => {
gameDelLoginUrl({id: id}).then(res => {
countList()
})
};
const delLoginUrl = (id: number) => {
gameDelLoginUrl({ id: id }).then((res) => {
countList();
});
};
const reloadServer = () => {
gameReloadServer({}).then(res => {
})
};
const handleCurrentChange = (val: number) => {
state.tableData.params.pageNum = val;
countList();
};
onMounted(() => {
countList();
});
return {
editDicRef,
handleCurrentChange,
countList,
onOpenAddDic,
onOpenEditDic,
delLoginUrl,
reloadServer,
...toRefs(state),
};
},
});
const reloadServer = () => {
gameReloadServer({}).then((res) => {});
};
const handleCurrentChange = (val: number) => {
state.tableData.params.pageNum = val;
countList();
};
onMounted(() => {
countList();
serverList().then((res) => {
state.servers = res;
});
});
// const handleSelectionChange = (val: TableData[]) => {
// console.log("handleSelectionChange: ", val);
// // multipleSelection.value = val;
// };
return {
editDicRef,
editRecommendRef,
editStateRef,
// handleSelectionChange,
handleCurrentChange,
countList,
onOpenAddDic,
onOpenEditDic,
onOpenRecommendDic,
onOpenStateDic,
delLoginUrl,
reloadServer,
...toRefs(state),
};
},
});
</script>
<style scoped lang="scss">
.el-form-item {
display: -moz-flex;
vertical-align: middle;
margin-right: 32px;
}
.el-form-item {
display: -moz-flex;
vertical-align: middle;
margin-right: 32px;
}
::v-deep .el-table--striped .el-table__body tr.el-table__row--striped td {
background: #ffffd5;
}
::v-deep .el-table--striped .el-table__body tr.el-table__row--striped td {
background: #ffffd5;
}
::v-deep .el-table .el-table--enable-row-hover .el-table__body tr:hover > td {
background: inherit;
}
</style>
::v-deep .el-table .el-table--enable-row-hover .el-table__body tr:hover > td {
background: inherit;
}
</style>

2
src/views/gameLoginUrl/routerList/index.vue

@ -85,7 +85,7 @@ interface TableDataState {
}
export default defineComponent({
name: 'apiV1GameRouterList',
name: 'apiV1ServerRouter',
components: { EditConfig },
setup() {
const editDicRef = ref();

2
src/views/gameLoginUrl/serverGeneralList/index.vue

@ -63,7 +63,7 @@ interface TableDataState {
}
export default defineComponent({
name: 'apiV1GameServerGeneral',
name: 'apiV1ServerConfigGeneral',
components: {EditConfig},
setup() {
const editDicRef = ref();

2
src/views/gameLoginUrl/serverList/index.vue

@ -75,7 +75,7 @@
}
export default defineComponent({
name: 'apiV1GameServerConfigList',
name: 'apiV1ServerConfig',
components: {EditConfig},
setup(){
const editDicRef = ref();

2
src/views/gameLoginUrl/serverVersion/index.vue

@ -62,7 +62,7 @@ interface TableDataState {
}
export default defineComponent({
name: 'apiV1GameServerVersion',
name: 'apiV1ServerGetVersion',
setup() {
const state = reactive<TableDataState>({
serverSwitch: 0,

28
src/views/gameManage/copyUnit/index.vue

@ -149,7 +149,7 @@
</el-card>
<el-card shadow="hover">
<template #header>
修改登录密码
修改游戏登录密码
<el-button v-show="item.pwdShow == false" @click="item.pwdShow = true" class="button-caret" type="text">
<el-icon>
<ele-CaretBottom />
@ -189,7 +189,15 @@
<script lang="ts">
import { toRefs, reactive, onMounted, defineComponent, warn } from 'vue';
import { ElMessage, ElMessageBox } from 'element-plus';
import { gameGMClearResource, gameGMCopyUnit, gameGMUpdateUnit, gameGMDelAccount, gameResetPwd, giftExchangeExists } from '/@/api/game';
import {
gameGMClearResource,
gameGMCopyUnit,
gameGMUpdateUnit,
gameGMDelAccount,
gameResetPwd,
giftExchangeExists,
gameDeleteAccount
} from '/@/api/game';
import { gSwitchServer } from '/@/utils/utils';
import { AllServerList, ServerCategorize, serverList } from '/@/utils/game';
@ -207,6 +215,7 @@ interface TableData {
interface DelData {
SrcName: string;
serverId: number;
password: string;
}
interface TableDataState {
@ -254,6 +263,7 @@ export default defineComponent({
del: {
SrcName: '',
serverId: '',
password: '',
},
password: {
account: '',
@ -337,6 +347,7 @@ export default defineComponent({
filename: state.tableData.data.filename,
storeFilename: state.tableData.data.storeFilename,
DestName: state.tableData.data.DestName,
DestServer: state.tableData.data.DestServer,
})
.then((res) => {
ElMessage.success('修改成功');
@ -345,12 +356,17 @@ export default defineComponent({
.finally(() => {});
};
const delAccount = () => {
console.log('state.tableData.data: ', state.tableData.del);
ElMessageBox.confirm(`此操作将删除账号:“${state.tableData.del.SrcName}”,是否继续?`, '提示', {
ElMessageBox.prompt(`此操作将删除账号:“${state.tableData.del.SrcName}”,是否继续? 请输入密码`, '提示', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
inputErrorMessage: 'Invalid password',
// type: 'warning',
}).then(({value}) => {
if(value == 0){
return
}
state.tableData.del.password = value
console.log('state.tableData.data: ', state.tableData.del);
gameGMDelAccount(state.tableData.del)
.then(() => {
ElMessage.success('删除成功');

50
src/views/gameManage/gm/index.vue

@ -2,7 +2,7 @@
<div class="game-order-container">
<el-card shadow="hover" header="设置账号黑名单">
<div class="game-order-search mb15">
<el-form label-position="right" label-width="300px" :model="formLabelAlign" style="max-width: 600px">
<el-form label-position="right" label-width="300px" style="max-width: 600px">
<el-form-item label="查找方式">
<el-select v-model="tableData.data.type" class="m-2" placeholder="选择渠道" size="large" style="width: 300px">
<el-option label="uid查询" :value="1" />
@ -23,10 +23,10 @@
</el-select>
</el-form-item>
<el-form-item label="账号" v-if="tableData.data.type == 2">
<el-input v-model="tableData.data.account" placeholder="" class="w-50 m-2" size="large" clearable />
<el-input v-model="tableData.data.account" placeholder="填写账号" class="w-50 m-2" size="large" clearable />
</el-form-item>
<el-form-item label="uid" v-if="tableData.data.type == 1">
<el-input v-model="tableData.data.uid" placeholder="" class="w-50 m-2" size="large" clearable />
<el-input v-model="tableData.data.uid" placeholder="填写uid" class="w-50 m-2" size="large" clearable />
</el-form-item>
<el-form-item label="黑名单开关">
<el-select v-model="tableData.data.gmState" class="m-2" placeholder="选择渠道" size="large" style="width: 300px">
@ -35,14 +35,14 @@
</el-form-item>
<el-form-item>
<el-button size="large" type="primary" class="ml10" @click="gmChange"> 修改</el-button>
<!-- <el-button size="large" type="primary" class="ml10" @click="gmSearch"> 查询</el-button>-->
</el-form-item>
<!-- <el-button size="large" type="primary" class="ml10" @click="gmSearch"> 查询</el-button>-->
</el-form-item>
</el-form>
</div>
</el-card>
<el-card shadow="hover" header="开游戏里的GM">
<div class="game-order-search mb15">
<el-form label-position="right" label-width="300px" :model="formLabelAlign" style="max-width: 600px">
<el-form label-position="right" label-width="300px" style="max-width: 600px">
<el-form-item label="区服">
<el-select v-model="serverSwitch" class="m-2" placeholder="选择服务器" size="large" style="width: 80px">
<el-option v-for="item in serverCategorize" :key="item.value" :label="item.label" :value="item.value" />
@ -71,10 +71,11 @@
<script lang="ts">
import { toRefs, reactive, onMounted, defineComponent } from 'vue';
import { gameChangeGm, gameGmSearch, gameListGm, gameSetclientgm } from '/@/api/game';
import { gameChangeGm, gameGmSearch, gameSetclientgm } from '/@/api/game';
import { channelList, ServerCategorize, serverList } from '/@/utils/game';
import { gSwitchServer } from '/@/utils/utils';
import { ElMessage } from 'element-plus/es';
import { AccountType } from '/@/api/common/consts';
interface TableData {
type: number;
@ -101,6 +102,7 @@ interface TableDataState {
};
data: TableData;
list: object[];
blackList: object[];
};
servers: object;
channels: object;
@ -117,9 +119,9 @@ export default defineComponent({
queryParams: {
pageNum: 1,
pageSize: 10,
total: 0,
serverId: '',
gmState: 1,
total: 0,
},
tableData: {
querys: {
@ -136,23 +138,11 @@ export default defineComponent({
gmState: 0,
},
list: [],
blackList: [],
},
channels: [],
servers: [],
gmStates: [
{
value: 0,
label: '正常',
},
{
value: 1,
label: '黑名单',
},
{
value: 2,
label: 'GM',
},
],
gmStates: AccountType,
serverCategorize: ServerCategorize,
});
const gmSearch = () => {
@ -178,7 +168,9 @@ export default defineComponent({
gmState: state.tableData.data.gmState,
};
if (state.tableData.data.type == 2) {
query['account'] = state.tableData.data.channel + state.tableData.data.account;
if (state.tableData.data.channel && !state.tableData.data.account.includes(state.tableData.data.channel)) {
query['account'] = state.tableData.data.channel + state.tableData.data.account;
}
query['serverId'] = state.tableData.data.serverId;
}
gameChangeGm(query)
@ -194,13 +186,9 @@ export default defineComponent({
})
.finally(() => {});
};
const gmList = () => {
gameListGm(state.queryParams)
.then((res) => {
state.tableData.list = res.data.uids;
ElMessage.success('获取成功');
})
.finally(() => {});
const blacklist = (val: number) => {
state.tableData.blackQuerys.pageNum = val;
};
//
onMounted(() => {
@ -220,7 +208,7 @@ export default defineComponent({
gmSearch,
gmChange,
setclientgm,
gmList,
blacklist,
...toRefs(state),
};
},

2
src/views/gameOrder/deposit/index.vue

@ -52,7 +52,7 @@
<el-form-item label="uid">
<el-input v-model="tableData.paramDeposit.account" placeholder="请输入玩家uid" class="w-50 m-2" clearable />
</el-form-item>
<el-form-item label="充值金额">
<el-form-item label="充值配置">
<el-select v-model="tableData.paramDeposit.depositId" class="m-2" placeholder="" style="width: 300px">
<el-option v-for="item in depositIds" v-show="item.Currency == 1" :key="item.Id" :label="item.Name" :value="item.Id" />
</el-select>

209
src/views/gameOrder/getTransactionId/index.vue

@ -0,0 +1,209 @@
<template>
<div class="game-order-container">
<el-card shadow="hover">
<div class="game-order-search mb15">
<el-form>
<el-form-item label="订单Id" prop="channel">
<el-input size="default" v-model="tableData.param.order" placeholder="请输入订单Id" class="w-50 m-2" clearable />
</el-form-item>
<el-form-item>
<el-button size="default" type="primary" class="ml10" @click="orderList">
<el-icon>
<ele-Search />
</el-icon>
查询
</el-button>
</el-form-item>
</el-form>
</div>
<el-table :data="tableData.data" style="width: 100%" border>
<el-table-column prop="tradeNo" label="订单id" show-overflow-tooltip></el-table-column>
<el-table-column prop="unitId" label="id" show-overflow-tooltip></el-table-column>
<el-table-column prop="amount" label="金额(元)" show-overflow-tooltip width="120"></el-table-column>
<el-table-column prop="createTime" label="充值时间" show-overflow-tooltip width="180"></el-table-column>
<el-table-column prop="remark" label="状态" show-overflow-tooltip width="120">
<template #default="scope">
<div v-if="scope.row.remark == ''" style="color: #e60000">充值失败</div>
<div v-else-if="scope.row.remark == 'SUCCESS'">充值成功</div>
<div v-else>{{ scope.row.remark }}</div>
</template>
</el-table-column>
<el-table-column prop="user" label="操作人员" show-overflow-tooltip width="120"></el-table-column>
<el-table-column prop="channel" label="渠道" show-overflow-tooltip width="120">
<template #default="scope">
<span>{{ channels.find((r) => r.value == scope.row.channel)?.label }}</span>
</template>
</el-table-column>
<el-table-column prop="server" label="区服" show-overflow-tooltip width="120">
<template #default="scope">
<span>{{ servers.find((r) => r.id == scope.row.server).name }}</span>
</template>
</el-table-column>
</el-table>
<el-row justify="space-evenly">
<el-pagination
:hide-on-single-page="true"
v-model:page-size="tableData.param.pageSize"
v-model:current-page="tableData.param.pageNum"
:pager-count="5"
@current-change="orderList"
layout="total, prev, pager, next"
:total="tableData.total"
/>
</el-row>
</el-card>
</div>
</template>
<script lang="ts">
import { toRefs, reactive, onMounted, defineComponent } from 'vue';
import { gameRechargeChangeStateDelete, gmOrderList } from '/@/api/game';
import { allChannelList, ServerCategorize, serverList, ServerList } from '/@/utils/game';
import RechargeConfigCategory from '/@/api/config/RechargeConfigCategory.json';
import { ElMessage, ElMessageBox } from 'element-plus/es';
import { gSwitchServer, guid } from '/@/utils/utils';
import jwt from 'jsonwebtoken';
//
interface TableData {
id: string;
CreateTime: string;
CfgId: number;
Rmb: number;
SilverPiece: number;
Identity: string;
timeStr: string;
uid: string;
RealName: string;
StringId: string;
}
interface TableDataState {
serverSwitch: number;
serverCategorize: object;
tableData: {
data: Array<TableData>;
total: number;
param: {
order: string;
};
};
servers: object;
channels: object;
rechargeInfo: object[];
}
export default defineComponent({
name: 'apiV1GameOrderTransactionId',
setup() {
// const {proxy} = getCurrentInstance() as any;
const state = reactive<TableDataState>({
serverSwitch: 0,
serverCategorize: ServerCategorize,
tableData: {
data: [],
total: 0,
param: {
order: '',
},
},
servers: ServerList,
channels: [],
rechargeInfo: RechargeConfigCategory,
});
const orderList = () => {
// gmOrderList(state.tableData.param).then((res) => {
// console.log(res);
// state.tableData.total = Number(res.data.total) || 0;
// state.tableData.data = res.data.list || [];
// });
let time = Math.floor(Date.now() / 1000);
let payload = {
iss: 'b8b82821-922e-4b43-a3cf-d293020a70d1',
iat: time - 10,
exp: time + 3590,
aud: 'appstoreconnect-v1',
nonce: guid(),
// "bid": "com.Avatar.PeachColony"
bid: 'com.XiamenAvatar.PeachValley',
};
let key_data =
`-----BEGIN PRIVATE KEY-----
MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQg2XqPEHgWj2cUnO2GoPfIeEcAc0tJsTehvNNNBTGf4KigCgYIKoZIzj0DAQehRANCAAT6IdBMPYuNAQYuZsYi3EkflniotI/KJa6ELt1ednywlOpuwgNOn2WXONmDzzVVMJqQjD/6FSJ4jH7fRtP+Eci6
-----END PRIVATE KEY-----`;
let signture = jwt.sign(payload, key_data, {algorithm: "ES256",keyid: "J4RAWQBLHF"});
getTransactionId(signture);
};
const getTransactionId = function (data) {
console.log("header: %j", data);
let config = {
method: "GET",
// url: "https://api.storekit.itunes.apple.com/inApps/v1/history/" + order7,
url: "https://api.storekit.itunes.apple.com/inApps/v1/lookup/" + state.tableData.param.order,
headers: {Authorization: "Bearer " + data,"Content-Type": "application/json"}
};
console.log("config: %j", config);
axios.request(config).then(function (response) {
console.log("res", response.data.signedTransactions[0]);
let decode = jwt.decode(response.data.signedTransactions[0]);
console.log("decode", decode);
}).catch(function (error) {
console.log("error", error);
// logger.error(" getTransactionId bug >> catch err: %j ", throw error);
});
};
//
onMounted(() => {
serverList().then((res) => {
state.servers = res;
});
allChannelList().then((res) => {
state.channels = res;
});
});
const switchServer = () => {
return gSwitchServer(state.serverSwitch, state.servers);
};
const changeState = (order: string, state: number, remark: string) => {
if (state != 3 && state != 2) {
return;
}
if (state == 3) {
let mess = '是否确认订单失效?,点击确认后本条订单失效。';
ElMessageBox.confirm(mess).then(() => {
gameRechargeChangeStateDelete({ order: order, state: state }).then((res) => {
if (res.data.data == 1) {
ElMessage.success('发送成功');
}
orderList();
});
});
} else if (state == 2) {
ElMessageBox.prompt('请输入修改成功理由', '提示', {
confirmButtonText: '确认',
cancelButtonText: '取消',
inputErrorMessage: 'Invalid http request',
}).then(({ value }) => {
gameRechargeChangeStateDelete({ order: order, state: state, remark: remark + ', ' + value }).then((res) => {
if (res.data.data == 1) {
ElMessage.success('发送成功');
}
orderList();
});
});
}
};
return {
switchServer,
orderList,
changeState,
...toRefs(state),
};
},
});
</script>

17
src/views/gameOrder/gmOrderList/index.vue

@ -34,9 +34,11 @@
<el-form-item label="订单id">
<el-input size="default" v-model="tableData.param.tradeNo" placeholder="请输入渠道订单id" class="w-50 m-2" clearable />
</el-form-item>
<el-form-item label="操作人员">
<el-input size="default" v-model="tableData.param.config" placeholder="请输入操作人员" class="w-50 m-2" clearable />
</el-form-item>
<el-form-item label="充值配置">
<el-select v-model="tableData.param.config" class="m-2" placeholder="" style="width: 300px">
<el-option v-for="item in rechargeInfo" v-show="item.Currency == 1" :key="item.Id" :label="item.Name" :value="item.Id" />
</el-select>
</el-form-item>
<el-form-item label="操作人员">
<el-input size="default" v-model="tableData.param.user" placeholder="请输入操作人员" class="w-50 m-2" clearable />
</el-form-item>
@ -53,8 +55,8 @@
<el-table :data="tableData.data" style="width: 100%" border>
<el-table-column prop="tradeNo" label="订单id" show-overflow-tooltip></el-table-column>
<el-table-column prop="unitId" label="id" show-overflow-tooltip></el-table-column>
<el-table-column prop="amount" label="金额(元)" show-overflow-tooltip width="120"></el-table-column>
<el-table-column prop="createTime" label="充值时间" show-overflow-tooltip width="180"></el-table-column>
<el-table-column prop="amount" label="金额(元)" show-overflow-tooltip width="120"></el-table-column>
<el-table-column prop="createTime" label="充值时间" show-overflow-tooltip width="180"></el-table-column>
<el-table-column prop="remark" label="状态" show-overflow-tooltip width="120">
<template #default="scope">
<div v-if="scope.row.remark == ''" style="color: #e60000">充值失败</div>
@ -62,6 +64,7 @@
<div v-else>{{ scope.row.remark }}</div>
</template>
</el-table-column>
<el-table-column prop="user" label="操作人员" show-overflow-tooltip width="120"></el-table-column>
<el-table-column prop="channel" label="渠道" show-overflow-tooltip width="120">
<template #default="scope">
<span>{{ channels.find((r) => r.value == scope.row.channel)?.label }}</span>
@ -132,10 +135,11 @@ interface TableDataState {
servers: object;
channels: object;
rechargeInfo: object[];
// depositIds: object[];
}
export default defineComponent({
name: 'apiV1GameOrderOrderList',
name: 'apiV1GameOrderGmOrderList',
setup() {
// const {proxy} = getCurrentInstance() as any;
@ -161,6 +165,7 @@ export default defineComponent({
servers: ServerList,
channels: [],
rechargeInfo: RechargeConfigCategory,
// depositIds: RechargeConfigCategory,
});
const orderList = () => {

2
src/views/gameOrder/orderList/index.vue

@ -171,7 +171,7 @@ interface TableDataState {
}
export default defineComponent({
name: 'apiV1GameOrderOrderList',
name: 'apiV1GameOrderList',
setup() {
// const {proxy} = getCurrentInstance() as any;

591
src/views/gameOrder/orderLog/index.vue

@ -1,304 +1,331 @@
<template>
<div class="game-statistics-container">
<el-card shadow="hover">
<div class="system-user-search mb15">
<el-form :inline="true">
<el-form-item label="渠道" prop="channel">
<el-select v-model="tableData.param.channel" class="m-2" placeholder="选择渠道">
<el-option v-for="item in channels" :key="item.value" :label="item.label" :value="item.value"/>
</el-select>
</el-form-item>
<el-form-item label="选择区服" prop="server">
<el-select v-model="serverSwitch" class="m-2" placeholder="选择服务器" size="large" style="width: 80px">
<el-option v-for="item in serverCategorize" :key="item.value" :label="item.label" :value="item.value"/>
</el-select>
<el-select v-model="tableData.param.server" class="m-2" placeholder="选择区服"
:disabled="tableData.param.channel===''" filterable>
<el-option v-for="item in switchServer()" :key="item.id+''" :label="item.name" :value="item.id+''"/>
</el-select>
</el-form-item>
<el-form-item label="起始日期" prop="startTime">
<el-date-picker type="datetime" size="large" v-model="tableData.param.startTime"
format="YYYY/MM/DD HH:mm:ss" value-format="x"/>
</el-form-item>
<el-form-item label="截止日期" prop="endTime">
<el-date-picker type="datetime" size="large" v-model="tableData.param.endTime"
format="YYYY/MM/DD HH:mm:ss" value-format="x"/>
</el-form-item>
<!-- <el-form-item label="单笔充值额度">-->
<!-- <el-input size="default" v-model="tableData.param.rechargeTotal" @change="checkRecharge"-->
<!-- placeholder="请输单笔充值额度"-->
<!-- class="input-with-select">-->
<!-- <template #prepend>-->
<!-- <el-select v-model="tableData.param.compareType1" class="m-2" placeholder=""-->
<!-- size="default" style="width: 60px">-->
<!-- <el-option v-for="item in tableData.compareType" :key="item.value"-->
<!-- :label="item.label" :value="item.value"/>-->
<!-- </el-select>-->
<!-- </template>-->
<!-- </el-input>-->
<!-- </el-form-item>-->
<el-form-item label="充值总额">
<el-input size="default" v-model="tableData.param.rechargeMin" @change="checkRecharge"
placeholder="请输入充值总额"
class="input-with-select">
<template #prepend>
<el-select v-model="tableData.param.compareType" class="m-2" placeholder=""
size="default" style="width: 60px">
<el-option v-for="item in tableData.compareType" :key="item.value"
:label="item.label" :value="item.value"/>
</el-select>
</template>
</el-input>
</el-form-item>
<el-form-item>
<el-button size="default" type="primary" class="ml10" @click="getRemain">
<el-icon>
<ele-Search/>
</el-icon>
查询
</el-button>
</el-form-item>
</el-form>
</div>
<el-table :data="tableData.data" border>
<el-table-column prop="one" label="渠道名称" width="200">
<template #default="scope">
<span>{{
channels.find(i => i.value == scope.row.channel) ? channels.find(i => i.value == scope.row.channel).label : scope.row.channel
}}</span>
</template>
</el-table-column>
<el-table-column prop="two" label="充值" width="200">
<template #default="scope">
<!-- <div v-if="scope.row.rechargeTotal">-->
<span>{{ (scope.row.rechargeTotal / 100).toFixed(2) }}</span>
<!-- </div>-->
</template>
</el-table-column>
<el-table-column prop="three" label="总注册用户" width="200">
<template #default="scope">
<!-- <div v-if="scope.row.accountTotal">-->
<span>{{ scope.row.accountTotal }}</span>
<!-- </div>-->
</template>
</el-table-column>
<el-table-column prop="four" label="充值玩家数量" width="200">
<template #default="scope">
<!-- <div v-if="scope.row.rechargeAccountTotal">-->
<span>{{ scope.row.rechargeAccountTotal }}</span>
<!-- </div>-->
</template>
</el-table-column>
<el-table-column prop="five" label="付费率" width="140">
<template #default="scope">
<span>{{ scope.row.accountPer }}</span>%
</template>
</el-table-column>
<el-table-column prop="six" label="ARPU" width="200">
<template #default="scope">
<!-- <div v-if="scope.row.rechargePer">-->
<span>{{ (scope.row.rechargePer / 100).toFixed(2) }}</span>
<!-- </div>-->
</template>
</el-table-column>
<el-table-column prop="seven" label="ARPPU" width="200">
<template #default="scope">
<!-- <div v-if="scope.row.rechargeAccountPer">-->
<span>{{ (scope.row.rechargeAccountPer / 100).toFixed(2) }}</span>
<!-- </div>-->
</template>
</el-table-column>
</el-table>
</el-card>
</div>
<div class="game-statistics-container">
<el-card shadow="hover">
<div class="system-user-search mb15">
<el-form :inline="true">
<el-form-item label="渠道" prop="channel">
<el-select v-model="tableData.param.channel" class="m-2" placeholder="选择渠道">
<el-option v-for="item in channels" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="选择区服" prop="server">
<el-select v-model="serverSwitch" class="m-2" placeholder="选择服务器" size="large" style="width: 80px">
<el-option v-for="item in serverCategorize" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
<el-select v-model="tableData.param.server" class="m-2" placeholder="选择区服" :disabled="tableData.param.channel === ''" filterable>
<el-option v-for="item in switchServer()" :key="item.id + ''" :label="item.name" :value="item.id + ''" />
</el-select>
</el-form-item>
<el-form-item label="起始日期" prop="startTime">
<el-date-picker type="datetime" size="large" v-model="tableData.param.startTime" format="YYYY/MM/DD HH:mm:ss" value-format="x" />
</el-form-item>
<el-form-item label="截止日期" prop="endTime">
<el-date-picker type="datetime" size="large" v-model="tableData.param.endTime" format="YYYY/MM/DD HH:mm:ss" value-format="x" />
</el-form-item>
<!-- <el-form-item label="单笔充值额度">-->
<!-- <el-input size="default" v-model="tableData.param.rechargeTotal" @change="checkRecharge"-->
<!-- placeholder="请输单笔充值额度"-->
<!-- class="input-with-select">-->
<!-- <template #prepend>-->
<!-- <el-select v-model="tableData.param.compareType1" class="m-2" placeholder=""-->
<!-- size="default" style="width: 60px">-->
<!-- <el-option v-for="item in tableData.compareType" :key="item.value"-->
<!-- :label="item.label" :value="item.value"/>-->
<!-- </el-select>-->
<!-- </template>-->
<!-- </el-input>-->
<!-- </el-form-item>-->
<el-form-item label="充值总额">
<el-input
size="default"
v-model="tableData.param.rechargeMin"
@change="checkRecharge"
placeholder="请输入充值总额"
class="input-with-select"
>
<template #prepend>
<el-select v-model="tableData.param.compareType" class="m-2" placeholder="" size="default" style="width: 60px">
<el-option v-for="item in tableData.compareType" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</template>
</el-input>
</el-form-item>
<el-form-item>
<el-button size="default" type="primary" class="ml10" @click="getRemain">
<el-icon>
<ele-Search />
</el-icon>
查询
</el-button>
</el-form-item>
</el-form>
</div>
<el-table :data="tableData.data" border>
<el-table-column prop="one" label="渠道名称" width="200">
<template #default="scope">
<span>{{
channels.find((i) => i.value == scope.row.channel) ? channels.find((i) => i.value == scope.row.channel).label : scope.row.channel
}}</span>
</template>
</el-table-column>
<el-table-column prop="two" label="充值" width="200">
<template #default="scope">
<el-popover effect="light" trigger="hover" placement="top" width="auto">
<template #default>
<div>支付宝: {{ scope.row.ali || 0 }}</div>
<div>微信: {{ scope.row.wChat || 0 }}</div>
</template>
<template #reference>
<span>{{ (scope.row.rechargeTotal / 100).toFixed(2) }}</span>
</template>
</el-popover>
</template>
</el-table-column>
<el-table-column prop="three" label="总注册用户" width="200">
<template #default="scope">
<span>{{ scope.row.accountTotal }}</span>
</template>
</el-table-column>
<el-table-column prop="four" label="充值玩家数量" width="200">
<template #default="scope">
<span>{{ scope.row.rechargeAccountTotal }}</span>
</template>
</el-table-column>
<el-table-column prop="five" label="付费率" width="140">
<template #default="scope">
<span>{{ scope.row.accountPer }}</span
>%
</template>
</el-table-column>
<el-table-column prop="six" label="ARPU" width="200">
<template #default="scope">
<span>{{ (scope.row.rechargePer / 100).toFixed(2) }}</span>
</template>
</el-table-column>
<el-table-column prop="seven" label="ARPPU" width="200">
<template #default="scope">
<span>{{ (scope.row.rechargeAccountPer / 100).toFixed(2) }}</span>
</template>
</el-table-column>
</el-table>
</el-card>
</div>
</template>
<script lang="ts">
import {toRefs, reactive, onMounted, defineComponent,} from 'vue';
import {orderLog} from "/@/api/game/index";
import {allChannelList, CompareType, allServerList, ServerCategorize} from "/@/utils/game";
import {gSwitchServer} from "/@/utils/utils";
import { toRefs, reactive, onMounted, defineComponent } from 'vue';
import { orderLog, orderLogPlatform } from '/@/api/game/index';
import { allChannelList, CompareType, allServerList, ServerCategorize } from '/@/utils/game';
import { gSwitchServer } from '/@/utils/utils';
//
interface TableData {
labelName: string
one: number
two: number
three: number
four: number
five: number
six: number
seven: number
fifteen: number
thirty: number
labelName: string;
one: number;
two: number;
three: number;
four: number;
five: number;
six: number;
seven: number;
fifteen: number;
thirty: number;
}
interface TableDataState {
serverSwitch: number;
tableData: {
data: Array<TableData>;
registerNum: number;
param: {
channel: string;
server: number;
rechargeMin: number;
rechargeTotal: number;
startTime: number;
endTime: number;
compareType: number;
compareType1: number;
};
total: number;
compareType: object;
};
servers: object;
channels: object[];
dateNames: object;
serverCategorize: object;
serverSwitch: number;
tableData: {
data: Array<TableData>;
registerNum: number;
param: {
channel: string;
server: number;
rechargeMin: number;
rechargeTotal: number;
startTime: number;
endTime: number;
compareType: number;
compareType1: number;
};
total: number;
compareType: object;
};
servers: object;
channels: object[];
dateNames: object;
serverCategorize: object;
}
export default defineComponent({
name: 'apiV1SystemRoleList',
setup() {
const state = reactive<TableDataState>({
serverSwitch: 0,
tableData: {
data: [],
param: {
channel: "",
server: "",
startTime: "",
endTime: "",
rechargeMin: 0,
rechargeTotal: 1,
compareType: 5,
compareType1: 5,
},
compareType: CompareType
},
servers: [],
channels: [],
dateNames: {
1: "one",
2: "two",
3: "three",
4: "four",
5: "five",
6: "six",
7: "seven",
15: "fifteen",
30: "thirty"
},
serverCategorize: ServerCategorize,
});
name: 'apiV1SystemRoleList',
setup() {
const state = reactive<TableDataState>({
serverSwitch: 0,
tableData: {
data: [],
param: {
channel: '',
server: '',
startTime: '',
endTime: '',
rechargeMin: 0,
rechargeTotal: 1,
compareType: 5,
compareType1: 5,
},
compareType: CompareType,
},
servers: [],
channels: [],
dateNames: {
1: 'one',
2: 'two',
3: 'three',
4: 'four',
5: 'five',
6: 'six',
7: 'seven',
15: 'fifteen',
30: 'thirty',
},
serverCategorize: ServerCategorize,
});
const getRemain = () => {
var defaultData = {channel: 0, rechargeTotal: 0, rechargeAccountTotal: 0, accountTotal: 0};
state.tableData.data = [defaultData];
var rechargeMin = state.tableData.param.rechargeMin
if (rechargeMin > 0) {
rechargeMin = rechargeMin * 100;
}
var rechargeTotal = state.tableData.param.rechargeTotal
if (rechargeTotal > 0) {
rechargeTotal = rechargeTotal * 100;
}
orderLog({
channel: state.tableData.param.channel,
server: state.tableData.param.server,
rechargeMin: rechargeMin,
rechargeTotal: rechargeTotal,
startTime: state.tableData.param.startTime,
endTime: state.tableData.param.endTime,
compareType: state.tableData.param.compareType,
compareType1: state.tableData.param.compareType1,
}).then(res => {
state.tableData.total = 0;
console.log("keepAccount:", res);
const amountTotal = res.data && res.data.amountTotal || [];
const rechargeAccountTotal = res.data && res.data.rechargeAccountTotal || [];
const accountTotal = res.data && res.data.accountTotal || [];
amountTotal.map((item: any) => {
if (!state.channels.find(r => r.value == item.channel)) {
return
}
const getRemain = () => {
var defaultData = { channel: 0, rechargeTotal: 0, rechargeAccountTotal: 0, accountTotal: 0 };
state.tableData.data = [defaultData];
var rechargeMin = state.tableData.param.rechargeMin;
if (rechargeMin > 0) {
rechargeMin = rechargeMin * 100;
}
var rechargeTotal = state.tableData.param.rechargeTotal;
if (rechargeTotal > 0) {
rechargeTotal = rechargeTotal * 100;
}
orderLog({
channel: state.tableData.param.channel,
server: state.tableData.param.server,
rechargeMin: rechargeMin,
rechargeTotal: rechargeTotal,
startTime: state.tableData.param.startTime,
endTime: state.tableData.param.endTime,
compareType: state.tableData.param.compareType,
compareType1: state.tableData.param.compareType1,
}).then((res) => {
state.tableData.total = 0;
console.log('keepAccount:', res);
const amountTotal = (res.data && res.data.amountTotal) || [];
const rechargeAccountTotal = (res.data && res.data.rechargeAccountTotal) || [];
const accountTotal = (res.data && res.data.accountTotal) || [];
amountTotal.map((item: any) => {
if (!state.channels.find((r) => r.value == item.channel)) {
return;
}
let channelData = state.tableData.data.find(r => r.channel === item.channel);
if (!channelData) {
channelData = {channel: item.channel};
state.tableData.data.push(channelData);
}
let channelData = state.tableData.data.find((r) => r.channel === item.channel);
if (!channelData) {
channelData = { channel: item.channel };
state.tableData.data.push(channelData);
}
channelData.rechargeTotal = item.totalAmount;
defaultData.rechargeTotal += Number(item.totalAmount);
});
rechargeAccountTotal.map((item: any) => {
if (!state.channels.find(r => r.value == item.channel)) {
return
}
let channelData = state.tableData.data.find(r => r.channel === item.channel);
if (!channelData) {
channelData = {channel: item.channel};
state.tableData.data.push(channelData);
}
channelData.rechargeTotal = item.totalAmount;
defaultData.rechargeTotal += Number(item.totalAmount);
});
rechargeAccountTotal.map((item: any) => {
if (!state.channels.find((r) => r.value == item.channel)) {
return;
}
let channelData = state.tableData.data.find((r) => r.channel === item.channel);
if (!channelData) {
channelData = { channel: item.channel };
state.tableData.data.push(channelData);
}
channelData.rechargeAccountTotal = item.totalAccount;
defaultData.rechargeAccountTotal += Number(item.totalAccount);
});
accountTotal.map((item: any) => {
if (!state.channels.find(r => r.value == item.channel)) {
return
}
let channelData = state.tableData.data.find(r => r.channel === item.channel);
if (!channelData) {
channelData = {channel: item.channel};
state.tableData.data.push(channelData);
}
channelData.rechargeAccountTotal = item.totalAccount;
defaultData.rechargeAccountTotal += Number(item.totalAccount);
});
accountTotal.map((item: any) => {
if (!state.channels.find((r) => r.value == item.channel)) {
return;
}
let channelData = state.tableData.data.find((r) => r.channel === item.channel);
if (!channelData) {
channelData = { channel: item.channel };
state.tableData.data.push(channelData);
}
channelData.accountTotal = item.totalAccount;
defaultData.accountTotal += Number(item.totalAccount);
});
state.tableData.data.map((item: any) => {
if (!item.rechargeAccountTotal) {
item.rechargeAccountTotal = 0
}
if (!item.accountTotal) {
item.accountTotal = 0
}
if (!item.rechargeTotal) {
item.rechargeTotal = 0
}
item.accountPer = Math.floor(item.rechargeAccountTotal / (item.accountTotal || 1) * 100);
item.rechargePer = item.rechargeTotal / (item.accountTotal || 1);
item.rechargeAccountPer = item.rechargeTotal / (item.rechargeAccountTotal || 1);
channelData.accountTotal = item.totalAccount;
defaultData.accountTotal += Number(item.totalAccount);
});
state.tableData.data.map((item: any) => {
if (!item.rechargeAccountTotal) {
item.rechargeAccountTotal = 0;
}
if (!item.accountTotal) {
item.accountTotal = 0;
}
if (!item.rechargeTotal) {
item.rechargeTotal = 0;
}
item.accountPer = Math.floor((item.rechargeAccountTotal / (item.accountTotal || 1)) * 100);
item.rechargePer = item.rechargeTotal / (item.accountTotal || 1);
item.rechargeAccountPer = item.rechargeTotal / (item.rechargeAccountTotal || 1);
});
console.log(' state.tableData.data:', state.tableData.data);
});
orderLogPlatform({
channel: state.tableData.param.channel,
server: state.tableData.param.server,
rechargeMin: rechargeMin,
rechargeTotal: rechargeTotal,
startTime: state.tableData.param.startTime,
endTime: state.tableData.param.endTime,
compareType: state.tableData.param.compareType,
compareType1: state.tableData.param.compareType1,
}).then((res) => {
console.log('orderLogPlatform: ', res);
const amountTotal = (res.data && res.data.amountTotal) || [];
amountTotal.map((item: any) => {
if (!state.channels.find((r) => r.value == item.channel)) {
return;
}
});
console.log(" state.tableData.data:", state.tableData.data);
})
};
const checkRecharge = (value: any) => {
console.log("checkRecharge", value)
};
onMounted(function () {
allServerList().then(res => {
state.servers = res;
});
allChannelList().then(res => {
state.channels = res;
// console.log("allChannelList", res)
});
});
let channelData = state.tableData.data.find((r) => r.channel === item.channel);
if (!channelData) {
channelData = { channel: item.channel };
state.tableData.data.push(channelData);
}
if (item.platform == 1) {
channelData.ali = (item.totalAmount / 100).toFixed(2);
}
if (item.platform == 3) {
channelData.wChat = (item.totalAmount / 100).toFixed(2);
}
});
});
};
const checkRecharge = (value: any) => {
console.log('checkRecharge', value);
};
onMounted(function () {
allServerList().then((res) => {
state.servers = res;
});
allChannelList().then((res) => {
state.channels = res;
// console.log("allChannelList", res)
});
});
const switchServer = () => {
return gSwitchServer(state.serverSwitch, state.servers)
};
return {
switchServer,
getRemain,
checkRecharge,
...toRefs(state),
};
},
const switchServer = () => {
return gSwitchServer(state.serverSwitch, state.servers);
};
return {
switchServer,
getRemain,
checkRecharge,
...toRefs(state),
};
},
});
</script>

1
src/views/gameOrder/orderLog1/index.vue

@ -291,6 +291,7 @@ export default defineComponent({
label: '好游快爆',
},
];
state.tableData.param.channel = state.channels[0].value;
// console.log("allChannelList", res)
// });
});

2
src/views/gameOrder/rechargePer/index.vue

@ -73,7 +73,7 @@ interface TableDataState {
}
export default defineComponent({
name: 'apiV1SystemRoleList',
name: 'apiV1GameOrderRechargePer',
setup() {
const state = reactive<TableDataState>({
tableData: {

6
src/views/gameOrder/shopInfo/index.vue

@ -160,15 +160,17 @@ export default defineComponent({
list.map((item: any) => {
let log = {
id: item.id,
itemId: RechargeConfigCategory.find((i) => i.Id === item.itemId).Name,
price: RechargeConfigCategory.find((i) => i.Id === item.itemId).RMB_Num,
itemId: "",
price: 0,
count: item.num,
rechargePer: ((item.num / state.tableData.rechargeTotal) * 100).toFixed(2) + '%',
};
if (item.configType == 1) {
log.price = RechargeConfigCategory.find((i) => i.Id === item.itemId).RMB_Num
log.itemId = RechargeConfigCategory.find((i) => i.Id === item.itemId).Name
}else if (item.configType == 2) {
log.itemId = PackageConfigCategory.find((i) => i.Id === item.itemId).Name
log.price = PackageConfigCategory.find((i) => i.Id === item.itemId).OriginalPrice
}
data.push(log);

62
src/views/gameResetOrderSign/reset/index.vue

@ -0,0 +1,62 @@
<template>
<div class="system-edit-post-container">
<el-form ref="formRef" size="default" label-width="80px">
<el-card shadow="hover" header="">
<el-form-item>
<el-button size="default" type="primary" class="ml10" @click="onReset">
<el-icon>
<ele-RefreshRight />
</el-icon>
重置充值档位记录
</el-button>
</el-form-item>
</el-card>
</el-form>
</div>
</template>
<script lang="ts">
import { defineComponent, reactive, ref, toRefs } from 'vue';
import { resetOrderSign } from '/@/api/game';
import { ElLoading, ElMessage, ElMessageBox } from 'element-plus';
interface TableDataState {}
export default defineComponent({
name: 'apiV1GameResetSign',
setup: function () {
const formRef = ref<HTMLElement | null>(null);
const menuRef = ref();
const state = reactive<TableDataState>({});
const onReset = () => {
const loading = ElLoading.service({
lock: true,
text: 'Loading',
background: 'rgba(0, 0, 0, 0.7)',
});
ElMessageBox.confirm(`此操作将删除:玩家充值档位记录,是否继续?`, '提示', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
resetOrderSign()
.then(() => {
ElMessage.success('删除成功');
})
.finally(() => {
loading.close();
});
})
.catch(() => {
loading.close();
});
};
return {
onReset,
menuRef,
formRef,
...toRefs(state),
};
},
});
</script>

296
src/views/gameRole/account/index.vue

@ -1,165 +1,187 @@
<template>
<div class="game-account-container">
<el-card shadow="hover">
<div class="game-account-search mb15">
<el-form :inline="true">
<el-form-item label="服务器">
<el-select v-model="serverSwitch" class="m-2" placeholder="选择服务器" size="large" style="width: 80px">
<el-option v-for="item in serverCategorize" :key="item.value" :label="item.label" :value="item.value"/>
</el-select>
<el-select v-model="queryParams.serverId" class="m-2" placeholder="选择服务器" filterable>
<el-option v-for="item in switchServer()" :key="item.id" :label="item.name" :value="item.id"/>
</el-select>
</el-form-item>
<el-form-item label="账号">
<el-input size="default" v-model="queryParams.account" placeholder="请输入账号" class="w-50 m-2" clearable/>
</el-form-item>
<el-form-item label="id">
<el-input size="default" v-model="queryParams.id" placeholder="请输入uid" class="w-50 m-2" clearable/>
</el-form-item>
<el-form-item label="uid">
<el-input size="default" v-model="queryParams.uid" placeholder="请输入uid" class="w-50 m-2" clearable/>
</el-form-item>
<el-form-item label="身份证:">
<el-input size="default" v-model="queryParams.ident" placeholder="身份证" class="w-50 m-2" clearable/>
</el-form-item>
<el-form-item label="名字:">
<el-input size="default" v-model="queryParams.name" placeholder="名字" class="w-50 m-2" clearable/>
</el-form-item>
<el-form-item>
<el-button size="default" type="primary" class="ml10" @click="accountList">
<el-icon>
<ele-Search/>
</el-icon>
查询
</el-button>
</el-form-item>
</el-form>
</div>
<el-table :data="tableData.data" style="width: 100%" stripe>
<el-table-column type="index" label="id" width="60"/>
<el-table-column prop="AccountName" label="账号" show-overflow-tooltip></el-table-column>
<el-table-column prop="uid" label="uid" show-overflow-tooltip></el-table-column>
<el-table-column prop="StringId" label="id" show-overflow-tooltip></el-table-column>
<el-table-column prop="AccountType" label="账号类型" show-overflow-tooltip></el-table-column>
<el-table-column prop="RealName" label="名字" show-overflow-tooltip></el-table-column>
<el-table-column prop="Identity" label="身份证" show-overflow-tooltip></el-table-column>
<el-table-column prop="CreateTime" label="创建时间" show-overflow-tooltip></el-table-column>
</el-table>
<el-row justify="space-evenly">
<el-pagination :hide-on-single-page="true" :total="tableData.total" v-model:page-size="queryParams.pageSize"
v-model:current-page="queryParams.pageNum" @current-change="accountList"/>
</el-row>
</el-card>
</div>
<div class="game-account-container">
<el-card shadow="hover">
<div class="game-account-search mb15">
<el-form :inline="true">
<el-form-item label="服务器">
<el-select v-model="serverSwitch" class="m-2" placeholder="选择服务器" size="large" style="width: 80px">
<el-option v-for="item in serverCategorize" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
<el-select v-model="queryParams.serverId" class="m-2" placeholder="选择服务器" filterable>
<el-option v-for="item in switchServer()" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="账号">
<el-input size="default" v-model="queryParams.account" placeholder="请输入账号" class="w-50 m-2" clearable />
</el-form-item>
<el-form-item label="id">
<el-input size="default" v-model="queryParams.id" placeholder="请输入uid" class="w-50 m-2" clearable />
</el-form-item>
<el-form-item label="uid">
<el-input size="default" v-model="queryParams.uid" placeholder="请输入uid" class="w-50 m-2" clearable />
</el-form-item>
<el-form-item label="身份证:">
<el-input size="default" v-model="queryParams.ident" placeholder="身份证" class="w-50 m-2" clearable />
</el-form-item>
<el-form-item label="名字:">
<el-input size="default" v-model="queryParams.name" placeholder="名字" class="w-50 m-2" clearable />
</el-form-item>
<el-form-item label="账号状态">
<el-select v-model="queryParams.gmState" class="m-2" placeholder="选择状态" size="large">
<el-option label="" value="" />
<el-option v-for="item in tableData.accountType" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item>
<el-button size="default" type="primary" class="ml10" @click="accountList">
<el-icon>
<ele-Search />
</el-icon>
查询
</el-button>
</el-form-item>
</el-form>
</div>
<el-table :data="tableData.data" style="width: 100%" stripe>
<el-table-column type="index" label="id" width="60" />
<el-table-column prop="AccountName" label="账号" show-overflow-tooltip></el-table-column>
<el-table-column prop="uid" label="uid" show-overflow-tooltip></el-table-column>
<el-table-column prop="StringId" label="id" show-overflow-tooltip></el-table-column>
<el-table-column prop="AccountType" label="账号类型" show-overflow-tooltip></el-table-column>
<el-table-column prop="RealName" label="名字" show-overflow-tooltip></el-table-column>
<el-table-column prop="Identity" label="身份证" show-overflow-tooltip></el-table-column>
<el-table-column prop="CreateTime" label="创建时间" show-overflow-tooltip></el-table-column>
</el-table>
<el-row justify="space-evenly">
<el-pagination
:hide-on-single-page="true"
:total="tableData.total"
v-model:page-size="queryParams.pageSize"
v-model:current-page="queryParams.pageNum"
@current-change="accountList"
/>
</el-row>
</el-card>
</div>
</template>
<script lang="ts">
import {toRefs, reactive, onMounted, defineComponent} from 'vue';
import {gameAccountList} from "/@/api/game";
import {ElMessage} from "element-plus";
import {ServerCategorize, serverList} from "/@/utils/game";
import {gSwitchServer} from "/@/utils/utils";
import { toRefs, reactive, onMounted, defineComponent } from 'vue';
import { gameAccountList } from '/@/api/game';
import { ElMessage } from 'element-plus';
import { ServerCategorize, serverList } from '/@/utils/game';
import { gSwitchServer } from '/@/utils/utils';
import { AccountType } from '/@/api/common/consts';
//
interface TableData {
uid: number;
name: string;
region: number;
totalTime: number;
rechargeTotal: number;
CreateTime: string;
AccountType: string;
uid: number;
name: string;
region: number;
totalTime: number;
rechargeTotal: number;
CreateTime: string;
AccountType: string;
}
interface TableDataState {
serverSwitch: number;
queryParams: {
account: string,
serverId: number,
id: string,
pageSize: number,
pageNum: number,
};
tableData: {
data: Array<TableData>;
total: 0,
accountType: Array<{ label: string, value: number }>
};
servers: object[]
serverCategorize: object[]
serverSwitch: number;
queryParams: {
account: string;
serverId: number;
id: string;
uid: string;
ident: string;
name: string;
gmState: string;
pageSize: number;
pageNum: number;
};
tableData: {
data: Array<TableData>;
total: 0;
accountType: Array<{ label: string; value: number }>;
};
servers: object[];
gmStates: object;
serverCategorize: object[];
}
export default defineComponent({
name: 'apiV1GameRoleAccount',
setup() {
const state = reactive<TableDataState>({
serverSwitch: 0,
queryParams: {
account: "",
serverId: "",
id: "",
pageSize: 10,
pageNum: 1,
},
tableData: {
data: [],
total: 0,
accountType: [{label: "正常", value: 0}, {label: "黑名单", value: 1}, {label: "GM", value: 2}]
},
servers: [],
serverCategorize: ServerCategorize,
});
name: 'apiV1GameRoleAccount',
setup() {
const state = reactive<TableDataState>({
serverSwitch: 0,
queryParams: {
account: '',
serverId: '',
id: '',
uid: '',
ident: '',
name: '',
gmState: '',
pageSize: 10,
pageNum: 1,
},
tableData: {
data: [],
total: 0,
accountType: AccountType,
},
servers: [],
serverCategorize: ServerCategorize,
});
const accountList = () => {
console.log(state.queryParams);
gameAccountList(state.queryParams).then(res => {
if (!res.data.list || res.data.list.length == 0) {
ElMessage.error('未查询到用户信息!');
return;
}
console.log(res);
const list = res.data.list ?? [];
state.tableData.total = res.data.total;
list.map((item: TableData) => {
item.AccountType = state.tableData.accountType.find(r => r.value == item.AccountType).label;
item.CreateTime = new Date(item.CreateTime).toLocaleString();
});
state.tableData.data = list;
})
};
//
onMounted(() => {
serverList().then(res => {
state.servers = res;
state.queryParams.serverId = res[0].id;
});
});
const accountList = () => {
state.tableData.data = [];
console.log(state.queryParams);
gameAccountList(state.queryParams).then((res) => {
if (!res.data.list || res.data.list.length == 0) {
ElMessage.error('未查询到用户信息!');
return;
}
console.log(res);
const list = res.data.list ?? [];
state.tableData.total = res.data.total;
list.map((item: TableData) => {
item.AccountType = state.tableData.accountType.find((r) => r.value == item.AccountType).label;
item.CreateTime = new Date(item.CreateTime).toLocaleString();
});
state.tableData.data = list;
});
};
//
onMounted(() => {
serverList().then((res) => {
state.servers = res;
state.queryParams.serverId = res[0].id;
});
});
const switchServer = () => {
return gSwitchServer(state.serverSwitch, state.servers)
};
const switchServer = () => {
return gSwitchServer(state.serverSwitch, state.servers);
};
return {
switchServer,
accountList,
...toRefs(state),
};
},
return {
switchServer,
accountList,
...toRefs(state),
};
},
});
</script>
<style scoped lang="scss">
.el-form-item {
display: -moz-flex;
vertical-align: middle;
margin-right: 32px;
display: -moz-flex;
vertical-align: middle;
margin-right: 32px;
}
::v-deep .el-table--striped .el-table__body tr.el-table__row--striped td {
background: #ffffd5;
background: #ffffd5;
}
::v-deep .el-table .el-table--enable-row-hover .el-table__body tr:hover > td {
background: inherit;
background: inherit;
}
</style>

162
src/views/gameRole/deleteAccount/index.vue

@ -1,93 +1,115 @@
<template>
<div class="game-account-container">
<el-card shadow="hover">
<div class="game-account-search mb15">
<el-form :inline="true">
<el-form-item label="账号">
<el-input size="default" v-model="queryParams.account" placeholder="请输入账号" class="w-50 m-2"
clearable/>
</el-form-item>
<el-form-item>
<el-button size="default" type="primary" class="ml10" @click="deleteAccount">
<el-icon>
<ele-Search/>
</el-icon>
删除账号
</el-button>
</el-form-item>
</el-form>
</div>
</el-card>
</div>
<div class="game-account-container">
<el-card shadow="hover">
<div class="game-account-search mb15">
<el-form :inline="true">
<el-form-item label="账号">
<el-input size="default" v-model="queryParams.account" placeholder="请输入账号" class="w-50 m-2" clearable />
</el-form-item>
<!-- <el-form-item label="账号服务器">
<el-select v-model="serverSwitch" class="m-2" placeholder="选择服务器" size="large" style="width: 80px">
<el-option v-for="item in serverCategorize" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
<el-select v-model="queryParams.serverId" class="m-2" placeholder="选择服务器" filterable>
<el-option v-for="item in switchServer()" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>-->
<el-form-item>
<el-button size="default" type="primary" class="ml10" @click="deleteAccount">
<el-icon>
<ele-Search />
</el-icon>
删除后台游戏账号所有数据
</el-button>
</el-form-item>
</el-form>
</div>
</el-card>
</div>
</template>
<script lang="ts">
import {toRefs, reactive, onMounted, defineComponent} from 'vue';
import {gameDeleteAccount} from "/@/api/game";
import {ElMessage, ElMessageBox} from "element-plus";
import { toRefs, reactive, onMounted, defineComponent } from 'vue';
import { gameDeleteAccount } from '/@/api/game';
import { ElMessage, ElMessageBox } from 'element-plus';
import { AllServerList, ServerCategorize, serverList } from '/@/utils/game';
import { gSwitchServer } from '/@/utils/utils';
interface TableDataState {
queryParams: {
account: string;
password: string;
};
queryParams: {
account: string;
password: string;
};
serverCategorize: object;
serverSwitch: number;
servers: object[];
}
export default defineComponent({
name: 'apiV1GameRoleDeleteAccount',
setup() {
const state = reactive<TableDataState>({
queryParams: {
password: "",
account: "",
},
});
name: 'apiV1GameRoleDeleteAccount',
setup() {
const state = reactive<TableDataState>({
queryParams: {
password: '',
account: '',
},
servers: [],
serverCategorize: ServerCategorize,
serverSwitch: 0,
});
const deleteAccount = () => {
console.log(state.queryParams)
ElMessageBox.prompt(`确认删除账号${state.queryParams.account},请输入密码`, '提示', {
confirmButtonText: '确认',
cancelButtonText: '取消',
// inputPattern:
// /[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/,
inputErrorMessage: 'Invalid password',
}).then(({value}) => {
if(value == 0){
return
}
state.queryParams.password = value;
gameDeleteAccount(state.queryParams).then(res => {
console.log(res)
if (res.data.data === 1) {
ElMessage.success("操作成功")
}
})
});
const deleteAccount = () => {
console.log(state.queryParams);
ElMessageBox.prompt(`确认删除账号${state.queryParams.account},请输入密码`, '提示', {
confirmButtonText: '确认',
cancelButtonText: '取消',
// inputPattern:
// /[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/,
inputErrorMessage: 'Invalid password',
}).then(({ value }) => {
if (value == 0) {
return;
}
state.queryParams.password = value;
gameDeleteAccount(state.queryParams).then((res) => {
console.log(res);
if (res.data.data === 1) {
ElMessage.success('操作成功');
}
});
});
};
//
onMounted(() => {
serverList().then((res) => {
state.servers = res;
// state.queryParams.serverId = res[0].id;
});
});
};
//
onMounted(() => {
});
return {
deleteAccount,
...toRefs(state),
};
},
const switchServer = () => {
return gSwitchServer(state.serverSwitch, state.servers);
};
return {
switchServer,
deleteAccount,
...toRefs(state),
};
},
});
</script>
<style scoped lang="scss">
.el-form-item {
display: -moz-flex;
vertical-align: middle;
margin-right: 32px;
display: -moz-flex;
vertical-align: middle;
margin-right: 32px;
}
::v-deep .el-table--striped .el-table__body tr.el-table__row--striped td {
background: #ffffd5;
background: #ffffd5;
}
::v-deep .el-table .el-table--enable-row-hover .el-table__body tr:hover > td {
background: inherit;
background: inherit;
}
</style>

64
src/views/gameRole/role/index.vue

@ -333,8 +333,8 @@
</el-icon>
</el-button>
</template>
<div v-show="item.listShow && tableData.loginOutData.length > 0">
<el-table :data="tableData.loginOutData" border>
<div v-show="item.listShow && tableData.itemRecordData.length > 0">
<el-table :data="tableData.itemRecordData" border>
<el-table-column label="物品" width="180">
<template #default="scope">
<span>{{ scope.row.Name }}</span>
@ -346,6 +346,17 @@
</template>
</el-table-column>
</el-table>
<el-row justify="space-evenly">
<el-pagination
:hide-on-single-page="true"
v-model:page-size="queryParams.itemPageSize"
v-model:current-page="queryParams.itemPageNum"
:pager-count="5"
@current-change="itemPage"
layout="total, prev, pager, next"
:total="queryParams.itemTotal"
/>
</el-row>
</div>
</el-card>
@ -607,9 +618,18 @@ import WarriorConfigCategory from '/@/api/config/WarriorConfigCategory.json';
import SkillConfigCategory from '/@/api/config/SkillConfigCategory.json';
import EquipmentConfigCategory from '/@/api/config/EquipmentConfigCategory.json';
import ClothesConfigCategory from '/@/api/config/ClothesConfigCategory.json';
import { ConstRegion, GameUnitType, NumericType, Clothes_Type, AttributeOperator, Gender, ConstBehaveType } from '/@/api/common/consts';
import {
ConstRegion,
GameUnitType,
NumericType,
Clothes_Type,
AttributeOperator,
Gender,
ConstBehaveType,
AccountType
} from '/@/api/common/consts';
import { ElMessage, ElMessageBox } from 'element-plus';
import { allChannelList, channelList, ServerCategorize, serverList } from '/@/utils/game';
import { channelList, ServerCategorize, serverList } from '/@/utils/game';
import { gSwitchServer } from '/@/utils/utils';
//
@ -662,14 +682,14 @@ interface TableDataState {
account: TableData;
data: Array<TableData>;
loginOutData: object[];
loginOutLogData: object[];
itemRecordData: object[];
total: 0;
building: { buildingList: object[] };
warrior: { list: object[] };
villager: { list: object[] };
accountType: Array<{ label: string; value: number }>;
};
loginOutLogData: object[];
itemRecordData: object[];
villageList: object[];
valleyComponent: object[];
valleyShow: string[];
@ -732,6 +752,8 @@ export default defineComponent({
},
tableData: {
loginOutData: [],
itemRecordData: [],
loginOutLogData: [],
orderData: [],
account: {},
data: [],
@ -739,11 +761,7 @@ export default defineComponent({
building: { buildingList: [] },
warrior: { list: [] },
villager: { list: [] },
accountType: [
{ label: '正常', value: 0 },
{ label: '黑名单', value: 1 },
{ label: 'GM', value: 2 },
],
accountType: AccountType,
},
seasonConfig: SeasonConfigCategory,
scaleConfig: ScaleConfigCategory,
@ -801,7 +819,7 @@ export default defineComponent({
state.tableData.account = list[0];
gameRoleList({ id: list[0].StringId, serverId: state.queryParams.serverId }).then((res) => {
if (!res.data.list || res.data.list.length == 0) {
ElMessage.error('未查询到玩家信息!');
// ElMessage.error('');
return;
}
console.log(res);
@ -831,7 +849,7 @@ export default defineComponent({
pageSize: state.queryParams.orderPageSize,
}).then((res) => {
if (!res.data.list || res.data.list.length == 0) {
ElMessage.error('未查询到充值信息!');
// ElMessage.error('');
return;
}
console.log('orderData: ', res);
@ -853,7 +871,7 @@ export default defineComponent({
stringId: item.stringId,
});
});
console.log('orderData: ', list);
// console.log('orderData: ', list);
});
};
const loginOut = () => {
@ -866,7 +884,7 @@ export default defineComponent({
pageNum: state.queryParams.loginOutPageNum,
}).then((res) => {
if (!res.data.logs || res.data.logs.length == 0) {
ElMessage.error('未查询到登录登出信息!');
// ElMessage.error('');
return;
}
console.log('loginOut: ', res.data);
@ -875,7 +893,7 @@ export default defineComponent({
});
};
const loginOutLog = () => {
state.loginOutLogData = [];
state.tableData.loginOutLogData = [];
gameLoginOutLog({
account: state.queryParams.orderAccount,
id: state.queryParams.id,
@ -884,30 +902,31 @@ export default defineComponent({
pageNum: state.queryParams.loginOutLogPageNum,
}).then((res) => {
if (!res.data.logs || res.data.logs.length == 0) {
ElMessage.error('未查询到登录登出信息!');
// ElMessage.error('');
return;
}
console.log('loginOutLog: ', res.data);
state.queryParams.loginOutLogTotal = res.data.total;
state.loginOutLogData = res.data.logs;
state.tableData.loginOutLogData = res.data.logs;
});
};
const itemRecord = () => {
return;
// return;
state.tableData.itemRecordData = []
gameItemRecord({
account: state.queryParams.orderAccount,
id: state.queryParams.id,
id: state.queryParams.id,
serverId: state.queryParams.serverId,
pageSize: state.queryParams.itemPageSize,
pageNum: state.queryParams.itemPageNum,
}).then((res) => {
if (!res.data.logs || res.data.logs.length == 0) {
ElMessage.error('未查询到物品交易记录!');
// ElMessage.error('');
return;
}
state.queryParams.itemTotal = res.data.total;
state.itemRecordData = res.data.logs;
state.tableData.itemRecordData = res.data.logs;
});
};
const onHandleSizeChange = (val: number) => {
@ -1291,7 +1310,6 @@ export default defineComponent({
value: equip.AttributeValue3,
operator: AttributeOperator[equip.AttributeOperator3],
});
// console.log(data.SlotDic[z]);
}
}

1
src/views/gameRole/statics/index.vue

@ -130,7 +130,6 @@
</template>
<script lang="ts">
//import { ElMessageBox, ElMessage } from 'element-plus';
import { toRefs, reactive, onMounted, defineComponent } from 'vue';
import { liveAccount } from '/@/api/game/index';
import { allChannelList, allServerList, ServerCategorize } from '/@/utils/game';

24
src/views/gameSet/auditMode/index.vue

@ -15,9 +15,12 @@
新增
</el-button>
</el-form-item>
<el-form-item label="判断优先级">
{{ setOrder.find(r => r.value == tableData.param.name).label }}
</el-form-item>
</el-form>
<el-table :data="tableData.data" style="width: 100%">
<el-table-column prop="label" label="渠道(优先判断)" width="200">
<el-table-column prop="label" label="渠道" width="200">
<template #default="scope">
<div v-if="scope.row.label.length >= 12">
{{
@ -60,7 +63,7 @@
<script lang="ts">
import { toRefs, reactive, onMounted, defineComponent, ref } from 'vue';
import { allChannelList, serverList, GameSetList } from '/@/utils/game';
import { allChannelList, serverList, GameSetList, GameSetOrder } from '/@/utils/game';
import { ElMessage, ElMessageBox } from 'element-plus';
import { gameDelAuditMode, gameGetAllAuditMode } from '/@/api/game/set';
import EditConfig from '/src/views/gameSet/auditMode/component/editConfig.vue';
@ -79,10 +82,11 @@ interface TableDataState {
channels: object[];
setName: object;
names: object[];
setOrder: object[];
}
export default defineComponent({
name: 'apiV1ClientBugList',
name: 'apiV1GameSetAuditMode',
components: { EditConfig },
setup() {
const editDicRef = ref();
@ -98,6 +102,7 @@ export default defineComponent({
},
channels: [],
setName: GameSetList[0],
setOrder: GameSetOrder,
names: GameSetList,
});
@ -131,7 +136,7 @@ export default defineComponent({
type: 'warning',
})
.then(() => {
gameDelAuditMode({ label: row.label, name: state.tableData.param.name}).then(() => {
gameDelAuditMode({ label: row.label, name: state.tableData.param.name }).then(() => {
ElMessage.success('删除成功');
mailList();
});
@ -151,7 +156,16 @@ export default defineComponent({
});
//
const onOpenAdd = () => {
editDicRef.value.openDialog({ auditMode: '1', channel: '', version: '', name: state.tableData.param.name }, state.setName, true);
editDicRef.value.openDialog(
{
auditMode: '1',
channel: '',
version: '',
name: state.tableData.param.name,
},
state.setName,
true
);
};
//
const onOpenEdit = (row: any) => {

2
src/views/gameWhiteList/blacklist/index.vue

@ -65,7 +65,7 @@
}
export default defineComponent({
name: 'apiV1GameVersion ',
name: 'apiV1GameManageBlackList',
components: {EditConfig},
setup() {
const editDicRef = ref();

2
src/views/gameWhiteList/list/index.vue

@ -70,7 +70,7 @@ interface TableDataState {
}
export default defineComponent({
name: 'apiV1GameVersion ',
name: 'apiV1GameManageWhiteList',
components: {EditConfig},
setup() {
const editDicRef = ref();

Loading…
Cancel
Save