提交地图

This commit is contained in:
PC-20230316NUNE\Administrator 2023-12-23 19:00:53 +08:00
parent d66f08455e
commit 516d520c5e
38 changed files with 3020 additions and 287 deletions

Binary file not shown.

Binary file not shown.

View File

@ -1,10 +0,0 @@
[
{
"id": 1,
"data": {
"level": 1,
"petLevel": 0,
"oddsId": 1
}
}
]

View File

@ -0,0 +1,972 @@
[
{
"id": 1,
"data": {
"level": 1,
"childLevel": 1,
"petLevel": 0,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 2,
"data": {
"level": 1,
"childLevel": 2,
"petLevel": 0,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 3,
"data": {
"level": 1,
"childLevel": 3,
"petLevel": 0,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 4,
"data": {
"level": 1,
"childLevel": 4,
"petLevel": 0,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 5,
"data": {
"level": 1,
"childLevel": 5,
"petLevel": 0,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 6,
"data": {
"level": 1,
"childLevel": 6,
"petLevel": 0,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 7,
"data": {
"level": 2,
"childLevel": 1,
"petLevel": 1,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 8,
"data": {
"level": 2,
"childLevel": 2,
"petLevel": 1,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 9,
"data": {
"level": 2,
"childLevel": 3,
"petLevel": 1,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 10,
"data": {
"level": 2,
"childLevel": 4,
"petLevel": 1,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 11,
"data": {
"level": 2,
"childLevel": 5,
"petLevel": 1,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 12,
"data": {
"level": 2,
"childLevel": 6,
"petLevel": 1,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 13,
"data": {
"level": 3,
"childLevel": 1,
"petLevel": 2,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 14,
"data": {
"level": 3,
"childLevel": 2,
"petLevel": 2,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 15,
"data": {
"level": 3,
"childLevel": 3,
"petLevel": 2,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 16,
"data": {
"level": 3,
"childLevel": 4,
"petLevel": 2,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 17,
"data": {
"level": 3,
"childLevel": 5,
"petLevel": 2,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 18,
"data": {
"level": 3,
"childLevel": 6,
"petLevel": 2,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 19,
"data": {
"level": 4,
"childLevel": 1,
"petLevel": 3,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 20,
"data": {
"level": 4,
"childLevel": 2,
"petLevel": 3,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 21,
"data": {
"level": 4,
"childLevel": 3,
"petLevel": 3,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 22,
"data": {
"level": 4,
"childLevel": 4,
"petLevel": 3,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 23,
"data": {
"level": 4,
"childLevel": 5,
"petLevel": 3,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 24,
"data": {
"level": 4,
"childLevel": 6,
"petLevel": 3,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 25,
"data": {
"level": 5,
"childLevel": 1,
"petLevel": 4,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 26,
"data": {
"level": 5,
"childLevel": 2,
"petLevel": 4,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 27,
"data": {
"level": 5,
"childLevel": 3,
"petLevel": 4,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 28,
"data": {
"level": 5,
"childLevel": 4,
"petLevel": 4,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 29,
"data": {
"level": 5,
"childLevel": 5,
"petLevel": 4,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 30,
"data": {
"level": 5,
"childLevel": 6,
"petLevel": 4,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 31,
"data": {
"level": 6,
"childLevel": 1,
"petLevel": 5,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 32,
"data": {
"level": 6,
"childLevel": 2,
"petLevel": 5,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 33,
"data": {
"level": 6,
"childLevel": 3,
"petLevel": 5,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 34,
"data": {
"level": 6,
"childLevel": 4,
"petLevel": 5,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 35,
"data": {
"level": 6,
"childLevel": 5,
"petLevel": 5,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 36,
"data": {
"level": 6,
"childLevel": 6,
"petLevel": 5,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 37,
"data": {
"level": 7,
"childLevel": 1,
"petLevel": 6,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 38,
"data": {
"level": 7,
"childLevel": 2,
"petLevel": 6,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 39,
"data": {
"level": 7,
"childLevel": 3,
"petLevel": 6,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 40,
"data": {
"level": 7,
"childLevel": 4,
"petLevel": 6,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 41,
"data": {
"level": 7,
"childLevel": 5,
"petLevel": 6,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 42,
"data": {
"level": 7,
"childLevel": 6,
"petLevel": 6,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 43,
"data": {
"level": 8,
"childLevel": 1,
"petLevel": 7,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 44,
"data": {
"level": 8,
"childLevel": 2,
"petLevel": 7,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 45,
"data": {
"level": 8,
"childLevel": 3,
"petLevel": 7,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 46,
"data": {
"level": 8,
"childLevel": 4,
"petLevel": 7,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 47,
"data": {
"level": 8,
"childLevel": 5,
"petLevel": 7,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 48,
"data": {
"level": 8,
"childLevel": 6,
"petLevel": 7,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 49,
"data": {
"level": 9,
"childLevel": 1,
"petLevel": 8,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 50,
"data": {
"level": 9,
"childLevel": 2,
"petLevel": 8,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 51,
"data": {
"level": 9,
"childLevel": 3,
"petLevel": 8,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 52,
"data": {
"level": 9,
"childLevel": 4,
"petLevel": 8,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 53,
"data": {
"level": 9,
"childLevel": 5,
"petLevel": 8,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 54,
"data": {
"level": 9,
"childLevel": 6,
"petLevel": 8,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 55,
"data": {
"level": 10,
"childLevel": 1,
"petLevel": 9,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 56,
"data": {
"level": 10,
"childLevel": 2,
"petLevel": 9,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 57,
"data": {
"level": 10,
"childLevel": 3,
"petLevel": 9,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 58,
"data": {
"level": 10,
"childLevel": 4,
"petLevel": 9,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 59,
"data": {
"level": 10,
"childLevel": 5,
"petLevel": 9,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 60,
"data": {
"level": 10,
"childLevel": 6,
"petLevel": 9,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 61,
"data": {
"level": 11,
"childLevel": 1,
"petLevel": 10,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 62,
"data": {
"level": 11,
"childLevel": 2,
"petLevel": 10,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 63,
"data": {
"level": 11,
"childLevel": 3,
"petLevel": 10,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 64,
"data": {
"level": 11,
"childLevel": 4,
"petLevel": 10,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 65,
"data": {
"level": 11,
"childLevel": 5,
"petLevel": 10,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 66,
"data": {
"level": 11,
"childLevel": 6,
"petLevel": 10,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 67,
"data": {
"level": 12,
"childLevel": 1,
"petLevel": 11,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 68,
"data": {
"level": 12,
"childLevel": 2,
"petLevel": 11,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 69,
"data": {
"level": 12,
"childLevel": 3,
"petLevel": 11,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 70,
"data": {
"level": 12,
"childLevel": 4,
"petLevel": 11,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 71,
"data": {
"level": 12,
"childLevel": 5,
"petLevel": 11,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 72,
"data": {
"level": 12,
"childLevel": 6,
"petLevel": 11,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 73,
"data": {
"level": 13,
"childLevel": 1,
"petLevel": 12,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 74,
"data": {
"level": 13,
"childLevel": 2,
"petLevel": 12,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 75,
"data": {
"level": 13,
"childLevel": 3,
"petLevel": 12,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 76,
"data": {
"level": 13,
"childLevel": 4,
"petLevel": 12,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 77,
"data": {
"level": 13,
"childLevel": 5,
"petLevel": 12,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 78,
"data": {
"level": 13,
"childLevel": 6,
"petLevel": 12,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 79,
"data": {
"level": 14,
"childLevel": 1,
"petLevel": 13,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 80,
"data": {
"level": 14,
"childLevel": 2,
"petLevel": 13,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 81,
"data": {
"level": 14,
"childLevel": 3,
"petLevel": 13,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 82,
"data": {
"level": 14,
"childLevel": 4,
"petLevel": 13,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 83,
"data": {
"level": 14,
"childLevel": 5,
"petLevel": 13,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 84,
"data": {
"level": 14,
"childLevel": 6,
"petLevel": 13,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 85,
"data": {
"level": 15,
"childLevel": 1,
"petLevel": 14,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 86,
"data": {
"level": 15,
"childLevel": 2,
"petLevel": 14,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 87,
"data": {
"level": 15,
"childLevel": 3,
"petLevel": 14,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 88,
"data": {
"level": 15,
"childLevel": 4,
"petLevel": 14,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 89,
"data": {
"level": 15,
"childLevel": 5,
"petLevel": 14,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 90,
"data": {
"level": 15,
"childLevel": 6,
"petLevel": 14,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 91,
"data": {
"level": 16,
"childLevel": 1,
"petLevel": 15,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 92,
"data": {
"level": 16,
"childLevel": 2,
"petLevel": 15,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 93,
"data": {
"level": 16,
"childLevel": 3,
"petLevel": 15,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 94,
"data": {
"level": 16,
"childLevel": 4,
"petLevel": 15,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 95,
"data": {
"level": 16,
"childLevel": 5,
"petLevel": 15,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 96,
"data": {
"level": 16,
"childLevel": 6,
"petLevel": 15,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 97,
"data": {
"level": 17,
"childLevel": 1,
"petLevel": 16,
"petSize": 1,
"oddsId": 1
}
}
]

View File

@ -2,7 +2,7 @@
"ver": "2.0.1",
"importer": "json",
"imported": true,
"uuid": "6baeb0a2-41ee-4611-b21b-bccecaf19df3",
"uuid": "717f4b1d-3e94-4ce4-ada9-769f086d5a8c",
"files": [
".json"
],

View File

@ -9,7 +9,7 @@
10002,
10003
],
"sign": "",
"sign": "TbGOnHookMap120001",
"introduce": "新手地图在这里可以遇到可爱的宠物哦~"
},
{
@ -23,7 +23,7 @@
10006,
10007
],
"sign": "",
"sign": "TbGOnHookMap120001",
"introduce": "魔法阵 这里有魔法精灵~"
}
]

View File

@ -595,6 +595,9 @@
"__uuid__": "e989c288-5957-41c1-953c-190622651f52",
"__expectedType__": "cc.Prefab"
},
"modeCamera": {
"__id__": 15
},
"_id": ""
},
{

View File

@ -35,22 +35,25 @@
},
{
"__id__": 199
},
{
"__id__": 214
}
],
"_active": true,
"_components": [
{
"__id__": 214
"__id__": 229
},
{
"__id__": 216
"__id__": 231
},
{
"__id__": 218
"__id__": 233
}
],
"_prefab": {
"__id__": 220
"__id__": 235
},
"_lpos": {
"__type__": "cc.Vec3",
@ -4368,6 +4371,369 @@
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.Node",
"_name": "Button-002",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 1
},
"_children": [
{
"__id__": 215
}
],
"_active": true,
"_components": [
{
"__id__": 221
},
{
"__id__": 223
},
{
"__id__": 225
}
],
"_prefab": {
"__id__": 228
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 279.236,
"y": 533.93,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.Node",
"_name": "Label",
"_objFlags": 512,
"__editorExtras__": {},
"_parent": {
"__id__": 214
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 216
},
{
"__id__": 218
}
],
"_prefab": {
"__id__": 220
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 215
},
"_enabled": true,
"__prefab": {
"__id__": 217
},
"_contentSize": {
"__type__": "cc.Size",
"width": 100,
"height": 40
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "1dMX0k8ARKYLi1Iy56H0O1"
},
{
"__type__": "cc.Label",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 215
},
"_enabled": true,
"__prefab": {
"__id__": 219
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 0,
"g": 0,
"b": 0,
"a": 255
},
"_string": "下一关",
"_horizontalAlign": 1,
"_verticalAlign": 1,
"_actualFontSize": 20,
"_fontSize": 20,
"_fontFamily": "Arial",
"_lineHeight": 40,
"_overflow": 1,
"_enableWrapText": false,
"_font": null,
"_isSystemFontUsed": true,
"_spacingX": 0,
"_isItalic": false,
"_isBold": false,
"_isUnderline": false,
"_underlineHeight": 2,
"_cacheMode": 0,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "b0SEZOjSBFoam0g02qh+Di"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "d34tqTzC5HBroVsNAUv/7n",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 214
},
"_enabled": true,
"__prefab": {
"__id__": 222
},
"_contentSize": {
"__type__": "cc.Size",
"width": 100,
"height": 40
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "bbMKHWygtK+6gZdOYaV3pM"
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 214
},
"_enabled": true,
"__prefab": {
"__id__": 224
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_spriteFrame": {
"__uuid__": "20835ba4-6145-4fbc-a58a-051ce700aa3e@f9941",
"__expectedType__": "cc.SpriteFrame"
},
"_type": 1,
"_fillType": 0,
"_sizeMode": 0,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
"_useGrayscale": false,
"_atlas": null,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "beHQz9cBtOvame1aqOtqBf"
},
{
"__type__": "cc.Button",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 214
},
"_enabled": true,
"__prefab": {
"__id__": 226
},
"clickEvents": [
{
"__id__": 227
}
],
"_interactable": true,
"_transition": 2,
"_normalColor": {
"__type__": "cc.Color",
"r": 214,
"g": 214,
"b": 214,
"a": 255
},
"_hoverColor": {
"__type__": "cc.Color",
"r": 211,
"g": 211,
"b": 211,
"a": 255
},
"_pressedColor": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_disabledColor": {
"__type__": "cc.Color",
"r": 124,
"g": 124,
"b": 124,
"a": 255
},
"_normalSprite": {
"__uuid__": "20835ba4-6145-4fbc-a58a-051ce700aa3e@f9941",
"__expectedType__": "cc.SpriteFrame"
},
"_hoverSprite": {
"__uuid__": "20835ba4-6145-4fbc-a58a-051ce700aa3e@f9941",
"__expectedType__": "cc.SpriteFrame"
},
"_pressedSprite": {
"__uuid__": "544e49d6-3f05-4fa8-9a9e-091f98fc2ce8@f9941",
"__expectedType__": "cc.SpriteFrame"
},
"_disabledSprite": {
"__uuid__": "951249e0-9f16-456d-8b85-a6ca954da16b@f9941",
"__expectedType__": "cc.SpriteFrame"
},
"_duration": 0.1,
"_zoomScale": 1.2,
"_target": {
"__id__": 214
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "b5QfGzIuFMQY3VrRK8yY7x"
},
{
"__type__": "cc.ClickEvent",
"target": {
"__id__": 1
},
"component": "",
"_componentId": "b51bfKvsidNPKBbFirAFgQI",
"handler": "onClickNextLevel",
"customEventData": ""
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "17CMT1W0RGYJBXfOVnTcFL",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.UITransform",
"_name": "",
@ -4378,7 +4744,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 215
"__id__": 230
},
"_contentSize": {
"__type__": "cc.Size",
@ -4406,7 +4772,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 217
"__id__": 232
},
"_alignFlags": 45,
"_target": null,
@ -4442,7 +4808,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 219
"__id__": 234
},
"mask": false,
"maskOpcity": 80,

View File

@ -25,23 +25,23 @@
"__id__": 10
},
{
"__id__": 28
"__id__": 30
}
],
"_active": true,
"_components": [
{
"__id__": 46
},
{
"__id__": 48
},
{
"__id__": 50
},
{
"__id__": 52
},
{
"__id__": 54
}
],
"_prefab": {
"__id__": 52
"__id__": 56
},
"_lpos": {
"__type__": "cc.Vec3",
@ -161,7 +161,7 @@
"node": {
"__id__": 2
},
"_enabled": false,
"_enabled": true,
"__prefab": {
"__id__": 6
},
@ -262,9 +262,6 @@
],
"_active": true,
"_components": [
{
"__id__": 19
},
{
"__id__": 21
},
@ -273,10 +270,13 @@
},
{
"__id__": 25
},
{
"__id__": 27
}
],
"_prefab": {
"__id__": 27
"__id__": 29
},
"_lpos": {
"__type__": "cc.Vec3",
@ -326,15 +326,18 @@
},
{
"__id__": 16
},
{
"__id__": 18
}
],
"_prefab": {
"__id__": 18
"__id__": 20
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 277.5,
"y": 480,
"x": -360,
"y": 0,
"z": 0
},
"_lrot": {
@ -379,8 +382,8 @@
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
"x": 0,
"y": 0
},
"_id": ""
},
@ -469,6 +472,28 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "6dA2rok9xJt7UY+5UpcF6Y"
},
{
"__type__": "00e93M1gwFDX4OxuD8p5I6L",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 11
},
"_enabled": true,
"__prefab": {
"__id__": 19
},
"hitPrefab": {
"__uuid__": "de8f19b4-20e0-4020-ac9c-8c52f9ffffa2",
"__expectedType__": "cc.Prefab"
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "d9QAiPB5RIu6nvdocVEcW0"
},
{
"__type__": "cc.PrefabInfo",
"root": {
@ -478,8 +503,6 @@
"__id__": 0
},
"fileId": "6dxMJc0zxIEpiISGg2rCXY",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
@ -492,7 +515,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 20
"__id__": 22
},
"_contentSize": {
"__type__": "cc.Size",
@ -520,7 +543,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 22
"__id__": 24
},
"_alignFlags": 44,
"_target": null,
@ -556,7 +579,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 24
"__id__": 26
},
"_type": 0,
"_inverted": false,
@ -578,7 +601,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 26
"__id__": 28
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@ -637,26 +660,26 @@
},
"_children": [
{
"__id__": 29
"__id__": 31
}
],
"_active": true,
"_components": [
{
"__id__": 37
},
{
"__id__": 39
},
{
"__id__": 41
},
{
"__id__": 43
},
{
"__id__": 45
},
{
"__id__": 47
}
],
"_prefab": {
"__id__": 45
"__id__": 49
},
"_lpos": {
"__type__": "cc.Vec3",
@ -693,28 +716,31 @@
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 28
"__id__": 30
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 30
},
{
"__id__": 32
},
{
"__id__": 34
},
{
"__id__": 36
},
{
"__id__": 38
}
],
"_prefab": {
"__id__": 36
"__id__": 40
},
"_lpos": {
"__type__": "cc.Vec3",
"x": -277.5,
"y": 480,
"x": -915,
"y": 0,
"z": 0
},
"_lrot": {
@ -746,11 +772,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 29
"__id__": 31
},
"_enabled": true,
"__prefab": {
"__id__": 31
"__id__": 33
},
"_contentSize": {
"__type__": "cc.Size",
@ -759,8 +785,8 @@
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
"x": 0,
"y": 0
},
"_id": ""
},
@ -774,11 +800,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 29
"__id__": 31
},
"_enabled": true,
"__prefab": {
"__id__": 33
"__id__": 35
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@ -819,11 +845,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 29
"__id__": 31
},
"_enabled": true,
"__prefab": {
"__id__": 35
"__id__": 37
},
"_alignFlags": 36,
"_target": null,
@ -849,6 +875,28 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "d6TwpFoyFD5pp/1ZQKEL8o"
},
{
"__type__": "00e93M1gwFDX4OxuD8p5I6L",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 31
},
"_enabled": true,
"__prefab": {
"__id__": 39
},
"hitPrefab": {
"__uuid__": "de8f19b4-20e0-4020-ac9c-8c52f9ffffa2",
"__expectedType__": "cc.Prefab"
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "fb2ohdpgNAtoalakyUrPwu"
},
{
"__type__": "cc.PrefabInfo",
"root": {
@ -868,11 +916,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 28
"__id__": 30
},
"_enabled": true,
"__prefab": {
"__id__": 38
"__id__": 42
},
"_contentSize": {
"__type__": "cc.Size",
@ -896,11 +944,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 28
"__id__": 30
},
"_enabled": true,
"__prefab": {
"__id__": 40
"__id__": 44
},
"_alignFlags": 40,
"_target": null,
@ -932,11 +980,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 28
"__id__": 30
},
"_enabled": true,
"__prefab": {
"__id__": 42
"__id__": 46
},
"_type": 0,
"_inverted": false,
@ -954,11 +1002,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 28
"__id__": 30
},
"_enabled": true,
"__prefab": {
"__id__": 44
"__id__": 48
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@ -1017,7 +1065,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 47
"__id__": 51
},
"_contentSize": {
"__type__": "cc.Size",
@ -1045,7 +1093,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 49
"__id__": 53
},
"_alignFlags": 45,
"_target": null,
@ -1081,7 +1129,7 @@
},
"_enabled": true,
"__prefab": {
"__id__": 51
"__id__": 55
},
"mask": true,
"maskOpcity": 80,

View File

@ -28,12 +28,12 @@ import AppAction from "./AppAction";
import { Asset } from "cc";
import { Component } from "cc";
let APIPath = `http://localhost:8080`
let WsPath = `ws://localhost:8080/websocket`
// let APIPath = `http://localhost:8080`
// let WsPath = `ws://localhost:8080/websocket`
// let APIPath = `http://192.168.1.23:8080`
// let WsPath = `ws://192.168.1.23:8080/websocket`
// let APIPath = `http://192.168.0.122:8080`
// let WsPath = `ws://192.168.0.122:8080/websocket`
let APIPath = `http://192.168.0.116:8080`
let WsPath = `ws://192.168.0.116:8080/websocket`
// let APIPath = `https://api.pet.jisol.cn`
// let WsPath = `wss://api.pet.jisol.cn/websocket`

View File

@ -81,7 +81,8 @@ export default class GRoleDefault extends GRoleBase<{}>{
//监听攻击
this.fsmAnim.addEventListener(GRoleAnimEvent.Attack,this.onAttack.bind(this));
//监听死亡击飞
this.fsmAnim.addStartListener(GPetAminEnum.Fly,this.onFly.bind(this));
// this.fsmAnim.addStartListener(GPetAminEnum.Fly,this.onFly.bind(this));
this.killBack.push(this.onFly.bind(this));
}
//初始化
@ -106,7 +107,10 @@ export default class GRoleDefault extends GRoleBase<{}>{
//设置血条位置
if(this.spine){
let runtimeData = this.spine.skeletonData.getRuntimeData();
let headY = (runtimeData.height + runtimeData.y + 20) * this.spine.node.scale.x;
let height = Math.abs(runtimeData.height);
let y = Math.abs(runtimeData.y);
let x = Math.abs(this.spine.node.scale.x);
let headY = (height + y + 20) * x;
this.headInfo.setPosition(v3(this.headInfo.position.x,headY,this.headInfo.position.z))
}
@ -155,7 +159,7 @@ export default class GRoleDefault extends GRoleBase<{}>{
this.JTween(vWorld)
.to({x:vEndWorld.x},1200)
.onUpdate(pos => {
if(this.node.isValid)
if(this.node && this.node.isValid)
this.node.worldPosition = pos;
})
.start();
@ -163,7 +167,7 @@ export default class GRoleDefault extends GRoleBase<{}>{
.to({y:vEndWorld.y},1200)
.easing(JEasing.Circular.Out)
.onUpdate(pos => {
if(this.node.isValid)
if(this.node && this.node.isValid)
this.node.worldPosition = vWorld
})
.start();

View File

@ -7,7 +7,7 @@ import GBaseMode from "../GBaseMode";
import { Prefab } from "cc";
import { instantiate } from "cc";
import GRoleCGCrystal from "../base/role/CampGuardian/GRoleCGCrystal";
import { TD } from "../../App";
import { TD, app } from "../../App";
import { GTowards } from "../base/GObject";
import GRoleBase from "../base/role/GRoleBase";
import { GTactical } from "../entity/GTactical";
@ -16,6 +16,8 @@ import { TbGPetId } from "../../config/TbGPet";
import GModeTools from "./GModeTools";
import GPetAttribute from "../base/values/attribute/role/GPetAttribute";
import RandomUtil from "../../../../extensions/ngame/assets/ngame/util/RandomUtil";
import { GModeEvent } from "./GMode";
import { Camera } from "cc";
const { ccclass, property } = _decorator;
//阵营守护 角色
@ -51,6 +53,10 @@ export default class GCampGuardianMode extends GBaseMode<{},{}>{
//敌方宠物
enemyRoles: GRoleBase<{}>[] = [];
//模式相机
@property(Camera)
modeCamera:Camera;
onSyncInitSuccess(){
//生成水晶
@ -127,8 +133,8 @@ export default class GCampGuardianMode extends GBaseMode<{},{}>{
petStar:0,
petStarExp:0,
}));
// //绑定受击回调
// entity.addHitCallback(this.onHitBack.bind(this));
//绑定受击回调
entity.addHitCallback(this.onHitBack.bind(this));
this.addGObject(entity,pos);
this.getOnesRole(type).push(entity);
@ -158,6 +164,22 @@ export default class GCampGuardianMode extends GBaseMode<{},{}>{
},3000)
}
//角色受击回调
onHitBack(role:GRoleDefault,hit:number){
if(!role.get()) return;
//添加受击显示
app.event.emit(GModeEvent.HIT,{
mode:this,
role:role,
hit:hit,
world:role.v2World,
camera:this.modeCamera,
});
}
}

View File

@ -0,0 +1,17 @@
import { Vec2 } from "cc";
import GBaseMode from "../GBaseMode";
import GRoleBase from "../base/role/GRoleBase";
import { Camera } from "cc";
export interface GModeHitInfo{
mode:GBaseMode<{},{}>, //模式
role:GRoleBase<{}>, //宠物
hit:number, //受击
world:Vec2, //世界坐标
camera:Camera, //相机
}
export enum GModeEvent{
//受击通知
HIT = "ModeRenderEvent_HIT"
}

View File

@ -0,0 +1,9 @@
{
"ver": "4.0.23",
"importer": "typescript",
"imported": true,
"uuid": "b9fffb62-4b14-48cb-85fe-51ab780f49c0",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@ -15,7 +15,7 @@ import { TD, app } from "../../App";
import { v3 } from "cc";
import { v2 } from "cc";
import GFSMOnHookMode from "./OnHook/GFSMOnHookMode";
import { TB } from "../../config/data/schema";
import { TB, TbGEntity } from "../../config/data/schema";
import PlayerTacticalData, { PlayerTacticalEvent } from "../../data/PlayerTacticalData";
import GRoleOnHookPlayerExpand from "../base/role/expand/OnHook/GRoleOnHookPlayerExpand";
import PlayerPetData from "../../data/PlayerPetData";
@ -23,10 +23,10 @@ import { GUI } from "../../ui/UIConfig";
import { GOnHookPet, GOnHookPets } from "../../../../extensions/ngame/assets/ngame/message/proto";
import GOnHookManager, { GOnHookManagerEvent } from "../../manager/battle/mode/GOnHookManager";
import GRoleOnHookCreepsExpand from "../base/role/expand/OnHook/GRoleOnHookCreepsExpand";
import { ModeRenderEvent } from "../../ui/Consts/Game/ModeRender";
import GPetAttribute from "../base/values/attribute/role/GPetAttribute";
import GDefaultMode from "./default/GDefaultMode";
import GOnHookData from "../../data/GOnHookData";
import { GModeEvent, GModeHitInfo } from "./GMode";
const { ccclass, property } = _decorator;
//挂机模式状态
@ -262,7 +262,7 @@ export default class GOnHookMode extends GDefaultMode<{},{}>{
petId:0,
petPlayerId:0,
petTbId:creeps.petTbId,
petLevel:0,
petLevel:creeps.petLevel,
petStar:0,
petStarExp:0,
}));
@ -357,7 +357,13 @@ export default class GOnHookMode extends GDefaultMode<{},{}>{
//获取敌人
let creeps = GOnHookManager.getIns().getNextCreeps();
if(!creeps) return; //没有获取到野怪则返回
this.onGenCreeps(2,creeps);
let sign = TD.TbGOnHookMaps.get(GOnHookData.getIns().info.onHookMap).sign;
let table:{data:TbGEntity.TOnHookLevel} = TD[sign].get(GOnHookData.getIns().info.levelId);
for (let index = 0; index < table.data.petSize; index++) {
this.onGenCreeps(index + 1,creeps);
}
// this.enemyInfo.roles.forEach((info,index) => this.onGenRole(GOnHookModePlayerEnum.ENEMY,index + 1,info));
}
@ -385,7 +391,13 @@ export default class GOnHookMode extends GDefaultMode<{},{}>{
if(!role.get()) return;
//添加受击显示
app.event.emit(ModeRenderEvent.HIT,role.v2World.clone(),hit);
app.event.emit(GModeEvent.HIT,{
mode:this,
role:role,
hit:hit,
world:role.v2World,
camera:this.camera,
});
}

View File

@ -11,10 +11,10 @@ import { TB } from "../../config/data/schema";
import JNFrameTime from "../../../../extensions/ngame/assets/ngame/sync/frame/game/time/JNFrameTime";
import GBattleModeManager from "../GBattleModeManager";
import { app, TD } from "../../App";
import { ModeRenderEvent } from "../../ui/Consts/Game/ModeRender";
import { GPVPStart } from "../../action/PVPAction";
import { PlayerPetOV } from "../../consts/API";
import GPetAttribute from "../base/values/attribute/role/GPetAttribute";
import { GModeEvent } from "./GMode";
const { ccclass, property } = _decorator;
//PVP 角色
@ -241,7 +241,13 @@ export default class GPVPMode extends GBaseMode<{},GPVPStart>{
if(!role.get()) return;
//添加受击显示
app.event.emit(ModeRenderEvent.HIT,role.v2World.clone(),hit);
app.event.emit(GModeEvent.HIT,{
mode:this,
role:role,
hit:hit,
world:role.v2World,
camera:this.camera,
});
}

View File

@ -589,7 +589,7 @@ export class TbGOnHookMaps {
export namespace TB {
export class TbGOnHookMap1 {
export class TbGOnHookMap120001 {
constructor(_json_: any) {
if (_json_.id === undefined) { throw new Error() }
@ -624,8 +624,12 @@ export class TOnHookLevel {
constructor(_json_: any) {
if (_json_.level === undefined) { throw new Error() }
this.level = _json_.level
if (_json_.childLevel === undefined) { throw new Error() }
this.childLevel = _json_.childLevel
if (_json_.petLevel === undefined) { throw new Error() }
this.petLevel = _json_.petLevel
if (_json_.petSize === undefined) { throw new Error() }
this.petSize = _json_.petSize
if (_json_.oddsId === undefined) { throw new Error() }
this.oddsId = _json_.oddsId
}
@ -634,10 +638,18 @@ export class TOnHookLevel {
*
*/
readonly level: number
/**
*
*/
readonly childLevel: number
/**
*
*/
readonly petLevel: number
/**
*
*/
readonly petSize: number
/**
* Id
*/
@ -1140,24 +1152,24 @@ export class TbGOnHookMaps{
export class TbGOnHookMap1{
private _dataMap: Map<number, TB.TbGOnHookMap1>
private _dataList: TB.TbGOnHookMap1[]
export class TbGOnHookMap120001{
private _dataMap: Map<number, TB.TbGOnHookMap120001>
private _dataList: TB.TbGOnHookMap120001[]
constructor(_json_: any) {
this._dataMap = new Map<number, TB.TbGOnHookMap1>()
this._dataMap = new Map<number, TB.TbGOnHookMap120001>()
this._dataList = []
for(var _json2_ of _json_) {
let _v: TB.TbGOnHookMap1
_v = new TB.TbGOnHookMap1(_json2_)
let _v: TB.TbGOnHookMap120001
_v = new TB.TbGOnHookMap120001(_json2_)
this._dataList.push(_v)
this._dataMap.set(_v.id, _v)
}
}
getDataMap(): Map<number, TB.TbGOnHookMap1> { return this._dataMap; }
getDataList(): TB.TbGOnHookMap1[] { return this._dataList; }
getDataMap(): Map<number, TB.TbGOnHookMap120001> { return this._dataMap; }
getDataList(): TB.TbGOnHookMap120001[] { return this._dataList; }
get(key: number): TB.TbGOnHookMap1 | undefined { return this._dataMap.get(key); }
get(key: number): TB.TbGOnHookMap120001 | undefined { return this._dataMap.get(key); }
resolve(tables:Tables)
{
@ -1235,8 +1247,8 @@ export class Tables {
get TbGRoleBaseAttribute(): TbGRoleBaseAttribute { return this._TbGRoleBaseAttribute;}
private _TbGOnHookMaps: TbGOnHookMaps
get TbGOnHookMaps(): TbGOnHookMaps { return this._TbGOnHookMaps;}
private _TbGOnHookMap1: TbGOnHookMap1
get TbGOnHookMap1(): TbGOnHookMap1 { return this._TbGOnHookMap1;}
private _TbGOnHookMap120001: TbGOnHookMap120001
get TbGOnHookMap120001(): TbGOnHookMap120001 { return this._TbGOnHookMap120001;}
private _TbBattleResource: TbBattleResource
get TbBattleResource(): TbBattleResource { return this._TbBattleResource;}
@ -1255,7 +1267,7 @@ export class Tables {
this._TbGAttribute = new TbGAttribute(loader('tbgattribute'))
this._TbGRoleBaseAttribute = new TbGRoleBaseAttribute(loader('tbgrolebaseattribute'))
this._TbGOnHookMaps = new TbGOnHookMaps(loader('tbgonhookmaps'))
this._TbGOnHookMap1 = new TbGOnHookMap1(loader('tbgonhookmap1'))
this._TbGOnHookMap120001 = new TbGOnHookMap120001(loader('tbgonhookmap120001'))
this._TbBattleResource = new TbBattleResource(loader('tbbattleresource'))
this._TbGGlobal.resolve(this)
@ -1272,7 +1284,7 @@ export class Tables {
this._TbGAttribute.resolve(this)
this._TbGRoleBaseAttribute.resolve(this)
this._TbGOnHookMaps.resolve(this)
this._TbGOnHookMap1.resolve(this)
this._TbGOnHookMap120001.resolve(this)
this._TbBattleResource.resolve(this)
}
}

View File

@ -7,6 +7,7 @@ export interface ModeOnHookOV{
playerId:number; //玩家Id
onHookMap:number; //当前玩家所在的地图(配置表Id)
levelId:number; //当前关卡Id
}
@ -23,5 +24,7 @@ export const GAPI = {
GOnHookCatchCreeps : async (creepId) => RData(await app.api.post(`/game/mode/onHook/onCatchCreeps/${creepId}`)) as PlayerPetOV,
//出售野怪
GOnHookSellCreeps : async (creepId) => RData(await app.api.post(`/game/mode/onHook/onSellCreeps/${creepId}`)) as boolean,
//下一关
GOnHookNextLevel : async () => RData(await app.api.post(`/game/mode/onHook/nextLevel`)) as boolean,
}

View File

@ -8,13 +8,9 @@ import { instantiate } from 'cc';
import { v3 } from 'cc';
import { ModeRenderHitText } from './ModeRenderHitText';
import { Vec2 } from 'cc';
import { GModeEvent, GModeHitInfo } from '../../../battle/modes/GMode';
const { ccclass, property } = _decorator;
export enum ModeRenderEvent{
//受击
HIT = "ModeRenderEvent_HIT"
}
@ccclass('ModeRender')
export class ModeRender extends Component {
@ -24,27 +20,27 @@ export class ModeRender extends Component {
onLoad(){
app.event.on(ModeRenderEvent.HIT,this.onHit,this);
app.event.on(GModeEvent.HIT,this.onHit,this);
}
protected onDestroy(): void {
app.event.off(ModeRenderEvent.HIT,this.onHit,this);
app.event.off(GModeEvent.HIT,this.onHit,this);
}
//受击
onHit(pos:Vec2,hit:number){
onHit(info:GModeHitInfo){
let rolePos = GData.WorldCanvas.camera.worldToScreen(v3(pos.x,pos.y));
let rolePos = info.camera.worldToScreen(v3(info.world.x,info.world.y));
let hitNode = instantiate(this.hitPrefab);
this.node.addChild(hitNode);
hitNode.position = rolePos.add(v3(0,100,0));
hitNode.getComponent(ModeRenderHitText).setText(hit);
hitNode.getComponent(ModeRenderHitText).setText(info.hit);
}

View File

@ -6,6 +6,7 @@ import GBattleModeManager, { BattleMode } from '../../battle/GBattleModeManager'
import { JNGLayerBase } from '../../components/JNComponent';
import { app } from '../../App';
import { GAction } from '../../consts/GAction';
import { GAPI } from '../../consts/GAPI';
const { ccclass, property } = _decorator;
@ccclass('MainView')
@ -60,6 +61,12 @@ export class MainView extends JNGLayerBase {
app.layer.Open(GUI.MapSelectView);
}
//点击下一关
async onClickNextLevel(){
await GAPI.GOnHookNextLevel();
app.layer.Open(GUI.Tips,{text:"下一关"});
}
}

@ -1 +1 @@
Subproject commit 3a8c35bc7bc02e22021acfc4671e9d8ffaadd87b
Subproject commit 01f3e1248ac4e0d1469e087ab84d8b04315273ff

View File

@ -6,6 +6,7 @@ option java_package = "cn.jisol.ngame.proto";
message GOnHookPet {
string key = 1; //key
int32 petTbId = 2; //Id
int32 petLevel = 3; //
}
//

View File

@ -14,14 +14,14 @@ import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
public final class TbGOnHookMap1 extends AbstractBean {
public TbGOnHookMap1(JsonObject _buf) {
public final class TbGOnHookMap120001 extends AbstractBean {
public TbGOnHookMap120001(JsonObject _buf) {
id = _buf.get("id").getAsInt();
data = cfg.TbGEntity.TOnHookLevel.deserialize(_buf.get("data").getAsJsonObject());
}
public static TbGOnHookMap1 deserialize(JsonObject _buf) {
return new cfg.TB.TbGOnHookMap1(_buf);
public static TbGOnHookMap120001 deserialize(JsonObject _buf) {
return new cfg.TB.TbGOnHookMap120001(_buf);
}
/**
@ -33,7 +33,7 @@ public final class TbGOnHookMap1 extends AbstractBean {
*/
public final cfg.TbGEntity.TOnHookLevel data;
public static final int __ID__ = 1197577712;
public static final int __ID__ = 196461379;
@Override
public int getTypeId() { return __ID__; }

View File

@ -47,8 +47,8 @@ public final class Tables
public cfg.TbGRoleBaseAttribute getTbGRoleBaseAttribute() { return _tbgrolebaseattribute; }
private final cfg.TbGOnHookMaps _tbgonhookmaps;
public cfg.TbGOnHookMaps getTbGOnHookMaps() { return _tbgonhookmaps; }
private final cfg.TbGOnHookMap1 _tbgonhookmap1;
public cfg.TbGOnHookMap1 getTbGOnHookMap1() { return _tbgonhookmap1; }
private final cfg.TbGOnHookMap120001 _tbgonhookmap120001;
public cfg.TbGOnHookMap120001 getTbGOnHookMap120001() { return _tbgonhookmap120001; }
private final cfg.TbBattleResource _tbbattleresource;
public cfg.TbBattleResource getTbBattleResource() { return _tbbattleresource; }
@ -67,7 +67,7 @@ public final class Tables
_tbgattribute = new cfg.TbGAttribute(loader.load("tbgattribute"));
_tbgrolebaseattribute = new cfg.TbGRoleBaseAttribute(loader.load("tbgrolebaseattribute"));
_tbgonhookmaps = new cfg.TbGOnHookMaps(loader.load("tbgonhookmaps"));
_tbgonhookmap1 = new cfg.TbGOnHookMap1(loader.load("tbgonhookmap1"));
_tbgonhookmap120001 = new cfg.TbGOnHookMap120001(loader.load("tbgonhookmap120001"));
_tbbattleresource = new cfg.TbBattleResource(loader.load("tbbattleresource"));
}
}

View File

@ -20,7 +20,9 @@ import com.google.gson.JsonObject;
public final class TOnHookLevel extends AbstractBean {
public TOnHookLevel(JsonObject _buf) {
level = _buf.get("level").getAsInt();
childLevel = _buf.get("childLevel").getAsInt();
petLevel = _buf.get("petLevel").getAsInt();
petSize = _buf.get("petSize").getAsInt();
oddsId = _buf.get("oddsId").getAsInt();
}
@ -32,10 +34,18 @@ public final class TOnHookLevel extends AbstractBean {
* 关卡等级
*/
public final int level;
/**
* 子关卡等级
*/
public final int childLevel;
/**
* 宠物等级
*/
public final int petLevel;
/**
* 宠物数量
*/
public final int petSize;
/**
* 概率Id
*/
@ -50,7 +60,9 @@ public final class TOnHookLevel extends AbstractBean {
public String toString() {
return "{ "
+ "(format_field_name __code_style field.name):" + level + ","
+ "(format_field_name __code_style field.name):" + childLevel + ","
+ "(format_field_name __code_style field.name):" + petLevel + ","
+ "(format_field_name __code_style field.name):" + petSize + ","
+ "(format_field_name __code_style field.name):" + oddsId + ","
+ "}";
}

View File

@ -13,25 +13,25 @@ import luban.*;
import com.google.gson.JsonElement;
public final class TbGOnHookMap1 {
private final java.util.HashMap<Integer, cfg.TB.TbGOnHookMap1> _dataMap;
private final java.util.ArrayList<cfg.TB.TbGOnHookMap1> _dataList;
public final class TbGOnHookMap120001 {
private final java.util.HashMap<Integer, cfg.TB.TbGOnHookMap120001> _dataMap;
private final java.util.ArrayList<cfg.TB.TbGOnHookMap120001> _dataList;
public TbGOnHookMap1(JsonElement _buf) {
_dataMap = new java.util.HashMap<Integer, cfg.TB.TbGOnHookMap1>();
_dataList = new java.util.ArrayList<cfg.TB.TbGOnHookMap1>();
public TbGOnHookMap120001(JsonElement _buf) {
_dataMap = new java.util.HashMap<Integer, cfg.TB.TbGOnHookMap120001>();
_dataList = new java.util.ArrayList<cfg.TB.TbGOnHookMap120001>();
for (com.google.gson.JsonElement _e_ : _buf.getAsJsonArray()) {
cfg.TB.TbGOnHookMap1 _v;
_v = cfg.TB.TbGOnHookMap1.deserialize(_e_.getAsJsonObject());
cfg.TB.TbGOnHookMap120001 _v;
_v = cfg.TB.TbGOnHookMap120001.deserialize(_e_.getAsJsonObject());
_dataList.add(_v);
_dataMap.put(_v.id, _v);
}
}
public java.util.HashMap<Integer, cfg.TB.TbGOnHookMap1> getDataMap() { return _dataMap; }
public java.util.ArrayList<cfg.TB.TbGOnHookMap1> getDataList() { return _dataList; }
public java.util.HashMap<Integer, cfg.TB.TbGOnHookMap120001> getDataMap() { return _dataMap; }
public java.util.ArrayList<cfg.TB.TbGOnHookMap120001> getDataList() { return _dataList; }
public cfg.TB.TbGOnHookMap1 get(int key) { return _dataMap.get(key); }
public cfg.TB.TbGOnHookMap120001 get(int key) { return _dataMap.get(key); }
}

View File

@ -15,6 +15,7 @@ import cn.jisol.game.proto.GOnHookMessage;
import cn.jisol.game.service.ModeOnHookService;
import cn.jisol.game.service.PlayerPetService;
import cn.jisol.game.service.ResourceService;
import cn.jisol.game.table.GTbGOnHookLevels;
import cn.jisol.game.vo.news.NewsResource;
import cn.jisol.game.vo.news.ov.ResourceUpdateOV;
import cn.jisol.ngame.util.NewsContext;
@ -92,6 +93,24 @@ public class GOnHookController {
return NewsContext.onSuccess("成功",data);
}
//下一关
@ApiImplicitParams({})
@ApiOperation(value = "下一关")
@PostMapping("/nextLevel")
public NewsContext<ModeOnHook> nextLevel(@CurrentPlayer Player player){
ModeOnHook data = this.getInfo(player).data;
//获取当前关卡Id
Integer levelId = data.getLevelId();
//获取玩家所在地图 是否有下一关关卡
GTbGOnHookLevels.GTbGOnHookLevel nextLevel = data.getGTbGOnHookLevels().get(levelId + 1);
data.getHookInfo().getMaps().put(data.getOnHookMap(),nextLevel.getId());
//保存地图
modeOnHookService.saveOrUpdate(data);
return NewsContext.onSuccess("下一关");
}
//生成野怪
@ApiImplicitParams({})
@ApiOperation(value = "生成野怪")
@ -116,6 +135,8 @@ public class GOnHookController {
ModeOnHook info = this.getInfo(player).data;
TbGOnHookMaps mapInfo = TD.DATA.getTbGOnHookMaps().get(info.getOnHookMap());
List<TbGRole> tdPets = Arrays.stream(mapInfo.petIds).mapToObj(petId -> TD.DATA.getTbGRole().get(petId)).collect(Collectors.toList());
//获取关卡信息
GTbGOnHookLevels.GTbGOnHookLevel levelInfo = info.getGTbGOnHookLevels().get(info.getLevelId());
//如果小于最大数量则生成
while (creeps.size() < max){
@ -126,6 +147,8 @@ public class GOnHookController {
.setKey(RandomUtil.randomString(8))
//随机取配置表宠物中的宠物
.setPetTbId(tdPets.get(RandomUtil.randomInt(0, tdPets.size())).id)
//设置宠物等级
.setPetLevel(levelInfo.getData().petLevel)
.build();
//添加到宠物列表中

View File

@ -1,10 +1,22 @@
package cn.jisol.game.entity.mode;
import cfg.TbGEntity.TOnHookLevel;
import cn.hutool.json.JSONUtil;
import cn.jisol.game.data.TD;
import cn.jisol.game.table.GTbGOnHookLevels;
import cn.jisol.game.table.TableUtil;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
* 玩家 无限模式(OnHook) 信息
@ -12,10 +24,48 @@ import lombok.Data;
@Builder
@Data
@TableName("`mode_on_hook`")
@NoArgsConstructor
@AllArgsConstructor
public class ModeOnHook {
@TableId(type = IdType.INPUT)
private Long playerId; //玩家Id
private Integer onHookMap; //当前玩家所在的地图(配置表Id)
private String onHookInfo; //地图信息Json
@TableField(exist = false)
private ModeOnHookInfo hookInfo; //地图信息类
@TableField(exist = false)
private Integer levelId; //当前地图Id
public String getOnHookInfo() {
if (Objects.nonNull(hookInfo)) this.onHookInfo = JSONUtil.toJsonStr(this.hookInfo);
if (Objects.isNull(this.onHookInfo)) this.onHookInfo = JSONUtil.toJsonStr(new ModeOnHookInfo());
return this.onHookInfo;
}
public ModeOnHookInfo getHookInfo(){
if(Objects.isNull(hookInfo)) this.hookInfo = JSONUtil.toBean(this.getOnHookInfo(), ModeOnHookInfo.class);
return this.hookInfo;
}
//获取当前地图类
public GTbGOnHookLevels getGTbGOnHookLevels(){
String sign = TD.DATA.getTbGOnHookMaps().get(this.getOnHookMap()).sign;
return new GTbGOnHookLevels(TableUtil.getTDObject(sign));
}
//获取当前关卡Id
public Integer getLevelId(){
//获取玩家当前地图关卡Id
Integer levelId = this.getHookInfo().getMaps().get(this.getOnHookMap());
//如果没有则默认当前地图的第一个Id
if(Objects.isNull(levelId)) {
List<GTbGOnHookLevels.GTbGOnHookLevel> dataList = this.getGTbGOnHookLevels().getDataList();
if(dataList.size() == 0) return -1;
levelId = dataList.get(0).getId();
}
return levelId;
}
}

View File

@ -0,0 +1,20 @@
package cn.jisol.game.entity.mode;
import lombok.Getter;
import lombok.Setter;
import java.util.HashMap;
import java.util.Map;
@Getter
@Setter
public class ModeOnHookInfo {
//地图关卡信息 {地图Id: 地图关卡Id}
private Map<Integer,Integer> maps;
public ModeOnHookInfo(){
maps = new HashMap<>();
}
}

View File

@ -26,7 +26,7 @@ public final class GOnHookMessage {
* <code>string key = 1;</code>
* @return The key.
*/
String getKey();
java.lang.String getKey();
/**
* <pre>
*生成宠物的key
@ -47,6 +47,16 @@ public final class GOnHookMessage {
* @return The petTbId.
*/
int getPetTbId();
/**
* <pre>
*生成宠物的等级
* </pre>
*
* <code>int32 petLevel = 3;</code>
* @return The petLevel.
*/
int getPetLevel();
}
/**
* <pre>
@ -68,14 +78,14 @@ public final class GOnHookMessage {
key_ = "";
}
@Override
@java.lang.Override
@SuppressWarnings({"unused"})
protected Object newInstance(
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new GOnHookPet();
}
@Override
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
@ -86,7 +96,7 @@ public final class GOnHookMessage {
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new NullPointerException();
throw new java.lang.NullPointerException();
}
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
@ -99,7 +109,7 @@ public final class GOnHookMessage {
done = true;
break;
case 10: {
String s = input.readStringRequireUtf8();
java.lang.String s = input.readStringRequireUtf8();
key_ = s;
break;
@ -109,6 +119,11 @@ public final class GOnHookMessage {
petTbId_ = input.readInt32();
break;
}
case 24: {
petLevel_ = input.readInt32();
break;
}
default: {
if (!parseUnknownField(
input, unknownFields, extensionRegistry, tag)) {
@ -135,8 +150,8 @@ public final class GOnHookMessage {
return GOnHookMessage.internal_static_GOnHookPet_descriptor;
}
@Override
protected FieldAccessorTable
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return GOnHookMessage.internal_static_GOnHookPet_fieldAccessorTable
.ensureFieldAccessorsInitialized(
@ -144,7 +159,7 @@ public final class GOnHookMessage {
}
public static final int KEY_FIELD_NUMBER = 1;
private volatile Object key_;
private volatile java.lang.Object key_;
/**
* <pre>
*生成宠物的key
@ -153,15 +168,15 @@ public final class GOnHookMessage {
* <code>string key = 1;</code>
* @return The key.
*/
@Override
public String getKey() {
Object ref = key_;
if (ref instanceof String) {
return (String) ref;
@java.lang.Override
public java.lang.String getKey() {
java.lang.Object ref = key_;
if (ref instanceof java.lang.String) {
return (java.lang.String) ref;
} else {
com.google.protobuf.ByteString bs =
(com.google.protobuf.ByteString) ref;
String s = bs.toStringUtf8();
java.lang.String s = bs.toStringUtf8();
key_ = s;
return s;
}
@ -174,14 +189,14 @@ public final class GOnHookMessage {
* <code>string key = 1;</code>
* @return The bytes for key.
*/
@Override
@java.lang.Override
public com.google.protobuf.ByteString
getKeyBytes() {
Object ref = key_;
if (ref instanceof String) {
java.lang.Object ref = key_;
if (ref instanceof java.lang.String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8(
(String) ref);
(java.lang.String) ref);
key_ = b;
return b;
} else {
@ -199,13 +214,28 @@ public final class GOnHookMessage {
* <code>int32 petTbId = 2;</code>
* @return The petTbId.
*/
@Override
@java.lang.Override
public int getPetTbId() {
return petTbId_;
}
public static final int PETLEVEL_FIELD_NUMBER = 3;
private int petLevel_;
/**
* <pre>
*生成宠物的等级
* </pre>
*
* <code>int32 petLevel = 3;</code>
* @return The petLevel.
*/
@java.lang.Override
public int getPetLevel() {
return petLevel_;
}
private byte memoizedIsInitialized = -1;
@Override
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
@ -215,7 +245,7 @@ public final class GOnHookMessage {
return true;
}
@Override
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) {
@ -224,10 +254,13 @@ public final class GOnHookMessage {
if (petTbId_ != 0) {
output.writeInt32(2, petTbId_);
}
if (petLevel_ != 0) {
output.writeInt32(3, petLevel_);
}
unknownFields.writeTo(output);
}
@Override
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
@ -240,13 +273,17 @@ public final class GOnHookMessage {
size += com.google.protobuf.CodedOutputStream
.computeInt32Size(2, petTbId_);
}
if (petLevel_ != 0) {
size += com.google.protobuf.CodedOutputStream
.computeInt32Size(3, petLevel_);
}
size += unknownFields.getSerializedSize();
memoizedSize = size;
return size;
}
@Override
public boolean equals(final Object obj) {
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
@ -259,11 +296,13 @@ public final class GOnHookMessage {
.equals(other.getKey())) return false;
if (getPetTbId()
!= other.getPetTbId()) return false;
if (getPetLevel()
!= other.getPetLevel()) return false;
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
}
@Override
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
@ -274,6 +313,8 @@ public final class GOnHookMessage {
hash = (53 * hash) + getKey().hashCode();
hash = (37 * hash) + PETTBID_FIELD_NUMBER;
hash = (53 * hash) + getPetTbId();
hash = (37 * hash) + PETLEVEL_FIELD_NUMBER;
hash = (53 * hash) + getPetLevel();
hash = (29 * hash) + unknownFields.hashCode();
memoizedHashCode = hash;
return hash;
@ -349,7 +390,7 @@ public final class GOnHookMessage {
.parseWithIOException(PARSER, input, extensionRegistry);
}
@Override
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
@ -357,15 +398,15 @@ public final class GOnHookMessage {
public static Builder newBuilder(GOnHookMessage.GOnHookPet prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@Override
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@Override
@java.lang.Override
protected Builder newBuilderForType(
BuilderParent parent) {
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
@ -385,21 +426,21 @@ public final class GOnHookMessage {
return GOnHookMessage.internal_static_GOnHookPet_descriptor;
}
@Override
protected FieldAccessorTable
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return GOnHookMessage.internal_static_GOnHookPet_fieldAccessorTable
.ensureFieldAccessorsInitialized(
GOnHookMessage.GOnHookPet.class, GOnHookMessage.GOnHookPet.Builder.class);
}
// Construct using cn.jisol.ngame.proto.GOnHookMessage.GOnHookPet.newBuilder()
// Construct using cn.jisol.game.proto.GOnHookMessage.GOnHookPet.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
BuilderParent parent) {
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
@ -408,28 +449,30 @@ public final class GOnHookMessage {
.alwaysUseFieldBuilders) {
}
}
@Override
@java.lang.Override
public Builder clear() {
super.clear();
key_ = "";
petTbId_ = 0;
petLevel_ = 0;
return this;
}
@Override
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return GOnHookMessage.internal_static_GOnHookPet_descriptor;
}
@Override
@java.lang.Override
public GOnHookMessage.GOnHookPet getDefaultInstanceForType() {
return GOnHookMessage.GOnHookPet.getDefaultInstance();
}
@Override
@java.lang.Override
public GOnHookMessage.GOnHookPet build() {
GOnHookMessage.GOnHookPet result = buildPartial();
if (!result.isInitialized()) {
@ -438,48 +481,49 @@ public final class GOnHookMessage {
return result;
}
@Override
@java.lang.Override
public GOnHookMessage.GOnHookPet buildPartial() {
GOnHookMessage.GOnHookPet result = new GOnHookMessage.GOnHookPet(this);
result.key_ = key_;
result.petTbId_ = petTbId_;
result.petLevel_ = petLevel_;
onBuilt();
return result;
}
@Override
@java.lang.Override
public Builder clone() {
return super.clone();
}
@Override
@java.lang.Override
public Builder setField(
com.google.protobuf.Descriptors.FieldDescriptor field,
Object value) {
java.lang.Object value) {
return super.setField(field, value);
}
@Override
@java.lang.Override
public Builder clearField(
com.google.protobuf.Descriptors.FieldDescriptor field) {
return super.clearField(field);
}
@Override
@java.lang.Override
public Builder clearOneof(
com.google.protobuf.Descriptors.OneofDescriptor oneof) {
return super.clearOneof(oneof);
}
@Override
@java.lang.Override
public Builder setRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
int index, Object value) {
int index, java.lang.Object value) {
return super.setRepeatedField(field, index, value);
}
@Override
@java.lang.Override
public Builder addRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
Object value) {
java.lang.Object value) {
return super.addRepeatedField(field, value);
}
@Override
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof GOnHookMessage.GOnHookPet) {
return mergeFrom((GOnHookMessage.GOnHookPet)other);
@ -498,17 +542,20 @@ public final class GOnHookMessage {
if (other.getPetTbId() != 0) {
setPetTbId(other.getPetTbId());
}
if (other.getPetLevel() != 0) {
setPetLevel(other.getPetLevel());
}
this.mergeUnknownFields(other.unknownFields);
onChanged();
return this;
}
@Override
@java.lang.Override
public final boolean isInitialized() {
return true;
}
@Override
@java.lang.Override
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@ -527,7 +574,7 @@ public final class GOnHookMessage {
return this;
}
private Object key_ = "";
private java.lang.Object key_ = "";
/**
* <pre>
*生成宠物的key
@ -536,16 +583,16 @@ public final class GOnHookMessage {
* <code>string key = 1;</code>
* @return The key.
*/
public String getKey() {
Object ref = key_;
if (!(ref instanceof String)) {
public java.lang.String getKey() {
java.lang.Object ref = key_;
if (!(ref instanceof java.lang.String)) {
com.google.protobuf.ByteString bs =
(com.google.protobuf.ByteString) ref;
String s = bs.toStringUtf8();
java.lang.String s = bs.toStringUtf8();
key_ = s;
return s;
} else {
return (String) ref;
return (java.lang.String) ref;
}
}
/**
@ -558,11 +605,11 @@ public final class GOnHookMessage {
*/
public com.google.protobuf.ByteString
getKeyBytes() {
Object ref = key_;
java.lang.Object ref = key_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8(
(String) ref);
(java.lang.String) ref);
key_ = b;
return b;
} else {
@ -579,7 +626,7 @@ public final class GOnHookMessage {
* @return This builder for chaining.
*/
public Builder setKey(
String value) {
java.lang.String value) {
if (value == null) {
throw new NullPointerException();
}
@ -632,7 +679,7 @@ public final class GOnHookMessage {
* <code>int32 petTbId = 2;</code>
* @return The petTbId.
*/
@Override
@java.lang.Override
public int getPetTbId() {
return petTbId_;
}
@ -665,13 +712,56 @@ public final class GOnHookMessage {
onChanged();
return this;
}
@Override
private int petLevel_ ;
/**
* <pre>
*生成宠物的等级
* </pre>
*
* <code>int32 petLevel = 3;</code>
* @return The petLevel.
*/
@java.lang.Override
public int getPetLevel() {
return petLevel_;
}
/**
* <pre>
*生成宠物的等级
* </pre>
*
* <code>int32 petLevel = 3;</code>
* @param value The petLevel to set.
* @return This builder for chaining.
*/
public Builder setPetLevel(int value) {
petLevel_ = value;
onChanged();
return this;
}
/**
* <pre>
*生成宠物的等级
* </pre>
*
* <code>int32 petLevel = 3;</code>
* @return This builder for chaining.
*/
public Builder clearPetLevel() {
petLevel_ = 0;
onChanged();
return this;
}
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@Override
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
@ -693,7 +783,7 @@ public final class GOnHookMessage {
private static final com.google.protobuf.Parser<GOnHookPet>
PARSER = new com.google.protobuf.AbstractParser<GOnHookPet>() {
@Override
@java.lang.Override
public GOnHookPet parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@ -706,12 +796,12 @@ public final class GOnHookMessage {
return PARSER;
}
@Override
@java.lang.Override
public com.google.protobuf.Parser<GOnHookPet> getParserForType() {
return PARSER;
}
@Override
@java.lang.Override
public GOnHookMessage.GOnHookPet getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
@ -729,7 +819,7 @@ public final class GOnHookMessage {
*
* <code>repeated .GOnHookPet pets = 1;</code>
*/
java.util.List<GOnHookPet>
java.util.List<GOnHookMessage.GOnHookPet>
getPetsList();
/**
* <pre>
@ -754,7 +844,7 @@ public final class GOnHookMessage {
*
* <code>repeated .GOnHookPet pets = 1;</code>
*/
java.util.List<? extends GOnHookPetOrBuilder>
java.util.List<? extends GOnHookMessage.GOnHookPetOrBuilder>
getPetsOrBuilderList();
/**
* <pre>
@ -786,14 +876,14 @@ public final class GOnHookMessage {
pets_ = java.util.Collections.emptyList();
}
@Override
@java.lang.Override
@SuppressWarnings({"unused"})
protected Object newInstance(
protected java.lang.Object newInstance(
UnusedPrivateParameter unused) {
return new GOnHookPets();
}
@Override
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
@ -804,7 +894,7 @@ public final class GOnHookMessage {
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new NullPointerException();
throw new java.lang.NullPointerException();
}
int mutable_bitField0_ = 0;
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
@ -819,7 +909,7 @@ public final class GOnHookMessage {
break;
case 10: {
if (!((mutable_bitField0_ & 0x00000001) != 0)) {
pets_ = new java.util.ArrayList<GOnHookPet>();
pets_ = new java.util.ArrayList<GOnHookMessage.GOnHookPet>();
mutable_bitField0_ |= 0x00000001;
}
pets_.add(
@ -855,8 +945,8 @@ public final class GOnHookMessage {
return GOnHookMessage.internal_static_GOnHookPets_descriptor;
}
@Override
protected FieldAccessorTable
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return GOnHookMessage.internal_static_GOnHookPets_fieldAccessorTable
.ensureFieldAccessorsInitialized(
@ -864,7 +954,7 @@ public final class GOnHookMessage {
}
public static final int PETS_FIELD_NUMBER = 1;
private java.util.List<GOnHookPet> pets_;
private java.util.List<GOnHookMessage.GOnHookPet> pets_;
/**
* <pre>
*宠物列表
@ -872,8 +962,8 @@ public final class GOnHookMessage {
*
* <code>repeated .GOnHookPet pets = 1;</code>
*/
@Override
public java.util.List<GOnHookPet> getPetsList() {
@java.lang.Override
public java.util.List<GOnHookMessage.GOnHookPet> getPetsList() {
return pets_;
}
/**
@ -883,8 +973,8 @@ public final class GOnHookMessage {
*
* <code>repeated .GOnHookPet pets = 1;</code>
*/
@Override
public java.util.List<? extends GOnHookPetOrBuilder>
@java.lang.Override
public java.util.List<? extends GOnHookMessage.GOnHookPetOrBuilder>
getPetsOrBuilderList() {
return pets_;
}
@ -895,7 +985,7 @@ public final class GOnHookMessage {
*
* <code>repeated .GOnHookPet pets = 1;</code>
*/
@Override
@java.lang.Override
public int getPetsCount() {
return pets_.size();
}
@ -906,7 +996,7 @@ public final class GOnHookMessage {
*
* <code>repeated .GOnHookPet pets = 1;</code>
*/
@Override
@java.lang.Override
public GOnHookMessage.GOnHookPet getPets(int index) {
return pets_.get(index);
}
@ -917,14 +1007,14 @@ public final class GOnHookMessage {
*
* <code>repeated .GOnHookPet pets = 1;</code>
*/
@Override
@java.lang.Override
public GOnHookMessage.GOnHookPetOrBuilder getPetsOrBuilder(
int index) {
return pets_.get(index);
}
private byte memoizedIsInitialized = -1;
@Override
@java.lang.Override
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized == 1) return true;
@ -934,7 +1024,7 @@ public final class GOnHookMessage {
return true;
}
@Override
@java.lang.Override
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
for (int i = 0; i < pets_.size(); i++) {
@ -943,7 +1033,7 @@ public final class GOnHookMessage {
unknownFields.writeTo(output);
}
@Override
@java.lang.Override
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
@ -958,8 +1048,8 @@ public final class GOnHookMessage {
return size;
}
@Override
public boolean equals(final Object obj) {
@java.lang.Override
public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
@ -974,7 +1064,7 @@ public final class GOnHookMessage {
return true;
}
@Override
@java.lang.Override
public int hashCode() {
if (memoizedHashCode != 0) {
return memoizedHashCode;
@ -1060,7 +1150,7 @@ public final class GOnHookMessage {
.parseWithIOException(PARSER, input, extensionRegistry);
}
@Override
@java.lang.Override
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
@ -1068,15 +1158,15 @@ public final class GOnHookMessage {
public static Builder newBuilder(GOnHookMessage.GOnHookPets prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@Override
@java.lang.Override
public Builder toBuilder() {
return this == DEFAULT_INSTANCE
? new Builder() : new Builder().mergeFrom(this);
}
@Override
@java.lang.Override
protected Builder newBuilderForType(
BuilderParent parent) {
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
@ -1096,21 +1186,21 @@ public final class GOnHookMessage {
return GOnHookMessage.internal_static_GOnHookPets_descriptor;
}
@Override
protected FieldAccessorTable
@java.lang.Override
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
internalGetFieldAccessorTable() {
return GOnHookMessage.internal_static_GOnHookPets_fieldAccessorTable
.ensureFieldAccessorsInitialized(
GOnHookMessage.GOnHookPets.class, GOnHookMessage.GOnHookPets.Builder.class);
}
// Construct using cn.jisol.ngame.proto.GOnHookMessage.GOnHookPets.newBuilder()
// Construct using cn.jisol.game.proto.GOnHookMessage.GOnHookPets.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(
BuilderParent parent) {
com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
@ -1120,7 +1210,7 @@ public final class GOnHookMessage {
getPetsFieldBuilder();
}
}
@Override
@java.lang.Override
public Builder clear() {
super.clear();
if (petsBuilder_ == null) {
@ -1132,18 +1222,18 @@ public final class GOnHookMessage {
return this;
}
@Override
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return GOnHookMessage.internal_static_GOnHookPets_descriptor;
}
@Override
@java.lang.Override
public GOnHookMessage.GOnHookPets getDefaultInstanceForType() {
return GOnHookMessage.GOnHookPets.getDefaultInstance();
}
@Override
@java.lang.Override
public GOnHookMessage.GOnHookPets build() {
GOnHookMessage.GOnHookPets result = buildPartial();
if (!result.isInitialized()) {
@ -1152,7 +1242,7 @@ public final class GOnHookMessage {
return result;
}
@Override
@java.lang.Override
public GOnHookMessage.GOnHookPets buildPartial() {
GOnHookMessage.GOnHookPets result = new GOnHookMessage.GOnHookPets(this);
int from_bitField0_ = bitField0_;
@ -1169,39 +1259,39 @@ public final class GOnHookMessage {
return result;
}
@Override
@java.lang.Override
public Builder clone() {
return super.clone();
}
@Override
@java.lang.Override
public Builder setField(
com.google.protobuf.Descriptors.FieldDescriptor field,
Object value) {
java.lang.Object value) {
return super.setField(field, value);
}
@Override
@java.lang.Override
public Builder clearField(
com.google.protobuf.Descriptors.FieldDescriptor field) {
return super.clearField(field);
}
@Override
@java.lang.Override
public Builder clearOneof(
com.google.protobuf.Descriptors.OneofDescriptor oneof) {
return super.clearOneof(oneof);
}
@Override
@java.lang.Override
public Builder setRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
int index, Object value) {
int index, java.lang.Object value) {
return super.setRepeatedField(field, index, value);
}
@Override
@java.lang.Override
public Builder addRepeatedField(
com.google.protobuf.Descriptors.FieldDescriptor field,
Object value) {
java.lang.Object value) {
return super.addRepeatedField(field, value);
}
@Override
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof GOnHookMessage.GOnHookPets) {
return mergeFrom((GOnHookMessage.GOnHookPets)other);
@ -1244,12 +1334,12 @@ public final class GOnHookMessage {
return this;
}
@Override
@java.lang.Override
public final boolean isInitialized() {
return true;
}
@Override
@java.lang.Override
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@ -1269,17 +1359,17 @@ public final class GOnHookMessage {
}
private int bitField0_;
private java.util.List<GOnHookPet> pets_ =
private java.util.List<GOnHookMessage.GOnHookPet> pets_ =
java.util.Collections.emptyList();
private void ensurePetsIsMutable() {
if (!((bitField0_ & 0x00000001) != 0)) {
pets_ = new java.util.ArrayList<GOnHookPet>(pets_);
pets_ = new java.util.ArrayList<GOnHookMessage.GOnHookPet>(pets_);
bitField0_ |= 0x00000001;
}
}
private com.google.protobuf.RepeatedFieldBuilderV3<
GOnHookPet, GOnHookPet.Builder, GOnHookPetOrBuilder> petsBuilder_;
GOnHookMessage.GOnHookPet, GOnHookMessage.GOnHookPet.Builder, GOnHookMessage.GOnHookPetOrBuilder> petsBuilder_;
/**
* <pre>
@ -1288,7 +1378,7 @@ public final class GOnHookMessage {
*
* <code>repeated .GOnHookPet pets = 1;</code>
*/
public java.util.List<GOnHookPet> getPetsList() {
public java.util.List<GOnHookMessage.GOnHookPet> getPetsList() {
if (petsBuilder_ == null) {
return java.util.Collections.unmodifiableList(pets_);
} else {
@ -1447,7 +1537,7 @@ public final class GOnHookMessage {
* <code>repeated .GOnHookPet pets = 1;</code>
*/
public Builder addAllPets(
Iterable<? extends GOnHookPet> values) {
java.lang.Iterable<? extends GOnHookMessage.GOnHookPet> values) {
if (petsBuilder_ == null) {
ensurePetsIsMutable();
com.google.protobuf.AbstractMessageLite.Builder.addAll(
@ -1524,7 +1614,7 @@ public final class GOnHookMessage {
*
* <code>repeated .GOnHookPet pets = 1;</code>
*/
public java.util.List<? extends GOnHookPetOrBuilder>
public java.util.List<? extends GOnHookMessage.GOnHookPetOrBuilder>
getPetsOrBuilderList() {
if (petsBuilder_ != null) {
return petsBuilder_.getMessageOrBuilderList();
@ -1562,16 +1652,16 @@ public final class GOnHookMessage {
*
* <code>repeated .GOnHookPet pets = 1;</code>
*/
public java.util.List<GOnHookPet.Builder>
public java.util.List<GOnHookMessage.GOnHookPet.Builder>
getPetsBuilderList() {
return getPetsFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilderV3<
GOnHookPet, GOnHookPet.Builder, GOnHookPetOrBuilder>
GOnHookMessage.GOnHookPet, GOnHookMessage.GOnHookPet.Builder, GOnHookMessage.GOnHookPetOrBuilder>
getPetsFieldBuilder() {
if (petsBuilder_ == null) {
petsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
GOnHookPet, GOnHookPet.Builder, GOnHookPetOrBuilder>(
GOnHookMessage.GOnHookPet, GOnHookMessage.GOnHookPet.Builder, GOnHookMessage.GOnHookPetOrBuilder>(
pets_,
((bitField0_ & 0x00000001) != 0),
getParentForChildren(),
@ -1580,13 +1670,13 @@ public final class GOnHookMessage {
}
return petsBuilder_;
}
@Override
@java.lang.Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.setUnknownFields(unknownFields);
}
@Override
@java.lang.Override
public final Builder mergeUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
return super.mergeUnknownFields(unknownFields);
@ -1608,7 +1698,7 @@ public final class GOnHookMessage {
private static final com.google.protobuf.Parser<GOnHookPets>
PARSER = new com.google.protobuf.AbstractParser<GOnHookPets>() {
@Override
@java.lang.Override
public GOnHookPets parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@ -1621,12 +1711,12 @@ public final class GOnHookMessage {
return PARSER;
}
@Override
@java.lang.Override
public com.google.protobuf.Parser<GOnHookPets> getParserForType() {
return PARSER;
}
@Override
@java.lang.Override
public GOnHookMessage.GOnHookPets getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
@ -1651,11 +1741,11 @@ public final class GOnHookMessage {
private static com.google.protobuf.Descriptors.FileDescriptor
descriptor;
static {
String[] descriptorData = {
"\n\024GOnHookMessage.proto\"*\n\nGOnHookPet\022\013\n\003" +
"key\030\001 \001(\t\022\017\n\007petTbId\030\002 \001(\005\"(\n\013GOnHookPet" +
"s\022\031\n\004pets\030\001 \003(\0132\013.GOnHookPetB\026\n\024cn.jisol" +
".ngame.protob\006proto3"
java.lang.String[] descriptorData = {
"\n\024GOnHookMessage.proto\"<\n\nGOnHookPet\022\013\n\003" +
"key\030\001 \001(\t\022\017\n\007petTbId\030\002 \001(\005\022\020\n\010petLevel\030\003" +
" \001(\005\"(\n\013GOnHookPets\022\031\n\004pets\030\001 \003(\0132\013.GOnH" +
"ookPetB\026\n\024cn.jisol.ngame.protob\006proto3"
};
descriptor = com.google.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(descriptorData,
@ -1666,13 +1756,13 @@ public final class GOnHookMessage {
internal_static_GOnHookPet_fieldAccessorTable = new
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_GOnHookPet_descriptor,
new String[] { "Key", "PetTbId", });
new java.lang.String[] { "Key", "PetTbId", "PetLevel", });
internal_static_GOnHookPets_descriptor =
getDescriptor().getMessageTypes().get(1);
internal_static_GOnHookPets_fieldAccessorTable = new
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
internal_static_GOnHookPets_descriptor,
new String[] { "Pets", });
new java.lang.String[] { "Pets", });
}
// @@protoc_insertion_point(outer_class_scope)

View File

@ -6,6 +6,7 @@ option java_package = "cn.jisol.ngame.proto";
message GOnHookPet {
string key = 1; //key
int32 petTbId = 2; //Id
int32 petLevel = 3; //
}
//

View File

@ -0,0 +1,85 @@
package cn.jisol.game.table;
import cfg.TbGEntity.TOnHookLevel;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
//游戏中使用的 TbGOnHookMaps
public class GTbGOnHookLevels {
//TbGOnHookMaps 表数据
Object data;
public GTbGOnHookLevels(Object data){
this.data = data;
}
public static class GTbGOnHookLevel{
//TbGOnHookMap 表数据
Object data;
GTbGOnHookLevel(Object data){
this.data = data;
}
public int getId(){
try {
Field idField = data.getClass().getField("id");
return (int)idField.get(data);
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
return -1;
}
}
public TOnHookLevel getData(){
try {
Field dataField = data.getClass().getField("data");
return (TOnHookLevel)dataField.get(data);
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
return null;
}
}
}
//通过Id获取关卡
public GTbGOnHookLevel get(int key){
try {
Method method = this.data.getClass().getMethod("get",int.class);
Object data = method.invoke(this.data,key);
if(Objects.isNull(data)) return null;
return new GTbGOnHookLevel(data);
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
return null;
}
}
//获取全部关卡
public List<GTbGOnHookLevel> getDataList(){
try {
Method method = null;
method = this.data.getClass().getMethod("getDataList");
Object data = method.invoke(this.data);
if(Objects.isNull(data) || !(data instanceof ArrayList)){
return null;
}
return (List<GTbGOnHookLevel>) ((ArrayList)data).stream().map((Object i) -> new GTbGOnHookLevel(i)).collect(Collectors.toList());
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
return null;
}
}
}

View File

@ -0,0 +1,22 @@
package cn.jisol.game.table;
import cn.jisol.game.data.TD;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
//文档工具类
public class TableUtil {
//获取名字的对象
public static Object getTDObject(String sign){
try {
Method method = TD.DATA.getClass().getMethod("get" + sign);
return method.invoke(TD.DATA);
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
return null;
}
}
}

View File

@ -1,10 +0,0 @@
[
{
"id": 1,
"data": {
"level": 1,
"petLevel": 0,
"oddsId": 1
}
}
]

View File

@ -0,0 +1,972 @@
[
{
"id": 1,
"data": {
"level": 1,
"childLevel": 1,
"petLevel": 0,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 2,
"data": {
"level": 1,
"childLevel": 2,
"petLevel": 0,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 3,
"data": {
"level": 1,
"childLevel": 3,
"petLevel": 0,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 4,
"data": {
"level": 1,
"childLevel": 4,
"petLevel": 0,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 5,
"data": {
"level": 1,
"childLevel": 5,
"petLevel": 0,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 6,
"data": {
"level": 1,
"childLevel": 6,
"petLevel": 0,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 7,
"data": {
"level": 2,
"childLevel": 1,
"petLevel": 1,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 8,
"data": {
"level": 2,
"childLevel": 2,
"petLevel": 1,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 9,
"data": {
"level": 2,
"childLevel": 3,
"petLevel": 1,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 10,
"data": {
"level": 2,
"childLevel": 4,
"petLevel": 1,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 11,
"data": {
"level": 2,
"childLevel": 5,
"petLevel": 1,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 12,
"data": {
"level": 2,
"childLevel": 6,
"petLevel": 1,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 13,
"data": {
"level": 3,
"childLevel": 1,
"petLevel": 2,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 14,
"data": {
"level": 3,
"childLevel": 2,
"petLevel": 2,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 15,
"data": {
"level": 3,
"childLevel": 3,
"petLevel": 2,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 16,
"data": {
"level": 3,
"childLevel": 4,
"petLevel": 2,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 17,
"data": {
"level": 3,
"childLevel": 5,
"petLevel": 2,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 18,
"data": {
"level": 3,
"childLevel": 6,
"petLevel": 2,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 19,
"data": {
"level": 4,
"childLevel": 1,
"petLevel": 3,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 20,
"data": {
"level": 4,
"childLevel": 2,
"petLevel": 3,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 21,
"data": {
"level": 4,
"childLevel": 3,
"petLevel": 3,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 22,
"data": {
"level": 4,
"childLevel": 4,
"petLevel": 3,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 23,
"data": {
"level": 4,
"childLevel": 5,
"petLevel": 3,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 24,
"data": {
"level": 4,
"childLevel": 6,
"petLevel": 3,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 25,
"data": {
"level": 5,
"childLevel": 1,
"petLevel": 4,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 26,
"data": {
"level": 5,
"childLevel": 2,
"petLevel": 4,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 27,
"data": {
"level": 5,
"childLevel": 3,
"petLevel": 4,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 28,
"data": {
"level": 5,
"childLevel": 4,
"petLevel": 4,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 29,
"data": {
"level": 5,
"childLevel": 5,
"petLevel": 4,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 30,
"data": {
"level": 5,
"childLevel": 6,
"petLevel": 4,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 31,
"data": {
"level": 6,
"childLevel": 1,
"petLevel": 5,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 32,
"data": {
"level": 6,
"childLevel": 2,
"petLevel": 5,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 33,
"data": {
"level": 6,
"childLevel": 3,
"petLevel": 5,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 34,
"data": {
"level": 6,
"childLevel": 4,
"petLevel": 5,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 35,
"data": {
"level": 6,
"childLevel": 5,
"petLevel": 5,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 36,
"data": {
"level": 6,
"childLevel": 6,
"petLevel": 5,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 37,
"data": {
"level": 7,
"childLevel": 1,
"petLevel": 6,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 38,
"data": {
"level": 7,
"childLevel": 2,
"petLevel": 6,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 39,
"data": {
"level": 7,
"childLevel": 3,
"petLevel": 6,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 40,
"data": {
"level": 7,
"childLevel": 4,
"petLevel": 6,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 41,
"data": {
"level": 7,
"childLevel": 5,
"petLevel": 6,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 42,
"data": {
"level": 7,
"childLevel": 6,
"petLevel": 6,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 43,
"data": {
"level": 8,
"childLevel": 1,
"petLevel": 7,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 44,
"data": {
"level": 8,
"childLevel": 2,
"petLevel": 7,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 45,
"data": {
"level": 8,
"childLevel": 3,
"petLevel": 7,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 46,
"data": {
"level": 8,
"childLevel": 4,
"petLevel": 7,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 47,
"data": {
"level": 8,
"childLevel": 5,
"petLevel": 7,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 48,
"data": {
"level": 8,
"childLevel": 6,
"petLevel": 7,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 49,
"data": {
"level": 9,
"childLevel": 1,
"petLevel": 8,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 50,
"data": {
"level": 9,
"childLevel": 2,
"petLevel": 8,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 51,
"data": {
"level": 9,
"childLevel": 3,
"petLevel": 8,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 52,
"data": {
"level": 9,
"childLevel": 4,
"petLevel": 8,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 53,
"data": {
"level": 9,
"childLevel": 5,
"petLevel": 8,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 54,
"data": {
"level": 9,
"childLevel": 6,
"petLevel": 8,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 55,
"data": {
"level": 10,
"childLevel": 1,
"petLevel": 9,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 56,
"data": {
"level": 10,
"childLevel": 2,
"petLevel": 9,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 57,
"data": {
"level": 10,
"childLevel": 3,
"petLevel": 9,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 58,
"data": {
"level": 10,
"childLevel": 4,
"petLevel": 9,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 59,
"data": {
"level": 10,
"childLevel": 5,
"petLevel": 9,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 60,
"data": {
"level": 10,
"childLevel": 6,
"petLevel": 9,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 61,
"data": {
"level": 11,
"childLevel": 1,
"petLevel": 10,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 62,
"data": {
"level": 11,
"childLevel": 2,
"petLevel": 10,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 63,
"data": {
"level": 11,
"childLevel": 3,
"petLevel": 10,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 64,
"data": {
"level": 11,
"childLevel": 4,
"petLevel": 10,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 65,
"data": {
"level": 11,
"childLevel": 5,
"petLevel": 10,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 66,
"data": {
"level": 11,
"childLevel": 6,
"petLevel": 10,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 67,
"data": {
"level": 12,
"childLevel": 1,
"petLevel": 11,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 68,
"data": {
"level": 12,
"childLevel": 2,
"petLevel": 11,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 69,
"data": {
"level": 12,
"childLevel": 3,
"petLevel": 11,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 70,
"data": {
"level": 12,
"childLevel": 4,
"petLevel": 11,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 71,
"data": {
"level": 12,
"childLevel": 5,
"petLevel": 11,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 72,
"data": {
"level": 12,
"childLevel": 6,
"petLevel": 11,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 73,
"data": {
"level": 13,
"childLevel": 1,
"petLevel": 12,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 74,
"data": {
"level": 13,
"childLevel": 2,
"petLevel": 12,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 75,
"data": {
"level": 13,
"childLevel": 3,
"petLevel": 12,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 76,
"data": {
"level": 13,
"childLevel": 4,
"petLevel": 12,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 77,
"data": {
"level": 13,
"childLevel": 5,
"petLevel": 12,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 78,
"data": {
"level": 13,
"childLevel": 6,
"petLevel": 12,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 79,
"data": {
"level": 14,
"childLevel": 1,
"petLevel": 13,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 80,
"data": {
"level": 14,
"childLevel": 2,
"petLevel": 13,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 81,
"data": {
"level": 14,
"childLevel": 3,
"petLevel": 13,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 82,
"data": {
"level": 14,
"childLevel": 4,
"petLevel": 13,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 83,
"data": {
"level": 14,
"childLevel": 5,
"petLevel": 13,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 84,
"data": {
"level": 14,
"childLevel": 6,
"petLevel": 13,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 85,
"data": {
"level": 15,
"childLevel": 1,
"petLevel": 14,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 86,
"data": {
"level": 15,
"childLevel": 2,
"petLevel": 14,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 87,
"data": {
"level": 15,
"childLevel": 3,
"petLevel": 14,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 88,
"data": {
"level": 15,
"childLevel": 4,
"petLevel": 14,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 89,
"data": {
"level": 15,
"childLevel": 5,
"petLevel": 14,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 90,
"data": {
"level": 15,
"childLevel": 6,
"petLevel": 14,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 91,
"data": {
"level": 16,
"childLevel": 1,
"petLevel": 15,
"petSize": 1,
"oddsId": 1
}
},
{
"id": 92,
"data": {
"level": 16,
"childLevel": 2,
"petLevel": 15,
"petSize": 2,
"oddsId": 1
}
},
{
"id": 93,
"data": {
"level": 16,
"childLevel": 3,
"petLevel": 15,
"petSize": 3,
"oddsId": 1
}
},
{
"id": 94,
"data": {
"level": 16,
"childLevel": 4,
"petLevel": 15,
"petSize": 4,
"oddsId": 1
}
},
{
"id": 95,
"data": {
"level": 16,
"childLevel": 5,
"petLevel": 15,
"petSize": 5,
"oddsId": 1
}
},
{
"id": 96,
"data": {
"level": 16,
"childLevel": 6,
"petLevel": 15,
"petSize": 6,
"oddsId": 1
}
},
{
"id": 97,
"data": {
"level": 17,
"childLevel": 1,
"petLevel": 16,
"petSize": 1,
"oddsId": 1
}
}
]

View File

@ -9,7 +9,7 @@
10002,
10003
],
"sign": "",
"sign": "TbGOnHookMap120001",
"introduce": "新手地图在这里可以遇到可爱的宠物哦~"
},
{
@ -23,7 +23,7 @@
10006,
10007
],
"sign": "",
"sign": "TbGOnHookMap120001",
"introduce": "魔法阵 这里有魔法精灵~"
}
]