diff --git a/DataTables/Datas/__beans__.xlsx b/DataTables/Datas/__beans__.xlsx index 86a07228..762372dc 100644 Binary files a/DataTables/Datas/__beans__.xlsx and b/DataTables/Datas/__beans__.xlsx differ diff --git a/DataTables/Datas/__tables__.xlsx b/DataTables/Datas/__tables__.xlsx index 79f5b1c0..f7d937a7 100644 Binary files a/DataTables/Datas/__tables__.xlsx and b/DataTables/Datas/__tables__.xlsx differ diff --git a/DataTables/Datas/战斗/模式/无尽模式/OnHook地图.xlsx b/DataTables/Datas/战斗/模式/无尽模式/OnHook地图.xlsx index 2b430186..08918a64 100644 Binary files a/DataTables/Datas/战斗/模式/无尽模式/OnHook地图.xlsx and b/DataTables/Datas/战斗/模式/无尽模式/OnHook地图.xlsx differ diff --git a/DataTables/Datas/战斗/模式/无尽模式/天空城地图.xlsx b/DataTables/Datas/战斗/模式/无尽模式/天空城地图.xlsx index 65aefae4..6c5bd424 100644 Binary files a/DataTables/Datas/战斗/模式/无尽模式/天空城地图.xlsx and b/DataTables/Datas/战斗/模式/无尽模式/天空城地图.xlsx differ diff --git a/JisolGameCocos/assets/resources/config/json/tbgonhookmap1.json b/JisolGameCocos/assets/resources/config/json/tbgonhookmap1.json deleted file mode 100644 index 71aa9a83..00000000 --- a/JisolGameCocos/assets/resources/config/json/tbgonhookmap1.json +++ /dev/null @@ -1,10 +0,0 @@ -[ - { - "id": 1, - "data": { - "level": 1, - "petLevel": 0, - "oddsId": 1 - } - } -] \ No newline at end of file diff --git a/JisolGameCocos/assets/resources/config/json/tbgonhookmap120001.json b/JisolGameCocos/assets/resources/config/json/tbgonhookmap120001.json new file mode 100644 index 00000000..10948ef0 --- /dev/null +++ b/JisolGameCocos/assets/resources/config/json/tbgonhookmap120001.json @@ -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 + } + } +] \ No newline at end of file diff --git a/JisolGameCocos/assets/resources/config/json/tbgonhookmap1.json.meta b/JisolGameCocos/assets/resources/config/json/tbgonhookmap120001.json.meta similarity index 72% rename from JisolGameCocos/assets/resources/config/json/tbgonhookmap1.json.meta rename to JisolGameCocos/assets/resources/config/json/tbgonhookmap120001.json.meta index 93b655e2..adcedadd 100644 --- a/JisolGameCocos/assets/resources/config/json/tbgonhookmap1.json.meta +++ b/JisolGameCocos/assets/resources/config/json/tbgonhookmap120001.json.meta @@ -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" ], diff --git a/JisolGameCocos/assets/resources/config/json/tbgonhookmaps.json b/JisolGameCocos/assets/resources/config/json/tbgonhookmaps.json index 2947ec60..cc88c4d5 100644 --- a/JisolGameCocos/assets/resources/config/json/tbgonhookmaps.json +++ b/JisolGameCocos/assets/resources/config/json/tbgonhookmaps.json @@ -9,7 +9,7 @@ 10002, 10003 ], - "sign": "", + "sign": "TbGOnHookMap120001", "introduce": "新手地图在这里可以遇到可爱的宠物哦~" }, { @@ -23,7 +23,7 @@ 10006, 10007 ], - "sign": "", + "sign": "TbGOnHookMap120001", "introduce": "魔法阵 这里有魔法精灵~" } ] \ No newline at end of file diff --git a/JisolGameCocos/assets/resources/prefab/battle/mode/CampGuardianMode.prefab b/JisolGameCocos/assets/resources/prefab/battle/mode/CampGuardianMode.prefab index 98d3d83a..0dce8e60 100644 --- a/JisolGameCocos/assets/resources/prefab/battle/mode/CampGuardianMode.prefab +++ b/JisolGameCocos/assets/resources/prefab/battle/mode/CampGuardianMode.prefab @@ -595,6 +595,9 @@ "__uuid__": "e989c288-5957-41c1-953c-190622651f52", "__expectedType__": "cc.Prefab" }, + "modeCamera": { + "__id__": 15 + }, "_id": "" }, { diff --git a/JisolGameCocos/assets/resources/prefab/ui/主页/MainView.prefab b/JisolGameCocos/assets/resources/prefab/ui/主页/MainView.prefab index 06585bae..d780e42c 100644 --- a/JisolGameCocos/assets/resources/prefab/ui/主页/MainView.prefab +++ b/JisolGameCocos/assets/resources/prefab/ui/主页/MainView.prefab @@ -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, diff --git a/JisolGameCocos/assets/resources/prefab/ui/模式/CampGuardian/阵营守护战斗页面.prefab b/JisolGameCocos/assets/resources/prefab/ui/模式/CampGuardian/阵营守护战斗页面.prefab index c6f950c0..ff557432 100644 --- a/JisolGameCocos/assets/resources/prefab/ui/模式/CampGuardian/阵营守护战斗页面.prefab +++ b/JisolGameCocos/assets/resources/prefab/ui/模式/CampGuardian/阵营守护战斗页面.prefab @@ -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, diff --git a/JisolGameCocos/assets/script/App.ts b/JisolGameCocos/assets/script/App.ts index 0a5914f1..810f9272 100644 --- a/JisolGameCocos/assets/script/App.ts +++ b/JisolGameCocos/assets/script/App.ts @@ -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` diff --git a/JisolGameCocos/assets/script/battle/base/role/GRoleDefault.ts b/JisolGameCocos/assets/script/battle/base/role/GRoleDefault.ts index d24460c7..4b176826 100644 --- a/JisolGameCocos/assets/script/battle/base/role/GRoleDefault.ts +++ b/JisolGameCocos/assets/script/battle/base/role/GRoleDefault.ts @@ -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(); diff --git a/JisolGameCocos/assets/script/battle/modes/GCampGuardianMode.ts b/JisolGameCocos/assets/script/battle/modes/GCampGuardianMode.ts index 7d1a87d2..0ed7187a 100644 --- a/JisolGameCocos/assets/script/battle/modes/GCampGuardianMode.ts +++ b/JisolGameCocos/assets/script/battle/modes/GCampGuardianMode.ts @@ -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, + }); + + } } diff --git a/JisolGameCocos/assets/script/battle/modes/GMode.ts b/JisolGameCocos/assets/script/battle/modes/GMode.ts new file mode 100644 index 00000000..21ab58cb --- /dev/null +++ b/JisolGameCocos/assets/script/battle/modes/GMode.ts @@ -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" +} \ No newline at end of file diff --git a/JisolGameCocos/assets/script/battle/modes/GMode.ts.meta b/JisolGameCocos/assets/script/battle/modes/GMode.ts.meta new file mode 100644 index 00000000..59359524 --- /dev/null +++ b/JisolGameCocos/assets/script/battle/modes/GMode.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.23", + "importer": "typescript", + "imported": true, + "uuid": "b9fffb62-4b14-48cb-85fe-51ab780f49c0", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/JisolGameCocos/assets/script/battle/modes/GOnHookMode.ts b/JisolGameCocos/assets/script/battle/modes/GOnHookMode.ts index 06565b84..25f31c80 100644 --- a/JisolGameCocos/assets/script/battle/modes/GOnHookMode.ts +++ b/JisolGameCocos/assets/script/battle/modes/GOnHookMode.ts @@ -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, + }); } diff --git a/JisolGameCocos/assets/script/battle/modes/GPVPMode.ts b/JisolGameCocos/assets/script/battle/modes/GPVPMode.ts index 1706bfb0..e80dd2ee 100644 --- a/JisolGameCocos/assets/script/battle/modes/GPVPMode.ts +++ b/JisolGameCocos/assets/script/battle/modes/GPVPMode.ts @@ -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, + }); } diff --git a/JisolGameCocos/assets/script/config/data/schema.ts b/JisolGameCocos/assets/script/config/data/schema.ts index 17945ac9..c5e6ee09 100644 --- a/JisolGameCocos/assets/script/config/data/schema.ts +++ b/JisolGameCocos/assets/script/config/data/schema.ts @@ -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 - private _dataList: TB.TbGOnHookMap1[] +export class TbGOnHookMap120001{ + private _dataMap: Map + private _dataList: TB.TbGOnHookMap120001[] constructor(_json_: any) { - this._dataMap = new Map() + this._dataMap = new Map() 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 { return this._dataMap; } - getDataList(): TB.TbGOnHookMap1[] { return this._dataList; } + getDataMap(): Map { 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) } } diff --git a/JisolGameCocos/assets/script/consts/GAPI.ts b/JisolGameCocos/assets/script/consts/GAPI.ts index d31f4131..133af419 100644 --- a/JisolGameCocos/assets/script/consts/GAPI.ts +++ b/JisolGameCocos/assets/script/consts/GAPI.ts @@ -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, } \ No newline at end of file diff --git a/JisolGameCocos/assets/script/ui/Consts/Game/ModeRender.ts b/JisolGameCocos/assets/script/ui/Consts/Game/ModeRender.ts index 958661d2..a23cf5c2 100644 --- a/JisolGameCocos/assets/script/ui/Consts/Game/ModeRender.ts +++ b/JisolGameCocos/assets/script/ui/Consts/Game/ModeRender.ts @@ -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); } diff --git a/JisolGameCocos/assets/script/ui/Home/MainView.ts b/JisolGameCocos/assets/script/ui/Home/MainView.ts index 22c9e068..4cdd9222 100644 --- a/JisolGameCocos/assets/script/ui/Home/MainView.ts +++ b/JisolGameCocos/assets/script/ui/Home/MainView.ts @@ -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:"下一关"}); + } + } diff --git a/JisolGameCocos/extensions/ngame b/JisolGameCocos/extensions/ngame index 3a8c35bc..01f3e124 160000 --- a/JisolGameCocos/extensions/ngame +++ b/JisolGameCocos/extensions/ngame @@ -1 +1 @@ -Subproject commit 3a8c35bc7bc02e22021acfc4671e9d8ffaadd87b +Subproject commit 01f3e1248ac4e0d1469e087ab84d8b04315273ff diff --git a/JisolGameCocos/proto/GOnHookMessage.proto b/JisolGameCocos/proto/GOnHookMessage.proto index 5f972cda..397cddd6 100644 --- a/JisolGameCocos/proto/GOnHookMessage.proto +++ b/JisolGameCocos/proto/GOnHookMessage.proto @@ -6,6 +6,7 @@ option java_package = "cn.jisol.ngame.proto"; message GOnHookPet { string key = 1; //生成宠物的key int32 petTbId = 2; //生成宠物的配置表Id + int32 petLevel = 3; //生成宠物的等级 } //生成的宠物类列表 diff --git a/JisolGameServer/Main/src/main/java/cfg/TB/TbGOnHookMap1.java b/JisolGameServer/Main/src/main/java/cfg/TB/TbGOnHookMap120001.java similarity index 78% rename from JisolGameServer/Main/src/main/java/cfg/TB/TbGOnHookMap1.java rename to JisolGameServer/Main/src/main/java/cfg/TB/TbGOnHookMap120001.java index 8ed9611e..14130493 100644 --- a/JisolGameServer/Main/src/main/java/cfg/TB/TbGOnHookMap1.java +++ b/JisolGameServer/Main/src/main/java/cfg/TB/TbGOnHookMap120001.java @@ -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__; } diff --git a/JisolGameServer/Main/src/main/java/cfg/Tables.java b/JisolGameServer/Main/src/main/java/cfg/Tables.java index 33cf7582..800c6772 100644 --- a/JisolGameServer/Main/src/main/java/cfg/Tables.java +++ b/JisolGameServer/Main/src/main/java/cfg/Tables.java @@ -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")); } } diff --git a/JisolGameServer/Main/src/main/java/cfg/TbGEntity/TOnHookLevel.java b/JisolGameServer/Main/src/main/java/cfg/TbGEntity/TOnHookLevel.java index 84a8ac51..004525a4 100644 --- a/JisolGameServer/Main/src/main/java/cfg/TbGEntity/TOnHookLevel.java +++ b/JisolGameServer/Main/src/main/java/cfg/TbGEntity/TOnHookLevel.java @@ -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 + "," + "}"; } diff --git a/JisolGameServer/Main/src/main/java/cfg/TbGOnHookMap1.java b/JisolGameServer/Main/src/main/java/cfg/TbGOnHookMap120001.java similarity index 56% rename from JisolGameServer/Main/src/main/java/cfg/TbGOnHookMap1.java rename to JisolGameServer/Main/src/main/java/cfg/TbGOnHookMap120001.java index edabc1af..6d089f98 100644 --- a/JisolGameServer/Main/src/main/java/cfg/TbGOnHookMap1.java +++ b/JisolGameServer/Main/src/main/java/cfg/TbGOnHookMap120001.java @@ -13,25 +13,25 @@ import luban.*; import com.google.gson.JsonElement; -public final class TbGOnHookMap1 { - private final java.util.HashMap _dataMap; - private final java.util.ArrayList _dataList; +public final class TbGOnHookMap120001 { + private final java.util.HashMap _dataMap; + private final java.util.ArrayList _dataList; - public TbGOnHookMap1(JsonElement _buf) { - _dataMap = new java.util.HashMap(); - _dataList = new java.util.ArrayList(); + public TbGOnHookMap120001(JsonElement _buf) { + _dataMap = new java.util.HashMap(); + _dataList = new java.util.ArrayList(); 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 getDataMap() { return _dataMap; } - public java.util.ArrayList getDataList() { return _dataList; } + public java.util.HashMap getDataMap() { return _dataMap; } + public java.util.ArrayList 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); } } diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/mode/GOnHookController.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/mode/GOnHookController.java index 7cdc5780..01bafe55 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/mode/GOnHookController.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/controller/game/mode/GOnHookController.java @@ -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 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 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(); //添加到宠物列表中 diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/mode/ModeOnHook.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/mode/ModeOnHook.java index 1678d4ed..b2d1e5f5 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/mode/ModeOnHook.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/mode/ModeOnHook.java @@ -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 dataList = this.getGTbGOnHookLevels().getDataList(); + if(dataList.size() == 0) return -1; + levelId = dataList.get(0).getId(); + } + return levelId; + } } diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/mode/ModeOnHookInfo.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/mode/ModeOnHookInfo.java new file mode 100644 index 00000000..51d28082 --- /dev/null +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/entity/mode/ModeOnHookInfo.java @@ -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 maps; + + public ModeOnHookInfo(){ + maps = new HashMap<>(); + } + +} diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/proto/GOnHookMessage.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/proto/GOnHookMessage.java index fa17f147..4c50ff61 100644 --- a/JisolGameServer/Main/src/main/java/cn/jisol/game/proto/GOnHookMessage.java +++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/proto/GOnHookMessage.java @@ -26,7 +26,7 @@ public final class GOnHookMessage { * string key = 1; * @return The key. */ - String getKey(); + java.lang.String getKey(); /** *
      *生成宠物的key
@@ -47,6 +47,16 @@ public final class GOnHookMessage {
      * @return The petTbId.
      */
     int getPetTbId();
+
+    /**
+     * 
+     *生成宠物的等级
+     * 
+ * + * int32 petLevel = 3; + * @return The petLevel. + */ + int getPetLevel(); } /** *
@@ -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_;
     /**
      * 
      *生成宠物的key
@@ -153,15 +168,15 @@ public final class GOnHookMessage {
      * string key = 1;
      * @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 {
      * string key = 1;
      * @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 {
      * int32 petTbId = 2;
      * @return The petTbId.
      */
-    @Override
+    @java.lang.Override
     public int getPetTbId() {
       return petTbId_;
     }
 
+    public static final int PETLEVEL_FIELD_NUMBER = 3;
+    private int petLevel_;
+    /**
+     * 
+     *生成宠物的等级
+     * 
+ * + * int32 petLevel = 3; + * @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_ = ""; /** *
        *生成宠物的key
@@ -536,16 +583,16 @@ public final class GOnHookMessage {
        * string key = 1;
        * @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 {
        * int32 petTbId = 2;
        * @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_ ;
+      /**
+       * 
+       *生成宠物的等级
+       * 
+ * + * int32 petLevel = 3; + * @return The petLevel. + */ + @java.lang.Override + public int getPetLevel() { + return petLevel_; + } + /** + *
+       *生成宠物的等级
+       * 
+ * + * int32 petLevel = 3; + * @param value The petLevel to set. + * @return This builder for chaining. + */ + public Builder setPetLevel(int value) { + + petLevel_ = value; + onChanged(); + return this; + } + /** + *
+       *生成宠物的等级
+       * 
+ * + * int32 petLevel = 3; + * @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 PARSER = new com.google.protobuf.AbstractParser() { - @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 getParserForType() { return PARSER; } - @Override + @java.lang.Override public GOnHookMessage.GOnHookPet getDefaultInstanceForType() { return DEFAULT_INSTANCE; } @@ -729,7 +819,7 @@ public final class GOnHookMessage { * * repeated .GOnHookPet pets = 1; */ - java.util.List + java.util.List getPetsList(); /** *
@@ -754,7 +844,7 @@ public final class GOnHookMessage {
      *
      * repeated .GOnHookPet pets = 1;
      */
-    java.util.List
+    java.util.List
         getPetsOrBuilderList();
     /**
      * 
@@ -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();
+                pets_ = new java.util.ArrayList();
                 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 pets_;
+    private java.util.List pets_;
     /**
      * 
      *宠物列表
@@ -872,8 +962,8 @@ public final class GOnHookMessage {
      *
      * repeated .GOnHookPet pets = 1;
      */
-    @Override
-    public java.util.List getPetsList() {
+    @java.lang.Override
+    public java.util.List getPetsList() {
       return pets_;
     }
     /**
@@ -883,8 +973,8 @@ public final class GOnHookMessage {
      *
      * repeated .GOnHookPet pets = 1;
      */
-    @Override
-    public java.util.List
+    @java.lang.Override
+    public java.util.List
         getPetsOrBuilderList() {
       return pets_;
     }
@@ -895,7 +985,7 @@ public final class GOnHookMessage {
      *
      * repeated .GOnHookPet pets = 1;
      */
-    @Override
+    @java.lang.Override
     public int getPetsCount() {
       return pets_.size();
     }
@@ -906,7 +996,7 @@ public final class GOnHookMessage {
      *
      * repeated .GOnHookPet pets = 1;
      */
-    @Override
+    @java.lang.Override
     public GOnHookMessage.GOnHookPet getPets(int index) {
       return pets_.get(index);
     }
@@ -917,14 +1007,14 @@ public final class GOnHookMessage {
      *
      * repeated .GOnHookPet pets = 1;
      */
-    @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 pets_ =
+      private java.util.List pets_ =
         java.util.Collections.emptyList();
       private void ensurePetsIsMutable() {
         if (!((bitField0_ & 0x00000001) != 0)) {
-          pets_ = new java.util.ArrayList(pets_);
+          pets_ = new java.util.ArrayList(pets_);
           bitField0_ |= 0x00000001;
          }
       }
 
       private com.google.protobuf.RepeatedFieldBuilderV3<
-          GOnHookPet, GOnHookPet.Builder, GOnHookPetOrBuilder> petsBuilder_;
+          GOnHookMessage.GOnHookPet, GOnHookMessage.GOnHookPet.Builder, GOnHookMessage.GOnHookPetOrBuilder> petsBuilder_;
 
       /**
        * 
@@ -1288,7 +1378,7 @@ public final class GOnHookMessage {
        *
        * repeated .GOnHookPet pets = 1;
        */
-      public java.util.List getPetsList() {
+      public java.util.List getPetsList() {
         if (petsBuilder_ == null) {
           return java.util.Collections.unmodifiableList(pets_);
         } else {
@@ -1447,7 +1537,7 @@ public final class GOnHookMessage {
        * repeated .GOnHookPet pets = 1;
        */
       public Builder addAllPets(
-          Iterable values) {
+          java.lang.Iterable values) {
         if (petsBuilder_ == null) {
           ensurePetsIsMutable();
           com.google.protobuf.AbstractMessageLite.Builder.addAll(
@@ -1524,7 +1614,7 @@ public final class GOnHookMessage {
        *
        * repeated .GOnHookPet pets = 1;
        */
-      public java.util.List
+      public java.util.List
            getPetsOrBuilderList() {
         if (petsBuilder_ != null) {
           return petsBuilder_.getMessageOrBuilderList();
@@ -1562,16 +1652,16 @@ public final class GOnHookMessage {
        *
        * repeated .GOnHookPet pets = 1;
        */
-      public java.util.List
+      public java.util.List
            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
         PARSER = new com.google.protobuf.AbstractParser() {
-      @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 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)
diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/proto/GOnHookMessage.proto b/JisolGameServer/Main/src/main/java/cn/jisol/game/proto/GOnHookMessage.proto
index 5f972cda..397cddd6 100644
--- a/JisolGameServer/Main/src/main/java/cn/jisol/game/proto/GOnHookMessage.proto
+++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/proto/GOnHookMessage.proto
@@ -6,6 +6,7 @@ option java_package = "cn.jisol.ngame.proto";
 message GOnHookPet {
     string key = 1;     //生成宠物的key
     int32 petTbId = 2; //生成宠物的配置表Id
+    int32 petLevel = 3; //生成宠物的等级
 }
 
 //生成的宠物类列表
diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/table/GTbGOnHookLevels.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/table/GTbGOnHookLevels.java
new file mode 100644
index 00000000..9217f8c7
--- /dev/null
+++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/table/GTbGOnHookLevels.java
@@ -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 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) ((ArrayList)data).stream().map((Object i) -> new GTbGOnHookLevel(i)).collect(Collectors.toList());
+
+        } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
+            return null;
+        }
+    }
+
+}
diff --git a/JisolGameServer/Main/src/main/java/cn/jisol/game/table/TableUtil.java b/JisolGameServer/Main/src/main/java/cn/jisol/game/table/TableUtil.java
new file mode 100644
index 00000000..90191ce0
--- /dev/null
+++ b/JisolGameServer/Main/src/main/java/cn/jisol/game/table/TableUtil.java
@@ -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;
+        }
+    }
+
+}
diff --git a/JisolGameServer/Main/src/main/resources/json/tbgonhookmap1.json b/JisolGameServer/Main/src/main/resources/json/tbgonhookmap1.json
deleted file mode 100644
index 71aa9a83..00000000
--- a/JisolGameServer/Main/src/main/resources/json/tbgonhookmap1.json
+++ /dev/null
@@ -1,10 +0,0 @@
-[
-  {
-    "id": 1,
-    "data": {
-      "level": 1,
-      "petLevel": 0,
-      "oddsId": 1
-    }
-  }
-]
\ No newline at end of file
diff --git a/JisolGameServer/Main/src/main/resources/json/tbgonhookmap120001.json b/JisolGameServer/Main/src/main/resources/json/tbgonhookmap120001.json
new file mode 100644
index 00000000..10948ef0
--- /dev/null
+++ b/JisolGameServer/Main/src/main/resources/json/tbgonhookmap120001.json
@@ -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
+    }
+  }
+]
\ No newline at end of file
diff --git a/JisolGameServer/Main/src/main/resources/json/tbgonhookmaps.json b/JisolGameServer/Main/src/main/resources/json/tbgonhookmaps.json
index 2947ec60..cc88c4d5 100644
--- a/JisolGameServer/Main/src/main/resources/json/tbgonhookmaps.json
+++ b/JisolGameServer/Main/src/main/resources/json/tbgonhookmaps.json
@@ -9,7 +9,7 @@
       10002,
       10003
     ],
-    "sign": "",
+    "sign": "TbGOnHookMap120001",
     "introduce": "新手地图在这里可以遇到可爱的宠物哦~"
   },
   {
@@ -23,7 +23,7 @@
       10006,
       10007
     ],
-    "sign": "",
+    "sign": "TbGOnHookMap120001",
     "introduce": "魔法阵 这里有魔法精灵~"
   }
 ]
\ No newline at end of file