docs: 更新 API 文档并补充技能级局部更新说明

新增技能级 PATCH 接口说明,明确 PUT 浅合并规则与 PATCH 局部更新的适用场景
调整智能体操作流程,补充顶层字段与技能级的不同修改方式指引
This commit is contained in:
panFD
2026-10-06 00:11:05 +08:00
parent 04cea0fbb2
commit 4be5252cc4
5 changed files with 1556 additions and 307 deletions

View File

@@ -34,7 +34,7 @@
<key>spriteSourceSize</key> <key>spriteSourceSize</key>
<string>{672,378}</string> <string>{672,378}</string>
<key>textureRect</key> <key>textureRect</key>
<string>{{1349,1095},{616,182}}</string> <string>{{675,1669},{616,182}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<false/> <false/>
</dict> </dict>
@@ -51,7 +51,7 @@
<key>spriteSourceSize</key> <key>spriteSourceSize</key>
<string>{672,378}</string> <string>{672,378}</string>
<key>textureRect</key> <key>textureRect</key>
<string>{{675,1775},{672,92}}</string> <string>{{675,1853},{672,92}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<false/> <false/>
</dict> </dict>
@@ -68,9 +68,9 @@
<key>spriteSourceSize</key> <key>spriteSourceSize</key>
<string>{672,378}</string> <string>{672,378}</string>
<key>textureRect</key> <key>textureRect</key>
<string>{{675,1869},{672,76}}</string> <string>{{1931,675},{672,76}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<false/> <true/>
</dict> </dict>
<key>0l5_mountains.png</key> <key>0l5_mountains.png</key>
<dict> <dict>
@@ -102,7 +102,7 @@
<key>spriteSourceSize</key> <key>spriteSourceSize</key>
<string>{672,378}</string> <string>{672,378}</string>
<key>textureRect</key> <key>textureRect</key>
<string>{{1,1589},{672,162}}</string> <string>{{675,1193},{672,162}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<false/> <false/>
</dict> </dict>
@@ -119,9 +119,9 @@
<key>spriteSourceSize</key> <key>spriteSourceSize</key>
<string>{672,378}</string> <string>{672,378}</string>
<key>textureRect</key> <key>textureRect</key>
<string>{{675,1507},{672,138}}</string> <string>{{1663,675},{672,138}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<false/> <true/>
</dict> </dict>
<key>0l8_ground.png</key> <key>0l8_ground.png</key>
<dict> <dict>
@@ -136,9 +136,9 @@
<key>spriteSourceSize</key> <key>spriteSourceSize</key>
<string>{672,378}</string> <string>{672,378}</string>
<key>textureRect</key> <key>textureRect</key>
<string>{{1349,381},{672,216}}</string> <string>{{1729,1},{672,216}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<false/> <true/>
</dict> </dict>
<key>1l1_wall.png</key> <key>1l1_wall.png</key>
<dict> <dict>
@@ -221,9 +221,9 @@
<key>spriteSourceSize</key> <key>spriteSourceSize</key>
<string>{672,378}</string> <string>{672,378}</string>
<key>textureRect</key> <key>textureRect</key>
<string>{{1349,1279},{662,90}}</string> <string>{{1349,1349},{662,90}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<true/> <false/>
</dict> </dict>
<key>1l6_ground.png</key> <key>1l6_ground.png</key>
<dict> <dict>
@@ -238,9 +238,9 @@
<key>spriteSourceSize</key> <key>spriteSourceSize</key>
<string>{672,378}</string> <string>{672,378}</string>
<key>textureRect</key> <key>textureRect</key>
<string>{{1441,1279},{672,76}}</string> <string>{{1293,1699},{672,76}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<true/> <false/>
</dict> </dict>
<key>3l1_sky.png</key> <key>3l1_sky.png</key>
<dict> <dict>
@@ -272,9 +272,9 @@
<key>spriteSourceSize</key> <key>spriteSourceSize</key>
<string>{672,378}</string> <string>{672,378}</string>
<key>textureRect</key> <key>textureRect</key>
<string>{{675,1353},{672,152}}</string> <string>{{1509,675},{672,152}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<false/> <true/>
</dict> </dict>
<key>3l3_pyramid.png</key> <key>3l3_pyramid.png</key>
<dict> <dict>
@@ -289,9 +289,9 @@
<key>spriteSourceSize</key> <key>spriteSourceSize</key>
<string>{672,378}</string> <string>{672,378}</string>
<key>textureRect</key> <key>textureRect</key>
<string>{{1621,1279},{528,154}}</string> <string>{{1349,1543},{528,154}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<true/> <false/>
</dict> </dict>
<key>3l4_bg-ground01.png</key> <key>3l4_bg-ground01.png</key>
<dict> <dict>
@@ -306,7 +306,7 @@
<key>spriteSourceSize</key> <key>spriteSourceSize</key>
<string>{672,378}</string> <string>{672,378}</string>
<key>textureRect</key> <key>textureRect</key>
<string>{{1,1753},{672,156}}</string> <string>{{675,1357},{672,156}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<false/> <false/>
</dict> </dict>
@@ -323,7 +323,7 @@
<key>spriteSourceSize</key> <key>spriteSourceSize</key>
<string>{672,378}</string> <string>{672,378}</string>
<key>textureRect</key> <key>textureRect</key>
<string>{{1349,599},{672,180}}</string> <string>{{1,1589},{672,180}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<false/> <false/>
</dict> </dict>
@@ -340,9 +340,9 @@
<key>spriteSourceSize</key> <key>spriteSourceSize</key>
<string>{672,378}</string> <string>{672,378}</string>
<key>textureRect</key> <key>textureRect</key>
<string>{{675,1647},{672,126}}</string> <string>{{1803,675},{672,126}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<false/> <true/>
</dict> </dict>
<key>3l7_ground.png</key> <key>3l7_ground.png</key>
<dict> <dict>
@@ -357,7 +357,24 @@
<key>spriteSourceSize</key> <key>spriteSourceSize</key>
<string>{672,378}</string> <string>{672,378}</string>
<key>textureRect</key> <key>textureRect</key>
<string>{{1349,941},{672,152}}</string> <string>{{675,1515},{672,152}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Icon_Battle.png</key>
<dict>
<key>aliases</key>
<array/>
<key>anchor</key>
<string>{0.5,0.5}</string>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{64,57}</string>
<key>spriteSourceSize</key>
<string>{64,57}</string>
<key>textureRect</key>
<string>{{1349,1894},{64,57}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<false/> <false/>
</dict> </dict>
@@ -374,9 +391,9 @@
<key>spriteSourceSize</key> <key>spriteSourceSize</key>
<string>{68,51}</string> <string>{68,51}</string>
<key>textureRect</key> <key>textureRect</key>
<string>{{1777,1626},{68,51}}</string> <string>{{1879,1629},{68,51}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<false/> <true/>
</dict> </dict>
<key>Stone_A_04.png</key> <key>Stone_A_04.png</key>
<dict> <dict>
@@ -391,9 +408,9 @@
<key>spriteSourceSize</key> <key>spriteSourceSize</key>
<string>{60,51}</string> <string>{60,51}</string>
<key>textureRect</key> <key>textureRect</key>
<string>{{1850,1562},{60,51}}</string> <string>{{1293,1777},{60,51}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<false/> <true/>
</dict> </dict>
<key>Stone_A_07.png</key> <key>Stone_A_07.png</key>
<dict> <dict>
@@ -408,9 +425,9 @@
<key>spriteSourceSize</key> <key>spriteSourceSize</key>
<string>{107,51}</string> <string>{107,51}</string>
<key>textureRect</key> <key>textureRect</key>
<string>{{1621,1809},{107,51}}</string> <string>{{1947,1},{107,51}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<false/> <true/>
</dict> </dict>
<key>Stone_B_01.png</key> <key>Stone_B_01.png</key>
<dict> <dict>
@@ -425,7 +442,7 @@
<key>spriteSourceSize</key> <key>spriteSourceSize</key>
<string>{68,70}</string> <string>{68,70}</string>
<key>textureRect</key> <key>textureRect</key>
<string>{{1519,1865},{68,70}}</string> <string>{{1935,1441},{68,70}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<false/> <false/>
</dict> </dict>
@@ -442,7 +459,7 @@
<key>spriteSourceSize</key> <key>spriteSourceSize</key>
<string>{66,45}</string> <string>{66,45}</string>
<key>textureRect</key> <key>textureRect</key>
<string>{{1777,1679},{66,45}}</string> <string>{{1415,1894},{66,45}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<false/> <false/>
</dict> </dict>
@@ -459,7 +476,7 @@
<key>spriteSourceSize</key> <key>spriteSourceSize</key>
<string>{35,22}</string> <string>{35,22}</string>
<key>textureRect</key> <key>textureRect</key>
<string>{{1730,1809},{35,22}}</string> <string>{{1293,1669},{35,22}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<false/> <false/>
</dict> </dict>
@@ -476,9 +493,9 @@
<key>spriteSourceSize</key> <key>spriteSourceSize</key>
<string>{71,62}</string> <string>{71,62}</string>
<key>textureRect</key> <key>textureRect</key>
<string>{{1777,1562},{71,62}}</string> <string>{{1899,1777},{71,62}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<false/> <true/>
</dict> </dict>
<key>Stone_B_05.png</key> <key>Stone_B_05.png</key>
<dict> <dict>
@@ -493,7 +510,7 @@
<key>spriteSourceSize</key> <key>spriteSourceSize</key>
<string>{84,43}</string> <string>{84,43}</string>
<key>textureRect</key> <key>textureRect</key>
<string>{{1967,1095},{84,43}}</string> <string>{{1879,1543},{84,43}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<true/> <true/>
</dict> </dict>
@@ -510,7 +527,7 @@
<key>spriteSourceSize</key> <key>spriteSourceSize</key>
<string>{31,15}</string> <string>{31,15}</string>
<key>textureRect</key> <key>textureRect</key>
<string>{{1519,1937},{31,15}}</string> <string>{{1947,110},{31,15}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<false/> <false/>
</dict> </dict>
@@ -527,7 +544,41 @@
<key>spriteSourceSize</key> <key>spriteSourceSize</key>
<string>{44,16}</string> <string>{44,16}</string>
<key>textureRect</key> <key>textureRect</key>
<string>{{1,1911},{44,16}}</string> <string>{{1,1931},{44,16}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Title_01_NoDeco_Orange.Png</key>
<dict>
<key>aliases</key>
<array/>
<key>anchor</key>
<string>{0.5,0.5}</string>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{273,115}</string>
<key>spriteSourceSize</key>
<string>{273,115}</string>
<key>textureRect</key>
<string>{{1349,1777},{273,115}}</string>
<key>textureRotated</key>
<false/>
</dict>
<key>Title_01_NoDeco_Tangerine.Png</key>
<dict>
<key>aliases</key>
<array/>
<key>anchor</key>
<string>{0.5,0.5}</string>
<key>spriteOffset</key>
<string>{0,0}</string>
<key>spriteSize</key>
<string>{273,115}</string>
<key>spriteSourceSize</key>
<string>{273,115}</string>
<key>textureRect</key>
<string>{{1624,1777},{273,115}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<false/> <false/>
</dict> </dict>
@@ -546,7 +597,7 @@
<key>textureRect</key> <key>textureRect</key>
<string>{{1349,1},{672,378}}</string> <string>{{1349,1},{672,378}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<false/> <true/>
</dict> </dict>
<key>l2_mountains.png</key> <key>l2_mountains.png</key>
<dict> <dict>
@@ -578,9 +629,9 @@
<key>spriteSourceSize</key> <key>spriteSourceSize</key>
<string>{672,378}</string> <string>{672,378}</string>
<key>textureRect</key> <key>textureRect</key>
<string>{{1519,1279},{584,100}}</string> <string>{{1349,1441},{584,100}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<true/> <false/>
</dict> </dict>
<key>l4_bg-ground01.png</key> <key>l4_bg-ground01.png</key>
<dict> <dict>
@@ -595,9 +646,9 @@
<key>spriteSourceSize</key> <key>spriteSourceSize</key>
<string>{672,378}</string> <string>{672,378}</string>
<key>textureRect</key> <key>textureRect</key>
<string>{{675,1193},{672,158}}</string> <string>{{1349,675},{672,158}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<false/> <true/>
</dict> </dict>
<key>l5_bg-ground02.png</key> <key>l5_bg-ground02.png</key>
<dict> <dict>
@@ -612,7 +663,7 @@
<key>spriteSourceSize</key> <key>spriteSourceSize</key>
<string>{672,378}</string> <string>{672,378}</string>
<key>textureRect</key> <key>textureRect</key>
<string>{{1349,781},{672,158}}</string> <string>{{1,1771},{672,158}}</string>
<key>textureRotated</key> <key>textureRotated</key>
<false/> <false/>
</dict> </dict>
@@ -633,23 +684,6 @@
<key>textureRotated</key> <key>textureRotated</key>
<false/> <false/>
</dict> </dict>
<key>logo2.png</key>
<dict>
<key>aliases</key>
<array/>
<key>anchor</key>
<string>{0.5,0.5}</string>
<key>spriteOffset</key>
<string>{1,2}</string>
<key>spriteSize</key>
<string>{281,231}</string>
<key>spriteSourceSize</key>
<string>{307,307}</string>
<key>textureRect</key>
<string>{{1777,1279},{281,231}}</string>
<key>textureRotated</key>
<true/>
</dict>
</dict> </dict>
<key>metadata</key> <key>metadata</key>
<dict> <dict>
@@ -662,9 +696,9 @@
<key>realTextureFileName</key> <key>realTextureFileName</key>
<string>mps.png</string> <string>mps.png</string>
<key>size</key> <key>size</key>
<string>{2022,1953}</string> <string>{2012,1952}</string>
<key>smartupdate</key> <key>smartupdate</key>
<string>$TexturePacker:SmartUpdate:c995e79e2727f3d5b64d2e4345b903e7:ff13e6153e38a1ee043318ccbb0a835f:4c0e3901f0d5fcb2cf0cd4dcba1c7f8b$</string> <string>$TexturePacker:SmartUpdate:afc599cf42d3db8475edd4bf42d848d7:62891583945cafa92fc112c0ecd848ee:4c0e3901f0d5fcb2cf0cd4dcba1c7f8b$</string>
<key>textureFileName</key> <key>textureFileName</key>
<string>mps.png</string> <string>mps.png</string>
</dict> </dict>

View File

@@ -7,6 +7,52 @@
".json" ".json"
], ],
"subMetas": { "subMetas": {
"57674": {
"importer": "sprite-frame",
"uuid": "81af97ed-7940-45e6-91a1-21bd0df1a343@57674",
"displayName": "",
"id": "57674",
"name": "Icon_Battle",
"userData": {
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 1349,
"trimY": 1894,
"width": 64,
"height": 57,
"rawWidth": 64,
"rawHeight": 57,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [],
"indexes": [],
"uv": [],
"nuv": [],
"minPos": [],
"maxPos": []
},
"isUuid": true,
"imageUuidOrDatabaseUri": "ca2b26a5-8d54-49ec-bdaf-e9f777afc9cb@6c48a",
"atlasUuid": "81af97ed-7940-45e6-91a1-21bd0df1a343",
"trimType": "auto"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"58094": { "58094": {
"importer": "sprite-frame", "importer": "sprite-frame",
"uuid": "81af97ed-7940-45e6-91a1-21bd0df1a343@58094", "uuid": "81af97ed-7940-45e6-91a1-21bd0df1a343@58094",
@@ -53,6 +99,98 @@
], ],
"subMetas": {} "subMetas": {}
}, },
"63222": {
"importer": "sprite-frame",
"uuid": "81af97ed-7940-45e6-91a1-21bd0df1a343@63222",
"displayName": "",
"id": "63222",
"name": "Title_01_NoDeco_Tangerine",
"userData": {
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 1624,
"trimY": 1777,
"width": 273,
"height": 115,
"rawWidth": 273,
"rawHeight": 115,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [],
"indexes": [],
"uv": [],
"nuv": [],
"minPos": [],
"maxPos": []
},
"isUuid": true,
"imageUuidOrDatabaseUri": "ca2b26a5-8d54-49ec-bdaf-e9f777afc9cb@6c48a",
"atlasUuid": "81af97ed-7940-45e6-91a1-21bd0df1a343",
"trimType": "auto"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"86850": {
"importer": "sprite-frame",
"uuid": "81af97ed-7940-45e6-91a1-21bd0df1a343@86850",
"displayName": "",
"id": "86850",
"name": "Title_01_NoDeco_Orange",
"userData": {
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 1349,
"trimY": 1777,
"width": 273,
"height": 115,
"rawWidth": 273,
"rawHeight": 115,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 135,
"borderRight": 138,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [],
"indexes": [],
"uv": [],
"nuv": [],
"minPos": [],
"maxPos": []
},
"isUuid": true,
"imageUuidOrDatabaseUri": "ca2b26a5-8d54-49ec-bdaf-e9f777afc9cb@6c48a",
"atlasUuid": "81af97ed-7940-45e6-91a1-21bd0df1a343",
"trimType": "auto"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"4f746": { "4f746": {
"importer": "sprite-frame", "importer": "sprite-frame",
"uuid": "81af97ed-7940-45e6-91a1-21bd0df1a343@4f746", "uuid": "81af97ed-7940-45e6-91a1-21bd0df1a343@4f746",
@@ -110,8 +248,8 @@
"rotated": false, "rotated": false,
"offsetX": -4, "offsetX": -4,
"offsetY": 82, "offsetY": 82,
"trimX": 1349, "trimX": 675,
"trimY": 1095, "trimY": 1669,
"width": 616, "width": 616,
"height": 182, "height": 182,
"rawWidth": 672, "rawWidth": 672,
@@ -157,7 +295,7 @@
"offsetX": 0, "offsetX": 0,
"offsetY": -3, "offsetY": -3,
"trimX": 675, "trimX": 675,
"trimY": 1775, "trimY": 1853,
"width": 672, "width": 672,
"height": 92, "height": 92,
"rawWidth": 672, "rawWidth": 672,
@@ -199,11 +337,11 @@
"name": "0l4_clouds02", "name": "0l4_clouds02",
"userData": { "userData": {
"trimThreshold": 1, "trimThreshold": 1,
"rotated": false, "rotated": true,
"offsetX": 0, "offsetX": 0,
"offsetY": 122, "offsetY": 122,
"trimX": 675, "trimX": 1931,
"trimY": 1869, "trimY": 675,
"width": 672, "width": 672,
"height": 76, "height": 76,
"rawWidth": 672, "rawWidth": 672,
@@ -294,8 +432,8 @@
"rotated": false, "rotated": false,
"offsetX": 0, "offsetX": 0,
"offsetY": -108, "offsetY": -108,
"trimX": 1, "trimX": 675,
"trimY": 1589, "trimY": 1193,
"width": 672, "width": 672,
"height": 162, "height": 162,
"rawWidth": 672, "rawWidth": 672,
@@ -337,11 +475,11 @@
"name": "0l7_ground02", "name": "0l7_ground02",
"userData": { "userData": {
"trimThreshold": 1, "trimThreshold": 1,
"rotated": false, "rotated": true,
"offsetX": 0, "offsetX": 0,
"offsetY": -120, "offsetY": -120,
"trimX": 675, "trimX": 1663,
"trimY": 1507, "trimY": 675,
"width": 672, "width": 672,
"height": 138, "height": 138,
"rawWidth": 672, "rawWidth": 672,
@@ -383,11 +521,11 @@
"name": "0l8_ground", "name": "0l8_ground",
"userData": { "userData": {
"trimThreshold": 1, "trimThreshold": 1,
"rotated": false, "rotated": true,
"offsetX": 0, "offsetX": 0,
"offsetY": -81, "offsetY": -81,
"trimX": 1349, "trimX": 1729,
"trimY": 381, "trimY": 1,
"width": 672, "width": 672,
"height": 216, "height": 216,
"rawWidth": 672, "rawWidth": 672,
@@ -613,11 +751,11 @@
"name": "1l5_crystals", "name": "1l5_crystals",
"userData": { "userData": {
"trimThreshold": 1, "trimThreshold": 1,
"rotated": true, "rotated": false,
"offsetX": -2, "offsetX": -2,
"offsetY": -85, "offsetY": -85,
"trimX": 1349, "trimX": 1349,
"trimY": 1279, "trimY": 1349,
"width": 662, "width": 662,
"height": 90, "height": 90,
"rawWidth": 672, "rawWidth": 672,
@@ -659,11 +797,11 @@
"name": "1l6_ground", "name": "1l6_ground",
"userData": { "userData": {
"trimThreshold": 1, "trimThreshold": 1,
"rotated": true, "rotated": false,
"offsetX": 0, "offsetX": 0,
"offsetY": -151, "offsetY": -151,
"trimX": 1441, "trimX": 1293,
"trimY": 1279, "trimY": 1699,
"width": 672, "width": 672,
"height": 76, "height": 76,
"rawWidth": 672, "rawWidth": 672,
@@ -705,11 +843,11 @@
"name": "3l2_clouds", "name": "3l2_clouds",
"userData": { "userData": {
"trimThreshold": 1, "trimThreshold": 1,
"rotated": false, "rotated": true,
"offsetX": 0, "offsetX": 0,
"offsetY": -48, "offsetY": -48,
"trimX": 675, "trimX": 1509,
"trimY": 1353, "trimY": 675,
"width": 672, "width": 672,
"height": 152, "height": 152,
"rawWidth": 672, "rawWidth": 672,
@@ -751,11 +889,11 @@
"name": "3l3_pyramid", "name": "3l3_pyramid",
"userData": { "userData": {
"trimThreshold": 1, "trimThreshold": 1,
"rotated": true, "rotated": false,
"offsetX": 2, "offsetX": 2,
"offsetY": -7, "offsetY": -7,
"trimX": 1621, "trimX": 1349,
"trimY": 1279, "trimY": 1543,
"width": 528, "width": 528,
"height": 154, "height": 154,
"rawWidth": 672, "rawWidth": 672,
@@ -800,8 +938,8 @@
"rotated": false, "rotated": false,
"offsetX": 0, "offsetX": 0,
"offsetY": -111, "offsetY": -111,
"trimX": 1, "trimX": 675,
"trimY": 1753, "trimY": 1357,
"width": 672, "width": 672,
"height": 156, "height": 156,
"rawWidth": 672, "rawWidth": 672,
@@ -846,8 +984,8 @@
"rotated": false, "rotated": false,
"offsetX": 0, "offsetX": 0,
"offsetY": -99, "offsetY": -99,
"trimX": 1349, "trimX": 1,
"trimY": 599, "trimY": 1589,
"width": 672, "width": 672,
"height": 180, "height": 180,
"rawWidth": 672, "rawWidth": 672,
@@ -889,11 +1027,11 @@
"name": "3l6_bg-ground03", "name": "3l6_bg-ground03",
"userData": { "userData": {
"trimThreshold": 1, "trimThreshold": 1,
"rotated": false, "rotated": true,
"offsetX": 0, "offsetX": 0,
"offsetY": -126, "offsetY": -126,
"trimX": 675, "trimX": 1803,
"trimY": 1647, "trimY": 675,
"width": 672, "width": 672,
"height": 126, "height": 126,
"rawWidth": 672, "rawWidth": 672,
@@ -938,8 +1076,8 @@
"rotated": false, "rotated": false,
"offsetX": 0, "offsetX": 0,
"offsetY": -113, "offsetY": -113,
"trimX": 1349, "trimX": 675,
"trimY": 941, "trimY": 1515,
"width": 672, "width": 672,
"height": 152, "height": 152,
"rawWidth": 672, "rawWidth": 672,
@@ -981,11 +1119,11 @@
"name": "Stone_A_01", "name": "Stone_A_01",
"userData": { "userData": {
"trimThreshold": 1, "trimThreshold": 1,
"rotated": false, "rotated": true,
"offsetX": 0, "offsetX": 0,
"offsetY": 0, "offsetY": 0,
"trimX": 1777, "trimX": 1879,
"trimY": 1626, "trimY": 1629,
"width": 68, "width": 68,
"height": 51, "height": 51,
"rawWidth": 68, "rawWidth": 68,
@@ -1027,11 +1165,11 @@
"name": "Stone_A_04", "name": "Stone_A_04",
"userData": { "userData": {
"trimThreshold": 1, "trimThreshold": 1,
"rotated": false, "rotated": true,
"offsetX": 0, "offsetX": 0,
"offsetY": 0, "offsetY": 0,
"trimX": 1850, "trimX": 1293,
"trimY": 1562, "trimY": 1777,
"width": 60, "width": 60,
"height": 51, "height": 51,
"rawWidth": 60, "rawWidth": 60,
@@ -1073,11 +1211,11 @@
"name": "Stone_A_07", "name": "Stone_A_07",
"userData": { "userData": {
"trimThreshold": 1, "trimThreshold": 1,
"rotated": false, "rotated": true,
"offsetX": 0, "offsetX": 0,
"offsetY": 0, "offsetY": 0,
"trimX": 1621, "trimX": 1947,
"trimY": 1809, "trimY": 1,
"width": 107, "width": 107,
"height": 51, "height": 51,
"rawWidth": 107, "rawWidth": 107,
@@ -1122,8 +1260,8 @@
"rotated": false, "rotated": false,
"offsetX": 0, "offsetX": 0,
"offsetY": 0, "offsetY": 0,
"trimX": 1519, "trimX": 1935,
"trimY": 1865, "trimY": 1441,
"width": 68, "width": 68,
"height": 70, "height": 70,
"rawWidth": 68, "rawWidth": 68,
@@ -1168,8 +1306,8 @@
"rotated": false, "rotated": false,
"offsetX": 0, "offsetX": 0,
"offsetY": 0, "offsetY": 0,
"trimX": 1777, "trimX": 1415,
"trimY": 1679, "trimY": 1894,
"width": 66, "width": 66,
"height": 45, "height": 45,
"rawWidth": 66, "rawWidth": 66,
@@ -1214,8 +1352,8 @@
"rotated": false, "rotated": false,
"offsetX": 0, "offsetX": 0,
"offsetY": 0, "offsetY": 0,
"trimX": 1730, "trimX": 1293,
"trimY": 1809, "trimY": 1669,
"width": 35, "width": 35,
"height": 22, "height": 22,
"rawWidth": 35, "rawWidth": 35,
@@ -1257,11 +1395,11 @@
"name": "Stone_B_04", "name": "Stone_B_04",
"userData": { "userData": {
"trimThreshold": 1, "trimThreshold": 1,
"rotated": false, "rotated": true,
"offsetX": 0, "offsetX": 0,
"offsetY": 0, "offsetY": 0,
"trimX": 1777, "trimX": 1899,
"trimY": 1562, "trimY": 1777,
"width": 71, "width": 71,
"height": 62, "height": 62,
"rawWidth": 71, "rawWidth": 71,
@@ -1306,8 +1444,8 @@
"rotated": true, "rotated": true,
"offsetX": 0, "offsetX": 0,
"offsetY": 0, "offsetY": 0,
"trimX": 1967, "trimX": 1879,
"trimY": 1095, "trimY": 1543,
"width": 84, "width": 84,
"height": 43, "height": 43,
"rawWidth": 84, "rawWidth": 84,
@@ -1352,8 +1490,8 @@
"rotated": false, "rotated": false,
"offsetX": 0, "offsetX": 0,
"offsetY": 0, "offsetY": 0,
"trimX": 1519, "trimX": 1947,
"trimY": 1937, "trimY": 110,
"width": 31, "width": 31,
"height": 15, "height": 15,
"rawWidth": 31, "rawWidth": 31,
@@ -1399,7 +1537,7 @@
"offsetX": 0, "offsetX": 0,
"offsetY": 0, "offsetY": 0,
"trimX": 1, "trimX": 1,
"trimY": 1911, "trimY": 1931,
"width": 44, "width": 44,
"height": 16, "height": 16,
"rawWidth": 44, "rawWidth": 44,
@@ -1441,7 +1579,7 @@
"name": "l1_sky", "name": "l1_sky",
"userData": { "userData": {
"trimThreshold": 1, "trimThreshold": 1,
"rotated": false, "rotated": true,
"offsetX": 0, "offsetX": 0,
"offsetY": 0, "offsetY": 0,
"trimX": 1349, "trimX": 1349,
@@ -1533,11 +1671,11 @@
"name": "l3_clouds", "name": "l3_clouds",
"userData": { "userData": {
"trimThreshold": 1, "trimThreshold": 1,
"rotated": true, "rotated": false,
"offsetX": -6, "offsetX": -6,
"offsetY": 89, "offsetY": 89,
"trimX": 1519, "trimX": 1349,
"trimY": 1279, "trimY": 1441,
"width": 584, "width": 584,
"height": 100, "height": 100,
"rawWidth": 672, "rawWidth": 672,
@@ -1579,11 +1717,11 @@
"name": "l4_bg-ground01", "name": "l4_bg-ground01",
"userData": { "userData": {
"trimThreshold": 1, "trimThreshold": 1,
"rotated": false, "rotated": true,
"offsetX": 0, "offsetX": 0,
"offsetY": -110, "offsetY": -110,
"trimX": 675, "trimX": 1349,
"trimY": 1193, "trimY": 675,
"width": 672, "width": 672,
"height": 158, "height": 158,
"rawWidth": 672, "rawWidth": 672,
@@ -1628,8 +1766,8 @@
"rotated": false, "rotated": false,
"offsetX": 0, "offsetX": 0,
"offsetY": -110, "offsetY": -110,
"trimX": 1349, "trimX": 1,
"trimY": 781, "trimY": 1771,
"width": 672, "width": 672,
"height": 158, "height": 158,
"rawWidth": 672, "rawWidth": 672,
@@ -1708,52 +1846,6 @@
".json" ".json"
], ],
"subMetas": {} "subMetas": {}
},
"14c74": {
"importer": "sprite-frame",
"uuid": "81af97ed-7940-45e6-91a1-21bd0df1a343@14c74",
"displayName": "",
"id": "14c74",
"name": "logo2",
"userData": {
"trimThreshold": 1,
"rotated": true,
"offsetX": 1,
"offsetY": 2,
"trimX": 1777,
"trimY": 1279,
"width": 281,
"height": 231,
"rawWidth": 307,
"rawHeight": 307,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [],
"indexes": [],
"uv": [],
"nuv": [],
"minPos": [],
"maxPos": []
},
"isUuid": true,
"imageUuidOrDatabaseUri": "ca2b26a5-8d54-49ec-bdaf-e9f777afc9cb@6c48a",
"atlasUuid": "81af97ed-7940-45e6-91a1-21bd0df1a343",
"trimType": "auto"
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
} }
}, },
"userData": { "userData": {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 469 KiB

After

Width:  |  Height:  |  Size: 396 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -221,7 +221,7 @@ Content-Type: application/json
} }
``` ```
> **注意**:`PUT` 是浅合并。若修改 `skills` 数组,必须传入**完整的新数组**(不能只传被修改的技能对象)。 > **注意**:`PUT` 是**顶层字段浅合并**。若修改 `skills` 数组,必须传入**完整的新数组**(不能只传被修改的技能对象)。若只需改某个技能的局部字段,请用 `PATCH /api/heroes/:uuid/skills/:skillUuid`(见 §4.7)。
### 4.6 删除英雄 ### 4.6 删除英雄
@@ -229,6 +229,41 @@ Content-Type: application/json
DELETE /api/heroes/5011 DELETE /api/heroes/5011
``` ```
### 4.7 技能级局部更新(推荐智能体使用)
当只需要修改某个技能的局部字段(如调整 lv8 档位的 ap 值)时,使用技能级 PATCH,避免整表替换 `skills` 数组。
**合并规则**:
- `name`/`cd`/`cdExpr`/`desc`:存在则直接覆盖
- `overrides`:与现有 `overrides` **浅合并**(不是替换)
- `lv_entries`:按 `lv` 合并——同 `lv` 更新该档(`overrides` 浅合并),不同 `lv` 新增
```http
PATCH /api/heroes/5011/skills/6200
Content-Type: application/json
{
"overrides": { "ap": 280 },
"lv_entries": [
{ "lv": 8, "overrides": { "ap": 320 } },
{ "lv": 20, "s_lv": 4, "overrides": { "ap": 500 }, "desc": "造成{ap}%伤害" }
]
}
```
**效果**:
- 基础 `overrides.ap` 从 250 变为 280
- `lv_entries` 中 `lv:8` 档的 `overrides.ap` 从 300 变为 320(其他字段保留)
- `lv_entries` 中新增 `lv:20` 档
**对比:三种修改方式的选择**
| 场景 | 推荐接口 | 原因 |
|---|---|---|
| 只改英雄名/稀有度/statBase 等顶层字段 | `PUT /api/heroes/:uuid` | 简单直接,不涉及 skills |
| 改某个技能的 name/cd/desc/overrides 或某一档 lv_entry | `PATCH /api/heroes/:uuid/skills/:skillUuid` | 避免整表替换 skills,最安全 |
| 新增/删除技能、改技能 uuid、大规模重构 | `POST /api/heroes/:uuid`(全量覆盖) | 结构变动大,整表替换更清晰 |
--- ---
## 5. 智能体操作流程(推荐) ## 5. 智能体操作流程(推荐)
@@ -238,7 +273,8 @@ DELETE /api/heroes/5011
3. **构造英雄对象**:严格遵循 §3 结构,空组写 `{}`,空数组写 `[]` 3. **构造英雄对象**:严格遵循 §3 结构,空组写 `{}`,空数组写 `[]`
4. **提交**: 4. **提交**:
- 新增/覆盖:`POST /api/heroes/:uuid` - 新增/覆盖:`POST /api/heroes/:uuid`
- 局部修改:`PUT /api/heroes/:uuid`(传完整修改字段) - 顶层字段局部修改:`PUT /api/heroes/:uuid`
- 技能级局部修改:`PATCH /api/heroes/:uuid/skills/:skillUuid`
5. **验证**:`GET /api/heroes/:uuid` 确认数据已写入 5. **验证**:`GET /api/heroes/:uuid` 确认数据已写入
6. **(开发版)应用**:`POST /api/apply` 将 heroes.json 渲染进 `heroSet.ts`(线上设计版无此权限) 6. **(开发版)应用**:`POST /api/apply` 将 heroes.json 渲染进 `heroSet.ts`(线上设计版无此权限)