This commit is contained in:
wh_zcy 2023-05-11 19:05:04 +08:00
commit 6b4beb5765
39 changed files with 2235 additions and 1908 deletions

View File

@ -1,7 +1,7 @@
[ [
{ {
"id": 100, "id": 100,
"PlayType": "WorldTask", "PlayType": 3,
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
@ -17,7 +17,7 @@
}, },
{ {
"id": 101, "id": 101,
"PlayType": "MysteryMoon", "PlayType": 6,
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
@ -33,7 +33,7 @@
}, },
{ {
"id": 102, "id": 102,
"PlayType": "MainLine", "PlayType": 1,
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_03", "readyScene": "scenesfight_role_interface_03",
"battleScenes": [ "battleScenes": [
@ -49,7 +49,7 @@
}, },
{ {
"id": 103, "id": 103,
"PlayType": "Pagoda", "PlayType": 2,
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_03", "readyScene": "scenesfight_role_interface_03",
"battleScenes": [ "battleScenes": [
@ -65,7 +65,7 @@
}, },
{ {
"id": 104, "id": 104,
"PlayType": "ViKing", "PlayType": 5,
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
@ -81,7 +81,7 @@
}, },
{ {
"id": 105, "id": 105,
"PlayType": "Arena", "PlayType": 7,
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
@ -97,7 +97,7 @@
}, },
{ {
"id": 106, "id": 106,
"PlayType": "ArenaDef", "PlayType": 8,
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
@ -113,7 +113,7 @@
}, },
{ {
"id": 107, "id": 107,
"PlayType": "Hunting", "PlayType": 4,
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
@ -129,7 +129,7 @@
}, },
{ {
"id": 108, "id": 108,
"PlayType": "EnchantBoss", "PlayType": 11,
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
@ -145,7 +145,7 @@
}, },
{ {
"id": 109, "id": 109,
"PlayType": "Combat", "PlayType": 10,
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
@ -161,7 +161,7 @@
}, },
{ {
"id": 110, "id": 110,
"PlayType": "ArenaNpc", "PlayType": 14,
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
@ -177,7 +177,7 @@
}, },
{ {
"id": 111, "id": 111,
"PlayType": "pvp", "PlayType": 13,
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
@ -193,7 +193,7 @@
}, },
{ {
"id": 112, "id": 112,
"PlayType": "panda", "PlayType": 2,
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
@ -209,7 +209,7 @@
}, },
{ {
"id": 113, "id": 113,
"PlayType": "teaching", "PlayType": 9,
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
@ -225,7 +225,7 @@
}, },
{ {
"id": 114, "id": 114,
"PlayType": "test", "PlayType": 0,
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
@ -241,7 +241,7 @@
}, },
{ {
"id": 115, "id": 115,
"PlayType": "test", "PlayType": 0,
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_03", "readyScene": "scenesfight_role_interface_03",
"battleScenes": [ "battleScenes": [
@ -257,7 +257,7 @@
}, },
{ {
"id": 116, "id": 116,
"PlayType": "test", "PlayType": 0,
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
@ -273,7 +273,7 @@
}, },
{ {
"id": 117, "id": 117,
"PlayType": "test", "PlayType": 0,
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_03", "readyScene": "scenesfight_role_interface_03",
"battleScenes": [ "battleScenes": [
@ -289,7 +289,7 @@
}, },
{ {
"id": 118, "id": 118,
"PlayType": "test", "PlayType": 0,
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_03", "readyScene": "scenesfight_role_interface_03",
"battleScenes": [ "battleScenes": [
@ -305,7 +305,7 @@
}, },
{ {
"id": 119, "id": 119,
"PlayType": "test", "PlayType": 0,
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
@ -321,7 +321,7 @@
}, },
{ {
"id": 120, "id": 120,
"PlayType": "test", "PlayType": 0,
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
@ -337,7 +337,7 @@
}, },
{ {
"id": 121, "id": 121,
"PlayType": "test", "PlayType": 0,
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [
@ -353,7 +353,7 @@
}, },
{ {
"id": 122, "id": 122,
"PlayType": "MainLine", "PlayType": 1,
"HeroCount": 5, "HeroCount": 5,
"readyScene": "scenesfight_role_interface_02", "readyScene": "scenesfight_role_interface_02",
"battleScenes": [ "battleScenes": [

View File

@ -48,8 +48,8 @@
"model": "NPC/kungfu/kungfu_51005", "model": "NPC/kungfu/kungfu_51005",
"idleAni": "kungfu_pavilion_action_2_act", "idleAni": "kungfu_pavilion_action_2_act",
"weight": 1000, "weight": 1000,
"startstory": 4001, "startstory": 4005,
"rejectstory": 4002, "rejectstory": 4006,
"endstory": 0, "endstory": 0,
"battlename": { "battlename": {
"key": "story_7158", "key": "story_7158",

View File

@ -8,7 +8,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 138, "tasktime": 156,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -56,7 +56,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 170, "tasktime": 76,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -104,7 +104,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 170, "tasktime": 62,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -152,7 +152,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 117, "tasktime": 97,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -200,7 +200,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 120, "tasktime": 123,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -248,7 +248,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 141, "tasktime": 102,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -296,7 +296,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 138, "tasktime": 92,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -344,7 +344,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 148, "tasktime": 127,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -392,7 +392,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 104, "tasktime": 166,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -440,7 +440,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 91, "tasktime": 149,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -488,7 +488,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 90, "tasktime": 64,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -536,7 +536,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 135, "tasktime": 180,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -584,7 +584,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 103, "tasktime": 114,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -632,7 +632,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 114, "tasktime": 66,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -680,7 +680,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 180, "tasktime": 105,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -728,7 +728,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 132, "tasktime": 161,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -776,7 +776,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 122, "tasktime": 121,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -824,7 +824,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 177, "tasktime": 138,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -872,7 +872,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 163, "tasktime": 135,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -920,7 +920,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 136, "tasktime": 102,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -968,7 +968,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 147, "tasktime": 158,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -1016,7 +1016,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 140, "tasktime": 133,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -1064,7 +1064,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 139, "tasktime": 135,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -1112,7 +1112,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 110, "tasktime": 86,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -1160,7 +1160,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 147, "tasktime": 64,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -1208,7 +1208,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 122, "tasktime": 98,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -1256,7 +1256,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 105, "tasktime": 72,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -1304,7 +1304,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 176, "tasktime": 136,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -1352,7 +1352,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 65, "tasktime": 140,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -1400,7 +1400,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 142, "tasktime": 129,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -1448,7 +1448,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 117, "tasktime": 157,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -1496,7 +1496,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 61, "tasktime": 91,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -1544,7 +1544,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 63, "tasktime": 129,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -1592,7 +1592,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 95, "tasktime": 155,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -1640,7 +1640,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 151, "tasktime": 101,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -1688,7 +1688,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 145, "tasktime": 121,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -1736,7 +1736,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 135, "tasktime": 91,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -1784,7 +1784,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 157, "tasktime": 81,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -1832,7 +1832,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 114, "tasktime": 166,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -1880,7 +1880,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 82, "tasktime": 166,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -1928,7 +1928,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 150, "tasktime": 154,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -1976,7 +1976,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 80, "tasktime": 104,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -2024,7 +2024,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 92, "tasktime": 166,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -2072,7 +2072,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 99, "tasktime": 89,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -2120,7 +2120,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 154, "tasktime": 152,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -2168,7 +2168,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 123, "tasktime": 144,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -2216,7 +2216,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 70, "tasktime": 119,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -2264,7 +2264,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 118, "tasktime": 108,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -2312,7 +2312,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 176, "tasktime": 93,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -2360,7 +2360,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 165, "tasktime": 91,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -2408,7 +2408,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 115, "tasktime": 73,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -2456,7 +2456,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 67, "tasktime": 174,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -2504,7 +2504,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 169, "tasktime": 124,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -2552,7 +2552,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 158, "tasktime": 91,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -2600,7 +2600,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 170, "tasktime": 121,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -2648,7 +2648,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 87, "tasktime": 136,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -2696,7 +2696,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 131, "tasktime": 159,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -2744,7 +2744,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 80, "tasktime": 165,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -2792,7 +2792,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 82, "tasktime": 162,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -2840,7 +2840,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 97, "tasktime": 175,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -2888,7 +2888,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 127, "tasktime": 179,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -2936,7 +2936,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 77, "tasktime": 166,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -2984,7 +2984,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 174, "tasktime": 105,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -3032,7 +3032,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 102, "tasktime": 101,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -3080,7 +3080,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 133, "tasktime": 71,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -3128,7 +3128,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 125, "tasktime": 127,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -3176,7 +3176,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 105, "tasktime": 121,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -3224,7 +3224,7 @@
}, },
"icon": "xmwg_rw_pt5", "icon": "xmwg_rw_pt5",
"taskcd": 200, "taskcd": 200,
"tasktime": 111, "tasktime": 151,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -3272,7 +3272,7 @@
}, },
"icon": "xmwg_rw_pt6", "icon": "xmwg_rw_pt6",
"taskcd": 200, "taskcd": 200,
"tasktime": 162, "tasktime": 81,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -3320,7 +3320,7 @@
}, },
"icon": "xmwg_rw_pt7", "icon": "xmwg_rw_pt7",
"taskcd": 200, "taskcd": 200,
"tasktime": 70, "tasktime": 156,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"
@ -3368,7 +3368,7 @@
}, },
"icon": "xmwg_rw_pt1", "icon": "xmwg_rw_pt1",
"taskcd": 200, "taskcd": 200,
"tasktime": 175, "tasktime": 105,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Tiger", "key": "Entrustment details of Tiger",
"text": "这是属于悍娇虎的专属委托" "text": "这是属于悍娇虎的专属委托"
@ -3416,7 +3416,7 @@
}, },
"icon": "xmwg_rw_pt2", "icon": "xmwg_rw_pt2",
"taskcd": 200, "taskcd": 200,
"tasktime": 179, "tasktime": 117,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Shifu", "key": "Entrustment details of Shifu",
"text": "这是属于师父的专属委托" "text": "这是属于师父的专属委托"
@ -3464,7 +3464,7 @@
}, },
"icon": "xmwg_rw_pt3", "icon": "xmwg_rw_pt3",
"taskcd": 200, "taskcd": 200,
"tasktime": 68, "tasktime": 107,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Po", "key": "Entrustment details of Po",
"text": "这是属于阿宝的专属委托" "text": "这是属于阿宝的专属委托"
@ -3512,7 +3512,7 @@
}, },
"icon": "xmwg_rw_pt4", "icon": "xmwg_rw_pt4",
"taskcd": 200, "taskcd": 200,
"tasktime": 122, "tasktime": 126,
"tasktxt": { "tasktxt": {
"key": "Entrustment details of Bobi", "key": "Entrustment details of Bobi",
"text": "这是属于波比的专属委托" "text": "这是属于波比的专属委托"

File diff suppressed because it is too large Load Diff

View File

@ -9,6 +9,10 @@
}, },
"icon": "tz_icon_qg", "icon": "tz_icon_qg",
"FloatIcon": "", "FloatIcon": "",
"simple_skillintr": {
"key": "equip_simple_skillintr_1",
"text": "攻击力+30%"
},
"skillintr": { "skillintr": {
"key": "equip_skillintr_1", "key": "equip_skillintr_1",
"text": "攻击力+30%" "text": "攻击力+30%"
@ -30,6 +34,10 @@
}, },
"icon": "tz_icon_xl", "icon": "tz_icon_xl",
"FloatIcon": "", "FloatIcon": "",
"simple_skillintr": {
"key": "equip_simple_skillintr_2",
"text": "速度+25%"
},
"skillintr": { "skillintr": {
"key": "equip_skillintr_2", "key": "equip_skillintr_2",
"text": "速度+25%" "text": "速度+25%"
@ -51,6 +59,10 @@
}, },
"icon": "tz_icon_xjl", "icon": "tz_icon_xjl",
"FloatIcon": "ty_zd_buff_z007", "FloatIcon": "ty_zd_buff_z007",
"simple_skillintr": {
"key": "equip_simple_skillintr_3",
"text": "受伤冰冻"
},
"skillintr": { "skillintr": {
"key": "equip_skillintr_3", "key": "equip_skillintr_3",
"text": "受到伤害时有25%的概率【冰冻】目标1回合" "text": "受到伤害时有25%的概率【冰冻】目标1回合"
@ -67,6 +79,10 @@
}, },
"icon": "tz_icon_em", "icon": "tz_icon_em",
"FloatIcon": "", "FloatIcon": "",
"simple_skillintr": {
"key": "equip_simple_skillintr_4",
"text": "+35%吸血"
},
"skillintr": { "skillintr": {
"key": "equip_skillintr_4", "key": "equip_skillintr_4",
"text": "+35%吸血" "text": "+35%吸血"
@ -88,6 +104,10 @@
}, },
"icon": "tz_icon_yy", "icon": "tz_icon_yy",
"FloatIcon": "", "FloatIcon": "",
"simple_skillintr": {
"key": "equip_simple_skillintr_5",
"text": "治疗效果+30%"
},
"skillintr": { "skillintr": {
"key": "equip_skillintr_5", "key": "equip_skillintr_5",
"text": "治疗效果+30%" "text": "治疗效果+30%"
@ -109,6 +129,10 @@
}, },
"icon": "tz_icon_mg", "icon": "tz_icon_mg",
"FloatIcon": "ty_zd_buff_z007", "FloatIcon": "ty_zd_buff_z007",
"simple_skillintr": {
"key": "equip_simple_skillintr_6",
"text": "减少冷却"
},
"skillintr": { "skillintr": {
"key": "equip_skillintr_6", "key": "equip_skillintr_6",
"text": "回合开始时有35%概率令自身所有技能冷却时间-1回合" "text": "回合开始时有35%概率令自身所有技能冷却时间-1回合"
@ -125,6 +149,10 @@
}, },
"icon": "tz_icon_sl", "icon": "tz_icon_sl",
"FloatIcon": "ty_zd_buff_z007", "FloatIcon": "ty_zd_buff_z007",
"simple_skillintr": {
"key": "equip_simple_skillintr_7",
"text": "攻击眩晕"
},
"skillintr": { "skillintr": {
"key": "equip_skillintr_7", "key": "equip_skillintr_7",
"text": "造成伤害时有20%概率【眩晕】目标1回合" "text": "造成伤害时有20%概率【眩晕】目标1回合"
@ -141,6 +169,10 @@
}, },
"icon": "tz_icon_wj", "icon": "tz_icon_wj",
"FloatIcon": "", "FloatIcon": "",
"simple_skillintr": {
"key": "equip_simple_skillintr_8",
"text": "暴击伤害+40%"
},
"skillintr": { "skillintr": {
"key": "equip_skillintr_8", "key": "equip_skillintr_8",
"text": "暴击伤害+40%" "text": "暴击伤害+40%"
@ -162,6 +194,10 @@
}, },
"icon": "tz_icon_ms", "icon": "tz_icon_ms",
"FloatIcon": "ty_zd_buff_z007", "FloatIcon": "ty_zd_buff_z007",
"simple_skillintr": {
"key": "equip_simple_skillintr_9",
"text": "额外行动"
},
"skillintr": { "skillintr": {
"key": "equip_skillintr_9", "key": "equip_skillintr_9",
"text": "自身可行动时有20%概率额外行动一次(仅触发一次,额外行动不会恢复技能冷却时间)" "text": "自身可行动时有20%概率额外行动一次(仅触发一次,额外行动不会恢复技能冷却时间)"
@ -178,6 +214,10 @@
}, },
"icon": "tz_icon_ms", "icon": "tz_icon_ms",
"FloatIcon": "ty_zd_buff_z007", "FloatIcon": "ty_zd_buff_z007",
"simple_skillintr": {
"key": "equip_simple_skillintr_10",
"text": "被控加速"
},
"skillintr": { "skillintr": {
"key": "equip_skillintr_10", "key": "equip_skillintr_10",
"text": "我方被施加控制效果的神觉者速度提高50点不可叠加" "text": "我方被施加控制效果的神觉者速度提高50点不可叠加"
@ -194,6 +234,10 @@
}, },
"icon": "tz_icon_pp", "icon": "tz_icon_pp",
"FloatIcon": "", "FloatIcon": "",
"simple_skillintr": {
"key": "equip_simple_skillintr_11",
"text": "生命值+25%"
},
"skillintr": { "skillintr": {
"key": "equip_skillintr_11", "key": "equip_skillintr_11",
"text": "生命值+25%" "text": "生命值+25%"
@ -215,6 +259,10 @@
}, },
"icon": "tz_icon_xj", "icon": "tz_icon_xj",
"FloatIcon": "", "FloatIcon": "",
"simple_skillintr": {
"key": "equip_simple_skillintr_12",
"text": "防御力+25%"
},
"skillintr": { "skillintr": {
"key": "equip_skillintr_12", "key": "equip_skillintr_12",
"text": "防御力+25%" "text": "防御力+25%"
@ -236,6 +284,10 @@
}, },
"icon": "tz_icon_wm", "icon": "tz_icon_wm",
"FloatIcon": "", "FloatIcon": "",
"simple_skillintr": {
"key": "equip_simple_skillintr_13",
"text": "效果命中+25%"
},
"skillintr": { "skillintr": {
"key": "equip_skillintr_13", "key": "equip_skillintr_13",
"text": "效果命中+25%" "text": "效果命中+25%"
@ -257,6 +309,10 @@
}, },
"icon": "tz_icon_mxt", "icon": "tz_icon_mxt",
"FloatIcon": "ty_zd_buff_z007", "FloatIcon": "ty_zd_buff_z007",
"simple_skillintr": {
"key": "equip_simple_skillintr_14",
"text": "受伤反击"
},
"skillintr": { "skillintr": {
"key": "equip_skillintr_14", "key": "equip_skillintr_14",
"text": "受到伤害时有25%几率使用技能一反击" "text": "受到伤害时有25%几率使用技能一反击"
@ -273,6 +329,10 @@
}, },
"icon": "tz_icon_tt", "icon": "tz_icon_tt",
"FloatIcon": "ty_zd_buff_z007", "FloatIcon": "ty_zd_buff_z007",
"simple_skillintr": {
"key": "equip_simple_skillintr_15",
"text": "全体护盾"
},
"skillintr": { "skillintr": {
"key": "equip_skillintr_15", "key": "equip_skillintr_15",
"text": "己方全体在战斗开始的时候获得2回合【护盾】数值为最大生命值的15%" "text": "己方全体在战斗开始的时候获得2回合【护盾】数值为最大生命值的15%"
@ -289,6 +349,10 @@
}, },
"icon": "tz_icon_jg", "icon": "tz_icon_jg",
"FloatIcon": "", "FloatIcon": "",
"simple_skillintr": {
"key": "equip_simple_skillintr_16",
"text": "暴击率+20%"
},
"skillintr": { "skillintr": {
"key": "equip_skillintr_16", "key": "equip_skillintr_16",
"text": "暴击率+20%" "text": "暴击率+20%"
@ -310,6 +374,10 @@
}, },
"icon": "tz_icon_ys", "icon": "tz_icon_ys",
"FloatIcon": "ty_zd_buff_z007", "FloatIcon": "ty_zd_buff_z007",
"simple_skillintr": {
"key": "equip_simple_skillintr_17",
"text": "状态延时"
},
"skillintr": { "skillintr": {
"key": "equip_skillintr_17", "key": "equip_skillintr_17",
"text": "施加中毒、流血效果时有30%几率令其持续时间增加1回合" "text": "施加中毒、流血效果时有30%几率令其持续时间增加1回合"
@ -326,6 +394,10 @@
}, },
"icon": "tz_icon_zz", "icon": "tz_icon_zz",
"FloatIcon": "", "FloatIcon": "",
"simple_skillintr": {
"key": "equip_simple_skillintr_18",
"text": "效果抵抗+25%"
},
"skillintr": { "skillintr": {
"key": "equip_skillintr_18", "key": "equip_skillintr_18",
"text": "效果抵抗+25%" "text": "效果抵抗+25%"
@ -347,6 +419,10 @@
}, },
"icon": "tz_icon_shs", "icon": "tz_icon_shs",
"FloatIcon": "ty_zd_buff_z007", "FloatIcon": "ty_zd_buff_z007",
"simple_skillintr": {
"key": "equip_simple_skillintr_19",
"text": "开场免疫"
},
"skillintr": { "skillintr": {
"key": "equip_skillintr_19", "key": "equip_skillintr_19",
"text": "战斗开始时获得1回合【免疫】" "text": "战斗开始时获得1回合【免疫】"

File diff suppressed because it is too large Load Diff

View File

@ -278,7 +278,7 @@
"cops_BuyGet": { "cops_BuyGet": {
"a": "item", "a": "item",
"t": "100100", "t": "100100",
"n": 60 "n": 1
}, },
"cops_MaxBuyNum": 10, "cops_MaxBuyNum": 10,
"ArenaTicket_PurchaseRrestrictions": 10, "ArenaTicket_PurchaseRrestrictions": 10,

View File

@ -1,7 +1,8 @@
[ [
{ {
"id": 1, "id": 1,
"type": 0, "type": 1,
"typeline": 1,
"talentid": 40101, "talentid": 40101,
"before": [ "before": [
0 0
@ -18,15 +19,114 @@
"n": 5000 "n": 5000
} }
], ],
"point": 20, "point": 20
"position": [
1,
1
]
}, },
{ {
"id": 2, "id": 2,
"type": 0, "type": 0,
"typeline": 1,
"talentid": 10101,
"before": [
1
],
"thing": [
{
"a": "attr",
"t": "gold",
"n": 15000
}
],
"point": 10
},
{
"id": 3,
"type": 0,
"typeline": 1,
"talentid": 10102,
"before": [
2
],
"thing": [
{
"a": "attr",
"t": "gold",
"n": 15000
}
],
"point": 10
},
{
"id": 4,
"type": 0,
"typeline": 1,
"talentid": 10103,
"before": [
3
],
"thing": [
{
"a": "attr",
"t": "gold",
"n": 15000
}
],
"point": 10
},
{
"id": 5,
"type": 0,
"typeline": 1,
"talentid": 10104,
"before": [
4
],
"thing": [
{
"a": "attr",
"t": "gold",
"n": 15000
}
],
"point": 10
},
{
"id": 6,
"type": 0,
"typeline": 1,
"talentid": 10105,
"before": [
5
],
"thing": [
{
"a": "attr",
"t": "gold",
"n": 15000
}
],
"point": 10
},
{
"id": 7,
"type": 0,
"typeline": 1,
"talentid": 10106,
"before": [
6
],
"thing": [
{
"a": "attr",
"t": "gold",
"n": 15000
}
],
"point": 10
},
{
"id": 8,
"type": 1,
"typeline": 2,
"talentid": 40102, "talentid": 40102,
"before": [ "before": [
0 0
@ -43,15 +143,114 @@
"n": 5000 "n": 5000
} }
], ],
"point": 20, "point": 20
"position": [
1,
3
]
}, },
{ {
"id": 3, "id": 9,
"type": 0, "type": 0,
"typeline": 2,
"talentid": 20101,
"before": [
8
],
"thing": [
{
"a": "attr",
"t": "gold",
"n": 15000
}
],
"point": 10
},
{
"id": 10,
"type": 0,
"typeline": 2,
"talentid": 20102,
"before": [
9
],
"thing": [
{
"a": "attr",
"t": "gold",
"n": 15000
}
],
"point": 10
},
{
"id": 11,
"type": 0,
"typeline": 2,
"talentid": 20103,
"before": [
10
],
"thing": [
{
"a": "attr",
"t": "gold",
"n": 15000
}
],
"point": 10
},
{
"id": 12,
"type": 0,
"typeline": 2,
"talentid": 20104,
"before": [
11
],
"thing": [
{
"a": "attr",
"t": "gold",
"n": 15000
}
],
"point": 10
},
{
"id": 13,
"type": 0,
"typeline": 2,
"talentid": 20105,
"before": [
12
],
"thing": [
{
"a": "attr",
"t": "gold",
"n": 15000
}
],
"point": 10
},
{
"id": 14,
"type": 0,
"typeline": 2,
"talentid": 20106,
"before": [
13
],
"thing": [
{
"a": "attr",
"t": "gold",
"n": 15000
}
],
"point": 10
},
{
"id": 15,
"type": 1,
"typeline": 3,
"talentid": 40103, "talentid": 40103,
"before": [ "before": [
0 0
@ -68,18 +267,15 @@
"n": 5000 "n": 5000
} }
], ],
"point": 20, "point": 20
"position": [
1,
5
]
}, },
{ {
"id": 4, "id": 16,
"type": 1, "type": 0,
"talentid": 10101, "typeline": 3,
"talentid": 30101,
"before": [ "before": [
1 15
], ],
"thing": [ "thing": [
{ {
@ -88,244 +284,15 @@
"n": 15000 "n": 15000
} }
], ],
"point": 10, "point": 10
"position": [
3,
1
]
},
{
"id": 5,
"type": 1,
"talentid": 10102,
"before": [
4
],
"thing": [
{
"a": "attr",
"t": "gold",
"n": 15000
}
],
"point": 10,
"position": [
5,
1
]
},
{
"id": 6,
"type": 1,
"talentid": 10103,
"before": [
5
],
"thing": [
{
"a": "attr",
"t": "gold",
"n": 15000
}
],
"point": 10,
"position": [
7,
1
]
},
{
"id": 7,
"type": 1,
"talentid": 10104,
"before": [
6,
23
],
"thing": [
{
"a": "attr",
"t": "gold",
"n": 15000
}
],
"point": 10,
"position": [
9,
1
]
},
{
"id": 8,
"type": 1,
"talentid": 10105,
"before": [
7
],
"thing": [
{
"a": "attr",
"t": "gold",
"n": 15000
}
],
"point": 10,
"position": [
11,
1
]
},
{
"id": 9,
"type": 1,
"talentid": 10106,
"before": [
8
],
"thing": [
{
"a": "attr",
"t": "gold",
"n": 15000
}
],
"point": 10,
"position": [
13,
1
]
},
{
"id": 10,
"type": 2,
"talentid": 20101,
"before": [
2
],
"thing": [
{
"a": "attr",
"t": "gold",
"n": 15000
}
],
"point": 10,
"position": [
3,
3
]
},
{
"id": 11,
"type": 2,
"talentid": 20102,
"before": [
10
],
"thing": [
{
"a": "attr",
"t": "gold",
"n": 15000
}
],
"point": 10,
"position": [
5,
3
]
},
{
"id": 12,
"type": 2,
"talentid": 20103,
"before": [
11,
5,
18
],
"thing": [
{
"a": "attr",
"t": "gold",
"n": 15000
}
],
"point": 10,
"position": [
7,
3
]
},
{
"id": 13,
"type": 2,
"talentid": 20104,
"before": [
23,
24
],
"thing": [
{
"a": "attr",
"t": "gold",
"n": 15000
}
],
"point": 10,
"position": [
9,
3
]
},
{
"id": 14,
"type": 2,
"talentid": 20105,
"before": [
7,
13,
20
],
"thing": [
{
"a": "attr",
"t": "gold",
"n": 15000
}
],
"point": 10,
"position": [
11,
3
]
},
{
"id": 15,
"type": 2,
"talentid": 20106,
"before": [
14
],
"thing": [
{
"a": "attr",
"t": "gold",
"n": 15000
}
],
"point": 10,
"position": [
13,
3
]
}, },
{ {
"id": 17, "id": 17,
"type": 3, "type": 0,
"talentid": 30101, "typeline": 3,
"talentid": 30102,
"before": [ "before": [
3 16
], ],
"thing": [ "thing": [
{ {
@ -334,16 +301,13 @@
"n": 15000 "n": 15000
} }
], ],
"point": 10, "point": 10
"position": [
3,
5
]
}, },
{ {
"id": 18, "id": 18,
"type": 3, "type": 0,
"talentid": 30102, "typeline": 3,
"talentid": 30103,
"before": [ "before": [
17 17
], ],
@ -354,16 +318,13 @@
"n": 15000 "n": 15000
} }
], ],
"point": 10, "point": 10
"position": [
5,
5
]
}, },
{ {
"id": 19, "id": 19,
"type": 3, "type": 0,
"talentid": 30103, "typeline": 3,
"talentid": 30104,
"before": [ "before": [
18 18
], ],
@ -374,18 +335,15 @@
"n": 15000 "n": 15000
} }
], ],
"point": 10, "point": 10
"position": [
7,
5
]
}, },
{ {
"id": 20, "id": 20,
"type": 3, "type": 0,
"talentid": 30104, "typeline": 3,
"talentid": 30105,
"before": [ "before": [
24 19
], ],
"thing": [ "thing": [
{ {
@ -394,16 +352,13 @@
"n": 15000 "n": 15000
} }
], ],
"point": 10, "point": 10
"position": [
9,
5
]
}, },
{ {
"id": 21, "id": 21,
"type": 3, "type": 0,
"talentid": 30105, "typeline": 3,
"talentid": 30106,
"before": [ "before": [
20 20
], ],
@ -414,109 +369,6 @@
"n": 15000 "n": 15000
} }
], ],
"point": 10, "point": 10
"position": [
11,
5
]
},
{
"id": 22,
"type": 3,
"talentid": 30106,
"before": [
21
],
"thing": [
{
"a": "attr",
"t": "gold",
"n": 15000
}
],
"point": 10,
"position": [
13,
5
]
},
{
"id": 23,
"type": 999,
"talentid": 99101,
"before": [
6,
12
],
"thing": [
{
"a": "attr",
"t": "gold",
"n": 40000
},
{
"a": "attr",
"t": "diamond",
"n": 5000
}
],
"point": 15,
"position": [
8,
2
]
},
{
"id": 24,
"type": 999,
"talentid": 99102,
"before": [
12,
19
],
"thing": [
{
"a": "attr",
"t": "gold",
"n": 40000
},
{
"a": "attr",
"t": "diamond",
"n": 5000
}
],
"point": 15,
"position": [
8,
4
]
},
{
"id": 25,
"type": 999,
"talentid": 99103,
"before": [
9,
15,
22
],
"thing": [
{
"a": "attr",
"t": "gold",
"n": 40000
},
{
"a": "attr",
"t": "diamond",
"n": 5000
}
],
"point": 15,
"position": [
15,
3
]
} }
] ]

View File

@ -716,7 +716,7 @@
"id": "channel_lock_world", "id": "channel_lock_world",
"name": { "name": {
"key": "num_2021", "key": "num_2021",
"text": "世界" "text": "世界聊天"
}, },
"main": [ "main": [
{ {
@ -739,7 +739,7 @@
"id": "channel_lock_guild", "id": "channel_lock_guild",
"name": { "name": {
"key": "num_2022", "key": "num_2022",
"text": "公会" "text": "公会聊天"
}, },
"main": [ "main": [
{ {
@ -762,7 +762,7 @@
"id": "channel_lock_private", "id": "channel_lock_private",
"name": { "name": {
"key": "num_2023", "key": "num_2023",
"text": "私聊" "text": "私聊聊天"
}, },
"main": [ "main": [
{ {
@ -785,7 +785,7 @@
"id": "channel_lock_public", "id": "channel_lock_public",
"name": { "name": {
"key": "num_2024", "key": "num_2024",
"text": "跨服" "text": "跨服聊天"
}, },
"main": [ "main": [
{ {
@ -808,7 +808,7 @@
"id": "channel_lock_system", "id": "channel_lock_system",
"name": { "name": {
"key": "num_2025", "key": "num_2025",
"text": "系统" "text": "系统聊天"
}, },
"main": [ "main": [
{ {

View File

@ -171,7 +171,7 @@
], ],
"description": { "description": {
"key": "xiaoguo_10", "key": "xiaoguo_10",
"text": "提升可挂机的时间{0}" "text": "提升可挂机的时间{0}"
}, },
"duration": 1, "duration": 1,
"exp": 0, "exp": 0,
@ -205,7 +205,7 @@
], ],
"description": { "description": {
"key": "xiaoguo_11", "key": "xiaoguo_11",
"text": "提升可挂机的时间{0}" "text": "提升可挂机的时间{0}"
}, },
"duration": 1, "duration": 1,
"exp": 0, "exp": 0,
@ -239,7 +239,7 @@
], ],
"description": { "description": {
"key": "xiaoguo_12", "key": "xiaoguo_12",
"text": "提升可挂机的时间{0}" "text": "提升可挂机的时间{0}"
}, },
"duration": 1, "duration": 1,
"exp": 0, "exp": 0,
@ -273,7 +273,7 @@
], ],
"description": { "description": {
"key": "xiaoguo_13", "key": "xiaoguo_13",
"text": "提升可挂机的时间{0},提升每分钟的经验值获取{0}%" "text": "提升可挂机的时间{0},提升每分钟的经验值获取{0}%"
}, },
"duration": 1, "duration": 1,
"exp": 10, "exp": 10,
@ -634,7 +634,7 @@
], ],
"description": { "description": {
"key": "xiaoguo_22", "key": "xiaoguo_22",
"text": "提升可挂机的时间{0}" "text": "提升可挂机的时间{0}"
}, },
"duration": 1, "duration": 1,
"exp": 0, "exp": 0,
@ -668,7 +668,7 @@
], ],
"description": { "description": {
"key": "xiaoguo_23", "key": "xiaoguo_23",
"text": "提升可挂机的时间{0}" "text": "提升可挂机的时间{0}"
}, },
"duration": 1, "duration": 1,
"exp": 0, "exp": 0,
@ -702,7 +702,7 @@
], ],
"description": { "description": {
"key": "xiaoguo_24", "key": "xiaoguo_24",
"text": "提升可挂机的时间{0}" "text": "提升可挂机的时间{0}"
}, },
"duration": 1, "duration": 1,
"exp": 0, "exp": 0,
@ -736,7 +736,7 @@
], ],
"description": { "description": {
"key": "xiaoguo_25", "key": "xiaoguo_25",
"text": "提升可挂机的时间{0},提升每分钟的经验值获取{0}%" "text": "提升可挂机的时间{0},提升每分钟的经验值获取{0}%"
}, },
"duration": 1, "duration": 1,
"exp": 0, "exp": 0,
@ -995,7 +995,7 @@
], ],
"description": { "description": {
"key": "xiaoguo_31", "key": "xiaoguo_31",
"text": "提升可挂机的时间{0}" "text": "提升可挂机的时间{0}"
}, },
"duration": 1, "duration": 1,
"exp": 0, "exp": 0,
@ -1029,7 +1029,7 @@
], ],
"description": { "description": {
"key": "xiaoguo_32", "key": "xiaoguo_32",
"text": "提升可挂机的时间{0}" "text": "提升可挂机的时间{0}"
}, },
"duration": 1, "duration": 1,
"exp": 0, "exp": 0,
@ -1063,7 +1063,7 @@
], ],
"description": { "description": {
"key": "xiaoguo_33", "key": "xiaoguo_33",
"text": "提升可挂机的时间{0},提升每分钟的经验值获取{0}%" "text": "提升可挂机的时间{0},提升每分钟的经验值获取{0}%"
}, },
"duration": 1, "duration": 1,
"exp": 10, "exp": 10,

View File

@ -7,7 +7,7 @@
"text": "一级木桩" "text": "一级木桩"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_1", "key": "daojumiaoshu_1",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -25,7 +25,7 @@
"text": "二级木桩" "text": "二级木桩"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_2", "key": "daojumiaoshu_2",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -43,7 +43,7 @@
"text": "三级木桩" "text": "三级木桩"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_3", "key": "daojumiaoshu_3",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -61,7 +61,7 @@
"text": "四级木桩" "text": "四级木桩"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_4", "key": "daojumiaoshu_4",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -79,7 +79,7 @@
"text": "五级木桩" "text": "五级木桩"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_5", "key": "daojumiaoshu_5",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -97,7 +97,7 @@
"text": "食人鱼" "text": "食人鱼"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_6", "key": "daojumiaoshu_6",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -115,7 +115,7 @@
"text": "闪闪" "text": "闪闪"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_7", "key": "daojumiaoshu_7",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -133,7 +133,7 @@
"text": "蛇先生" "text": "蛇先生"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_8", "key": "daojumiaoshu_8",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -151,7 +151,7 @@
"text": "金猴" "text": "金猴"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_9", "key": "daojumiaoshu_9",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -169,7 +169,7 @@
"text": "鹤大师" "text": "鹤大师"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_10", "key": "daojumiaoshu_10",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -187,7 +187,7 @@
"text": "悍娇虎" "text": "悍娇虎"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_11", "key": "daojumiaoshu_11",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -205,7 +205,7 @@
"text": "盖" "text": "盖"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_12", "key": "daojumiaoshu_12",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -223,7 +223,7 @@
"text": "希卡普" "text": "希卡普"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_13", "key": "daojumiaoshu_13",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -241,7 +241,7 @@
"text": "穿靴猫" "text": "穿靴猫"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_14", "key": "daojumiaoshu_14",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -259,7 +259,7 @@
"text": "师父" "text": "师父"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_15", "key": "daojumiaoshu_15",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -277,7 +277,7 @@
"text": "阿宝" "text": "阿宝"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_16", "key": "daojumiaoshu_16",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -295,7 +295,7 @@
"text": "乌龟大师" "text": "乌龟大师"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_17", "key": "daojumiaoshu_17",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -313,7 +313,7 @@
"text": "石锁" "text": "石锁"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_18", "key": "daojumiaoshu_18",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -331,7 +331,7 @@
"text": "双头空竹" "text": "双头空竹"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_19", "key": "daojumiaoshu_19",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -349,7 +349,7 @@
"text": "木爬架" "text": "木爬架"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_20", "key": "daojumiaoshu_20",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -367,7 +367,7 @@
"text": "不倒翁" "text": "不倒翁"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_21", "key": "daojumiaoshu_21",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -385,7 +385,7 @@
"text": "棒槌" "text": "棒槌"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_22", "key": "daojumiaoshu_22",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -403,7 +403,7 @@
"text": "铜铃" "text": "铜铃"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_23", "key": "daojumiaoshu_23",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -421,7 +421,7 @@
"text": "尖刺吊环" "text": "尖刺吊环"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_24", "key": "daojumiaoshu_24",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -439,7 +439,7 @@
"text": "陀螺" "text": "陀螺"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_25", "key": "daojumiaoshu_25",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -457,7 +457,7 @@
"text": "大转轮" "text": "大转轮"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_26", "key": "daojumiaoshu_26",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -475,7 +475,7 @@
"text": "木头牌" "text": "木头牌"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_27", "key": "daojumiaoshu_27",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -493,7 +493,7 @@
"text": "双节棍" "text": "双节棍"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_28", "key": "daojumiaoshu_28",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -511,7 +511,7 @@
"text": "练功带" "text": "练功带"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_29", "key": "daojumiaoshu_29",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -529,7 +529,7 @@
"text": "七彩花棍" "text": "七彩花棍"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_30", "key": "daojumiaoshu_30",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -547,7 +547,7 @@
"text": "流星飞镖" "text": "流星飞镖"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_31", "key": "daojumiaoshu_31",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -565,7 +565,7 @@
"text": "冥想锣" "text": "冥想锣"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_32", "key": "daojumiaoshu_32",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -583,7 +583,7 @@
"text": "彩条龙" "text": "彩条龙"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_33", "key": "daojumiaoshu_33",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -601,7 +601,7 @@
"text": "孔雀毛扇" "text": "孔雀毛扇"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_34", "key": "daojumiaoshu_34",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -619,7 +619,7 @@
"text": "平衡木" "text": "平衡木"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_35", "key": "daojumiaoshu_35",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -637,7 +637,7 @@
"text": "铁环" "text": "铁环"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_36", "key": "daojumiaoshu_36",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {
@ -655,7 +655,7 @@
"text": "太极球" "text": "太极球"
}, },
"effect_text": { "effect_text": {
"key": "xiaoguo_37", "key": "daojumiaoshu_37",
"text": "道具效果描述" "text": "道具效果描述"
}, },
"content_text": { "content_text": {

View File

@ -3925,37 +3925,12 @@
], ],
"dropshow": [ "dropshow": [
{ {
"a": "equi", "a": "item",
"t": "11410", "t": "600002",
"n": 1
},
{
"a": "equi",
"t": "11510",
"n": 1
},
{
"a": "equi",
"t": "11610",
"n": 1
},
{
"a": "equi",
"t": "11710",
"n": 1
},
{
"a": "equi",
"t": "11810",
"n": 1
},
{
"a": "equi",
"t": "11910",
"n": 1 "n": 1
} }
], ],
"drop": 1001, "drop": 30401,
"scene": "", "scene": "",
"bossmodel": 11009, "bossmodel": 11009,
"boss_skill": 51004, "boss_skill": 51004,
@ -4003,37 +3978,17 @@
], ],
"dropshow": [ "dropshow": [
{ {
"a": "equi", "a": "item",
"t": "11420", "t": "600002",
"n": 1 "n": 1
}, },
{ {
"a": "equi", "a": "item",
"t": "11520", "t": "600003",
"n": 1
},
{
"a": "equi",
"t": "11620",
"n": 1
},
{
"a": "equi",
"t": "11710",
"n": 1
},
{
"a": "equi",
"t": "11810",
"n": 1
},
{
"a": "equi",
"t": "11910",
"n": 1 "n": 1
} }
], ],
"drop": 1002, "drop": 30402,
"scene": "", "scene": "",
"bossmodel": 11009, "bossmodel": 11009,
"boss_skill": 51004, "boss_skill": 51004,
@ -4081,37 +4036,22 @@
], ],
"dropshow": [ "dropshow": [
{ {
"a": "equi", "a": "item",
"t": "11420", "t": "600002",
"n": 1 "n": 1
}, },
{ {
"a": "equi", "a": "item",
"t": "11520", "t": "600003",
"n": 1 "n": 1
}, },
{ {
"a": "equi", "a": "item",
"t": "11620", "t": "600004",
"n": 1
},
{
"a": "equi",
"t": "11720",
"n": 1
},
{
"a": "equi",
"t": "11820",
"n": 1
},
{
"a": "equi",
"t": "11920",
"n": 1 "n": 1
} }
], ],
"drop": 1003, "drop": 30403,
"scene": "", "scene": "",
"bossmodel": 11009, "bossmodel": 11009,
"boss_skill": 51004, "boss_skill": 51004,
@ -4159,37 +4099,22 @@
], ],
"dropshow": [ "dropshow": [
{ {
"a": "equi", "a": "item",
"t": "11430", "t": "600002",
"n": 1 "n": 1
}, },
{ {
"a": "equi", "a": "item",
"t": "11530", "t": "600003",
"n": 1 "n": 1
}, },
{ {
"a": "equi", "a": "item",
"t": "11630", "t": "600004",
"n": 1
},
{
"a": "equi",
"t": "11720",
"n": 1
},
{
"a": "equi",
"t": "11820",
"n": 1
},
{
"a": "equi",
"t": "11920",
"n": 1 "n": 1
} }
], ],
"drop": 1004, "drop": 30403,
"scene": "", "scene": "",
"bossmodel": 11009, "bossmodel": 11009,
"boss_skill": 51004, "boss_skill": 51004,
@ -4237,37 +4162,22 @@
], ],
"dropshow": [ "dropshow": [
{ {
"a": "equi", "a": "item",
"t": "11430", "t": "600002",
"n": 1 "n": 1
}, },
{ {
"a": "equi", "a": "item",
"t": "11530", "t": "600003",
"n": 1 "n": 1
}, },
{ {
"a": "equi", "a": "item",
"t": "11630", "t": "600004",
"n": 1
},
{
"a": "equi",
"t": "11730",
"n": 1
},
{
"a": "equi",
"t": "11830",
"n": 1
},
{
"a": "equi",
"t": "11930",
"n": 1 "n": 1
} }
], ],
"drop": 1004, "drop": 30403,
"scene": "", "scene": "",
"bossmodel": 11009, "bossmodel": 11009,
"boss_skill": 51004, "boss_skill": 51004,
@ -4315,37 +4225,22 @@
], ],
"dropshow": [ "dropshow": [
{ {
"a": "equi", "a": "item",
"t": "11440", "t": "600002",
"n": 1 "n": 1
}, },
{ {
"a": "equi", "a": "item",
"t": "11540", "t": "600003",
"n": 1 "n": 1
}, },
{ {
"a": "equi", "a": "item",
"t": "11640", "t": "600004",
"n": 1
},
{
"a": "equi",
"t": "11730",
"n": 1
},
{
"a": "equi",
"t": "11830",
"n": 1
},
{
"a": "equi",
"t": "11930",
"n": 1 "n": 1
} }
], ],
"drop": 1004, "drop": 30403,
"scene": "", "scene": "",
"bossmodel": 11009, "bossmodel": 11009,
"boss_skill": 51004, "boss_skill": 51004,
@ -4393,37 +4288,22 @@
], ],
"dropshow": [ "dropshow": [
{ {
"a": "equi", "a": "item",
"t": "11440", "t": "600002",
"n": 1 "n": 1
}, },
{ {
"a": "equi", "a": "item",
"t": "11540", "t": "600003",
"n": 1 "n": 1
}, },
{ {
"a": "equi", "a": "item",
"t": "11640", "t": "600004",
"n": 1
},
{
"a": "equi",
"t": "11740",
"n": 1
},
{
"a": "equi",
"t": "11840",
"n": 1
},
{
"a": "equi",
"t": "11940",
"n": 1 "n": 1
} }
], ],
"drop": 1004, "drop": 30403,
"scene": "", "scene": "",
"bossmodel": 11009, "bossmodel": 11009,
"boss_skill": 51004, "boss_skill": 51004,
@ -4471,37 +4351,22 @@
], ],
"dropshow": [ "dropshow": [
{ {
"a": "equi", "a": "item",
"t": "11450", "t": "600002",
"n": 1 "n": 1
}, },
{ {
"a": "equi", "a": "item",
"t": "11550", "t": "600003",
"n": 1 "n": 1
}, },
{ {
"a": "equi", "a": "item",
"t": "11650", "t": "600004",
"n": 1
},
{
"a": "equi",
"t": "11740",
"n": 1
},
{
"a": "equi",
"t": "11840",
"n": 1
},
{
"a": "equi",
"t": "11940",
"n": 1 "n": 1
} }
], ],
"drop": 1004, "drop": 30403,
"scene": "", "scene": "",
"bossmodel": 11009, "bossmodel": 11009,
"boss_skill": 51004, "boss_skill": 51004,
@ -4549,37 +4414,22 @@
], ],
"dropshow": [ "dropshow": [
{ {
"a": "equi", "a": "item",
"t": "11450", "t": "600002",
"n": 1 "n": 1
}, },
{ {
"a": "equi", "a": "item",
"t": "11550", "t": "600003",
"n": 1 "n": 1
}, },
{ {
"a": "equi", "a": "item",
"t": "11650", "t": "600004",
"n": 1
},
{
"a": "equi",
"t": "11750",
"n": 1
},
{
"a": "equi",
"t": "11850",
"n": 1
},
{
"a": "equi",
"t": "11950",
"n": 1 "n": 1
} }
], ],
"drop": 1004, "drop": 30403,
"scene": "", "scene": "",
"bossmodel": 11009, "bossmodel": 11009,
"boss_skill": 51004, "boss_skill": 51004,
@ -4627,37 +4477,22 @@
], ],
"dropshow": [ "dropshow": [
{ {
"a": "equi", "a": "item",
"t": "11460", "t": "600002",
"n": 1 "n": 1
}, },
{ {
"a": "equi", "a": "item",
"t": "11560", "t": "600003",
"n": 1 "n": 1
}, },
{ {
"a": "equi", "a": "item",
"t": "11660", "t": "600004",
"n": 1
},
{
"a": "equi",
"t": "11750",
"n": 1
},
{
"a": "equi",
"t": "11850",
"n": 1
},
{
"a": "equi",
"t": "11950",
"n": 1 "n": 1
} }
], ],
"drop": 1004, "drop": 30403,
"scene": "", "scene": "",
"bossmodel": 11009, "bossmodel": 11009,
"boss_skill": 51004, "boss_skill": 51004,
@ -4705,37 +4540,22 @@
], ],
"dropshow": [ "dropshow": [
{ {
"a": "equi", "a": "item",
"t": "11460", "t": "600002",
"n": 1 "n": 1
}, },
{ {
"a": "equi", "a": "item",
"t": "11560", "t": "600003",
"n": 1 "n": 1
}, },
{ {
"a": "equi", "a": "item",
"t": "11660", "t": "600004",
"n": 1
},
{
"a": "equi",
"t": "11760",
"n": 1
},
{
"a": "equi",
"t": "11860",
"n": 1
},
{
"a": "equi",
"t": "11960",
"n": 1 "n": 1
} }
], ],
"drop": 1004, "drop": 30403,
"scene": "", "scene": "",
"bossmodel": 11009, "bossmodel": 11009,
"boss_skill": 51004, "boss_skill": 51004,
@ -4783,37 +4603,22 @@
], ],
"dropshow": [ "dropshow": [
{ {
"a": "equi", "a": "item",
"t": "11460", "t": "600002",
"n": 1 "n": 1
}, },
{ {
"a": "equi", "a": "item",
"t": "11560", "t": "600003",
"n": 1 "n": 1
}, },
{ {
"a": "equi", "a": "item",
"t": "11660", "t": "600004",
"n": 1
},
{
"a": "equi",
"t": "11760",
"n": 1
},
{
"a": "equi",
"t": "11860",
"n": 1
},
{
"a": "equi",
"t": "11960",
"n": 1 "n": 1
} }
], ],
"drop": 1004, "drop": 30403,
"scene": "", "scene": "",
"bossmodel": 11009, "bossmodel": 11009,
"boss_skill": 51004, "boss_skill": 51004,

1
bin/timestamp.text Normal file
View File

@ -0,0 +1 @@
15.000000

View File

@ -59,6 +59,7 @@
"data":"", "data":"",
} }
``` ```
### 邮件发放API ### 邮件发放API
- 接口名:createmail - 接口名:createmail
- 接口说明:web 服务器给玩家发送邮件 - 接口说明:web 服务器给玩家发送邮件
@ -112,4 +113,26 @@
"msg":"成功", "msg":"成功",
"data":"", "data":"",
} }
```
### 修改服务器时间
- 接口名:modifyopentime
- 接口说明:修改区服服务当前时间用于QA测试
- 请求地址:{IP}:{port}/modifyopentime
- 请求参数:offest(请求时间戳|签名),sign(签名)
- 请求样例
```
{
"offest":12,
"sign":"asjioqiowjeioqjweijqwejoi"
}
```
- 返回参数 code(0:成功 -1 失败),msg(结果描述),data(返回的额外数据)
- 返回样例
```
{
"code":0,
"msg":"成功",
"data":"",
}
``` ```

View File

@ -148,7 +148,7 @@ const (
TableSmithyTrade = "smithytrade" TableSmithyTrade = "smithytrade"
TableSmithyTask = "smithytask" TableSmithyTask = "smithytask"
/// 赛季塔数据表 /// 赛季塔数据表
TableSeasonPagoda = "seasonpagoda" //TableSeasonPagoda = "seasonpagoda"
// //
TableViking = "viking" TableViking = "viking"
// 维京远征排行榜 // 维京远征排行榜
@ -171,8 +171,6 @@ const (
TableCrossSession = "crosssession" TableCrossSession = "crosssession"
TableSeasonData = "seasondata" // 跨服服务器相关数据
///竞技场 ///竞技场
TableArena = "arena" TableArena = "arena"
TableArenaRank = "arenarank" //排名 TableArenaRank = "arenarank" //排名

View File

@ -291,7 +291,6 @@ type (
// 修改爬塔 // 修改爬塔
IPagoda interface { IPagoda interface {
ModifyPagodaFloor(session IUserSession, level int32) (code pb.ErrorCode) ModifyPagodaFloor(session IUserSession, level int32) (code pb.ErrorCode)
ModifySeasonPagodaFloor(session IUserSession, level int32) (code pb.ErrorCode)
CheckUserBasePagodaInfo(uid string) (data *pb.DBPagodaRecord) // 查询玩家最佳通关记录 CheckUserBasePagodaInfo(uid string) (data *pb.DBPagodaRecord) // 查询玩家最佳通关记录
// Check Rtype84 Rtype85 Rtype86 // Check Rtype84 Rtype85 Rtype86

View File

@ -33,6 +33,7 @@ const abortIndex int8 = math.MaxInt8 >> 1
func newContext(log log.ILogger, engine *Engine, params *Params, skippedNodes *[]skippedNode) *Context { func newContext(log log.ILogger, engine *Engine, params *Params, skippedNodes *[]skippedNode) *Context {
return &Context{ return &Context{
Log: log,
engine: engine, engine: engine,
params: params, params: params,
skippedNodes: skippedNodes, skippedNodes: skippedNodes,
@ -102,8 +103,8 @@ func (this *Context) Handler() HandlerFunc {
FullPath 返回匹配的路由完整路径 对于未找到的路线 FullPath 返回匹配的路由完整路径 对于未找到的路线
返回一个空字符串 返回一个空字符串
*/ */
func (c *Context) FullPath() string { func (this *Context) FullPath() string {
return c.fullPath return this.fullPath
} }
func (this *Context) Next() { func (this *Context) Next() {
@ -216,8 +217,8 @@ func (this *Context) GetUint(key string) (ui uint) {
return return
} }
func (c *Context) GetUInt32(key string) (i uint32) { func (this *Context) GetUInt32(key string) (i uint32) {
if val, ok := c.Get(key); ok && val != nil { if val, ok := this.Get(key); ok && val != nil {
i, _ = val.(uint32) i, _ = val.(uint32)
} }
return return

View File

@ -491,7 +491,7 @@ func (this *Engine) prepareTrustedCIDRs() ([]*net.IPNet, error) {
func (this *Engine) allocateContext() *Context { func (this *Engine) allocateContext() *Context {
v := make(Params, 0, this.maxParams) v := make(Params, 0, this.maxParams)
skippedNodes := make([]skippedNode, 0, this.maxSections) skippedNodes := make([]skippedNode, 0, this.maxSections)
return &Context{Log: this.log, engine: this, params: &v, skippedNodes: &skippedNodes} return newContext(this.log, this, &v, &skippedNodes) //& Context{Log: this.log, engine: this, params: &v, skippedNodes: &skippedNodes}
} }
//日志接口------------------------------------------------------------- //日志接口-------------------------------------------------------------

View File

@ -181,7 +181,7 @@ func (this *Agent) decodeUserData(msg *pb.UserMessage) (code pb.ErrorCode, err e
timestamp := jsonRet.Get("timestamp").Int() timestamp := jsonRet.Get("timestamp").Int()
//秘钥30秒失效 //秘钥30秒失效
if now-time.Unix(timestamp, 0).Unix() > 30 { if now-time.Unix(timestamp, 0).Unix() > 30 {
this.gateway.Errorf("last timestamp:%v more than 30s", timestamp) this.gateway.Errorf("now:%v last timestamp:%v more than 30s", now, timestamp)
return pb.ErrorCode_TimestampTimeout, fmt.Errorf("sec key expire") return pb.ErrorCode_TimestampTimeout, fmt.Errorf("sec key expire")
} }

View File

@ -174,21 +174,8 @@ func (this *GM) CreateCmd(session comm.IUserSession, cmd string) (code pb.ErrorC
log.Field{Key: "0", Value: datas[0]}, log.Field{Key: "0", Value: datas[0]},
) )
} else if len(datas) == 2 && (datas[0] == "season") { // 赛季塔跳转 } else if len(datas) == 2 && (datas[0] == "season") { // 赛季塔跳转
module1, err := this.service.GetModule(comm.ModulePagoda) code = pb.ErrorCode_ConfigNoFound
if err != nil { return
return
}
num, err := strconv.Atoi(datas[1])
if err != nil {
code = pb.ErrorCode_ReqParameterError
return
}
code = module1.(comm.IPagoda).ModifySeasonPagodaFloor(session, int32(num))
this.Debug("使用bingo命令:uid = %s ",
log.Field{Key: "uid", Value: session.GetUserId()},
log.Field{Key: "0", Value: datas[0]},
log.Field{Key: "N", Value: int32(num)},
)
} else if len(datas) == 1 && (datas[0] == "viking") { // 解锁远征所有难度 } else if len(datas) == 1 && (datas[0] == "viking") { // 解锁远征所有难度
module1, err := this.service.GetModule(comm.ModuleViking) module1, err := this.service.GetModule(comm.ModuleViking)
if err != nil { if err != nil {
@ -285,7 +272,7 @@ func (this *GM) CreateCmd(session comm.IUserSession, cmd string) (code pb.ErrorC
log.Field{Key: "uid", Value: session.GetUserId()}, log.Field{Key: "uid", Value: session.GetUserId()},
log.Field{Key: "0", Value: datas[1]}, log.Field{Key: "0", Value: datas[1]},
) )
} else if len(datas) == 1 && (datas[0] == "allgrowtask") { // 完成所有成长任务 } else if len(datas) == 1 && (datas[0] == "allgrowtask") { // 完成所有成长任务
module, err := this.service.GetModule(comm.ModuleGrowtask) module, err := this.service.GetModule(comm.ModuleGrowtask)
if err != nil { if err != nil {
return return

View File

@ -80,8 +80,8 @@ func TimerStar() {
if !db.IsCross() { if !db.IsCross() {
conn, err := db.Cross() conn, err := db.Cross()
if err == nil { if err == nil {
model := db.NewDBModel(comm.TableSeasonData, 0, conn) model := db.NewDBModel(comm.TablePagodaRecord, 0, conn)
model.DB.DeleteMany(comm.TableSeasonPagoda, bson.M{}, options.Delete()) //model.DB.DeleteMany(comm.TableSeasonPagoda, bson.M{}, options.Delete())
model.DB.DeleteMany(comm.TablePagodaRecord, bson.M{}, options.Delete()) model.DB.DeleteMany(comm.TablePagodaRecord, bson.M{}, options.Delete())
for pos := 0; pos < comm.MaxRankNum; pos++ { for pos := 0; pos < comm.MaxRankNum; pos++ {
key1 := fmt.Sprintf("pagodaList%d", pos) key1 := fmt.Sprintf("pagodaList%d", pos)

View File

@ -49,7 +49,7 @@ func (this *apiComp) FetterLvUp(session comm.IUserSession, req *pb.LibraryFetter
return return
} }
if _, ok := fetter.Prize[fetter.Fidlv]; !ok { if _, ok := fetter.Prize[fetter.Fidlv]; ok {
code = pb.ErrorCode_LibraryReward code = pb.ErrorCode_LibraryReward
return return
} }

View File

@ -23,11 +23,10 @@ func (this *apiComp) ChallengeOverCheck(session comm.IUserSession, req *pb.Pagod
///挑战主线关卡 ///挑战主线关卡
func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChallengeOverReq) (code pb.ErrorCode, data *pb.ErrorData) { func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChallengeOverReq) (code pb.ErrorCode, data *pb.ErrorData) {
var ( var (
mapData map[string]interface{} mapData map[string]interface{}
pagoda *pb.DBPagoda pagoda *pb.DBPagoda
costTime int32 // 本次战斗消耗的时间 isWin bool
isWin bool err error
err error
) )
mapData = make(map[string]interface{}, 0) mapData = make(map[string]interface{}, 0)
code = this.ChallengeOverCheck(session, req) code = this.ChallengeOverCheck(session, req)
@ -75,7 +74,6 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChal
code = pb.ErrorCode_BattleNoWin code = pb.ErrorCode_BattleNoWin
return return
} }
costTime = req.Report.Costtime
// 加经验 // 加经验
if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 { if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 {
for _, v := range req.Report.Info.Redflist[0].Team { for _, v := range req.Report.Info.Redflist[0].Team {
@ -86,16 +84,11 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChal
} }
pagoda.Data[conf.Tab] += 1 pagoda.Data[conf.Tab] += 1
pagoda.PagodaId = conf.Key
mapData["pagodaId"] = pagoda.PagodaId mapData["pagodaId"] = pagoda.PagodaId
mapData["type"] = pagoda.Type mapData["type"] = pagoda.Type
mapData["data"] = pagoda.Data mapData["data"] = pagoda.Data
this.module.modulerank.AddPagodaRecord(session.GetUserId(), costTime, pagoda.PagodaId, conf.PagodaType)
if conf.LayerNum > pagoda.PagodaId {
pagoda.PagodaId = conf.LayerNum // 更新层数
}
code = this.module.ModifyPagodaData(session.GetUserId(), mapData) code = this.module.ModifyPagodaData(session.GetUserId(), mapData)
session.SendMsg(string(this.module.GetType()), PagodaChallengeOverResp, &pb.PagodaChallengeOverResp{Data: pagoda}) session.SendMsg(string(this.module.GetType()), PagodaChallengeOverResp, &pb.PagodaChallengeOverResp{Data: pagoda})
if user := this.module.ModuleUser.GetUser(session.GetUserId()); user != nil { // 发系统公告 if user := this.module.ModuleUser.GetUser(session.GetUserId()); user != nil { // 发系统公告
@ -131,19 +124,18 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChal
Leadpos: leadpos, Leadpos: leadpos,
Line: szLine, Line: szLine,
CostTime: req.Report.Costtime, CostTime: req.Report.Costtime,
Tab: conf.Tab,
} }
costTime = newData.CostTime
// 数据写到跨服中 // 数据写到跨服中
conn_, err := db.Cross() if conn_, err := db.Cross(); err == nil {
dbModel := db.NewDBModel(comm.TablePagodaRecord, time.Hour, conn_) dbModel := db.NewDBModel(comm.TablePagodaRecord, time.Hour, conn_)
dbModel.AddList(uid, newData.Id, newData) dbModel.AddList(uid, newData.Id, newData)
this.module.SetPagodaRankList("pagodaList"+strconv.Itoa(int(newData.PagodaId)), int64(math.MaxInt32-newData.CostTime), newData.Id) } else {
dbModelTable := db.NewDBModel(comm.TableSeasonPagoda, time.Hour, conn_) this.module.Errorf("db crosserr :%v", err)
if err = dbModelTable.Get(session.GetUserId(), pagoda); err == nil {
dbModelTable.Change(session.GetUserId(), mapData) // 修改跨服数据
score := int64(pagoda.PagodaId)<<31 + int64(math.MaxInt32-costTime)
this.module.SetPagodaRankList("pagodaSeasonRank", score, session.GetUserId())
} }
this.module.SetPagodaRankList("pagodaList"+strconv.Itoa(int(newData.PagodaId)), int64(math.MaxInt32-newData.CostTime), newData.Id)
} }
// 通关奖励 // 通关奖励
@ -152,9 +144,6 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChal
return return
} }
// 任务相关 // 任务相关
this.module.ModuleRtask.TriggerTask(session.GetUserId(), comm.GettaskParam(comm.Rtype58, 1), comm.GettaskParam(comm.Rtype59, pagoda.PagodaId))
// this.module.ModuleRtask.SendToRtask(session, comm.Rtype58, 1)
// this.module.ModuleRtask.SendToRtask(session, comm.Rtype59, pagoda.PagodaId)
go this.module.ModuleRtask.TriggerTask(session.GetUserId(), comm.GettaskParam(comm.Rtype58, 1), comm.GettaskParam(comm.Rtype59, pagoda.PagodaId))
return return
} }

View File

@ -13,82 +13,42 @@ func (this *apiComp) GetRewardCheck(session comm.IUserSession, req *pb.PagodaGet
return return
} }
///获取主线关卡信息
func (this *apiComp) GetReward(session comm.IUserSession, req *pb.PagodaGetRewardReq) (code pb.ErrorCode, data *pb.ErrorData) { func (this *apiComp) GetReward(session comm.IUserSession, req *pb.PagodaGetRewardReq) (code pb.ErrorCode, data *pb.ErrorData) {
code = this.GetRewardCheck(session, req) code = this.GetRewardCheck(session, req)
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return // 参数校验失败直接返回 return // 参数校验失败直接返回
} }
// 获取 奖励信息
list, err := this.module.modelPagoda.getPagodaList(session.GetUserId()) if pagoda, err := this.module.modelPagoda.getPagodaList(session.GetUserId()); err != nil {
if err != nil || list == nil {
code = pb.ErrorCode_DBError
return
}
season, _ := this.module.modelSeasonPagoda.getSeasonPagodaList(session.GetUserId())
if season != nil {
_cfg := this.module.configure.GetPagodaRewardconfig(req.Id) _cfg := this.module.configure.GetPagodaRewardconfig(req.Id)
if _cfg == nil { if _cfg == nil {
code = pb.ErrorCode_ConfigNoFound code = pb.ErrorCode_ConfigNoFound
return return
} }
// 校验是否能领取 // 校验是否能领取
if _cfg.LayerNum > season.PagodaId { if _cfg.LayerNum > pagoda.PagodaId {
code = pb.ErrorCode_PagodaConditionErr code = pb.ErrorCode_PagodaConditionErr
return return
} }
if _, ok := season.Reward[req.Id]; ok { // 校验是否重复领取 if _, ok := pagoda.Reward[req.Id]; ok { // 校验是否重复领取
code = pb.ErrorCode_PagodaGetRewardErr code = pb.ErrorCode_PagodaGetRewardErr
return return
} }
if season.Reward == nil { if pagoda.Reward == nil {
season.Reward = make(map[int32]bool, 0) pagoda.Reward = make(map[int32]bool, 0)
} }
// 发奖励 // 发奖励
if code = this.module.DispenseRes(session, _cfg.Reward, true); code != pb.ErrorCode_Success { if code = this.module.DispenseRes(session, _cfg.Reward, true); code != pb.ErrorCode_Success {
return return
} }
season.Reward[req.Id] = true pagoda.Reward[req.Id] = true
mapData := make(map[string]interface{}, 0) mapData := make(map[string]interface{}, 0)
mapData["reward"] = season.Reward mapData["reward"] = pagoda.Reward
code = this.module.ModifySeasonPagodaData(session.GetUserId(), mapData)
session.SendMsg(string(this.module.GetType()), PagodaGetRewardResp, &pb.PagodaGetRewardResp{Data: &pb.DBPagoda{
PagodaId: season.PagodaId,
Reward: season.Reward,
Type: season.Type,
}})
} else {
_cfg := this.module.configure.GetPagodaRewardconfig(req.Id)
if _cfg == nil {
code = pb.ErrorCode_ConfigNoFound
return
}
// 校验是否能领取
if _cfg.LayerNum > list.PagodaId {
code = pb.ErrorCode_PagodaConditionErr
return
}
if _, ok := list.Reward[req.Id]; ok { // 校验是否重复领取
code = pb.ErrorCode_PagodaGetRewardErr
return
}
if list.Reward == nil {
list.Reward = make(map[int32]bool, 0)
}
// 发奖励
if code = this.module.DispenseRes(session, _cfg.Reward, true); code != pb.ErrorCode_Success {
return
}
list.Reward[req.Id] = true
mapData := make(map[string]interface{}, 0)
mapData["reward"] = list.Reward
code = this.module.ModifyPagodaData(session.GetUserId(), mapData) code = this.module.ModifyPagodaData(session.GetUserId(), mapData)
session.SendMsg(string(this.module.GetType()), PagodaGetRewardResp, &pb.PagodaGetRewardResp{Data: list})
}
session.SendMsg(string(this.module.GetType()), PagodaGetRewardResp, &pb.PagodaGetRewardResp{Data: pagoda})
}
return return
} }

View File

@ -3,8 +3,6 @@ package pagoda
import ( import (
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/pb" "go_dreamfactory/pb"
"go.mongodb.org/mongo-driver/bson/primitive"
) )
//参数校验 //参数校验
@ -12,23 +10,12 @@ func (this *apiComp) QueryRecordCheck(session comm.IUserSession, req *pb.PagodaQ
return return
} }
///获取主线关卡信息
func (this *apiComp) QueryRecord(session comm.IUserSession, req *pb.PagodaQueryRecordReq) (code pb.ErrorCode, data *pb.ErrorData) { func (this *apiComp) QueryRecord(session comm.IUserSession, req *pb.PagodaQueryRecordReq) (code pb.ErrorCode, data *pb.ErrorData) {
var ( var (
record *pb.DBPagodaRecord record *pb.DBPagodaRecord
) )
list, _ := this.module.modelPagoda.getPagodaList(session.GetUserId()) if list, err := this.module.modelPagoda.getPagodaList(session.GetUserId()); err == nil {
if list == nil { // redis没有数据
list = &pb.DBPagoda{}
list.Id = primitive.NewObjectID().Hex()
list.Uid = session.GetUserId()
list.PagodaId = 0 // 初始数据0层
list.Type = comm.PagodaType
this.module.modelPagoda.addNewPagoda(session.GetUserId(), list)
} else {
record = this.module.modulerank.getPagodaRankListByFloorid(session.GetUserId(), list.PagodaId) record = this.module.modulerank.getPagodaRankListByFloorid(session.GetUserId(), list.PagodaId)
} }
session.SendMsg(string(this.module.GetType()), PagodaQueryRecordResp, &pb.PagodaQueryRecordResp{Data: record}) session.SendMsg(string(this.module.GetType()), PagodaQueryRecordResp, &pb.PagodaQueryRecordResp{Data: record})

View File

@ -5,7 +5,6 @@ import (
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/lego/sys/redis/pipe" "go_dreamfactory/lego/sys/redis/pipe"
"go_dreamfactory/pb" "go_dreamfactory/pb"
"go_dreamfactory/sys/db"
"strconv" "strconv"
"github.com/go-redis/redis/v8" "github.com/go-redis/redis/v8"
@ -27,31 +26,29 @@ func (this *apiComp) RankList(session comm.IUserSession, req *pb.PagodaRankListR
return return
} }
if !req.Friend { if !req.Friend {
if !this.module.IsCross() { if this.module.IsCross() {
if conn, err := db.Cross(); err == nil { //if conn, err := db.Cross(); err == nil {
var ( var (
pipe *pipe.RedisPipe = conn.Redis.RedisPipe(context.TODO()) pipe *pipe.RedisPipe = this.module.modelPagoda.Redis.RedisPipe(context.TODO())
) )
if req.Cid == 0 { if req.Cid != 0 {
rd = pipe.ZRevRange("pagodaSeasonRank", 0, comm.MaxRankList) rd = pipe.ZRange("pagodaList"+strconv.Itoa(int(req.Cid)), 0, comm.MaxRankList)
} else { }
rd = pipe.ZRange("pagodaList"+strconv.Itoa(int(req.Cid)), 0, comm.MaxRankList)
}
if _, err = pipe.Exec(); err != nil { if _, err := pipe.Exec(); err != nil {
this.module.Errorln(err) this.module.Errorln(err)
return return
} }
_dataList := rd.Val() _dataList := rd.Val()
for _, v := range _dataList { for _, v := range _dataList {
//conn_, err := db.Cross() //conn_, err := db.Cross()
dbModel := db.NewDBModel(comm.TablePagodaRecord, 0, conn) //dbModel := db.NewDBModel(comm.TablePagodaRecord, 0, conn)
result := &pb.DBPagodaRecord{} result := &pb.DBPagodaRecord{}
if err = dbModel.GetListObj(session.GetUserId(), v, result); err == nil { if err := this.module.modulerank.GetListObj(session.GetUserId(), v, result); err == nil {
szRank = append(szRank, result) szRank = append(szRank, result)
}
} }
} }
//}
} }
} else { } else {
uids := this.module.friend.GetFriendList(session.GetUserId()) uids := this.module.friend.GetFriendList(session.GetUserId())

View File

@ -27,7 +27,7 @@ func (this *apiComp) WarOrder(session comm.IUserSession, req *pb.PagodaWarOrderR
mapData = make(map[string]interface{}, 0) mapData = make(map[string]interface{}, 0)
//this.WarOrderCheck(session, req) //this.WarOrderCheck(session, req)
list, _ = this.module.modelSeasonPagoda.getSeasonPagodaList(session.GetUserId()) list, _ = this.module.modelPagoda.getPagodaList(session.GetUserId())
if list.Id == "" { if list.Id == "" {
code = pb.ErrorCode_PagodaConditionErr // 领取条件没达到 code = pb.ErrorCode_PagodaConditionErr // 领取条件没达到
return return
@ -115,7 +115,7 @@ func (this *apiComp) WarOrder(session comm.IUserSession, req *pb.PagodaWarOrderR
}) })
} }
code = this.module.ModifySeasonPagodaData(session.GetUserId(), mapData) code = this.module.ModifyPagodaData(session.GetUserId(), mapData)
session.SendMsg(string(this.module.GetType()), PagodaWarOrderResp, &pb.PagodaWarOrderResp{ session.SendMsg(string(this.module.GetType()), PagodaWarOrderResp, &pb.PagodaWarOrderResp{
Data: list, Data: list,
Itmes: res, Itmes: res,

View File

@ -4,6 +4,7 @@ import (
"context" "context"
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/lego/core" "go_dreamfactory/lego/core"
"go_dreamfactory/sys/db"
//"go_dreamfactory/lego/sys/redis" //"go_dreamfactory/lego/sys/redis"
"go_dreamfactory/lego/sys/redis/pipe" "go_dreamfactory/lego/sys/redis/pipe"
@ -11,7 +12,6 @@ import (
"go_dreamfactory/pb" "go_dreamfactory/pb"
"github.com/go-redis/redis/v8" "github.com/go-redis/redis/v8"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/x/bsonx" "go.mongodb.org/mongo-driver/x/bsonx"
) )
@ -35,53 +35,28 @@ func (this *ModelRank) Init(service core.IService, module core.IModule, comp cor
return return
} }
// func (this *ModelRank) GetRankData() (data []*pb.DBPagodaRecord, err error) { func (this *ModelRank) getPagodaRankListByFloorid(uid string, cid int32) *pb.DBPagodaRecord {
// data = make([]*pb.DBPagodaRecord, 0)
// if conn, err := db.Cross(); err == nil {
// err = conn.Redis.LRange(comm.TableSeasonRankList, 0, -1, &data)
// }
// //err = this.Redis.LRange(comm.TablePagodaRankList, 0, -1, &data)
// return
// }
// 写记录
func (this *ModelRank) AddPagodaRecord(uid string, costTime, pagodaId, pagodaType int32) (err error) {
userinfo := this.modulePagoda.ModuleUser.GetUser(uid)
newData := &pb.DBPagodaRecord{
Id: primitive.NewObjectID().Hex(),
Uid: uid,
PagodaId: pagodaId,
Type: pagodaType,
Nickname: userinfo.Name,
Icon: "", // icon 暂无
Lv: userinfo.Lv,
CostTime: costTime,
}
err = this.AddList(uid, newData.Id, newData)
return
}
func (this *ModelRank) getPagodaRankList(uid string) []*pb.DBPagodaRecord {
pagodaRank := make([]*pb.DBPagodaRecord, 0) pagodaRank := make([]*pb.DBPagodaRecord, 0)
err := this.GetList(uid, &pagodaRank) if db.IsCross() {
if err != nil { if err := this.GetList(uid, &pagodaRank); err != nil {
return nil return nil
} }
return pagodaRank } else {
} if conn, err := db.Cross(); err == nil {
dbModel := db.NewDBModel(comm.TablePagodaRecord, 0, conn)
func (this *ModelRank) getPagodaRankListByFloorid(uid string, floorid int32) *pb.DBPagodaRecord { if err = dbModel.GetList(uid, &pagodaRank); err == nil {
pagodaRank := make([]*pb.DBPagodaRecord, 0) return nil
err := this.GetList(uid, &pagodaRank) }
if err != nil {
return nil
}
for _, v := range pagodaRank {
if v.PagodaId == floorid {
return v
} }
} }
for _, v := range pagodaRank {
if conf := this.modulePagoda.configure.GetPagodaConfigData(cid); conf == nil {
if v.PagodaId == conf.LayerNum && v.Tab == conf.Tab {
return v
}
}
}
return nil return nil
} }

View File

@ -1,87 +0,0 @@
package pagoda
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
"go_dreamfactory/sys/db"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/x/bsonx"
)
/// 赛季塔
type ModelSeasonPagoda struct {
modules.MCompModel
module *Pagoda
}
func (this *ModelSeasonPagoda) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
this.TableName = string(comm.TableSeasonPagoda)
err = this.MCompModel.Init(service, module, comp, options)
this.module = module.(*Pagoda)
//创建uid索引
this.DB.CreateIndex(core.SqlTable(this.TableName), mongo.IndexModel{
Keys: bsonx.Doc{{Key: "uid", Value: bsonx.Int32(1)}},
})
return
}
// 获取爬塔信息
func (this *ModelSeasonPagoda) getSeasonPagodaList(uid string) (result *pb.DBPagoda, err error) {
result = &pb.DBPagoda{}
if err = this.Get(uid, result); err != nil {
return
}
err = nil
return result, err
}
// 修改爬塔数据信息
func (this *ModelSeasonPagoda) modifySeasonPagodaDataByObjId(uid string, data map[string]interface{}) error {
return this.Change(uid, data)
}
// 创建一个新的赛季塔数据
func (this *ModelSeasonPagoda) addNewSeasonPagoda(uId string, data *pb.DBPagoda) (err error) {
//err = this.InsertModelLogs(this.TableName, uId, []interface{}{data}) // 不需要经过redis
if err = this.Add(uId, data); err != nil {
this.module.Errorf("err:%v", err)
return
}
if !this.module.IsCross() {
if conn, err := db.Cross(); err == nil {
data1 := &comm.Autogenerated{
ID: primitive.NewObjectID().Hex(),
UID: uId,
Act: string(comm.LogHandleType_Update),
}
table := comm.TablePagodaRecord //, uid, , data)
data1.D = append(data1.D, table) // D[0]
data1.D = append(data1.D, bson.M{"uid": uId}) // D[1]
data1.D = append(data1.D, data) // D[2]
_, err = conn.Mgo.InsertOne("model_log", data1)
if err != nil {
log.Errorf("insert model db err %v", err)
}
}
}
return nil
}
// 赛季结束 清理所有塔数据
func (this *ModelSeasonPagoda) DleAllSeasonData() {
this.DB.DeleteMany(core.SqlTable(this.TableName), bson.M{})
err := this.Redis.Ltrim(comm.TablePagodaRecord, 0, -1)
if err != nil {
log.Errorf("delete failed")
}
return
}

View File

@ -2,7 +2,6 @@ package pagoda
import ( import (
"context" "context"
"fmt"
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/lego/base" "go_dreamfactory/lego/base"
"go_dreamfactory/lego/core" "go_dreamfactory/lego/core"
@ -13,21 +12,19 @@ import (
"go_dreamfactory/sys/db" "go_dreamfactory/sys/db"
"github.com/go-redis/redis/v8" "github.com/go-redis/redis/v8"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
) )
type Pagoda struct { type Pagoda struct {
modules.ModuleBase modules.ModuleBase
modelPagoda *ModelPagoda modelPagoda *ModelPagoda
modelSeasonPagoda *ModelSeasonPagoda //modelSeasonPagoda *ModelSeasonPagoda
api *apiComp api *apiComp
modulerank *ModelRank modulerank *ModelRank
configure *configureComp configure *configureComp
battle comm.IBattle battle comm.IBattle
service base.IRPCXService service base.IRPCXService
mail comm.Imail mail comm.Imail
friend comm.IFriend friend comm.IFriend
} }
func NewModule() core.IModule { func NewModule() core.IModule {
@ -48,7 +45,7 @@ func (this *Pagoda) OnInstallComp() {
this.ModuleBase.OnInstallComp() this.ModuleBase.OnInstallComp()
this.api = this.RegisterComp(new(apiComp)).(*apiComp) this.api = this.RegisterComp(new(apiComp)).(*apiComp)
this.modelPagoda = this.RegisterComp(new(ModelPagoda)).(*ModelPagoda) this.modelPagoda = this.RegisterComp(new(ModelPagoda)).(*ModelPagoda)
this.modelSeasonPagoda = this.RegisterComp(new(ModelSeasonPagoda)).(*ModelSeasonPagoda) //this.modelSeasonPagoda = this.RegisterComp(new(ModelSeasonPagoda)).(*ModelSeasonPagoda)
this.modulerank = this.RegisterComp(new(ModelRank)).(*ModelRank) this.modulerank = this.RegisterComp(new(ModelRank)).(*ModelRank)
this.configure = this.RegisterComp(new(configureComp)).(*configureComp) this.configure = this.RegisterComp(new(configureComp)).(*configureComp)
} }
@ -62,14 +59,6 @@ func (this *Pagoda) ModifyPagodaData(uid string, data map[string]interface{}) (c
return return
} }
// 修改赛季塔信息
func (this *Pagoda) ModifySeasonPagodaData(uid string, data map[string]interface{}) (code pb.ErrorCode) {
err := this.modelSeasonPagoda.modifySeasonPagodaDataByObjId(uid, data)
if err != nil {
code = pb.ErrorCode_DBError
}
return
}
func (this *Pagoda) Start() (err error) { func (this *Pagoda) Start() (err error) {
err = this.ModuleBase.Start() err = this.ModuleBase.Start()
var module core.IModule var module core.IModule
@ -122,19 +111,6 @@ func (this *Pagoda) CheckUserBasePagodaInfo(uid string) (data *pb.DBPagodaRecord
return return
} }
// 清除赛季塔信息
func (this *Pagoda) CleanSeasonPagodaData() (code pb.ErrorCode) {
seasonMaxCount := this.modelPagoda.module.configure.GetPagodaFloor(201)
for iPos := 0; iPos < int(seasonMaxCount); iPos++ {
key := fmt.Sprintf("%s-%d-rank", floorRankKey, iPos+1)
if err := this.modelSeasonPagoda.Redis.Ltrim(key, 0, -1); err != nil {
log.Errorf("delete failed")
}
}
return
}
// redis 排序 tableName:"pagodaList" // redis 排序 tableName:"pagodaList"
func (this *Pagoda) SetPagodaRankList(tableName string, score int64, uid string) { func (this *Pagoda) SetPagodaRankList(tableName string, score int64, uid string) {
if !this.IsCross() { if !this.IsCross() {
@ -169,9 +145,7 @@ func (this *Pagoda) Reddot(session comm.IUserSession, rid ...comm.ReddotType) (r
case comm.Reddot6: case comm.Reddot6:
reddot[comm.Reddot6] = this.CheckPoint6(session.GetUserId()) reddot[comm.Reddot6] = this.CheckPoint6(session.GetUserId())
break break
case comm.Reddot7:
reddot[comm.Reddot7] = this.CheckPoint7(session.GetUserId())
break
} }
} }
@ -189,15 +163,6 @@ func (this *Pagoda) CheckPoint6(uid string) bool {
return true return true
} }
// 检测赛季塔
season, err := this.modelSeasonPagoda.getSeasonPagodaList(uid)
if err != nil {
return false
}
maxFloor = this.configure.GetPagodaFloor(list.Type)
if season.PagodaId < maxFloor { // 层数不够 显示红点
return true
}
return true return true
} }
@ -206,24 +171,6 @@ func (this *Pagoda) Rpc_ModuleSeasonPagodaReward(ctx context.Context, args *pb.E
// this.modulerank.seasonSettlement() // this.modulerank.seasonSettlement()
} }
func (this *Pagoda) CheckPoint7(uid string) bool {
list, _ := this.modelPagoda.getPagodaList(uid)
if list.Id == "" { // 普通塔
return false
}
if len(list.Reward) > 0 {
return true
}
season, _ := this.modelSeasonPagoda.getSeasonPagodaList(uid)
if season.Id == "" { // 普通塔
return false
}
if len(season.Reward) > 0 {
return true
}
return true
}
// 给随机任务提供的接口查询当前塔的通关层数 // 给随机任务提供的接口查询当前塔的通关层数
func (this *Pagoda) CheckPagodaMaxFloor(uid string, pagodaType int32) int32 { func (this *Pagoda) CheckPagodaMaxFloor(uid string, pagodaType int32) int32 {
if pagodaType == 1 { if pagodaType == 1 {
@ -237,31 +184,3 @@ func (this *Pagoda) CheckPagodaMaxFloor(uid string, pagodaType int32) int32 {
} }
return 0 return 0
} }
// 赛季塔跳转
func (this *Pagoda) ModifySeasonPagodaFloor(session comm.IUserSession, level int32) (code pb.ErrorCode) {
list, _ := this.modelSeasonPagoda.getSeasonPagodaList(session.GetUserId())
if list.Id == "" {
list.Id = primitive.NewObjectID().Hex()
list.Uid = session.GetUserId()
list.PagodaId = level
if conn, err := db.Cross(); err == nil {
rst := conn.Mgo.FindOne(comm.TableSeasonData, bson.M{})
server := &pb.DBServerData{}
rst.Decode(server)
list.Type = server.SeasonType
}
this.modelSeasonPagoda.addNewSeasonPagoda(session.GetUserId(), list)
session.SendMsg(string(this.GetType()), PagodaGetListResp, &pb.PagodaGetListResp{Data: list})
} else {
list.PagodaId = level
mapData := make(map[string]interface{}, 0)
mapData["pagodaId"] = level
code = this.ModifySeasonPagodaData(session.GetUserId(), mapData)
session.SendMsg(string(this.GetType()), PagodaGetListResp, &pb.PagodaGetListResp{Data: list})
}
return
}

View File

@ -1,255 +0,0 @@
package timer
import (
"context"
"fmt"
"go_dreamfactory/comm"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
"go_dreamfactory/sys/configure"
"go_dreamfactory/sys/db"
"math"
"strconv"
"go_dreamfactory/lego/base"
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/core/cbase"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/lego/sys/redis/pipe"
"github.com/go-redis/redis/v8"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo/options"
)
var (
game_seasonloop = "game_seasonloop.json"
game_seasonreward = "game_pagodaseasonreward.json"
)
type SeasonPagoda struct {
cbase.ModuleCompBase
modules.MCompConfigure
modules.MCompModel
service base.IRPCXService
module *Timer
mail comm.Imail
}
//组件初始化接口
func (this *SeasonPagoda) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
this.MCompConfigure.Init(service, module, comp, options)
this.TableName = comm.TableSeasonPagoda
this.MCompModel.Init(service, module, comp, options)
this.service = service.(base.IRPCXService)
this.module = module.(*Timer)
if module1, err := this.service.GetModule(comm.ModuleMail); err == nil {
this.mail = module1.(comm.Imail)
}
return
}
func (this *SeasonPagoda) Start() (err error) {
err = this.MCompModel.Start()
err = this.MCompConfigure.Start()
// configure.RegisterConfigure(game_seasonloop, cfg.NewGameSeasonLoop, nil)
// configure.RegisterConfigure(game_seasonreward, cfg.NewGamePagodaSeasonReward, nil)
// cron.AddFunc("0 0 23 L * ?", this.TimerSeasonOver) //每月最后一天23点执行一次
// cron.AddFunc("0 0 5 /* * ?", this.TimerSeasonStar) //每月第一天5点执行一次
// if db.IsCross() {
// return
// }
// //time.Sleep(time.Second * 1)
// //this.DbTest()
// conn, err := db.Cross()
// if err == nil {
// //this.DbTest()
// model := db.NewDBModel(comm.TableSeasonData, 0, conn)
// _len, err1 := model.DB.CountDocuments(comm.TableSeasonData, bson.M{})
// if err1 == nil && _len == 0 {
// fmt.Printf("%v,%v", _len, err1)
// server := &pb.DBServerData{
// Id: primitive.NewObjectID().Hex(),
// ServerState: 1,
// DisposableLoop: 1,
// FixedLoop: 0,
// SeasonType: 201,
// OpenTime: time.Now().Unix(),
// }
// conf := this.GetSeasonLoop(comm.SeasonType)
// if len(conf.DisposableLoop) > 0 {
// server.SeasonType = conf.DisposableLoop[0]
// }
// model.DB.InsertOne(comm.TableSeasonData, server)
// }
// }
return
}
// func (this *SeasonPagoda) GetSeasonReward() []int32 {
// sz := make([]int32, 0)
// if v, err := this.GetConfigure(game_seasonreward); err != nil {
// log.Errorf("get global conf err:%v", err)
// return sz
// } else {
// if configure, ok := v.(*cfg.GamePagodaSeasonReward); ok {
// for _, v := range configure.GetDataList() {
// sz = append(sz, v.Ranking[0])
// }
// }
// log.Errorf("%T no is *cfg.Game_global", v)
// return sz
// }
// }
// // 赛季塔结束
// func (this *SeasonPagoda) TimerSeasonOver() {
// this.module.Debugf("TimerSeasonOver:%d", configure.Now().Unix())
// if db.IsCross() {
// if conn, err := db.Cross(); err == nil {
// if rst := conn.Mgo.FindOne(comm.TableSeasonData, bson.M{}); rst != nil {
// serverData := &pb.DBServerData{}
// rst.Decode(serverData)
// conf := this.GetSeasonLoop(comm.SeasonType) // 获取赛季塔重置配置
// if serverData.FixedLoop == 0 {
// if len(conf.DisposableLoop) >= int(serverData.DisposableLoop) && len(conf.FixedLoop) > 0 { // 开始执行循环逻辑
// serverData.FixedLoop = 1
// serverData.DisposableLoop = 0
// serverData.SeasonType = conf.FixedLoop[int(serverData.FixedLoop)-1]
// } else {
// serverData.DisposableLoop++
// serverData.SeasonType = conf.DisposableLoop[int(serverData.DisposableLoop)-1]
// }
// } else { // 循环
// if len(conf.FixedLoop) >= int(serverData.FixedLoop) {
// serverData.FixedLoop = 1
// } else {
// serverData.FixedLoop++
// }
// serverData.SeasonType = conf.FixedLoop[int(serverData.FixedLoop)-1]
// }
// this.DB.UpdateOne(comm.TableSeasonData, bson.M{}, serverData)
// fmt.Printf("%v", serverData)
// }
// }
// }
// if _, err := this.service.RpcGo(context.Background(),
// comm.Service_Worker,
// string(comm.Rpc_ModuleSeasonPagodaReward),
// pb.EmptyReq{},
// nil,
// ); err != nil {
// this.module.Errorln(err)
// }
//}
// 赛季塔开始
func (this *SeasonPagoda) TimerSeasonStar() {
this.module.Debugf("TimerSeasonStar:%d", configure.Now().Unix())
//star := configure.Now()
if !db.IsCross() { // 删除本服的赛季塔数据
conn, err := db.Cross() // 获取跨服的链接对象
if err == nil {
model := db.NewDBModel(comm.TableSeasonData, 0, conn)
model.DB.DeleteMany(comm.TableSeasonPagoda, bson.M{}, options.Delete())
model.DB.DeleteMany(comm.TablePagodaRecord, bson.M{}, options.Delete())
for pos := 0; pos < comm.MaxRankNum; pos++ {
key1 := fmt.Sprintf("pagodaList%d", pos)
if err := model.Redis.Delete(key1); err != nil {
log.Errorf("delete failed")
}
}
if err := model.Redis.Delete("pagodaSeasonRank"); err != nil {
log.Errorf("delete failed")
}
}
this.DB.DeleteMany(comm.TablePagodaRecord, bson.M{}, options.Delete())
}
//this.module.Debugf("=====%d,", time.Since(star).Milliseconds())
}
func (this *SeasonPagoda) DbTest() {
conn, _ := db.Cross()
model1 := db.NewDBModel(comm.TableVikingRank, 0, conn)
model1.Redis.Delete("vikingRank2")
_d, err := model1.Redis.Keys("vikingrank:*")
if err == nil {
for _, v := range _d {
model1.Redis.Delete(v)
}
fmt.Printf("%v", _d)
}
//star := configure.Now()
for i := 1; i < 10; i++ {
new := &pb.DBVikingRank{
Id: primitive.NewObjectID().Hex(),
Uid: "mmmxxx" + strconv.Itoa(i),
Difficulty: int32(i) % 10,
Bosstype: 2,
Nickname: "helo",
Icon: "",
Lv: 120,
Leadpos: 1,
Line: make([]*pb.LineUp, 5),
CostTime: 12000 + int32(i),
}
model1.AddList(new.Uid, new.Id, new)
//model1.Add(new.Uid, new)
var (
pipe *pipe.RedisPipe = conn.Redis.RedisPipe(context.TODO())
menbers *redis.Z
tableName string
score int64
)
score = int64(i)<<31 + int64(math.MaxInt32-new.CostTime)
tableName = "vikingRank" + strconv.Itoa(int(new.Bosstype))
strKey := "vikingrank:" + new.Uid + "-" + new.Id // 自定义key new.Uid //
menbers = &redis.Z{Score: float64(score), Member: strKey}
if cmd := pipe.ZAdd(tableName, menbers); cmd != nil {
dock, err1 := cmd.Result()
if err1 != nil {
this.module.Errorln(dock, err1)
}
}
if _, err := pipe.Exec(); err != nil {
this.module.Errorln(err)
}
}
//this.module.Debugf("=====%d,", time.Since(star).Milliseconds())
if true {
var (
pipe *pipe.RedisPipe = conn.Redis.RedisPipe(context.TODO())
szRank []*pb.DBVikingRank
)
// 降序
rd := pipe.ZRevRange("vikingRank"+strconv.Itoa(2), 0, -1)
if _, err := pipe.Exec(); err != nil {
this.module.Errorln(err)
return
}
_dataList := rd.Val()
for _, v := range _dataList {
result := &pb.DBVikingRank{}
if err := model1.Redis.HGetAll(v, result); err == nil {
szRank = append(szRank, result)
}
}
this.module.Debugf("%v", szRank)
}
}

View File

@ -22,7 +22,9 @@ func (this *Api_Comp) CreateNotify(c *engine.Context) {
msg string msg string
data interface{} data interface{}
) )
defer c.JSON(http.StatusOK, &Respond{Code: code, Message: msg, Data: data}) defer func() {
c.JSON(http.StatusOK, &Respond{Code: code, Message: msg, Data: data})
}()
if sign := gin.ParamSign(this.options.Key, map[string]interface{}{"Title": req.Title, "Ctime": req.Ctime, "Rtime": req.Rtime}); sign != req.Sign { if sign := gin.ParamSign(this.options.Key, map[string]interface{}{"Title": req.Title, "Ctime": req.Ctime, "Rtime": req.Rtime}); sign != req.Sign {
this.module.Errorf("LoginByCaptchaReq SignError sgin:%s", sign) this.module.Errorf("LoginByCaptchaReq SignError sgin:%s", sign)
code = pb.ErrorCode_SignError code = pb.ErrorCode_SignError

View File

@ -0,0 +1,48 @@
package web
import (
"context"
"go_dreamfactory/comm"
"go_dreamfactory/lego/sys/gin"
"go_dreamfactory/lego/sys/gin/engine"
"go_dreamfactory/pb"
"go_dreamfactory/sys/configure"
"net/http"
"time"
)
type ModifyopentimeReq struct {
Offest int64 `json:"offest"` // uid
Sign string `json:"sign"`
}
//修改开服时间
func (this *Api_Comp) Modifyopentime(c *engine.Context) {
req := &ModifyopentimeReq{}
err := c.BindJSON(&req)
this.module.Debugf("CreateNotify:%+v err:%v", req, err)
var (
code pb.ErrorCode
msg string
)
defer func() {
c.JSON(http.StatusOK, &Respond{Code: code, Message: msg, Data: nil})
}()
if sign := gin.ParamSign(this.options.Key, map[string]interface{}{"offest": req.Offest}); sign != req.Sign {
this.module.Errorf("Modifyopentime SignError sgin:%s", sign)
code = pb.ErrorCode_SignError
msg = pb.GetErrorCodeMsg(code)
return
}
configure.SetOffsettime(time.Duration(req.Offest) * time.Second)
if err := this.module.service.RpcBroadcast(
context.Background(),
comm.Service_Worker,
string(comm.Rpc_ConfigureUpDate),
&pb.EmptyReq{},
&pb.EmptyResp{}); err != nil {
this.module.Errorln(err)
msg = err.Error()
code = pb.ErrorCode_RpcFuncExecutionError
}
}

View File

@ -1,65 +0,0 @@
package web
import (
"context"
"fmt"
"go_dreamfactory/comm"
"go_dreamfactory/lego/sys/gin/engine"
"go_dreamfactory/pb"
"go_dreamfactory/sys/configure"
"net/http"
"time"
)
type OpenTime struct {
Optime string `json:"optime"` //开服时间
Mytime string `json:"mytime"` //修改后的开服时间
}
//获取开服时间
func (this *Api_Comp) Getopentime(c *engine.Context) {
data := &OpenTime{
Optime: this.module.service.GetOpentime().Format("2006-01-02 15:04:05"),
Mytime: this.module.service.GetOpentime().Add(configure.GetOffsettime()).Format("2006-01-02 15:04:05"),
}
c.JSON(http.StatusOK, &Respond{
Code: 0,
Message: "成功",
Data: data,
})
}
//修改开服时间
func (this *Api_Comp) Modifyopentime(c *engine.Context) {
var (
code pb.ErrorCode
msg string
offest time.Duration
)
opentime := c.PostForm("opentime")
defer func() {
c.JSON(http.StatusOK, &Respond{
Code: code,
Message: msg,
Data: opentime,
})
}()
t, err := time.ParseInLocation("2006-01-02 15:04:05", opentime, time.Local)
if nil != err || t.IsZero() {
this.module.Errorln(err)
msg = fmt.Sprintf("opentime:%s 格式异常", opentime)
code = pb.ErrorCode_ReqParameterError
}
offest = t.Sub(this.module.service.GetOpentime())
configure.SetOffsettime(offest)
if err := this.module.service.RpcBroadcast(
context.Background(),
comm.Service_Worker,
string(comm.Rpc_ConfigureUpDate),
&pb.EmptyReq{},
&pb.EmptyResp{}); err != nil {
this.module.Errorln(err)
msg = err.Error()
code = pb.ErrorCode_RpcFuncExecutionError
}
}

View File

@ -147,6 +147,7 @@ type DBPagodaRecord struct {
Leadpos int32 `protobuf:"varint,8,opt,name=leadpos,proto3" json:"leadpos"` //队长位置 Leadpos int32 `protobuf:"varint,8,opt,name=leadpos,proto3" json:"leadpos"` //队长位置
Line []*LineUp `protobuf:"bytes,9,rep,name=line,proto3" json:"line"` // 阵容数据 Line []*LineUp `protobuf:"bytes,9,rep,name=line,proto3" json:"line"` // 阵容数据
CostTime int32 `protobuf:"varint,10,opt,name=costTime,proto3" json:"costTime" bson:"costTime"` //闯关耗时 单位s CostTime int32 `protobuf:"varint,10,opt,name=costTime,proto3" json:"costTime" bson:"costTime"` //闯关耗时 单位s
Tab int32 `protobuf:"varint,11,opt,name=tab,proto3" json:"tab"` // 页签
} }
func (x *DBPagodaRecord) Reset() { func (x *DBPagodaRecord) Reset() {
@ -251,6 +252,13 @@ func (x *DBPagodaRecord) GetCostTime() int32 {
return 0 return 0
} }
func (x *DBPagodaRecord) GetTab() int32 {
if x != nil {
return x.Tab
}
return 0
}
var File_pagoda_pagoda_db_proto protoreflect.FileDescriptor var File_pagoda_pagoda_db_proto protoreflect.FileDescriptor
var file_pagoda_pagoda_db_proto_rawDesc = []byte{ var file_pagoda_pagoda_db_proto_rawDesc = []byte{
@ -282,7 +290,7 @@ var file_pagoda_pagoda_db_proto_rawDesc = []byte{
0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
0x38, 0x01, 0x22, 0xf5, 0x01, 0x0a, 0x0e, 0x44, 0x42, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x52, 0x38, 0x01, 0x22, 0x87, 0x02, 0x0a, 0x0e, 0x44, 0x42, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x52,
0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x6f, 0x64, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x6f, 0x64,
@ -297,8 +305,9 @@ var file_pagoda_pagoda_db_proto_rawDesc = []byte{
0x73, 0x12, 0x1b, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x73, 0x12, 0x1b, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x07, 0x2e, 0x4c, 0x69, 0x6e, 0x65, 0x55, 0x70, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1a, 0x07, 0x2e, 0x4c, 0x69, 0x6e, 0x65, 0x55, 0x70, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1a,
0x0a, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x0a, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05,
0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61,
0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x62, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x74, 0x61, 0x62, 0x42, 0x06, 0x5a, 0x04,
0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (

View File

@ -2731,7 +2731,7 @@ func (x *UserSellResReq) GetAtno() []*UserAtno {
return nil return nil
} }
//出售道具请求 回应 //出售资源 回应
type UserSellResResp struct { type UserSellResResp struct {
state protoimpl.MessageState state protoimpl.MessageState
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache

View File

@ -12,7 +12,7 @@ import "errors"
type GameBattleReadyData struct { type GameBattleReadyData struct {
Id int32 Id int32
PlayType string PlayType int32
HeroCount int32 HeroCount int32
ReadyScene string ReadyScene string
BattleScenes []string BattleScenes []string
@ -33,7 +33,7 @@ func (*GameBattleReadyData) GetTypeId() int32 {
func (_v *GameBattleReadyData)Deserialize(_buf map[string]interface{}) (err error) { func (_v *GameBattleReadyData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; if _v.PlayType, _ok_ = _buf["PlayType"].(string); !_ok_ { err = errors.New("PlayType error"); return } } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["PlayType"].(float64); !_ok_ { err = errors.New("PlayType error"); return }; _v.PlayType = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["HeroCount"].(float64); !_ok_ { err = errors.New("HeroCount error"); return }; _v.HeroCount = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["HeroCount"].(float64); !_ok_ { err = errors.New("HeroCount error"); return }; _v.HeroCount = int32(_tempNum_) }
{ var _ok_ bool; if _v.ReadyScene, _ok_ = _buf["readyScene"].(string); !_ok_ { err = errors.New("readyScene error"); return } } { var _ok_ bool; if _v.ReadyScene, _ok_ = _buf["readyScene"].(string); !_ok_ { err = errors.New("readyScene error"); return } }
{ {

View File

@ -13,11 +13,11 @@ import "errors"
type GameHeroTalentData struct { type GameHeroTalentData struct {
Id int32 Id int32
Type int32 Type int32
Typeline int32
Talentid int32 Talentid int32
Before []int32 Before []int32
Thing []*Gameatn Thing []*Gameatn
Point int32 Point int32
Position []int32
} }
const TypeId_GameHeroTalentData = 1749022668 const TypeId_GameHeroTalentData = 1749022668
@ -29,6 +29,7 @@ func (*GameHeroTalentData) GetTypeId() int32 {
func (_v *GameHeroTalentData)Deserialize(_buf map[string]interface{}) (err error) { func (_v *GameHeroTalentData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["type"].(float64); !_ok_ { err = errors.New("type error"); return }; _v.Type = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["type"].(float64); !_ok_ { err = errors.New("type error"); return }; _v.Type = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["typeline"].(float64); !_ok_ { err = errors.New("typeline error"); return }; _v.Typeline = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["talentid"].(float64); !_ok_ { err = errors.New("talentid error"); return }; _v.Talentid = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["talentid"].(float64); !_ok_ { err = errors.New("talentid error"); return }; _v.Talentid = int32(_tempNum_) }
{ {
var _arr_ []interface{} var _arr_ []interface{}
@ -59,20 +60,6 @@ func (_v *GameHeroTalentData)Deserialize(_buf map[string]interface{}) (err error
} }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["point"].(float64); !_ok_ { err = errors.New("point error"); return }; _v.Point = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["point"].(float64); !_ok_ { err = errors.New("point error"); return }; _v.Point = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["position"].([]interface{}); !_ok_ { err = errors.New("position error"); return }
_v.Position = make([]int32, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ int32
{ var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
_v.Position = append(_v.Position, _list_v_)
}
}
return return
} }

View File

@ -17,6 +17,7 @@ type GameEquipSuitData struct {
Skillname string Skillname string
Icon string Icon string
FloatIcon string FloatIcon string
SimpleSkillintr string
Skillintr string Skillintr string
SetBonuses map[string]int32 SetBonuses map[string]int32
} }
@ -34,6 +35,7 @@ func (_v *GameEquipSuitData)Deserialize(_buf map[string]interface{}) (err error)
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["skillname"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Skillname error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Skillname, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["skillname"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Skillname error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Skillname, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; if _v.Icon, _ok_ = _buf["icon"].(string); !_ok_ { err = errors.New("icon error"); return } } { var _ok_ bool; if _v.Icon, _ok_ = _buf["icon"].(string); !_ok_ { err = errors.New("icon error"); return } }
{ var _ok_ bool; if _v.FloatIcon, _ok_ = _buf["FloatIcon"].(string); !_ok_ { err = errors.New("FloatIcon error"); return } } { var _ok_ bool; if _v.FloatIcon, _ok_ = _buf["FloatIcon"].(string); !_ok_ { err = errors.New("FloatIcon error"); return } }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["simple_skillintr"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.SimpleSkillintr error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.SimpleSkillintr, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["skillintr"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Skillintr error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Skillintr, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } } {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["skillintr"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Skillintr error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Skillintr, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ {
var _arr_ []interface{} var _arr_ []interface{}