Merge branch 'dev' of http://git.legu.cc/liwei_3d/go_dreamfactory into liwei
This commit is contained in:
commit
ca68b3f9e9
@ -2958,5 +2958,9 @@
|
||||
{
|
||||
"key": "mainline_name_10070",
|
||||
"text_cn": "Chapter 70"
|
||||
},
|
||||
{
|
||||
"key": "mainline_name_10071",
|
||||
"text_cn": "故事发生在很久以前的古代中国,而且要从一只喜欢滚来滚去、滚来滚去的大熊猫身上说起。"
|
||||
}
|
||||
]
|
@ -2958,5 +2958,9 @@
|
||||
{
|
||||
"key": "mainline_name_10070",
|
||||
"text_en": ""
|
||||
},
|
||||
{
|
||||
"key": "mainline_name_10071",
|
||||
"text_en": ""
|
||||
}
|
||||
]
|
@ -2958,5 +2958,9 @@
|
||||
{
|
||||
"key": "mainline_name_10070",
|
||||
"text_tw": ""
|
||||
},
|
||||
{
|
||||
"key": "mainline_name_10071",
|
||||
"text_tw": ""
|
||||
}
|
||||
]
|
@ -3,10 +3,10 @@
|
||||
"id": "10001",
|
||||
"name": {
|
||||
"key": "equip_13001",
|
||||
"text": "罗梦菲的披风"
|
||||
"text": "披风"
|
||||
},
|
||||
"suittype": 0,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 1,
|
||||
"star": 1,
|
||||
"leadlibrary": 10001,
|
||||
@ -27,10 +27,10 @@
|
||||
"id": "10002",
|
||||
"name": {
|
||||
"key": "equip_13002",
|
||||
"text": "罗梦菲的帽子"
|
||||
"text": "帽子"
|
||||
},
|
||||
"suittype": 0,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 2,
|
||||
"star": 1,
|
||||
"leadlibrary": 10002,
|
||||
@ -51,10 +51,10 @@
|
||||
"id": "10003",
|
||||
"name": {
|
||||
"key": "equip_13003",
|
||||
"text": "罗梦菲的鞋"
|
||||
"text": "鞋"
|
||||
},
|
||||
"suittype": 0,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 3,
|
||||
"star": 1,
|
||||
"leadlibrary": 10003,
|
||||
@ -77,10 +77,10 @@
|
||||
"id": "10004",
|
||||
"name": {
|
||||
"key": "equip_13004",
|
||||
"text": "罗梦菲的裙子"
|
||||
"text": "裙子"
|
||||
},
|
||||
"suittype": 0,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 4,
|
||||
"star": 1,
|
||||
"leadlibrary": 10004,
|
||||
@ -101,10 +101,10 @@
|
||||
"id": "10005",
|
||||
"name": {
|
||||
"key": "equip_13005",
|
||||
"text": "罗梦菲的刀"
|
||||
"text": "刀"
|
||||
},
|
||||
"suittype": 100,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 5,
|
||||
"star": 1,
|
||||
"leadlibrary": 10005,
|
||||
@ -127,10 +127,10 @@
|
||||
"id": "10006",
|
||||
"name": {
|
||||
"key": "equip_13006",
|
||||
"text": "罗梦菲的围巾"
|
||||
"text": "围巾"
|
||||
},
|
||||
"suittype": 100,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 6,
|
||||
"star": 1,
|
||||
"leadlibrary": 10006,
|
||||
@ -151,10 +151,10 @@
|
||||
"id": "10011",
|
||||
"name": {
|
||||
"key": "equip_13007",
|
||||
"text": "罗梦菲的鞋"
|
||||
"text": "鞋"
|
||||
},
|
||||
"suittype": 0,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 1,
|
||||
"star": 2,
|
||||
"leadlibrary": 10011,
|
||||
@ -175,10 +175,10 @@
|
||||
"id": "10012",
|
||||
"name": {
|
||||
"key": "equip_13008",
|
||||
"text": "罗梦菲的裙子"
|
||||
"text": "裙子"
|
||||
},
|
||||
"suittype": 0,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 2,
|
||||
"star": 2,
|
||||
"leadlibrary": 10012,
|
||||
@ -199,10 +199,10 @@
|
||||
"id": "10013",
|
||||
"name": {
|
||||
"key": "equip_13009",
|
||||
"text": "罗梦菲的披风"
|
||||
"text": "披风"
|
||||
},
|
||||
"suittype": 0,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 3,
|
||||
"star": 2,
|
||||
"leadlibrary": 10013,
|
||||
@ -225,10 +225,10 @@
|
||||
"id": "10014",
|
||||
"name": {
|
||||
"key": "equip_13010",
|
||||
"text": "罗梦菲的帽子"
|
||||
"text": "帽子"
|
||||
},
|
||||
"suittype": 0,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 4,
|
||||
"star": 2,
|
||||
"leadlibrary": 10014,
|
||||
@ -249,10 +249,10 @@
|
||||
"id": "10015",
|
||||
"name": {
|
||||
"key": "equip_13011",
|
||||
"text": "罗梦菲的鞋"
|
||||
"text": "鞋"
|
||||
},
|
||||
"suittype": 100,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 5,
|
||||
"star": 2,
|
||||
"leadlibrary": 10015,
|
||||
@ -275,10 +275,10 @@
|
||||
"id": "10016",
|
||||
"name": {
|
||||
"key": "equip_13012",
|
||||
"text": "罗梦菲的裙子"
|
||||
"text": "裙子"
|
||||
},
|
||||
"suittype": 100,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 6,
|
||||
"star": 2,
|
||||
"leadlibrary": 10016,
|
||||
@ -299,10 +299,10 @@
|
||||
"id": "10021",
|
||||
"name": {
|
||||
"key": "equip_13013",
|
||||
"text": "罗梦菲的披风"
|
||||
"text": "披风"
|
||||
},
|
||||
"suittype": 0,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 1,
|
||||
"star": 3,
|
||||
"leadlibrary": 10021,
|
||||
@ -323,10 +323,10 @@
|
||||
"id": "10022",
|
||||
"name": {
|
||||
"key": "equip_13014",
|
||||
"text": "罗梦菲的帽子"
|
||||
"text": "帽子"
|
||||
},
|
||||
"suittype": 0,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 2,
|
||||
"star": 3,
|
||||
"leadlibrary": 10022,
|
||||
@ -347,10 +347,10 @@
|
||||
"id": "10023",
|
||||
"name": {
|
||||
"key": "equip_13015",
|
||||
"text": "罗梦菲的鞋"
|
||||
"text": "鞋"
|
||||
},
|
||||
"suittype": 0,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 3,
|
||||
"star": 3,
|
||||
"leadlibrary": 10023,
|
||||
@ -373,10 +373,10 @@
|
||||
"id": "10024",
|
||||
"name": {
|
||||
"key": "equip_13016",
|
||||
"text": "罗梦菲的裙子"
|
||||
"text": "裙子"
|
||||
},
|
||||
"suittype": 0,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 4,
|
||||
"star": 3,
|
||||
"leadlibrary": 10024,
|
||||
@ -397,10 +397,10 @@
|
||||
"id": "10025",
|
||||
"name": {
|
||||
"key": "equip_13017",
|
||||
"text": "罗梦菲的披风"
|
||||
"text": "披风"
|
||||
},
|
||||
"suittype": 100,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 5,
|
||||
"star": 3,
|
||||
"leadlibrary": 10025,
|
||||
@ -423,10 +423,10 @@
|
||||
"id": "10026",
|
||||
"name": {
|
||||
"key": "equip_13018",
|
||||
"text": "罗梦菲的帽子"
|
||||
"text": "帽子"
|
||||
},
|
||||
"suittype": 100,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 6,
|
||||
"star": 3,
|
||||
"leadlibrary": 10026,
|
||||
@ -447,10 +447,10 @@
|
||||
"id": "10031",
|
||||
"name": {
|
||||
"key": "equip_13019",
|
||||
"text": "罗梦菲的鞋"
|
||||
"text": "鞋"
|
||||
},
|
||||
"suittype": 0,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 1,
|
||||
"star": 4,
|
||||
"leadlibrary": 10031,
|
||||
@ -471,10 +471,10 @@
|
||||
"id": "10032",
|
||||
"name": {
|
||||
"key": "equip_13020",
|
||||
"text": "罗梦菲的裙子"
|
||||
"text": "裙子"
|
||||
},
|
||||
"suittype": 0,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 2,
|
||||
"star": 4,
|
||||
"leadlibrary": 10032,
|
||||
@ -495,10 +495,10 @@
|
||||
"id": "10033",
|
||||
"name": {
|
||||
"key": "equip_13021",
|
||||
"text": "罗梦菲的披风"
|
||||
"text": "披风"
|
||||
},
|
||||
"suittype": 0,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 3,
|
||||
"star": 4,
|
||||
"leadlibrary": 10033,
|
||||
@ -521,10 +521,10 @@
|
||||
"id": "10034",
|
||||
"name": {
|
||||
"key": "equip_13022",
|
||||
"text": "罗梦菲的帽子"
|
||||
"text": "帽子"
|
||||
},
|
||||
"suittype": 0,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 4,
|
||||
"star": 4,
|
||||
"leadlibrary": 10034,
|
||||
@ -545,10 +545,10 @@
|
||||
"id": "10035",
|
||||
"name": {
|
||||
"key": "equip_13023",
|
||||
"text": "罗梦菲的鞋"
|
||||
"text": "鞋"
|
||||
},
|
||||
"suittype": 100,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 5,
|
||||
"star": 4,
|
||||
"leadlibrary": 10035,
|
||||
@ -571,10 +571,10 @@
|
||||
"id": "10036",
|
||||
"name": {
|
||||
"key": "equip_13024",
|
||||
"text": "罗梦菲的裙子"
|
||||
"text": "裙子"
|
||||
},
|
||||
"suittype": 100,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 6,
|
||||
"star": 4,
|
||||
"leadlibrary": 10036,
|
||||
@ -595,10 +595,10 @@
|
||||
"id": "10041",
|
||||
"name": {
|
||||
"key": "equip_13025",
|
||||
"text": "罗梦菲的披风"
|
||||
"text": "披风"
|
||||
},
|
||||
"suittype": 0,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 1,
|
||||
"star": 5,
|
||||
"leadlibrary": 10041,
|
||||
@ -619,10 +619,10 @@
|
||||
"id": "10042",
|
||||
"name": {
|
||||
"key": "equip_13026",
|
||||
"text": "罗梦菲的帽子"
|
||||
"text": "帽子"
|
||||
},
|
||||
"suittype": 0,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 2,
|
||||
"star": 5,
|
||||
"leadlibrary": 10042,
|
||||
@ -643,10 +643,10 @@
|
||||
"id": "10043",
|
||||
"name": {
|
||||
"key": "equip_13027",
|
||||
"text": "罗梦菲的鞋"
|
||||
"text": "鞋"
|
||||
},
|
||||
"suittype": 0,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 3,
|
||||
"star": 5,
|
||||
"leadlibrary": 10043,
|
||||
@ -669,10 +669,10 @@
|
||||
"id": "10044",
|
||||
"name": {
|
||||
"key": "equip_13028",
|
||||
"text": "罗梦菲的裙子"
|
||||
"text": "裙子"
|
||||
},
|
||||
"suittype": 0,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 4,
|
||||
"star": 5,
|
||||
"leadlibrary": 10044,
|
||||
@ -693,10 +693,10 @@
|
||||
"id": "10045",
|
||||
"name": {
|
||||
"key": "equip_13029",
|
||||
"text": "罗梦菲的披风"
|
||||
"text": "披风"
|
||||
},
|
||||
"suittype": 100,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 5,
|
||||
"star": 5,
|
||||
"leadlibrary": 10045,
|
||||
@ -719,10 +719,10 @@
|
||||
"id": "10046",
|
||||
"name": {
|
||||
"key": "equip_13030",
|
||||
"text": "罗梦菲的帽子"
|
||||
"text": "帽子"
|
||||
},
|
||||
"suittype": 100,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 6,
|
||||
"star": 5,
|
||||
"leadlibrary": 10046,
|
||||
@ -743,10 +743,10 @@
|
||||
"id": "10051",
|
||||
"name": {
|
||||
"key": "equip_13031",
|
||||
"text": "罗梦菲的鞋"
|
||||
"text": "鞋"
|
||||
},
|
||||
"suittype": 0,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 1,
|
||||
"star": 6,
|
||||
"leadlibrary": 10051,
|
||||
@ -767,10 +767,10 @@
|
||||
"id": "10052",
|
||||
"name": {
|
||||
"key": "equip_13032",
|
||||
"text": "罗梦菲的裙子"
|
||||
"text": "裙子"
|
||||
},
|
||||
"suittype": 0,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 2,
|
||||
"star": 6,
|
||||
"leadlibrary": 10052,
|
||||
@ -791,10 +791,10 @@
|
||||
"id": "10053",
|
||||
"name": {
|
||||
"key": "equip_13033",
|
||||
"text": "罗梦菲的披风"
|
||||
"text": "披风"
|
||||
},
|
||||
"suittype": 0,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 3,
|
||||
"star": 6,
|
||||
"leadlibrary": 10053,
|
||||
@ -817,10 +817,10 @@
|
||||
"id": "10054",
|
||||
"name": {
|
||||
"key": "equip_13034",
|
||||
"text": "罗梦菲的帽子"
|
||||
"text": "帽子"
|
||||
},
|
||||
"suittype": 0,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 4,
|
||||
"star": 6,
|
||||
"leadlibrary": 10054,
|
||||
@ -841,10 +841,10 @@
|
||||
"id": "10055",
|
||||
"name": {
|
||||
"key": "equip_13035",
|
||||
"text": "罗梦菲的鞋"
|
||||
"text": "鞋"
|
||||
},
|
||||
"suittype": 100,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 5,
|
||||
"star": 6,
|
||||
"leadlibrary": 10055,
|
||||
@ -867,10 +867,10 @@
|
||||
"id": "10056",
|
||||
"name": {
|
||||
"key": "equip_13036",
|
||||
"text": "罗梦菲的裙子"
|
||||
"text": "裙子"
|
||||
},
|
||||
"suittype": 100,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 6,
|
||||
"star": 6,
|
||||
"leadlibrary": 10056,
|
||||
@ -891,10 +891,10 @@
|
||||
"id": "11001",
|
||||
"name": {
|
||||
"key": "equip_13037",
|
||||
"text": "罗梦菲的披风"
|
||||
"text": "披风"
|
||||
},
|
||||
"suittype": 1,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 1,
|
||||
"star": 1,
|
||||
"leadlibrary": 11001,
|
||||
@ -915,10 +915,10 @@
|
||||
"id": "11002",
|
||||
"name": {
|
||||
"key": "equip_13038",
|
||||
"text": "罗梦菲的帽子"
|
||||
"text": "帽子"
|
||||
},
|
||||
"suittype": 1,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 2,
|
||||
"star": 1,
|
||||
"leadlibrary": 11002,
|
||||
@ -939,10 +939,10 @@
|
||||
"id": "11003",
|
||||
"name": {
|
||||
"key": "equip_13039",
|
||||
"text": "罗梦菲的鞋"
|
||||
"text": "鞋"
|
||||
},
|
||||
"suittype": 1,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 3,
|
||||
"star": 1,
|
||||
"leadlibrary": 11003,
|
||||
@ -965,10 +965,10 @@
|
||||
"id": "11004",
|
||||
"name": {
|
||||
"key": "equip_13040",
|
||||
"text": "罗梦菲的裙子"
|
||||
"text": "裙子"
|
||||
},
|
||||
"suittype": 1,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 4,
|
||||
"star": 1,
|
||||
"leadlibrary": 11004,
|
||||
@ -989,10 +989,10 @@
|
||||
"id": "11005",
|
||||
"name": {
|
||||
"key": "equip_13041",
|
||||
"text": "罗梦菲的披风"
|
||||
"text": "披风"
|
||||
},
|
||||
"suittype": 101,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 5,
|
||||
"star": 1,
|
||||
"leadlibrary": 11005,
|
||||
@ -1015,10 +1015,10 @@
|
||||
"id": "11006",
|
||||
"name": {
|
||||
"key": "equip_13042",
|
||||
"text": "罗梦菲的帽子"
|
||||
"text": "帽子"
|
||||
},
|
||||
"suittype": 101,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 6,
|
||||
"star": 1,
|
||||
"leadlibrary": 11006,
|
||||
@ -1039,10 +1039,10 @@
|
||||
"id": "11011",
|
||||
"name": {
|
||||
"key": "equip_13043",
|
||||
"text": "罗梦菲的鞋"
|
||||
"text": "鞋"
|
||||
},
|
||||
"suittype": 1,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 1,
|
||||
"star": 2,
|
||||
"leadlibrary": 11011,
|
||||
@ -1063,10 +1063,10 @@
|
||||
"id": "11012",
|
||||
"name": {
|
||||
"key": "equip_13044",
|
||||
"text": "罗梦菲的裙子"
|
||||
"text": "裙子"
|
||||
},
|
||||
"suittype": 1,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 2,
|
||||
"star": 2,
|
||||
"leadlibrary": 11012,
|
||||
@ -1087,10 +1087,10 @@
|
||||
"id": "11013",
|
||||
"name": {
|
||||
"key": "equip_13045",
|
||||
"text": "罗梦菲的披风"
|
||||
"text": "披风"
|
||||
},
|
||||
"suittype": 1,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 3,
|
||||
"star": 2,
|
||||
"leadlibrary": 11013,
|
||||
@ -1113,10 +1113,10 @@
|
||||
"id": "11014",
|
||||
"name": {
|
||||
"key": "equip_13046",
|
||||
"text": "罗梦菲的帽子"
|
||||
"text": "帽子"
|
||||
},
|
||||
"suittype": 1,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 4,
|
||||
"star": 2,
|
||||
"leadlibrary": 11014,
|
||||
@ -1137,10 +1137,10 @@
|
||||
"id": "11015",
|
||||
"name": {
|
||||
"key": "equip_13047",
|
||||
"text": "罗梦菲的鞋"
|
||||
"text": "鞋"
|
||||
},
|
||||
"suittype": 101,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 5,
|
||||
"star": 2,
|
||||
"leadlibrary": 11015,
|
||||
@ -1163,10 +1163,10 @@
|
||||
"id": "11016",
|
||||
"name": {
|
||||
"key": "equip_13048",
|
||||
"text": "罗梦菲的裙子"
|
||||
"text": "裙子"
|
||||
},
|
||||
"suittype": 101,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 6,
|
||||
"star": 2,
|
||||
"leadlibrary": 11016,
|
||||
@ -1187,10 +1187,10 @@
|
||||
"id": "11021",
|
||||
"name": {
|
||||
"key": "equip_13049",
|
||||
"text": "罗梦菲的披风"
|
||||
"text": "披风"
|
||||
},
|
||||
"suittype": 1,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 1,
|
||||
"star": 3,
|
||||
"leadlibrary": 11021,
|
||||
@ -1211,10 +1211,10 @@
|
||||
"id": "11022",
|
||||
"name": {
|
||||
"key": "equip_13050",
|
||||
"text": "罗梦菲的帽子"
|
||||
"text": "帽子"
|
||||
},
|
||||
"suittype": 1,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 2,
|
||||
"star": 3,
|
||||
"leadlibrary": 11022,
|
||||
@ -1235,10 +1235,10 @@
|
||||
"id": "11023",
|
||||
"name": {
|
||||
"key": "equip_13051",
|
||||
"text": "罗梦菲的鞋"
|
||||
"text": "鞋"
|
||||
},
|
||||
"suittype": 1,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 3,
|
||||
"star": 3,
|
||||
"leadlibrary": 11023,
|
||||
@ -1261,10 +1261,10 @@
|
||||
"id": "11024",
|
||||
"name": {
|
||||
"key": "equip_13052",
|
||||
"text": "罗梦菲的裙子"
|
||||
"text": "裙子"
|
||||
},
|
||||
"suittype": 1,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 4,
|
||||
"star": 3,
|
||||
"leadlibrary": 11024,
|
||||
@ -1285,10 +1285,10 @@
|
||||
"id": "11025",
|
||||
"name": {
|
||||
"key": "equip_13053",
|
||||
"text": "罗梦菲的披风"
|
||||
"text": "披风"
|
||||
},
|
||||
"suittype": 101,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 5,
|
||||
"star": 3,
|
||||
"leadlibrary": 11025,
|
||||
@ -1311,10 +1311,10 @@
|
||||
"id": "11026",
|
||||
"name": {
|
||||
"key": "equip_13054",
|
||||
"text": "罗梦菲的帽子"
|
||||
"text": "帽子"
|
||||
},
|
||||
"suittype": 101,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 6,
|
||||
"star": 3,
|
||||
"leadlibrary": 11026,
|
||||
@ -1335,10 +1335,10 @@
|
||||
"id": "11031",
|
||||
"name": {
|
||||
"key": "equip_13055",
|
||||
"text": "罗梦菲的鞋"
|
||||
"text": "鞋"
|
||||
},
|
||||
"suittype": 1,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 1,
|
||||
"star": 4,
|
||||
"leadlibrary": 11031,
|
||||
@ -1359,10 +1359,10 @@
|
||||
"id": "11032",
|
||||
"name": {
|
||||
"key": "equip_13056",
|
||||
"text": "罗梦菲的裙子"
|
||||
"text": "裙子"
|
||||
},
|
||||
"suittype": 1,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 2,
|
||||
"star": 4,
|
||||
"leadlibrary": 11032,
|
||||
@ -1383,10 +1383,10 @@
|
||||
"id": "11033",
|
||||
"name": {
|
||||
"key": "equip_13057",
|
||||
"text": "罗梦菲的披风"
|
||||
"text": "披风"
|
||||
},
|
||||
"suittype": 1,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 3,
|
||||
"star": 4,
|
||||
"leadlibrary": 11033,
|
||||
@ -1409,10 +1409,10 @@
|
||||
"id": "11034",
|
||||
"name": {
|
||||
"key": "equip_13058",
|
||||
"text": "罗梦菲的帽子"
|
||||
"text": "帽子"
|
||||
},
|
||||
"suittype": 1,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 4,
|
||||
"star": 4,
|
||||
"leadlibrary": 11034,
|
||||
@ -1433,10 +1433,10 @@
|
||||
"id": "11035",
|
||||
"name": {
|
||||
"key": "equip_13059",
|
||||
"text": "罗梦菲的鞋"
|
||||
"text": "鞋"
|
||||
},
|
||||
"suittype": 101,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 5,
|
||||
"star": 4,
|
||||
"leadlibrary": 11035,
|
||||
@ -1459,10 +1459,10 @@
|
||||
"id": "11036",
|
||||
"name": {
|
||||
"key": "equip_13060",
|
||||
"text": "罗梦菲的裙子"
|
||||
"text": "裙子"
|
||||
},
|
||||
"suittype": 101,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 6,
|
||||
"star": 4,
|
||||
"leadlibrary": 11036,
|
||||
@ -1483,10 +1483,10 @@
|
||||
"id": "11041",
|
||||
"name": {
|
||||
"key": "equip_13061",
|
||||
"text": "罗梦菲的披风"
|
||||
"text": "披风"
|
||||
},
|
||||
"suittype": 1,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 1,
|
||||
"star": 5,
|
||||
"leadlibrary": 11041,
|
||||
@ -1507,10 +1507,10 @@
|
||||
"id": "11042",
|
||||
"name": {
|
||||
"key": "equip_13062",
|
||||
"text": "罗梦菲的帽子"
|
||||
"text": "帽子"
|
||||
},
|
||||
"suittype": 1,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 2,
|
||||
"star": 5,
|
||||
"leadlibrary": 11042,
|
||||
@ -1531,10 +1531,10 @@
|
||||
"id": "11043",
|
||||
"name": {
|
||||
"key": "equip_13063",
|
||||
"text": "罗梦菲的鞋"
|
||||
"text": "鞋"
|
||||
},
|
||||
"suittype": 1,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 3,
|
||||
"star": 5,
|
||||
"leadlibrary": 11043,
|
||||
@ -1557,10 +1557,10 @@
|
||||
"id": "11044",
|
||||
"name": {
|
||||
"key": "equip_13064",
|
||||
"text": "罗梦菲的裙子"
|
||||
"text": "裙子"
|
||||
},
|
||||
"suittype": 1,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 4,
|
||||
"star": 5,
|
||||
"leadlibrary": 11044,
|
||||
@ -1581,10 +1581,10 @@
|
||||
"id": "11045",
|
||||
"name": {
|
||||
"key": "equip_13065",
|
||||
"text": "罗梦菲的披风"
|
||||
"text": "披风"
|
||||
},
|
||||
"suittype": 101,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 5,
|
||||
"star": 5,
|
||||
"leadlibrary": 11045,
|
||||
@ -1607,10 +1607,10 @@
|
||||
"id": "11046",
|
||||
"name": {
|
||||
"key": "equip_13066",
|
||||
"text": "罗梦菲的帽子"
|
||||
"text": "帽子"
|
||||
},
|
||||
"suittype": 101,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 6,
|
||||
"star": 5,
|
||||
"leadlibrary": 11046,
|
||||
@ -1631,10 +1631,10 @@
|
||||
"id": "11051",
|
||||
"name": {
|
||||
"key": "equip_13067",
|
||||
"text": "罗梦菲的鞋"
|
||||
"text": "鞋"
|
||||
},
|
||||
"suittype": 1,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 1,
|
||||
"star": 6,
|
||||
"leadlibrary": 11051,
|
||||
@ -1655,10 +1655,10 @@
|
||||
"id": "11052",
|
||||
"name": {
|
||||
"key": "equip_13068",
|
||||
"text": "罗梦菲的裙子"
|
||||
"text": "裙子"
|
||||
},
|
||||
"suittype": 1,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 2,
|
||||
"star": 6,
|
||||
"leadlibrary": 11052,
|
||||
@ -1679,10 +1679,10 @@
|
||||
"id": "11053",
|
||||
"name": {
|
||||
"key": "equip_13069",
|
||||
"text": "罗梦菲的披风"
|
||||
"text": "披风"
|
||||
},
|
||||
"suittype": 1,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 3,
|
||||
"star": 6,
|
||||
"leadlibrary": 11053,
|
||||
@ -1705,10 +1705,10 @@
|
||||
"id": "11054",
|
||||
"name": {
|
||||
"key": "equip_13070",
|
||||
"text": "罗梦菲的帽子"
|
||||
"text": "帽子"
|
||||
},
|
||||
"suittype": 1,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 4,
|
||||
"star": 6,
|
||||
"leadlibrary": 11054,
|
||||
@ -1729,10 +1729,10 @@
|
||||
"id": "11055",
|
||||
"name": {
|
||||
"key": "equip_13071",
|
||||
"text": "罗梦菲的鞋"
|
||||
"text": "鞋"
|
||||
},
|
||||
"suittype": 101,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 5,
|
||||
"star": 6,
|
||||
"leadlibrary": 11055,
|
||||
@ -1755,10 +1755,10 @@
|
||||
"id": "11056",
|
||||
"name": {
|
||||
"key": "equip_13072",
|
||||
"text": "罗梦菲的裙子"
|
||||
"text": "裙子"
|
||||
},
|
||||
"suittype": 101,
|
||||
"suitintr": "梦扣扣套装",
|
||||
"suitintr": "初心者套装",
|
||||
"pos": 6,
|
||||
"star": 6,
|
||||
"leadlibrary": 11056,
|
||||
|
@ -3,119 +3,119 @@
|
||||
"suittype": 0,
|
||||
"suitnum": 4,
|
||||
"skill": 100012000,
|
||||
"skillname": "梦扣扣拳",
|
||||
"skillintr": "一拳干碎"
|
||||
"skillname": "魔力之拳",
|
||||
"skillintr": "暴击率\u002B20%"
|
||||
},
|
||||
{
|
||||
"suittype": 1,
|
||||
"suitnum": 4,
|
||||
"skill": 100012000,
|
||||
"skillname": "梦扣扣脚",
|
||||
"skillintr": "一脚干碎"
|
||||
"skillname": "魔力之脚",
|
||||
"skillintr": "暴击率\u002B20%"
|
||||
},
|
||||
{
|
||||
"suittype": 2,
|
||||
"suitnum": 4,
|
||||
"skill": 100012000,
|
||||
"skillname": "梦扣扣拳",
|
||||
"skillname": "魔力之拳",
|
||||
"skillintr": "一拳干碎"
|
||||
},
|
||||
{
|
||||
"suittype": 3,
|
||||
"suitnum": 4,
|
||||
"skill": 100012000,
|
||||
"skillname": "梦扣扣脚",
|
||||
"skillname": "魔力之脚",
|
||||
"skillintr": "一脚干碎"
|
||||
},
|
||||
{
|
||||
"suittype": 4,
|
||||
"suitnum": 4,
|
||||
"skill": 100012000,
|
||||
"skillname": "梦扣扣拳",
|
||||
"skillname": "魔力之拳",
|
||||
"skillintr": "一拳干碎"
|
||||
},
|
||||
{
|
||||
"suittype": 5,
|
||||
"suitnum": 4,
|
||||
"skill": 100012000,
|
||||
"skillname": "梦扣扣脚",
|
||||
"skillname": "魔力之脚",
|
||||
"skillintr": "一脚干碎"
|
||||
},
|
||||
{
|
||||
"suittype": 6,
|
||||
"suitnum": 4,
|
||||
"skill": 100012000,
|
||||
"skillname": "梦扣扣拳",
|
||||
"skillname": "魔力之拳",
|
||||
"skillintr": "一拳干碎"
|
||||
},
|
||||
{
|
||||
"suittype": 7,
|
||||
"suitnum": 4,
|
||||
"skill": 100012000,
|
||||
"skillname": "梦扣扣脚",
|
||||
"skillname": "魔力之脚",
|
||||
"skillintr": "一脚干碎"
|
||||
},
|
||||
{
|
||||
"suittype": 8,
|
||||
"suitnum": 4,
|
||||
"skill": 100012000,
|
||||
"skillname": "梦扣扣拳",
|
||||
"skillname": "魔力之拳",
|
||||
"skillintr": "一拳干碎"
|
||||
},
|
||||
{
|
||||
"suittype": 9,
|
||||
"suitnum": 4,
|
||||
"skill": 100012000,
|
||||
"skillname": "梦扣扣脚",
|
||||
"skillname": "魔力之脚",
|
||||
"skillintr": "一脚干碎"
|
||||
},
|
||||
{
|
||||
"suittype": 100,
|
||||
"suitnum": 2,
|
||||
"skill": 100012000,
|
||||
"skillname": "梦扣扣拳",
|
||||
"skillname": "魔力之拳",
|
||||
"skillintr": "一拳干碎"
|
||||
},
|
||||
{
|
||||
"suittype": 101,
|
||||
"suitnum": 2,
|
||||
"skill": 100012000,
|
||||
"skillname": "梦扣扣脚",
|
||||
"skillname": "魔力之脚",
|
||||
"skillintr": "一脚干碎"
|
||||
},
|
||||
{
|
||||
"suittype": 102,
|
||||
"suitnum": 2,
|
||||
"skill": 100012000,
|
||||
"skillname": "梦扣扣拳",
|
||||
"skillname": "魔力之拳",
|
||||
"skillintr": "一拳干碎"
|
||||
},
|
||||
{
|
||||
"suittype": 103,
|
||||
"suitnum": 2,
|
||||
"skill": 100012000,
|
||||
"skillname": "梦扣扣脚",
|
||||
"skillname": "魔力之脚",
|
||||
"skillintr": "一脚干碎"
|
||||
},
|
||||
{
|
||||
"suittype": 104,
|
||||
"suitnum": 2,
|
||||
"skill": 100012000,
|
||||
"skillname": "梦扣扣拳",
|
||||
"skillname": "魔力之拳",
|
||||
"skillintr": "一拳干碎"
|
||||
},
|
||||
{
|
||||
"suittype": 105,
|
||||
"suitnum": 2,
|
||||
"skill": 100012000,
|
||||
"skillname": "梦扣扣脚",
|
||||
"skillname": "魔力之脚",
|
||||
"skillintr": "一脚干碎"
|
||||
},
|
||||
{
|
||||
"suittype": 106,
|
||||
"suitnum": 2,
|
||||
"skill": 100012000,
|
||||
"skillname": "梦扣扣拳",
|
||||
"skillname": "魔力之拳",
|
||||
"skillintr": "一拳干碎"
|
||||
}
|
||||
]
|
332
bin/json/game_facemod.json
Normal file
332
bin/json/game_facemod.json
Normal file
@ -0,0 +1,332 @@
|
||||
[
|
||||
{
|
||||
"id": 1001,
|
||||
"suitintr": "预设1",
|
||||
"figure": [
|
||||
{
|
||||
"id": 1,
|
||||
"key": "hair",
|
||||
"color": "#fffff",
|
||||
"val": 0,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": "face_icon_01"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"key": "eye",
|
||||
"color": "#fffff",
|
||||
"val": 0,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": "face_icon_01"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"key": "mouth",
|
||||
"color": "",
|
||||
"val": 0,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": "face_icon_01"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"key": "height",
|
||||
"color": "",
|
||||
"val": 5,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": ""
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"key": "size",
|
||||
"color": "",
|
||||
"val": 5,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": ""
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"key": "color",
|
||||
"color": "#fffff",
|
||||
"val": 0,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1002,
|
||||
"suitintr": "预设2",
|
||||
"figure": [
|
||||
{
|
||||
"id": 1,
|
||||
"key": "hair",
|
||||
"color": "#fffff",
|
||||
"val": 0,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": "face_icon_01"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"key": "eye",
|
||||
"color": "#fffff",
|
||||
"val": 0,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": "face_icon_01"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"key": "mouth",
|
||||
"color": "",
|
||||
"val": 0,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": "face_icon_01"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"key": "height",
|
||||
"color": "",
|
||||
"val": 5,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": ""
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"key": "size",
|
||||
"color": "",
|
||||
"val": 5,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": ""
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"key": "color",
|
||||
"color": "#fffff",
|
||||
"val": 0,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1003,
|
||||
"suitintr": "预设3",
|
||||
"figure": [
|
||||
{
|
||||
"id": 1,
|
||||
"key": "hair",
|
||||
"color": "#fffff",
|
||||
"val": 0,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": "face_icon_01"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"key": "eye",
|
||||
"color": "#fffff",
|
||||
"val": 0,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": "face_icon_01"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"key": "mouth",
|
||||
"color": "",
|
||||
"val": 0,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": "face_icon_01"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"key": "height",
|
||||
"color": "",
|
||||
"val": 5,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": ""
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"key": "size",
|
||||
"color": "",
|
||||
"val": 5,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": ""
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"key": "color",
|
||||
"color": "#fffff",
|
||||
"val": 0,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1004,
|
||||
"suitintr": "预设4",
|
||||
"figure": [
|
||||
{
|
||||
"id": 1,
|
||||
"key": "hair",
|
||||
"color": "#fffff",
|
||||
"val": 0,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": "face_icon_01"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"key": "eye",
|
||||
"color": "#fffff",
|
||||
"val": 0,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": "face_icon_01"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"key": "mouth",
|
||||
"color": "",
|
||||
"val": 0,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": "face_icon_01"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"key": "height",
|
||||
"color": "",
|
||||
"val": 5,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": ""
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"key": "size",
|
||||
"color": "",
|
||||
"val": 5,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": ""
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"key": "color",
|
||||
"color": "#fffff",
|
||||
"val": 0,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1005,
|
||||
"suitintr": "预设5",
|
||||
"figure": [
|
||||
{
|
||||
"id": 1,
|
||||
"key": "hair",
|
||||
"color": "#fffff",
|
||||
"val": 0,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": "face_icon_01"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"key": "eye",
|
||||
"color": "#fffff",
|
||||
"val": 0,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": "face_icon_01"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"key": "mouth",
|
||||
"color": "",
|
||||
"val": 0,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": "face_icon_01"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"key": "height",
|
||||
"color": "",
|
||||
"val": 5,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": ""
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"key": "size",
|
||||
"color": "",
|
||||
"val": 5,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": ""
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"key": "color",
|
||||
"color": "#fffff",
|
||||
"val": 0,
|
||||
"positon_x": 0,
|
||||
"positon_y": 0,
|
||||
"positon_z": 0,
|
||||
"icon": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
@ -579,7 +579,7 @@
|
||||
"id": 111,
|
||||
"previoustage": 110,
|
||||
"order": 11,
|
||||
"linearnum": 1,
|
||||
"linearnum": 11,
|
||||
"chapter": 1,
|
||||
"route": 1,
|
||||
"Episodetype": 1,
|
||||
@ -640,7 +640,7 @@
|
||||
"id": 112,
|
||||
"previoustage": 111,
|
||||
"order": 12,
|
||||
"linearnum": 2,
|
||||
"linearnum": 12,
|
||||
"chapter": 1,
|
||||
"route": 1,
|
||||
"Episodetype": 1,
|
||||
@ -701,7 +701,7 @@
|
||||
"id": 201,
|
||||
"previoustage": 112,
|
||||
"order": 13,
|
||||
"linearnum": 3,
|
||||
"linearnum": 1,
|
||||
"chapter": 2,
|
||||
"route": 1,
|
||||
"Episodetype": 1,
|
||||
@ -762,7 +762,7 @@
|
||||
"id": 202,
|
||||
"previoustage": 201,
|
||||
"order": 14,
|
||||
"linearnum": 4,
|
||||
"linearnum": 2,
|
||||
"chapter": 2,
|
||||
"route": 1,
|
||||
"Episodetype": 1,
|
||||
@ -823,7 +823,7 @@
|
||||
"id": 203,
|
||||
"previoustage": 202,
|
||||
"order": 15,
|
||||
"linearnum": 5,
|
||||
"linearnum": 3,
|
||||
"chapter": 2,
|
||||
"route": 1,
|
||||
"Episodetype": 1,
|
||||
@ -884,7 +884,7 @@
|
||||
"id": 204,
|
||||
"previoustage": 203,
|
||||
"order": 16,
|
||||
"linearnum": 6,
|
||||
"linearnum": 4,
|
||||
"chapter": 2,
|
||||
"route": 2,
|
||||
"Episodetype": 1,
|
||||
@ -945,7 +945,7 @@
|
||||
"id": 205,
|
||||
"previoustage": 204,
|
||||
"order": 17,
|
||||
"linearnum": 7,
|
||||
"linearnum": 5,
|
||||
"chapter": 2,
|
||||
"route": 2,
|
||||
"Episodetype": 1,
|
||||
@ -1006,7 +1006,7 @@
|
||||
"id": 206,
|
||||
"previoustage": 205,
|
||||
"order": 18,
|
||||
"linearnum": 8,
|
||||
"linearnum": 6,
|
||||
"chapter": 2,
|
||||
"route": 2,
|
||||
"Episodetype": 1,
|
||||
@ -1067,7 +1067,7 @@
|
||||
"id": 207,
|
||||
"previoustage": 206,
|
||||
"order": 19,
|
||||
"linearnum": 9,
|
||||
"linearnum": 7,
|
||||
"chapter": 2,
|
||||
"route": 2,
|
||||
"Episodetype": 1,
|
||||
@ -1128,7 +1128,7 @@
|
||||
"id": 208,
|
||||
"previoustage": 207,
|
||||
"order": 20,
|
||||
"linearnum": 10,
|
||||
"linearnum": 8,
|
||||
"chapter": 2,
|
||||
"route": 2,
|
||||
"Episodetype": 1,
|
||||
@ -1189,7 +1189,7 @@
|
||||
"id": 209,
|
||||
"previoustage": 208,
|
||||
"order": 21,
|
||||
"linearnum": 11,
|
||||
"linearnum": 9,
|
||||
"chapter": 2,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -1250,7 +1250,7 @@
|
||||
"id": 210,
|
||||
"previoustage": 209,
|
||||
"order": 22,
|
||||
"linearnum": 12,
|
||||
"linearnum": 10,
|
||||
"chapter": 2,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -1311,7 +1311,7 @@
|
||||
"id": 211,
|
||||
"previoustage": 210,
|
||||
"order": 23,
|
||||
"linearnum": 13,
|
||||
"linearnum": 11,
|
||||
"chapter": 2,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -1372,7 +1372,7 @@
|
||||
"id": 212,
|
||||
"previoustage": 211,
|
||||
"order": 24,
|
||||
"linearnum": 14,
|
||||
"linearnum": 12,
|
||||
"chapter": 2,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -1433,7 +1433,7 @@
|
||||
"id": 301,
|
||||
"previoustage": 212,
|
||||
"order": 25,
|
||||
"linearnum": 15,
|
||||
"linearnum": 1,
|
||||
"chapter": 3,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -1494,7 +1494,7 @@
|
||||
"id": 302,
|
||||
"previoustage": 301,
|
||||
"order": 26,
|
||||
"linearnum": 16,
|
||||
"linearnum": 2,
|
||||
"chapter": 3,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -1555,7 +1555,7 @@
|
||||
"id": 303,
|
||||
"previoustage": 302,
|
||||
"order": 27,
|
||||
"linearnum": 17,
|
||||
"linearnum": 3,
|
||||
"chapter": 3,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -1616,7 +1616,7 @@
|
||||
"id": 304,
|
||||
"previoustage": 303,
|
||||
"order": 28,
|
||||
"linearnum": 18,
|
||||
"linearnum": 4,
|
||||
"chapter": 3,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -1677,7 +1677,7 @@
|
||||
"id": 305,
|
||||
"previoustage": 304,
|
||||
"order": 29,
|
||||
"linearnum": 19,
|
||||
"linearnum": 5,
|
||||
"chapter": 3,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -1738,7 +1738,7 @@
|
||||
"id": 306,
|
||||
"previoustage": 305,
|
||||
"order": 30,
|
||||
"linearnum": 20,
|
||||
"linearnum": 6,
|
||||
"chapter": 3,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -1799,7 +1799,7 @@
|
||||
"id": 307,
|
||||
"previoustage": 306,
|
||||
"order": 31,
|
||||
"linearnum": 1,
|
||||
"linearnum": 7,
|
||||
"chapter": 3,
|
||||
"route": 1,
|
||||
"Episodetype": 1,
|
||||
@ -1860,7 +1860,7 @@
|
||||
"id": 308,
|
||||
"previoustage": 307,
|
||||
"order": 32,
|
||||
"linearnum": 2,
|
||||
"linearnum": 8,
|
||||
"chapter": 3,
|
||||
"route": 1,
|
||||
"Episodetype": 1,
|
||||
@ -1921,7 +1921,7 @@
|
||||
"id": 309,
|
||||
"previoustage": 308,
|
||||
"order": 33,
|
||||
"linearnum": 3,
|
||||
"linearnum": 9,
|
||||
"chapter": 3,
|
||||
"route": 1,
|
||||
"Episodetype": 1,
|
||||
@ -1982,7 +1982,7 @@
|
||||
"id": 310,
|
||||
"previoustage": 309,
|
||||
"order": 34,
|
||||
"linearnum": 4,
|
||||
"linearnum": 10,
|
||||
"chapter": 3,
|
||||
"route": 1,
|
||||
"Episodetype": 1,
|
||||
@ -2043,7 +2043,7 @@
|
||||
"id": 311,
|
||||
"previoustage": 310,
|
||||
"order": 35,
|
||||
"linearnum": 5,
|
||||
"linearnum": 11,
|
||||
"chapter": 3,
|
||||
"route": 1,
|
||||
"Episodetype": 1,
|
||||
@ -2104,7 +2104,7 @@
|
||||
"id": 312,
|
||||
"previoustage": 311,
|
||||
"order": 36,
|
||||
"linearnum": 6,
|
||||
"linearnum": 12,
|
||||
"chapter": 3,
|
||||
"route": 2,
|
||||
"Episodetype": 1,
|
||||
@ -2165,7 +2165,7 @@
|
||||
"id": 401,
|
||||
"previoustage": 312,
|
||||
"order": 37,
|
||||
"linearnum": 7,
|
||||
"linearnum": 1,
|
||||
"chapter": 4,
|
||||
"route": 2,
|
||||
"Episodetype": 1,
|
||||
@ -2226,7 +2226,7 @@
|
||||
"id": 402,
|
||||
"previoustage": 401,
|
||||
"order": 38,
|
||||
"linearnum": 8,
|
||||
"linearnum": 2,
|
||||
"chapter": 4,
|
||||
"route": 2,
|
||||
"Episodetype": 1,
|
||||
@ -2287,7 +2287,7 @@
|
||||
"id": 403,
|
||||
"previoustage": 402,
|
||||
"order": 39,
|
||||
"linearnum": 9,
|
||||
"linearnum": 3,
|
||||
"chapter": 4,
|
||||
"route": 2,
|
||||
"Episodetype": 1,
|
||||
@ -2348,7 +2348,7 @@
|
||||
"id": 404,
|
||||
"previoustage": 403,
|
||||
"order": 40,
|
||||
"linearnum": 10,
|
||||
"linearnum": 4,
|
||||
"chapter": 4,
|
||||
"route": 2,
|
||||
"Episodetype": 1,
|
||||
@ -2409,7 +2409,7 @@
|
||||
"id": 405,
|
||||
"previoustage": 404,
|
||||
"order": 41,
|
||||
"linearnum": 11,
|
||||
"linearnum": 5,
|
||||
"chapter": 4,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -2470,7 +2470,7 @@
|
||||
"id": 406,
|
||||
"previoustage": 405,
|
||||
"order": 42,
|
||||
"linearnum": 12,
|
||||
"linearnum": 6,
|
||||
"chapter": 4,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -2531,7 +2531,7 @@
|
||||
"id": 407,
|
||||
"previoustage": 406,
|
||||
"order": 43,
|
||||
"linearnum": 13,
|
||||
"linearnum": 7,
|
||||
"chapter": 4,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -2592,7 +2592,7 @@
|
||||
"id": 408,
|
||||
"previoustage": 407,
|
||||
"order": 44,
|
||||
"linearnum": 14,
|
||||
"linearnum": 8,
|
||||
"chapter": 4,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -2653,7 +2653,7 @@
|
||||
"id": 409,
|
||||
"previoustage": 408,
|
||||
"order": 45,
|
||||
"linearnum": 15,
|
||||
"linearnum": 9,
|
||||
"chapter": 4,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -2714,7 +2714,7 @@
|
||||
"id": 410,
|
||||
"previoustage": 409,
|
||||
"order": 46,
|
||||
"linearnum": 16,
|
||||
"linearnum": 10,
|
||||
"chapter": 4,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -2772,7 +2772,7 @@
|
||||
"id": 411,
|
||||
"previoustage": 410,
|
||||
"order": 47,
|
||||
"linearnum": 17,
|
||||
"linearnum": 11,
|
||||
"chapter": 4,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -2830,7 +2830,7 @@
|
||||
"id": 412,
|
||||
"previoustage": 411,
|
||||
"order": 48,
|
||||
"linearnum": 18,
|
||||
"linearnum": 12,
|
||||
"chapter": 4,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -2888,7 +2888,7 @@
|
||||
"id": 501,
|
||||
"previoustage": 412,
|
||||
"order": 49,
|
||||
"linearnum": 19,
|
||||
"linearnum": 1,
|
||||
"chapter": 5,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -2946,7 +2946,7 @@
|
||||
"id": 502,
|
||||
"previoustage": 501,
|
||||
"order": 50,
|
||||
"linearnum": 20,
|
||||
"linearnum": 2,
|
||||
"chapter": 5,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -3007,7 +3007,7 @@
|
||||
"id": 503,
|
||||
"previoustage": 502,
|
||||
"order": 51,
|
||||
"linearnum": 21,
|
||||
"linearnum": 3,
|
||||
"chapter": 5,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -3065,7 +3065,7 @@
|
||||
"id": 504,
|
||||
"previoustage": 503,
|
||||
"order": 52,
|
||||
"linearnum": 22,
|
||||
"linearnum": 4,
|
||||
"chapter": 5,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -3123,7 +3123,7 @@
|
||||
"id": 505,
|
||||
"previoustage": 504,
|
||||
"order": 53,
|
||||
"linearnum": 23,
|
||||
"linearnum": 5,
|
||||
"chapter": 5,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -3181,7 +3181,7 @@
|
||||
"id": 506,
|
||||
"previoustage": 505,
|
||||
"order": 54,
|
||||
"linearnum": 24,
|
||||
"linearnum": 6,
|
||||
"chapter": 5,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -3239,7 +3239,7 @@
|
||||
"id": 507,
|
||||
"previoustage": 506,
|
||||
"order": 55,
|
||||
"linearnum": 25,
|
||||
"linearnum": 7,
|
||||
"chapter": 5,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -3300,7 +3300,7 @@
|
||||
"id": 508,
|
||||
"previoustage": 507,
|
||||
"order": 56,
|
||||
"linearnum": 1,
|
||||
"linearnum": 8,
|
||||
"chapter": 5,
|
||||
"route": 1,
|
||||
"Episodetype": 1,
|
||||
@ -3361,7 +3361,7 @@
|
||||
"id": 509,
|
||||
"previoustage": 508,
|
||||
"order": 57,
|
||||
"linearnum": 2,
|
||||
"linearnum": 9,
|
||||
"chapter": 5,
|
||||
"route": 1,
|
||||
"Episodetype": 1,
|
||||
@ -3419,7 +3419,7 @@
|
||||
"id": 510,
|
||||
"previoustage": 509,
|
||||
"order": 58,
|
||||
"linearnum": 3,
|
||||
"linearnum": 10,
|
||||
"chapter": 5,
|
||||
"route": 1,
|
||||
"Episodetype": 1,
|
||||
@ -3477,7 +3477,7 @@
|
||||
"id": 511,
|
||||
"previoustage": 510,
|
||||
"order": 59,
|
||||
"linearnum": 4,
|
||||
"linearnum": 11,
|
||||
"chapter": 5,
|
||||
"route": 1,
|
||||
"Episodetype": 1,
|
||||
@ -3535,7 +3535,7 @@
|
||||
"id": 512,
|
||||
"previoustage": 511,
|
||||
"order": 60,
|
||||
"linearnum": 5,
|
||||
"linearnum": 12,
|
||||
"chapter": 5,
|
||||
"route": 1,
|
||||
"Episodetype": 1,
|
||||
@ -3596,7 +3596,7 @@
|
||||
"id": 601,
|
||||
"previoustage": 512,
|
||||
"order": 61,
|
||||
"linearnum": 6,
|
||||
"linearnum": 1,
|
||||
"chapter": 6,
|
||||
"route": 2,
|
||||
"Episodetype": 1,
|
||||
@ -3654,7 +3654,7 @@
|
||||
"id": 602,
|
||||
"previoustage": 601,
|
||||
"order": 62,
|
||||
"linearnum": 7,
|
||||
"linearnum": 2,
|
||||
"chapter": 6,
|
||||
"route": 2,
|
||||
"Episodetype": 1,
|
||||
@ -3712,7 +3712,7 @@
|
||||
"id": 603,
|
||||
"previoustage": 602,
|
||||
"order": 63,
|
||||
"linearnum": 8,
|
||||
"linearnum": 3,
|
||||
"chapter": 6,
|
||||
"route": 2,
|
||||
"Episodetype": 1,
|
||||
@ -3770,7 +3770,7 @@
|
||||
"id": 604,
|
||||
"previoustage": 603,
|
||||
"order": 64,
|
||||
"linearnum": 9,
|
||||
"linearnum": 4,
|
||||
"chapter": 6,
|
||||
"route": 2,
|
||||
"Episodetype": 1,
|
||||
@ -3828,7 +3828,7 @@
|
||||
"id": 605,
|
||||
"previoustage": 604,
|
||||
"order": 65,
|
||||
"linearnum": 10,
|
||||
"linearnum": 5,
|
||||
"chapter": 6,
|
||||
"route": 2,
|
||||
"Episodetype": 1,
|
||||
@ -3889,7 +3889,7 @@
|
||||
"id": 606,
|
||||
"previoustage": 605,
|
||||
"order": 66,
|
||||
"linearnum": 11,
|
||||
"linearnum": 6,
|
||||
"chapter": 6,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -3947,7 +3947,7 @@
|
||||
"id": 607,
|
||||
"previoustage": 606,
|
||||
"order": 67,
|
||||
"linearnum": 12,
|
||||
"linearnum": 7,
|
||||
"chapter": 6,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -4005,7 +4005,7 @@
|
||||
"id": 608,
|
||||
"previoustage": 607,
|
||||
"order": 68,
|
||||
"linearnum": 13,
|
||||
"linearnum": 8,
|
||||
"chapter": 6,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -4063,7 +4063,7 @@
|
||||
"id": 609,
|
||||
"previoustage": 608,
|
||||
"order": 69,
|
||||
"linearnum": 14,
|
||||
"linearnum": 9,
|
||||
"chapter": 6,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -4121,7 +4121,7 @@
|
||||
"id": 610,
|
||||
"previoustage": 609,
|
||||
"order": 70,
|
||||
"linearnum": 15,
|
||||
"linearnum": 10,
|
||||
"chapter": 6,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -4182,7 +4182,7 @@
|
||||
"id": 611,
|
||||
"previoustage": 610,
|
||||
"order": 71,
|
||||
"linearnum": 16,
|
||||
"linearnum": 11,
|
||||
"chapter": 6,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -4240,7 +4240,7 @@
|
||||
"id": 612,
|
||||
"previoustage": 611,
|
||||
"order": 72,
|
||||
"linearnum": 17,
|
||||
"linearnum": 12,
|
||||
"chapter": 6,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -4298,7 +4298,7 @@
|
||||
"id": 701,
|
||||
"previoustage": 612,
|
||||
"order": 73,
|
||||
"linearnum": 18,
|
||||
"linearnum": 1,
|
||||
"chapter": 7,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -4356,7 +4356,7 @@
|
||||
"id": 702,
|
||||
"previoustage": 701,
|
||||
"order": 74,
|
||||
"linearnum": 19,
|
||||
"linearnum": 2,
|
||||
"chapter": 7,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -4414,7 +4414,7 @@
|
||||
"id": 703,
|
||||
"previoustage": 702,
|
||||
"order": 75,
|
||||
"linearnum": 20,
|
||||
"linearnum": 3,
|
||||
"chapter": 7,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -4475,7 +4475,7 @@
|
||||
"id": 704,
|
||||
"previoustage": 703,
|
||||
"order": 76,
|
||||
"linearnum": 21,
|
||||
"linearnum": 4,
|
||||
"chapter": 7,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -4533,7 +4533,7 @@
|
||||
"id": 705,
|
||||
"previoustage": 704,
|
||||
"order": 77,
|
||||
"linearnum": 22,
|
||||
"linearnum": 5,
|
||||
"chapter": 7,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -4591,7 +4591,7 @@
|
||||
"id": 706,
|
||||
"previoustage": 705,
|
||||
"order": 78,
|
||||
"linearnum": 23,
|
||||
"linearnum": 6,
|
||||
"chapter": 7,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -4649,7 +4649,7 @@
|
||||
"id": 707,
|
||||
"previoustage": 706,
|
||||
"order": 79,
|
||||
"linearnum": 24,
|
||||
"linearnum": 7,
|
||||
"chapter": 7,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -4707,7 +4707,7 @@
|
||||
"id": 708,
|
||||
"previoustage": 707,
|
||||
"order": 80,
|
||||
"linearnum": 25,
|
||||
"linearnum": 8,
|
||||
"chapter": 7,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -4768,7 +4768,7 @@
|
||||
"id": 709,
|
||||
"previoustage": 708,
|
||||
"order": 81,
|
||||
"linearnum": 26,
|
||||
"linearnum": 9,
|
||||
"chapter": 7,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -4826,7 +4826,7 @@
|
||||
"id": 710,
|
||||
"previoustage": 709,
|
||||
"order": 82,
|
||||
"linearnum": 27,
|
||||
"linearnum": 10,
|
||||
"chapter": 7,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -4884,7 +4884,7 @@
|
||||
"id": 711,
|
||||
"previoustage": 710,
|
||||
"order": 83,
|
||||
"linearnum": 28,
|
||||
"linearnum": 11,
|
||||
"chapter": 7,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -4942,7 +4942,7 @@
|
||||
"id": 712,
|
||||
"previoustage": 711,
|
||||
"order": 84,
|
||||
"linearnum": 29,
|
||||
"linearnum": 12,
|
||||
"chapter": 7,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -5000,7 +5000,7 @@
|
||||
"id": 801,
|
||||
"previoustage": 712,
|
||||
"order": 85,
|
||||
"linearnum": 30,
|
||||
"linearnum": 1,
|
||||
"chapter": 8,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -5061,7 +5061,7 @@
|
||||
"id": 802,
|
||||
"previoustage": 801,
|
||||
"order": 86,
|
||||
"linearnum": 1,
|
||||
"linearnum": 2,
|
||||
"chapter": 8,
|
||||
"route": 1,
|
||||
"Episodetype": 1,
|
||||
@ -5122,7 +5122,7 @@
|
||||
"id": 803,
|
||||
"previoustage": 802,
|
||||
"order": 87,
|
||||
"linearnum": 2,
|
||||
"linearnum": 3,
|
||||
"chapter": 8,
|
||||
"route": 1,
|
||||
"Episodetype": 1,
|
||||
@ -5180,7 +5180,7 @@
|
||||
"id": 804,
|
||||
"previoustage": 803,
|
||||
"order": 88,
|
||||
"linearnum": 3,
|
||||
"linearnum": 4,
|
||||
"chapter": 8,
|
||||
"route": 1,
|
||||
"Episodetype": 1,
|
||||
@ -5238,7 +5238,7 @@
|
||||
"id": 805,
|
||||
"previoustage": 804,
|
||||
"order": 89,
|
||||
"linearnum": 4,
|
||||
"linearnum": 5,
|
||||
"chapter": 8,
|
||||
"route": 1,
|
||||
"Episodetype": 1,
|
||||
@ -5296,7 +5296,7 @@
|
||||
"id": 806,
|
||||
"previoustage": 805,
|
||||
"order": 90,
|
||||
"linearnum": 5,
|
||||
"linearnum": 6,
|
||||
"chapter": 8,
|
||||
"route": 1,
|
||||
"Episodetype": 1,
|
||||
@ -5357,7 +5357,7 @@
|
||||
"id": 807,
|
||||
"previoustage": 806,
|
||||
"order": 91,
|
||||
"linearnum": 6,
|
||||
"linearnum": 7,
|
||||
"chapter": 8,
|
||||
"route": 2,
|
||||
"Episodetype": 1,
|
||||
@ -5415,7 +5415,7 @@
|
||||
"id": 808,
|
||||
"previoustage": 807,
|
||||
"order": 92,
|
||||
"linearnum": 7,
|
||||
"linearnum": 8,
|
||||
"chapter": 8,
|
||||
"route": 2,
|
||||
"Episodetype": 1,
|
||||
@ -5473,7 +5473,7 @@
|
||||
"id": 809,
|
||||
"previoustage": 808,
|
||||
"order": 93,
|
||||
"linearnum": 8,
|
||||
"linearnum": 9,
|
||||
"chapter": 8,
|
||||
"route": 2,
|
||||
"Episodetype": 1,
|
||||
@ -5531,7 +5531,7 @@
|
||||
"id": 810,
|
||||
"previoustage": 809,
|
||||
"order": 94,
|
||||
"linearnum": 9,
|
||||
"linearnum": 10,
|
||||
"chapter": 8,
|
||||
"route": 2,
|
||||
"Episodetype": 1,
|
||||
@ -5589,7 +5589,7 @@
|
||||
"id": 811,
|
||||
"previoustage": 810,
|
||||
"order": 95,
|
||||
"linearnum": 10,
|
||||
"linearnum": 11,
|
||||
"chapter": 8,
|
||||
"route": 2,
|
||||
"Episodetype": 1,
|
||||
@ -5650,7 +5650,7 @@
|
||||
"id": 812,
|
||||
"previoustage": 811,
|
||||
"order": 96,
|
||||
"linearnum": 11,
|
||||
"linearnum": 12,
|
||||
"chapter": 8,
|
||||
"route": 2,
|
||||
"Episodetype": 1,
|
||||
@ -5708,7 +5708,7 @@
|
||||
"id": 901,
|
||||
"previoustage": 812,
|
||||
"order": 97,
|
||||
"linearnum": 12,
|
||||
"linearnum": 1,
|
||||
"chapter": 9,
|
||||
"route": 2,
|
||||
"Episodetype": 1,
|
||||
@ -5766,7 +5766,7 @@
|
||||
"id": 902,
|
||||
"previoustage": 901,
|
||||
"order": 98,
|
||||
"linearnum": 13,
|
||||
"linearnum": 2,
|
||||
"chapter": 9,
|
||||
"route": 2,
|
||||
"Episodetype": 1,
|
||||
@ -5824,7 +5824,7 @@
|
||||
"id": 903,
|
||||
"previoustage": 902,
|
||||
"order": 99,
|
||||
"linearnum": 14,
|
||||
"linearnum": 3,
|
||||
"chapter": 9,
|
||||
"route": 2,
|
||||
"Episodetype": 1,
|
||||
@ -5882,7 +5882,7 @@
|
||||
"id": 904,
|
||||
"previoustage": 903,
|
||||
"order": 100,
|
||||
"linearnum": 15,
|
||||
"linearnum": 4,
|
||||
"chapter": 9,
|
||||
"route": 2,
|
||||
"Episodetype": 1,
|
||||
@ -5943,7 +5943,7 @@
|
||||
"id": 905,
|
||||
"previoustage": 904,
|
||||
"order": 101,
|
||||
"linearnum": 16,
|
||||
"linearnum": 5,
|
||||
"chapter": 9,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -6001,7 +6001,7 @@
|
||||
"id": 906,
|
||||
"previoustage": 905,
|
||||
"order": 102,
|
||||
"linearnum": 17,
|
||||
"linearnum": 6,
|
||||
"chapter": 9,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -6059,7 +6059,7 @@
|
||||
"id": 907,
|
||||
"previoustage": 906,
|
||||
"order": 103,
|
||||
"linearnum": 18,
|
||||
"linearnum": 7,
|
||||
"chapter": 9,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -6117,7 +6117,7 @@
|
||||
"id": 908,
|
||||
"previoustage": 907,
|
||||
"order": 104,
|
||||
"linearnum": 19,
|
||||
"linearnum": 8,
|
||||
"chapter": 9,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -6175,7 +6175,7 @@
|
||||
"id": 909,
|
||||
"previoustage": 908,
|
||||
"order": 105,
|
||||
"linearnum": 20,
|
||||
"linearnum": 9,
|
||||
"chapter": 9,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -6236,7 +6236,7 @@
|
||||
"id": 910,
|
||||
"previoustage": 909,
|
||||
"order": 106,
|
||||
"linearnum": 21,
|
||||
"linearnum": 10,
|
||||
"chapter": 9,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -6294,7 +6294,7 @@
|
||||
"id": 911,
|
||||
"previoustage": 910,
|
||||
"order": 107,
|
||||
"linearnum": 22,
|
||||
"linearnum": 11,
|
||||
"chapter": 9,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -6352,7 +6352,7 @@
|
||||
"id": 912,
|
||||
"previoustage": 911,
|
||||
"order": 108,
|
||||
"linearnum": 23,
|
||||
"linearnum": 12,
|
||||
"chapter": 9,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -6410,7 +6410,7 @@
|
||||
"id": 1001,
|
||||
"previoustage": 912,
|
||||
"order": 109,
|
||||
"linearnum": 24,
|
||||
"linearnum": 1,
|
||||
"chapter": 10,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -6468,7 +6468,7 @@
|
||||
"id": 1002,
|
||||
"previoustage": 1001,
|
||||
"order": 110,
|
||||
"linearnum": 25,
|
||||
"linearnum": 2,
|
||||
"chapter": 10,
|
||||
"route": 3,
|
||||
"Episodetype": 1,
|
||||
@ -6529,7 +6529,7 @@
|
||||
"id": 1003,
|
||||
"previoustage": 1002,
|
||||
"order": 111,
|
||||
"linearnum": 26,
|
||||
"linearnum": 3,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -6587,7 +6587,7 @@
|
||||
"id": 1004,
|
||||
"previoustage": 1003,
|
||||
"order": 112,
|
||||
"linearnum": 27,
|
||||
"linearnum": 4,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -6645,7 +6645,7 @@
|
||||
"id": 1005,
|
||||
"previoustage": 1004,
|
||||
"order": 113,
|
||||
"linearnum": 28,
|
||||
"linearnum": 5,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -6703,7 +6703,7 @@
|
||||
"id": 1006,
|
||||
"previoustage": 1005,
|
||||
"order": 114,
|
||||
"linearnum": 29,
|
||||
"linearnum": 6,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -6761,7 +6761,7 @@
|
||||
"id": 1007,
|
||||
"previoustage": 1006,
|
||||
"order": 115,
|
||||
"linearnum": 30,
|
||||
"linearnum": 7,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -6822,7 +6822,7 @@
|
||||
"id": 1008,
|
||||
"previoustage": 1007,
|
||||
"order": 116,
|
||||
"linearnum": 31,
|
||||
"linearnum": 8,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -6880,7 +6880,7 @@
|
||||
"id": 1009,
|
||||
"previoustage": 1008,
|
||||
"order": 117,
|
||||
"linearnum": 32,
|
||||
"linearnum": 9,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -6938,7 +6938,7 @@
|
||||
"id": 1010,
|
||||
"previoustage": 1009,
|
||||
"order": 118,
|
||||
"linearnum": 33,
|
||||
"linearnum": 10,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -6996,7 +6996,7 @@
|
||||
"id": 1011,
|
||||
"previoustage": 1010,
|
||||
"order": 119,
|
||||
"linearnum": 34,
|
||||
"linearnum": 11,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
@ -7054,7 +7054,7 @@
|
||||
"id": 1012,
|
||||
"previoustage": 1011,
|
||||
"order": 120,
|
||||
"linearnum": 35,
|
||||
"linearnum": 12,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"Episodetype": 1,
|
||||
|
@ -561,7 +561,7 @@
|
||||
"id": 111,
|
||||
"previoustage": 110,
|
||||
"order": 11,
|
||||
"linearnum": 1,
|
||||
"linearnum": 11,
|
||||
"chapter": 1,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -622,7 +622,7 @@
|
||||
"id": 112,
|
||||
"previoustage": 111,
|
||||
"order": 12,
|
||||
"linearnum": 2,
|
||||
"linearnum": 12,
|
||||
"chapter": 1,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -680,7 +680,7 @@
|
||||
"id": 201,
|
||||
"previoustage": 112,
|
||||
"order": 13,
|
||||
"linearnum": 3,
|
||||
"linearnum": 1,
|
||||
"chapter": 2,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -738,7 +738,7 @@
|
||||
"id": 202,
|
||||
"previoustage": 201,
|
||||
"order": 14,
|
||||
"linearnum": 4,
|
||||
"linearnum": 2,
|
||||
"chapter": 2,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -796,7 +796,7 @@
|
||||
"id": 203,
|
||||
"previoustage": 202,
|
||||
"order": 15,
|
||||
"linearnum": 5,
|
||||
"linearnum": 3,
|
||||
"chapter": 2,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -857,7 +857,7 @@
|
||||
"id": 204,
|
||||
"previoustage": 203,
|
||||
"order": 16,
|
||||
"linearnum": 6,
|
||||
"linearnum": 4,
|
||||
"chapter": 2,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -915,7 +915,7 @@
|
||||
"id": 205,
|
||||
"previoustage": 204,
|
||||
"order": 17,
|
||||
"linearnum": 7,
|
||||
"linearnum": 5,
|
||||
"chapter": 2,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -973,7 +973,7 @@
|
||||
"id": 206,
|
||||
"previoustage": 205,
|
||||
"order": 18,
|
||||
"linearnum": 8,
|
||||
"linearnum": 6,
|
||||
"chapter": 2,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -1031,7 +1031,7 @@
|
||||
"id": 207,
|
||||
"previoustage": 206,
|
||||
"order": 19,
|
||||
"linearnum": 9,
|
||||
"linearnum": 7,
|
||||
"chapter": 2,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -1089,7 +1089,7 @@
|
||||
"id": 208,
|
||||
"previoustage": 207,
|
||||
"order": 20,
|
||||
"linearnum": 10,
|
||||
"linearnum": 8,
|
||||
"chapter": 2,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -1150,7 +1150,7 @@
|
||||
"id": 209,
|
||||
"previoustage": 208,
|
||||
"order": 21,
|
||||
"linearnum": 11,
|
||||
"linearnum": 9,
|
||||
"chapter": 2,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -1208,7 +1208,7 @@
|
||||
"id": 210,
|
||||
"previoustage": 209,
|
||||
"order": 22,
|
||||
"linearnum": 12,
|
||||
"linearnum": 10,
|
||||
"chapter": 2,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -1266,7 +1266,7 @@
|
||||
"id": 211,
|
||||
"previoustage": 210,
|
||||
"order": 23,
|
||||
"linearnum": 13,
|
||||
"linearnum": 11,
|
||||
"chapter": 2,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -1324,7 +1324,7 @@
|
||||
"id": 212,
|
||||
"previoustage": 211,
|
||||
"order": 24,
|
||||
"linearnum": 14,
|
||||
"linearnum": 12,
|
||||
"chapter": 2,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -1382,7 +1382,7 @@
|
||||
"id": 301,
|
||||
"previoustage": 212,
|
||||
"order": 25,
|
||||
"linearnum": 15,
|
||||
"linearnum": 1,
|
||||
"chapter": 3,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -1443,7 +1443,7 @@
|
||||
"id": 302,
|
||||
"previoustage": 301,
|
||||
"order": 26,
|
||||
"linearnum": 16,
|
||||
"linearnum": 2,
|
||||
"chapter": 3,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -1501,7 +1501,7 @@
|
||||
"id": 303,
|
||||
"previoustage": 302,
|
||||
"order": 27,
|
||||
"linearnum": 17,
|
||||
"linearnum": 3,
|
||||
"chapter": 3,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -1559,7 +1559,7 @@
|
||||
"id": 304,
|
||||
"previoustage": 303,
|
||||
"order": 28,
|
||||
"linearnum": 18,
|
||||
"linearnum": 4,
|
||||
"chapter": 3,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -1617,7 +1617,7 @@
|
||||
"id": 305,
|
||||
"previoustage": 304,
|
||||
"order": 29,
|
||||
"linearnum": 19,
|
||||
"linearnum": 5,
|
||||
"chapter": 3,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -1675,7 +1675,7 @@
|
||||
"id": 306,
|
||||
"previoustage": 305,
|
||||
"order": 30,
|
||||
"linearnum": 20,
|
||||
"linearnum": 6,
|
||||
"chapter": 3,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -1736,7 +1736,7 @@
|
||||
"id": 307,
|
||||
"previoustage": 306,
|
||||
"order": 31,
|
||||
"linearnum": 1,
|
||||
"linearnum": 7,
|
||||
"chapter": 3,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -1797,7 +1797,7 @@
|
||||
"id": 308,
|
||||
"previoustage": 307,
|
||||
"order": 32,
|
||||
"linearnum": 2,
|
||||
"linearnum": 8,
|
||||
"chapter": 3,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -1855,7 +1855,7 @@
|
||||
"id": 309,
|
||||
"previoustage": 308,
|
||||
"order": 33,
|
||||
"linearnum": 3,
|
||||
"linearnum": 9,
|
||||
"chapter": 3,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -1913,7 +1913,7 @@
|
||||
"id": 310,
|
||||
"previoustage": 309,
|
||||
"order": 34,
|
||||
"linearnum": 4,
|
||||
"linearnum": 10,
|
||||
"chapter": 3,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -1971,7 +1971,7 @@
|
||||
"id": 311,
|
||||
"previoustage": 310,
|
||||
"order": 35,
|
||||
"linearnum": 5,
|
||||
"linearnum": 11,
|
||||
"chapter": 3,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -2032,7 +2032,7 @@
|
||||
"id": 312,
|
||||
"previoustage": 311,
|
||||
"order": 36,
|
||||
"linearnum": 6,
|
||||
"linearnum": 12,
|
||||
"chapter": 3,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -2090,7 +2090,7 @@
|
||||
"id": 401,
|
||||
"previoustage": 312,
|
||||
"order": 37,
|
||||
"linearnum": 7,
|
||||
"linearnum": 1,
|
||||
"chapter": 4,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -2148,7 +2148,7 @@
|
||||
"id": 402,
|
||||
"previoustage": 401,
|
||||
"order": 38,
|
||||
"linearnum": 8,
|
||||
"linearnum": 2,
|
||||
"chapter": 4,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -2206,7 +2206,7 @@
|
||||
"id": 403,
|
||||
"previoustage": 402,
|
||||
"order": 39,
|
||||
"linearnum": 9,
|
||||
"linearnum": 3,
|
||||
"chapter": 4,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -2264,7 +2264,7 @@
|
||||
"id": 404,
|
||||
"previoustage": 403,
|
||||
"order": 40,
|
||||
"linearnum": 10,
|
||||
"linearnum": 4,
|
||||
"chapter": 4,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -2325,7 +2325,7 @@
|
||||
"id": 405,
|
||||
"previoustage": 404,
|
||||
"order": 41,
|
||||
"linearnum": 11,
|
||||
"linearnum": 5,
|
||||
"chapter": 4,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -2383,7 +2383,7 @@
|
||||
"id": 406,
|
||||
"previoustage": 405,
|
||||
"order": 42,
|
||||
"linearnum": 12,
|
||||
"linearnum": 6,
|
||||
"chapter": 4,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -2441,7 +2441,7 @@
|
||||
"id": 407,
|
||||
"previoustage": 406,
|
||||
"order": 43,
|
||||
"linearnum": 13,
|
||||
"linearnum": 7,
|
||||
"chapter": 4,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -2499,7 +2499,7 @@
|
||||
"id": 408,
|
||||
"previoustage": 407,
|
||||
"order": 44,
|
||||
"linearnum": 14,
|
||||
"linearnum": 8,
|
||||
"chapter": 4,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -2557,7 +2557,7 @@
|
||||
"id": 409,
|
||||
"previoustage": 408,
|
||||
"order": 45,
|
||||
"linearnum": 15,
|
||||
"linearnum": 9,
|
||||
"chapter": 4,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -2618,7 +2618,7 @@
|
||||
"id": 410,
|
||||
"previoustage": 409,
|
||||
"order": 46,
|
||||
"linearnum": 16,
|
||||
"linearnum": 10,
|
||||
"chapter": 4,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -2676,7 +2676,7 @@
|
||||
"id": 411,
|
||||
"previoustage": 410,
|
||||
"order": 47,
|
||||
"linearnum": 17,
|
||||
"linearnum": 11,
|
||||
"chapter": 4,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -2734,7 +2734,7 @@
|
||||
"id": 412,
|
||||
"previoustage": 411,
|
||||
"order": 48,
|
||||
"linearnum": 18,
|
||||
"linearnum": 12,
|
||||
"chapter": 4,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -2792,7 +2792,7 @@
|
||||
"id": 501,
|
||||
"previoustage": 412,
|
||||
"order": 49,
|
||||
"linearnum": 19,
|
||||
"linearnum": 1,
|
||||
"chapter": 5,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -2850,7 +2850,7 @@
|
||||
"id": 502,
|
||||
"previoustage": 501,
|
||||
"order": 50,
|
||||
"linearnum": 20,
|
||||
"linearnum": 2,
|
||||
"chapter": 5,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -2911,7 +2911,7 @@
|
||||
"id": 503,
|
||||
"previoustage": 502,
|
||||
"order": 51,
|
||||
"linearnum": 21,
|
||||
"linearnum": 3,
|
||||
"chapter": 5,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -2969,7 +2969,7 @@
|
||||
"id": 504,
|
||||
"previoustage": 503,
|
||||
"order": 52,
|
||||
"linearnum": 22,
|
||||
"linearnum": 4,
|
||||
"chapter": 5,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -3027,7 +3027,7 @@
|
||||
"id": 505,
|
||||
"previoustage": 504,
|
||||
"order": 53,
|
||||
"linearnum": 23,
|
||||
"linearnum": 5,
|
||||
"chapter": 5,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -3085,7 +3085,7 @@
|
||||
"id": 506,
|
||||
"previoustage": 505,
|
||||
"order": 54,
|
||||
"linearnum": 24,
|
||||
"linearnum": 6,
|
||||
"chapter": 5,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -3143,7 +3143,7 @@
|
||||
"id": 507,
|
||||
"previoustage": 506,
|
||||
"order": 55,
|
||||
"linearnum": 25,
|
||||
"linearnum": 7,
|
||||
"chapter": 5,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -3204,7 +3204,7 @@
|
||||
"id": 508,
|
||||
"previoustage": 507,
|
||||
"order": 56,
|
||||
"linearnum": 1,
|
||||
"linearnum": 8,
|
||||
"chapter": 5,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -3265,7 +3265,7 @@
|
||||
"id": 509,
|
||||
"previoustage": 508,
|
||||
"order": 57,
|
||||
"linearnum": 2,
|
||||
"linearnum": 9,
|
||||
"chapter": 5,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -3323,7 +3323,7 @@
|
||||
"id": 510,
|
||||
"previoustage": 509,
|
||||
"order": 58,
|
||||
"linearnum": 3,
|
||||
"linearnum": 10,
|
||||
"chapter": 5,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -3381,7 +3381,7 @@
|
||||
"id": 511,
|
||||
"previoustage": 510,
|
||||
"order": 59,
|
||||
"linearnum": 4,
|
||||
"linearnum": 11,
|
||||
"chapter": 5,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -3439,7 +3439,7 @@
|
||||
"id": 512,
|
||||
"previoustage": 511,
|
||||
"order": 60,
|
||||
"linearnum": 5,
|
||||
"linearnum": 12,
|
||||
"chapter": 5,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -3500,7 +3500,7 @@
|
||||
"id": 601,
|
||||
"previoustage": 512,
|
||||
"order": 61,
|
||||
"linearnum": 6,
|
||||
"linearnum": 1,
|
||||
"chapter": 6,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -3558,7 +3558,7 @@
|
||||
"id": 602,
|
||||
"previoustage": 601,
|
||||
"order": 62,
|
||||
"linearnum": 7,
|
||||
"linearnum": 2,
|
||||
"chapter": 6,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -3616,7 +3616,7 @@
|
||||
"id": 603,
|
||||
"previoustage": 602,
|
||||
"order": 63,
|
||||
"linearnum": 8,
|
||||
"linearnum": 3,
|
||||
"chapter": 6,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -3674,7 +3674,7 @@
|
||||
"id": 604,
|
||||
"previoustage": 603,
|
||||
"order": 64,
|
||||
"linearnum": 9,
|
||||
"linearnum": 4,
|
||||
"chapter": 6,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -3732,7 +3732,7 @@
|
||||
"id": 605,
|
||||
"previoustage": 604,
|
||||
"order": 65,
|
||||
"linearnum": 10,
|
||||
"linearnum": 5,
|
||||
"chapter": 6,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -3793,7 +3793,7 @@
|
||||
"id": 606,
|
||||
"previoustage": 605,
|
||||
"order": 66,
|
||||
"linearnum": 11,
|
||||
"linearnum": 6,
|
||||
"chapter": 6,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -3851,7 +3851,7 @@
|
||||
"id": 607,
|
||||
"previoustage": 606,
|
||||
"order": 67,
|
||||
"linearnum": 12,
|
||||
"linearnum": 7,
|
||||
"chapter": 6,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -3909,7 +3909,7 @@
|
||||
"id": 608,
|
||||
"previoustage": 607,
|
||||
"order": 68,
|
||||
"linearnum": 13,
|
||||
"linearnum": 8,
|
||||
"chapter": 6,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -3967,7 +3967,7 @@
|
||||
"id": 609,
|
||||
"previoustage": 608,
|
||||
"order": 69,
|
||||
"linearnum": 14,
|
||||
"linearnum": 9,
|
||||
"chapter": 6,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -4025,7 +4025,7 @@
|
||||
"id": 610,
|
||||
"previoustage": 609,
|
||||
"order": 70,
|
||||
"linearnum": 15,
|
||||
"linearnum": 10,
|
||||
"chapter": 6,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -4086,7 +4086,7 @@
|
||||
"id": 611,
|
||||
"previoustage": 610,
|
||||
"order": 71,
|
||||
"linearnum": 16,
|
||||
"linearnum": 11,
|
||||
"chapter": 6,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -4144,7 +4144,7 @@
|
||||
"id": 612,
|
||||
"previoustage": 611,
|
||||
"order": 72,
|
||||
"linearnum": 17,
|
||||
"linearnum": 12,
|
||||
"chapter": 6,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -4202,7 +4202,7 @@
|
||||
"id": 701,
|
||||
"previoustage": 612,
|
||||
"order": 73,
|
||||
"linearnum": 18,
|
||||
"linearnum": 1,
|
||||
"chapter": 7,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -4260,7 +4260,7 @@
|
||||
"id": 702,
|
||||
"previoustage": 701,
|
||||
"order": 74,
|
||||
"linearnum": 19,
|
||||
"linearnum": 2,
|
||||
"chapter": 7,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -4318,7 +4318,7 @@
|
||||
"id": 703,
|
||||
"previoustage": 702,
|
||||
"order": 75,
|
||||
"linearnum": 20,
|
||||
"linearnum": 3,
|
||||
"chapter": 7,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -4379,7 +4379,7 @@
|
||||
"id": 704,
|
||||
"previoustage": 703,
|
||||
"order": 76,
|
||||
"linearnum": 21,
|
||||
"linearnum": 4,
|
||||
"chapter": 7,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -4437,7 +4437,7 @@
|
||||
"id": 705,
|
||||
"previoustage": 704,
|
||||
"order": 77,
|
||||
"linearnum": 22,
|
||||
"linearnum": 5,
|
||||
"chapter": 7,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -4495,7 +4495,7 @@
|
||||
"id": 706,
|
||||
"previoustage": 705,
|
||||
"order": 78,
|
||||
"linearnum": 23,
|
||||
"linearnum": 6,
|
||||
"chapter": 7,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -4553,7 +4553,7 @@
|
||||
"id": 707,
|
||||
"previoustage": 706,
|
||||
"order": 79,
|
||||
"linearnum": 24,
|
||||
"linearnum": 7,
|
||||
"chapter": 7,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -4611,7 +4611,7 @@
|
||||
"id": 708,
|
||||
"previoustage": 707,
|
||||
"order": 80,
|
||||
"linearnum": 25,
|
||||
"linearnum": 8,
|
||||
"chapter": 7,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -4672,7 +4672,7 @@
|
||||
"id": 709,
|
||||
"previoustage": 708,
|
||||
"order": 81,
|
||||
"linearnum": 26,
|
||||
"linearnum": 9,
|
||||
"chapter": 7,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -4730,7 +4730,7 @@
|
||||
"id": 710,
|
||||
"previoustage": 709,
|
||||
"order": 82,
|
||||
"linearnum": 27,
|
||||
"linearnum": 10,
|
||||
"chapter": 7,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -4788,7 +4788,7 @@
|
||||
"id": 711,
|
||||
"previoustage": 710,
|
||||
"order": 83,
|
||||
"linearnum": 28,
|
||||
"linearnum": 11,
|
||||
"chapter": 7,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -4846,7 +4846,7 @@
|
||||
"id": 712,
|
||||
"previoustage": 711,
|
||||
"order": 84,
|
||||
"linearnum": 29,
|
||||
"linearnum": 12,
|
||||
"chapter": 7,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -4904,7 +4904,7 @@
|
||||
"id": 801,
|
||||
"previoustage": 712,
|
||||
"order": 85,
|
||||
"linearnum": 30,
|
||||
"linearnum": 1,
|
||||
"chapter": 8,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -4965,7 +4965,7 @@
|
||||
"id": 802,
|
||||
"previoustage": 801,
|
||||
"order": 86,
|
||||
"linearnum": 1,
|
||||
"linearnum": 2,
|
||||
"chapter": 8,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -5026,7 +5026,7 @@
|
||||
"id": 803,
|
||||
"previoustage": 802,
|
||||
"order": 87,
|
||||
"linearnum": 2,
|
||||
"linearnum": 3,
|
||||
"chapter": 8,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -5084,7 +5084,7 @@
|
||||
"id": 804,
|
||||
"previoustage": 803,
|
||||
"order": 88,
|
||||
"linearnum": 3,
|
||||
"linearnum": 4,
|
||||
"chapter": 8,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -5142,7 +5142,7 @@
|
||||
"id": 805,
|
||||
"previoustage": 804,
|
||||
"order": 89,
|
||||
"linearnum": 4,
|
||||
"linearnum": 5,
|
||||
"chapter": 8,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -5200,7 +5200,7 @@
|
||||
"id": 806,
|
||||
"previoustage": 805,
|
||||
"order": 90,
|
||||
"linearnum": 5,
|
||||
"linearnum": 6,
|
||||
"chapter": 8,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -5261,7 +5261,7 @@
|
||||
"id": 807,
|
||||
"previoustage": 806,
|
||||
"order": 91,
|
||||
"linearnum": 6,
|
||||
"linearnum": 7,
|
||||
"chapter": 8,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -5319,7 +5319,7 @@
|
||||
"id": 808,
|
||||
"previoustage": 807,
|
||||
"order": 92,
|
||||
"linearnum": 7,
|
||||
"linearnum": 8,
|
||||
"chapter": 8,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -5377,7 +5377,7 @@
|
||||
"id": 809,
|
||||
"previoustage": 808,
|
||||
"order": 93,
|
||||
"linearnum": 8,
|
||||
"linearnum": 9,
|
||||
"chapter": 8,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -5435,7 +5435,7 @@
|
||||
"id": 810,
|
||||
"previoustage": 809,
|
||||
"order": 94,
|
||||
"linearnum": 9,
|
||||
"linearnum": 10,
|
||||
"chapter": 8,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -5493,7 +5493,7 @@
|
||||
"id": 811,
|
||||
"previoustage": 810,
|
||||
"order": 95,
|
||||
"linearnum": 10,
|
||||
"linearnum": 11,
|
||||
"chapter": 8,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -5554,7 +5554,7 @@
|
||||
"id": 812,
|
||||
"previoustage": 811,
|
||||
"order": 96,
|
||||
"linearnum": 11,
|
||||
"linearnum": 12,
|
||||
"chapter": 8,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -5612,7 +5612,7 @@
|
||||
"id": 901,
|
||||
"previoustage": 812,
|
||||
"order": 97,
|
||||
"linearnum": 12,
|
||||
"linearnum": 1,
|
||||
"chapter": 9,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -5670,7 +5670,7 @@
|
||||
"id": 902,
|
||||
"previoustage": 901,
|
||||
"order": 98,
|
||||
"linearnum": 13,
|
||||
"linearnum": 2,
|
||||
"chapter": 9,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -5728,7 +5728,7 @@
|
||||
"id": 903,
|
||||
"previoustage": 902,
|
||||
"order": 99,
|
||||
"linearnum": 14,
|
||||
"linearnum": 3,
|
||||
"chapter": 9,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -5786,7 +5786,7 @@
|
||||
"id": 904,
|
||||
"previoustage": 903,
|
||||
"order": 100,
|
||||
"linearnum": 15,
|
||||
"linearnum": 4,
|
||||
"chapter": 9,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -5847,7 +5847,7 @@
|
||||
"id": 905,
|
||||
"previoustage": 904,
|
||||
"order": 101,
|
||||
"linearnum": 16,
|
||||
"linearnum": 5,
|
||||
"chapter": 9,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -5905,7 +5905,7 @@
|
||||
"id": 906,
|
||||
"previoustage": 905,
|
||||
"order": 102,
|
||||
"linearnum": 17,
|
||||
"linearnum": 6,
|
||||
"chapter": 9,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -5963,7 +5963,7 @@
|
||||
"id": 907,
|
||||
"previoustage": 906,
|
||||
"order": 103,
|
||||
"linearnum": 18,
|
||||
"linearnum": 7,
|
||||
"chapter": 9,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -6021,7 +6021,7 @@
|
||||
"id": 908,
|
||||
"previoustage": 907,
|
||||
"order": 104,
|
||||
"linearnum": 19,
|
||||
"linearnum": 8,
|
||||
"chapter": 9,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -6079,7 +6079,7 @@
|
||||
"id": 909,
|
||||
"previoustage": 908,
|
||||
"order": 105,
|
||||
"linearnum": 20,
|
||||
"linearnum": 9,
|
||||
"chapter": 9,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -6140,7 +6140,7 @@
|
||||
"id": 910,
|
||||
"previoustage": 909,
|
||||
"order": 106,
|
||||
"linearnum": 21,
|
||||
"linearnum": 10,
|
||||
"chapter": 9,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -6198,7 +6198,7 @@
|
||||
"id": 911,
|
||||
"previoustage": 910,
|
||||
"order": 107,
|
||||
"linearnum": 22,
|
||||
"linearnum": 11,
|
||||
"chapter": 9,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -6256,7 +6256,7 @@
|
||||
"id": 912,
|
||||
"previoustage": 911,
|
||||
"order": 108,
|
||||
"linearnum": 23,
|
||||
"linearnum": 12,
|
||||
"chapter": 9,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -6314,7 +6314,7 @@
|
||||
"id": 1001,
|
||||
"previoustage": 912,
|
||||
"order": 109,
|
||||
"linearnum": 24,
|
||||
"linearnum": 1,
|
||||
"chapter": 10,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -6372,7 +6372,7 @@
|
||||
"id": 1002,
|
||||
"previoustage": 1001,
|
||||
"order": 110,
|
||||
"linearnum": 25,
|
||||
"linearnum": 2,
|
||||
"chapter": 10,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -6433,7 +6433,7 @@
|
||||
"id": 1003,
|
||||
"previoustage": 1002,
|
||||
"order": 111,
|
||||
"linearnum": 26,
|
||||
"linearnum": 3,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -6491,7 +6491,7 @@
|
||||
"id": 1004,
|
||||
"previoustage": 1003,
|
||||
"order": 112,
|
||||
"linearnum": 27,
|
||||
"linearnum": 4,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -6549,7 +6549,7 @@
|
||||
"id": 1005,
|
||||
"previoustage": 1004,
|
||||
"order": 113,
|
||||
"linearnum": 28,
|
||||
"linearnum": 5,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -6607,7 +6607,7 @@
|
||||
"id": 1006,
|
||||
"previoustage": 1005,
|
||||
"order": 114,
|
||||
"linearnum": 29,
|
||||
"linearnum": 6,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -6665,7 +6665,7 @@
|
||||
"id": 1007,
|
||||
"previoustage": 1006,
|
||||
"order": 115,
|
||||
"linearnum": 30,
|
||||
"linearnum": 7,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -6726,7 +6726,7 @@
|
||||
"id": 1008,
|
||||
"previoustage": 1007,
|
||||
"order": 116,
|
||||
"linearnum": 31,
|
||||
"linearnum": 8,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -6784,7 +6784,7 @@
|
||||
"id": 1009,
|
||||
"previoustage": 1008,
|
||||
"order": 117,
|
||||
"linearnum": 32,
|
||||
"linearnum": 9,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -6842,7 +6842,7 @@
|
||||
"id": 1010,
|
||||
"previoustage": 1009,
|
||||
"order": 118,
|
||||
"linearnum": 33,
|
||||
"linearnum": 10,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -6900,7 +6900,7 @@
|
||||
"id": 1011,
|
||||
"previoustage": 1010,
|
||||
"order": 119,
|
||||
"linearnum": 34,
|
||||
"linearnum": 11,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -6958,7 +6958,7 @@
|
||||
"id": 1012,
|
||||
"previoustage": 1011,
|
||||
"order": 120,
|
||||
"linearnum": 35,
|
||||
"linearnum": 12,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
|
@ -561,7 +561,7 @@
|
||||
"id": 111,
|
||||
"previoustage": 110,
|
||||
"order": 11,
|
||||
"linearnum": 1,
|
||||
"linearnum": 11,
|
||||
"chapter": 1,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -622,7 +622,7 @@
|
||||
"id": 112,
|
||||
"previoustage": 111,
|
||||
"order": 12,
|
||||
"linearnum": 2,
|
||||
"linearnum": 12,
|
||||
"chapter": 1,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -680,7 +680,7 @@
|
||||
"id": 201,
|
||||
"previoustage": 112,
|
||||
"order": 13,
|
||||
"linearnum": 3,
|
||||
"linearnum": 1,
|
||||
"chapter": 2,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -738,7 +738,7 @@
|
||||
"id": 202,
|
||||
"previoustage": 201,
|
||||
"order": 14,
|
||||
"linearnum": 4,
|
||||
"linearnum": 2,
|
||||
"chapter": 2,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -796,7 +796,7 @@
|
||||
"id": 203,
|
||||
"previoustage": 202,
|
||||
"order": 15,
|
||||
"linearnum": 5,
|
||||
"linearnum": 3,
|
||||
"chapter": 2,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -857,7 +857,7 @@
|
||||
"id": 204,
|
||||
"previoustage": 203,
|
||||
"order": 16,
|
||||
"linearnum": 6,
|
||||
"linearnum": 4,
|
||||
"chapter": 2,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -915,7 +915,7 @@
|
||||
"id": 205,
|
||||
"previoustage": 204,
|
||||
"order": 17,
|
||||
"linearnum": 7,
|
||||
"linearnum": 5,
|
||||
"chapter": 2,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -973,7 +973,7 @@
|
||||
"id": 206,
|
||||
"previoustage": 205,
|
||||
"order": 18,
|
||||
"linearnum": 8,
|
||||
"linearnum": 6,
|
||||
"chapter": 2,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -1031,7 +1031,7 @@
|
||||
"id": 207,
|
||||
"previoustage": 206,
|
||||
"order": 19,
|
||||
"linearnum": 9,
|
||||
"linearnum": 7,
|
||||
"chapter": 2,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -1089,7 +1089,7 @@
|
||||
"id": 208,
|
||||
"previoustage": 207,
|
||||
"order": 20,
|
||||
"linearnum": 10,
|
||||
"linearnum": 8,
|
||||
"chapter": 2,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -1150,7 +1150,7 @@
|
||||
"id": 209,
|
||||
"previoustage": 208,
|
||||
"order": 21,
|
||||
"linearnum": 11,
|
||||
"linearnum": 9,
|
||||
"chapter": 2,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -1208,7 +1208,7 @@
|
||||
"id": 210,
|
||||
"previoustage": 209,
|
||||
"order": 22,
|
||||
"linearnum": 12,
|
||||
"linearnum": 10,
|
||||
"chapter": 2,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -1266,7 +1266,7 @@
|
||||
"id": 211,
|
||||
"previoustage": 210,
|
||||
"order": 23,
|
||||
"linearnum": 13,
|
||||
"linearnum": 11,
|
||||
"chapter": 2,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -1324,7 +1324,7 @@
|
||||
"id": 212,
|
||||
"previoustage": 211,
|
||||
"order": 24,
|
||||
"linearnum": 14,
|
||||
"linearnum": 12,
|
||||
"chapter": 2,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -1382,7 +1382,7 @@
|
||||
"id": 301,
|
||||
"previoustage": 212,
|
||||
"order": 25,
|
||||
"linearnum": 15,
|
||||
"linearnum": 1,
|
||||
"chapter": 3,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -1443,7 +1443,7 @@
|
||||
"id": 302,
|
||||
"previoustage": 301,
|
||||
"order": 26,
|
||||
"linearnum": 16,
|
||||
"linearnum": 2,
|
||||
"chapter": 3,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -1501,7 +1501,7 @@
|
||||
"id": 303,
|
||||
"previoustage": 302,
|
||||
"order": 27,
|
||||
"linearnum": 17,
|
||||
"linearnum": 3,
|
||||
"chapter": 3,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -1559,7 +1559,7 @@
|
||||
"id": 304,
|
||||
"previoustage": 303,
|
||||
"order": 28,
|
||||
"linearnum": 18,
|
||||
"linearnum": 4,
|
||||
"chapter": 3,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -1617,7 +1617,7 @@
|
||||
"id": 305,
|
||||
"previoustage": 304,
|
||||
"order": 29,
|
||||
"linearnum": 19,
|
||||
"linearnum": 5,
|
||||
"chapter": 3,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -1675,7 +1675,7 @@
|
||||
"id": 306,
|
||||
"previoustage": 305,
|
||||
"order": 30,
|
||||
"linearnum": 20,
|
||||
"linearnum": 6,
|
||||
"chapter": 3,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -1736,7 +1736,7 @@
|
||||
"id": 307,
|
||||
"previoustage": 306,
|
||||
"order": 31,
|
||||
"linearnum": 1,
|
||||
"linearnum": 7,
|
||||
"chapter": 3,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -1797,7 +1797,7 @@
|
||||
"id": 308,
|
||||
"previoustage": 307,
|
||||
"order": 32,
|
||||
"linearnum": 2,
|
||||
"linearnum": 8,
|
||||
"chapter": 3,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -1855,7 +1855,7 @@
|
||||
"id": 309,
|
||||
"previoustage": 308,
|
||||
"order": 33,
|
||||
"linearnum": 3,
|
||||
"linearnum": 9,
|
||||
"chapter": 3,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -1913,7 +1913,7 @@
|
||||
"id": 310,
|
||||
"previoustage": 309,
|
||||
"order": 34,
|
||||
"linearnum": 4,
|
||||
"linearnum": 10,
|
||||
"chapter": 3,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -1971,7 +1971,7 @@
|
||||
"id": 311,
|
||||
"previoustage": 310,
|
||||
"order": 35,
|
||||
"linearnum": 5,
|
||||
"linearnum": 11,
|
||||
"chapter": 3,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -2032,7 +2032,7 @@
|
||||
"id": 312,
|
||||
"previoustage": 311,
|
||||
"order": 36,
|
||||
"linearnum": 6,
|
||||
"linearnum": 12,
|
||||
"chapter": 3,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -2090,7 +2090,7 @@
|
||||
"id": 401,
|
||||
"previoustage": 312,
|
||||
"order": 37,
|
||||
"linearnum": 7,
|
||||
"linearnum": 1,
|
||||
"chapter": 4,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -2148,7 +2148,7 @@
|
||||
"id": 402,
|
||||
"previoustage": 401,
|
||||
"order": 38,
|
||||
"linearnum": 8,
|
||||
"linearnum": 2,
|
||||
"chapter": 4,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -2206,7 +2206,7 @@
|
||||
"id": 403,
|
||||
"previoustage": 402,
|
||||
"order": 39,
|
||||
"linearnum": 9,
|
||||
"linearnum": 3,
|
||||
"chapter": 4,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -2264,7 +2264,7 @@
|
||||
"id": 404,
|
||||
"previoustage": 403,
|
||||
"order": 40,
|
||||
"linearnum": 10,
|
||||
"linearnum": 4,
|
||||
"chapter": 4,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -2325,7 +2325,7 @@
|
||||
"id": 405,
|
||||
"previoustage": 404,
|
||||
"order": 41,
|
||||
"linearnum": 11,
|
||||
"linearnum": 5,
|
||||
"chapter": 4,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -2383,7 +2383,7 @@
|
||||
"id": 406,
|
||||
"previoustage": 405,
|
||||
"order": 42,
|
||||
"linearnum": 12,
|
||||
"linearnum": 6,
|
||||
"chapter": 4,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -2441,7 +2441,7 @@
|
||||
"id": 407,
|
||||
"previoustage": 406,
|
||||
"order": 43,
|
||||
"linearnum": 13,
|
||||
"linearnum": 7,
|
||||
"chapter": 4,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -2499,7 +2499,7 @@
|
||||
"id": 408,
|
||||
"previoustage": 407,
|
||||
"order": 44,
|
||||
"linearnum": 14,
|
||||
"linearnum": 8,
|
||||
"chapter": 4,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -2557,7 +2557,7 @@
|
||||
"id": 409,
|
||||
"previoustage": 408,
|
||||
"order": 45,
|
||||
"linearnum": 15,
|
||||
"linearnum": 9,
|
||||
"chapter": 4,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -2618,7 +2618,7 @@
|
||||
"id": 410,
|
||||
"previoustage": 409,
|
||||
"order": 46,
|
||||
"linearnum": 16,
|
||||
"linearnum": 10,
|
||||
"chapter": 4,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -2676,7 +2676,7 @@
|
||||
"id": 411,
|
||||
"previoustage": 410,
|
||||
"order": 47,
|
||||
"linearnum": 17,
|
||||
"linearnum": 11,
|
||||
"chapter": 4,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -2734,7 +2734,7 @@
|
||||
"id": 412,
|
||||
"previoustage": 411,
|
||||
"order": 48,
|
||||
"linearnum": 18,
|
||||
"linearnum": 12,
|
||||
"chapter": 4,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -2792,7 +2792,7 @@
|
||||
"id": 501,
|
||||
"previoustage": 412,
|
||||
"order": 49,
|
||||
"linearnum": 19,
|
||||
"linearnum": 1,
|
||||
"chapter": 5,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -2850,7 +2850,7 @@
|
||||
"id": 502,
|
||||
"previoustage": 501,
|
||||
"order": 50,
|
||||
"linearnum": 20,
|
||||
"linearnum": 2,
|
||||
"chapter": 5,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -2911,7 +2911,7 @@
|
||||
"id": 503,
|
||||
"previoustage": 502,
|
||||
"order": 51,
|
||||
"linearnum": 21,
|
||||
"linearnum": 3,
|
||||
"chapter": 5,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -2969,7 +2969,7 @@
|
||||
"id": 504,
|
||||
"previoustage": 503,
|
||||
"order": 52,
|
||||
"linearnum": 22,
|
||||
"linearnum": 4,
|
||||
"chapter": 5,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -3027,7 +3027,7 @@
|
||||
"id": 505,
|
||||
"previoustage": 504,
|
||||
"order": 53,
|
||||
"linearnum": 23,
|
||||
"linearnum": 5,
|
||||
"chapter": 5,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -3085,7 +3085,7 @@
|
||||
"id": 506,
|
||||
"previoustage": 505,
|
||||
"order": 54,
|
||||
"linearnum": 24,
|
||||
"linearnum": 6,
|
||||
"chapter": 5,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -3143,7 +3143,7 @@
|
||||
"id": 507,
|
||||
"previoustage": 506,
|
||||
"order": 55,
|
||||
"linearnum": 25,
|
||||
"linearnum": 7,
|
||||
"chapter": 5,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -3204,7 +3204,7 @@
|
||||
"id": 508,
|
||||
"previoustage": 507,
|
||||
"order": 56,
|
||||
"linearnum": 1,
|
||||
"linearnum": 8,
|
||||
"chapter": 5,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -3265,7 +3265,7 @@
|
||||
"id": 509,
|
||||
"previoustage": 508,
|
||||
"order": 57,
|
||||
"linearnum": 2,
|
||||
"linearnum": 9,
|
||||
"chapter": 5,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -3323,7 +3323,7 @@
|
||||
"id": 510,
|
||||
"previoustage": 509,
|
||||
"order": 58,
|
||||
"linearnum": 3,
|
||||
"linearnum": 10,
|
||||
"chapter": 5,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -3381,7 +3381,7 @@
|
||||
"id": 511,
|
||||
"previoustage": 510,
|
||||
"order": 59,
|
||||
"linearnum": 4,
|
||||
"linearnum": 11,
|
||||
"chapter": 5,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -3439,7 +3439,7 @@
|
||||
"id": 512,
|
||||
"previoustage": 511,
|
||||
"order": 60,
|
||||
"linearnum": 5,
|
||||
"linearnum": 12,
|
||||
"chapter": 5,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -3500,7 +3500,7 @@
|
||||
"id": 601,
|
||||
"previoustage": 512,
|
||||
"order": 61,
|
||||
"linearnum": 6,
|
||||
"linearnum": 1,
|
||||
"chapter": 6,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -3558,7 +3558,7 @@
|
||||
"id": 602,
|
||||
"previoustage": 601,
|
||||
"order": 62,
|
||||
"linearnum": 7,
|
||||
"linearnum": 2,
|
||||
"chapter": 6,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -3616,7 +3616,7 @@
|
||||
"id": 603,
|
||||
"previoustage": 602,
|
||||
"order": 63,
|
||||
"linearnum": 8,
|
||||
"linearnum": 3,
|
||||
"chapter": 6,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -3674,7 +3674,7 @@
|
||||
"id": 604,
|
||||
"previoustage": 603,
|
||||
"order": 64,
|
||||
"linearnum": 9,
|
||||
"linearnum": 4,
|
||||
"chapter": 6,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -3732,7 +3732,7 @@
|
||||
"id": 605,
|
||||
"previoustage": 604,
|
||||
"order": 65,
|
||||
"linearnum": 10,
|
||||
"linearnum": 5,
|
||||
"chapter": 6,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -3793,7 +3793,7 @@
|
||||
"id": 606,
|
||||
"previoustage": 605,
|
||||
"order": 66,
|
||||
"linearnum": 11,
|
||||
"linearnum": 6,
|
||||
"chapter": 6,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -3851,7 +3851,7 @@
|
||||
"id": 607,
|
||||
"previoustage": 606,
|
||||
"order": 67,
|
||||
"linearnum": 12,
|
||||
"linearnum": 7,
|
||||
"chapter": 6,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -3909,7 +3909,7 @@
|
||||
"id": 608,
|
||||
"previoustage": 607,
|
||||
"order": 68,
|
||||
"linearnum": 13,
|
||||
"linearnum": 8,
|
||||
"chapter": 6,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -3967,7 +3967,7 @@
|
||||
"id": 609,
|
||||
"previoustage": 608,
|
||||
"order": 69,
|
||||
"linearnum": 14,
|
||||
"linearnum": 9,
|
||||
"chapter": 6,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -4025,7 +4025,7 @@
|
||||
"id": 610,
|
||||
"previoustage": 609,
|
||||
"order": 70,
|
||||
"linearnum": 15,
|
||||
"linearnum": 10,
|
||||
"chapter": 6,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -4086,7 +4086,7 @@
|
||||
"id": 611,
|
||||
"previoustage": 610,
|
||||
"order": 71,
|
||||
"linearnum": 16,
|
||||
"linearnum": 11,
|
||||
"chapter": 6,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -4144,7 +4144,7 @@
|
||||
"id": 612,
|
||||
"previoustage": 611,
|
||||
"order": 72,
|
||||
"linearnum": 17,
|
||||
"linearnum": 12,
|
||||
"chapter": 6,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -4202,7 +4202,7 @@
|
||||
"id": 701,
|
||||
"previoustage": 612,
|
||||
"order": 73,
|
||||
"linearnum": 18,
|
||||
"linearnum": 1,
|
||||
"chapter": 7,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -4260,7 +4260,7 @@
|
||||
"id": 702,
|
||||
"previoustage": 701,
|
||||
"order": 74,
|
||||
"linearnum": 19,
|
||||
"linearnum": 2,
|
||||
"chapter": 7,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -4318,7 +4318,7 @@
|
||||
"id": 703,
|
||||
"previoustage": 702,
|
||||
"order": 75,
|
||||
"linearnum": 20,
|
||||
"linearnum": 3,
|
||||
"chapter": 7,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -4379,7 +4379,7 @@
|
||||
"id": 704,
|
||||
"previoustage": 703,
|
||||
"order": 76,
|
||||
"linearnum": 21,
|
||||
"linearnum": 4,
|
||||
"chapter": 7,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -4437,7 +4437,7 @@
|
||||
"id": 705,
|
||||
"previoustage": 704,
|
||||
"order": 77,
|
||||
"linearnum": 22,
|
||||
"linearnum": 5,
|
||||
"chapter": 7,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -4495,7 +4495,7 @@
|
||||
"id": 706,
|
||||
"previoustage": 705,
|
||||
"order": 78,
|
||||
"linearnum": 23,
|
||||
"linearnum": 6,
|
||||
"chapter": 7,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -4553,7 +4553,7 @@
|
||||
"id": 707,
|
||||
"previoustage": 706,
|
||||
"order": 79,
|
||||
"linearnum": 24,
|
||||
"linearnum": 7,
|
||||
"chapter": 7,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -4611,7 +4611,7 @@
|
||||
"id": 708,
|
||||
"previoustage": 707,
|
||||
"order": 80,
|
||||
"linearnum": 25,
|
||||
"linearnum": 8,
|
||||
"chapter": 7,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -4672,7 +4672,7 @@
|
||||
"id": 709,
|
||||
"previoustage": 708,
|
||||
"order": 81,
|
||||
"linearnum": 26,
|
||||
"linearnum": 9,
|
||||
"chapter": 7,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -4730,7 +4730,7 @@
|
||||
"id": 710,
|
||||
"previoustage": 709,
|
||||
"order": 82,
|
||||
"linearnum": 27,
|
||||
"linearnum": 10,
|
||||
"chapter": 7,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -4788,7 +4788,7 @@
|
||||
"id": 711,
|
||||
"previoustage": 710,
|
||||
"order": 83,
|
||||
"linearnum": 28,
|
||||
"linearnum": 11,
|
||||
"chapter": 7,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -4846,7 +4846,7 @@
|
||||
"id": 712,
|
||||
"previoustage": 711,
|
||||
"order": 84,
|
||||
"linearnum": 29,
|
||||
"linearnum": 12,
|
||||
"chapter": 7,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -4904,7 +4904,7 @@
|
||||
"id": 801,
|
||||
"previoustage": 712,
|
||||
"order": 85,
|
||||
"linearnum": 30,
|
||||
"linearnum": 1,
|
||||
"chapter": 8,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -4965,7 +4965,7 @@
|
||||
"id": 802,
|
||||
"previoustage": 801,
|
||||
"order": 86,
|
||||
"linearnum": 1,
|
||||
"linearnum": 2,
|
||||
"chapter": 8,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -5026,7 +5026,7 @@
|
||||
"id": 803,
|
||||
"previoustage": 802,
|
||||
"order": 87,
|
||||
"linearnum": 2,
|
||||
"linearnum": 3,
|
||||
"chapter": 8,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -5084,7 +5084,7 @@
|
||||
"id": 804,
|
||||
"previoustage": 803,
|
||||
"order": 88,
|
||||
"linearnum": 3,
|
||||
"linearnum": 4,
|
||||
"chapter": 8,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -5142,7 +5142,7 @@
|
||||
"id": 805,
|
||||
"previoustage": 804,
|
||||
"order": 89,
|
||||
"linearnum": 4,
|
||||
"linearnum": 5,
|
||||
"chapter": 8,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -5200,7 +5200,7 @@
|
||||
"id": 806,
|
||||
"previoustage": 805,
|
||||
"order": 90,
|
||||
"linearnum": 5,
|
||||
"linearnum": 6,
|
||||
"chapter": 8,
|
||||
"route": 1,
|
||||
"episodetype": 1,
|
||||
@ -5261,7 +5261,7 @@
|
||||
"id": 807,
|
||||
"previoustage": 806,
|
||||
"order": 91,
|
||||
"linearnum": 6,
|
||||
"linearnum": 7,
|
||||
"chapter": 8,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -5319,7 +5319,7 @@
|
||||
"id": 808,
|
||||
"previoustage": 807,
|
||||
"order": 92,
|
||||
"linearnum": 7,
|
||||
"linearnum": 8,
|
||||
"chapter": 8,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -5377,7 +5377,7 @@
|
||||
"id": 809,
|
||||
"previoustage": 808,
|
||||
"order": 93,
|
||||
"linearnum": 8,
|
||||
"linearnum": 9,
|
||||
"chapter": 8,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -5435,7 +5435,7 @@
|
||||
"id": 810,
|
||||
"previoustage": 809,
|
||||
"order": 94,
|
||||
"linearnum": 9,
|
||||
"linearnum": 10,
|
||||
"chapter": 8,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -5493,7 +5493,7 @@
|
||||
"id": 811,
|
||||
"previoustage": 810,
|
||||
"order": 95,
|
||||
"linearnum": 10,
|
||||
"linearnum": 11,
|
||||
"chapter": 8,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -5554,7 +5554,7 @@
|
||||
"id": 812,
|
||||
"previoustage": 811,
|
||||
"order": 96,
|
||||
"linearnum": 11,
|
||||
"linearnum": 12,
|
||||
"chapter": 8,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -5612,7 +5612,7 @@
|
||||
"id": 901,
|
||||
"previoustage": 812,
|
||||
"order": 97,
|
||||
"linearnum": 12,
|
||||
"linearnum": 1,
|
||||
"chapter": 9,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -5670,7 +5670,7 @@
|
||||
"id": 902,
|
||||
"previoustage": 901,
|
||||
"order": 98,
|
||||
"linearnum": 13,
|
||||
"linearnum": 2,
|
||||
"chapter": 9,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -5728,7 +5728,7 @@
|
||||
"id": 903,
|
||||
"previoustage": 902,
|
||||
"order": 99,
|
||||
"linearnum": 14,
|
||||
"linearnum": 3,
|
||||
"chapter": 9,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -5786,7 +5786,7 @@
|
||||
"id": 904,
|
||||
"previoustage": 903,
|
||||
"order": 100,
|
||||
"linearnum": 15,
|
||||
"linearnum": 4,
|
||||
"chapter": 9,
|
||||
"route": 2,
|
||||
"episodetype": 1,
|
||||
@ -5847,7 +5847,7 @@
|
||||
"id": 905,
|
||||
"previoustage": 904,
|
||||
"order": 101,
|
||||
"linearnum": 16,
|
||||
"linearnum": 5,
|
||||
"chapter": 9,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -5905,7 +5905,7 @@
|
||||
"id": 906,
|
||||
"previoustage": 905,
|
||||
"order": 102,
|
||||
"linearnum": 17,
|
||||
"linearnum": 6,
|
||||
"chapter": 9,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -5963,7 +5963,7 @@
|
||||
"id": 907,
|
||||
"previoustage": 906,
|
||||
"order": 103,
|
||||
"linearnum": 18,
|
||||
"linearnum": 7,
|
||||
"chapter": 9,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -6021,7 +6021,7 @@
|
||||
"id": 908,
|
||||
"previoustage": 907,
|
||||
"order": 104,
|
||||
"linearnum": 19,
|
||||
"linearnum": 8,
|
||||
"chapter": 9,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -6079,7 +6079,7 @@
|
||||
"id": 909,
|
||||
"previoustage": 908,
|
||||
"order": 105,
|
||||
"linearnum": 20,
|
||||
"linearnum": 9,
|
||||
"chapter": 9,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -6140,7 +6140,7 @@
|
||||
"id": 910,
|
||||
"previoustage": 909,
|
||||
"order": 106,
|
||||
"linearnum": 21,
|
||||
"linearnum": 10,
|
||||
"chapter": 9,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -6198,7 +6198,7 @@
|
||||
"id": 911,
|
||||
"previoustage": 910,
|
||||
"order": 107,
|
||||
"linearnum": 22,
|
||||
"linearnum": 11,
|
||||
"chapter": 9,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -6256,7 +6256,7 @@
|
||||
"id": 912,
|
||||
"previoustage": 911,
|
||||
"order": 108,
|
||||
"linearnum": 23,
|
||||
"linearnum": 12,
|
||||
"chapter": 9,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -6314,7 +6314,7 @@
|
||||
"id": 1001,
|
||||
"previoustage": 912,
|
||||
"order": 109,
|
||||
"linearnum": 24,
|
||||
"linearnum": 1,
|
||||
"chapter": 10,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -6372,7 +6372,7 @@
|
||||
"id": 1002,
|
||||
"previoustage": 1001,
|
||||
"order": 110,
|
||||
"linearnum": 25,
|
||||
"linearnum": 2,
|
||||
"chapter": 10,
|
||||
"route": 3,
|
||||
"episodetype": 1,
|
||||
@ -6433,7 +6433,7 @@
|
||||
"id": 1003,
|
||||
"previoustage": 1002,
|
||||
"order": 111,
|
||||
"linearnum": 26,
|
||||
"linearnum": 3,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -6491,7 +6491,7 @@
|
||||
"id": 1004,
|
||||
"previoustage": 1003,
|
||||
"order": 112,
|
||||
"linearnum": 27,
|
||||
"linearnum": 4,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -6549,7 +6549,7 @@
|
||||
"id": 1005,
|
||||
"previoustage": 1004,
|
||||
"order": 113,
|
||||
"linearnum": 28,
|
||||
"linearnum": 5,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -6607,7 +6607,7 @@
|
||||
"id": 1006,
|
||||
"previoustage": 1005,
|
||||
"order": 114,
|
||||
"linearnum": 29,
|
||||
"linearnum": 6,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -6665,7 +6665,7 @@
|
||||
"id": 1007,
|
||||
"previoustage": 1006,
|
||||
"order": 115,
|
||||
"linearnum": 30,
|
||||
"linearnum": 7,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -6726,7 +6726,7 @@
|
||||
"id": 1008,
|
||||
"previoustage": 1007,
|
||||
"order": 116,
|
||||
"linearnum": 31,
|
||||
"linearnum": 8,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -6784,7 +6784,7 @@
|
||||
"id": 1009,
|
||||
"previoustage": 1008,
|
||||
"order": 117,
|
||||
"linearnum": 32,
|
||||
"linearnum": 9,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -6842,7 +6842,7 @@
|
||||
"id": 1010,
|
||||
"previoustage": 1009,
|
||||
"order": 118,
|
||||
"linearnum": 33,
|
||||
"linearnum": 10,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -6900,7 +6900,7 @@
|
||||
"id": 1011,
|
||||
"previoustage": 1010,
|
||||
"order": 119,
|
||||
"linearnum": 34,
|
||||
"linearnum": 11,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
@ -6958,7 +6958,7 @@
|
||||
"id": 1012,
|
||||
"previoustage": 1011,
|
||||
"order": 120,
|
||||
"linearnum": 35,
|
||||
"linearnum": 12,
|
||||
"chapter": 10,
|
||||
"route": 4,
|
||||
"episodetype": 1,
|
||||
|
@ -241,7 +241,7 @@
|
||||
},
|
||||
{
|
||||
"id": 25001,
|
||||
"preson": "25001",
|
||||
"preson": "90002",
|
||||
"ico": "tx_js_25001",
|
||||
"img": "sbkp_js_25001",
|
||||
"heroimg": "hbkp_js_25001",
|
||||
@ -265,7 +265,7 @@
|
||||
},
|
||||
{
|
||||
"id": 25004,
|
||||
"preson": "25004",
|
||||
"preson": "90003",
|
||||
"ico": "tx_js_25004",
|
||||
"img": "sbkp_js_25004",
|
||||
"heroimg": "hbkp_js_25004",
|
||||
@ -386,9 +386,9 @@
|
||||
{
|
||||
"id": 35001,
|
||||
"preson": "35001",
|
||||
"ico": "tx_hhjs_35002",
|
||||
"img": "sbkp_js_35002",
|
||||
"heroimg": "hbkp_js_35002",
|
||||
"ico": "tx_hhjs_35001",
|
||||
"img": "sbkp_js_35001",
|
||||
"heroimg": "hbkp_js_35001",
|
||||
"portrait": "portrait_35001"
|
||||
},
|
||||
{
|
||||
@ -522,9 +522,9 @@
|
||||
{
|
||||
"id": 44005,
|
||||
"preson": "44005",
|
||||
"ico": "tx_hhjs_35002",
|
||||
"img": "sbkp_js_35002",
|
||||
"heroimg": "hbkp_js_35002",
|
||||
"ico": "tx_hhjs_44005",
|
||||
"img": "sbkp_js_44005",
|
||||
"heroimg": "hbkp_js_44005",
|
||||
"portrait": "portrait_44005"
|
||||
},
|
||||
{
|
||||
@ -554,9 +554,9 @@
|
||||
{
|
||||
"id": 45003,
|
||||
"preson": "45003",
|
||||
"ico": "tx_hhjs_35002",
|
||||
"img": "sbkp_js_35002",
|
||||
"heroimg": "hbkp_js_35002",
|
||||
"ico": "tx_hhjs_45003",
|
||||
"img": "sbkp_js_45003",
|
||||
"heroimg": "hbkp_js_45003",
|
||||
"portrait": "portrait_45003"
|
||||
},
|
||||
{
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -410,7 +410,7 @@
|
||||
"active": 0,
|
||||
"id_after": 0,
|
||||
"jump_interface": "mainworld",
|
||||
"icon": "wp_icon_0001",
|
||||
"icon": "rw_cj_icon01",
|
||||
"reword": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -430,7 +430,7 @@
|
||||
"active": 0,
|
||||
"id_after": 30102,
|
||||
"jump_interface": "mainworld",
|
||||
"icon": "rw_cj_icon04",
|
||||
"icon": "rw_cj_icon02",
|
||||
"reword": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -450,7 +450,7 @@
|
||||
"active": 0,
|
||||
"id_after": 30103,
|
||||
"jump_interface": "mainworld",
|
||||
"icon": "rw_cj_icon05",
|
||||
"icon": "rw_cj_icon09",
|
||||
"reword": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -470,7 +470,7 @@
|
||||
"active": 0,
|
||||
"id_after": 30104,
|
||||
"jump_interface": "mainworld",
|
||||
"icon": "rw_cj_icon06",
|
||||
"icon": "rw_cj_icon10",
|
||||
"reword": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -490,7 +490,7 @@
|
||||
"active": 0,
|
||||
"id_after": 30105,
|
||||
"jump_interface": "mainworld",
|
||||
"icon": "rw_cj_icon07",
|
||||
"icon": "rw_cj_icon11",
|
||||
"reword": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -510,7 +510,7 @@
|
||||
"active": 0,
|
||||
"id_after": 30106,
|
||||
"jump_interface": "mainworld",
|
||||
"icon": "rw_cj_icon08",
|
||||
"icon": "rw_cj_icon12",
|
||||
"reword": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -530,7 +530,7 @@
|
||||
"active": 0,
|
||||
"id_after": 30107,
|
||||
"jump_interface": "mainworld",
|
||||
"icon": "rw_cj_icon09",
|
||||
"icon": "rw_cj_icon13",
|
||||
"reword": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -550,7 +550,7 @@
|
||||
"active": 0,
|
||||
"id_after": 30108,
|
||||
"jump_interface": "mainworld",
|
||||
"icon": "rw_cj_icon10",
|
||||
"icon": "rw_cj_icon14",
|
||||
"reword": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -570,7 +570,7 @@
|
||||
"active": 0,
|
||||
"id_after": 30109,
|
||||
"jump_interface": "mainworld",
|
||||
"icon": "rw_cj_icon11",
|
||||
"icon": "rw_cj_icon15",
|
||||
"reword": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -590,7 +590,7 @@
|
||||
"active": 0,
|
||||
"id_after": 30110,
|
||||
"jump_interface": "mainworld",
|
||||
"icon": "rw_cj_icon12",
|
||||
"icon": "rw_cj_icon16",
|
||||
"reword": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -610,7 +610,7 @@
|
||||
"active": 0,
|
||||
"id_after": 30111,
|
||||
"jump_interface": "mainworld",
|
||||
"icon": "rw_cj_icon13",
|
||||
"icon": "rw_cj_icon17",
|
||||
"reword": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -630,7 +630,7 @@
|
||||
"active": 0,
|
||||
"id_after": 30112,
|
||||
"jump_interface": "mainworld",
|
||||
"icon": "rw_cj_icon14",
|
||||
"icon": "rw_cj_icon18",
|
||||
"reword": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -650,7 +650,7 @@
|
||||
"active": 0,
|
||||
"id_after": 30113,
|
||||
"jump_interface": "mainworld",
|
||||
"icon": "rw_cj_icon15",
|
||||
"icon": "rw_cj_icon01",
|
||||
"reword": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -670,7 +670,7 @@
|
||||
"active": 0,
|
||||
"id_after": 30114,
|
||||
"jump_interface": "mainworld",
|
||||
"icon": "rw_cj_icon16",
|
||||
"icon": "rw_cj_icon02",
|
||||
"reword": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -690,7 +690,7 @@
|
||||
"active": 0,
|
||||
"id_after": 30115,
|
||||
"jump_interface": "mainworld",
|
||||
"icon": "rw_cj_icon17",
|
||||
"icon": "rw_cj_icon09",
|
||||
"reword": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -710,7 +710,7 @@
|
||||
"active": 0,
|
||||
"id_after": 30116,
|
||||
"jump_interface": "mainworld",
|
||||
"icon": "rw_cj_icon18",
|
||||
"icon": "rw_cj_icon10",
|
||||
"reword": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -730,7 +730,7 @@
|
||||
"active": 0,
|
||||
"id_after": 30117,
|
||||
"jump_interface": "mainworld",
|
||||
"icon": "rw_cj_icon01",
|
||||
"icon": "rw_cj_icon11",
|
||||
"reword": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -750,7 +750,7 @@
|
||||
"active": 0,
|
||||
"id_after": 30118,
|
||||
"jump_interface": "mainworld",
|
||||
"icon": "rw_cj_icon02",
|
||||
"icon": "rw_cj_icon12",
|
||||
"reword": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -770,7 +770,7 @@
|
||||
"active": 0,
|
||||
"id_after": 30119,
|
||||
"jump_interface": "mainworld",
|
||||
"icon": "rw_cj_icon03",
|
||||
"icon": "rw_cj_icon13",
|
||||
"reword": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -790,7 +790,7 @@
|
||||
"active": 0,
|
||||
"id_after": 0,
|
||||
"jump_interface": "mainworld",
|
||||
"icon": "rw_cj_icon04",
|
||||
"icon": "rw_cj_icon14",
|
||||
"reword": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -810,7 +810,7 @@
|
||||
"active": 0,
|
||||
"id_after": 0,
|
||||
"jump_interface": "mainworld",
|
||||
"icon": "rw_cj_icon05",
|
||||
"icon": "rw_cj_icon15",
|
||||
"reword": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -830,7 +830,7 @@
|
||||
"active": 0,
|
||||
"id_after": 0,
|
||||
"jump_interface": "mainworld",
|
||||
"icon": "rw_cj_icon06",
|
||||
"icon": "rw_cj_icon16",
|
||||
"reword": [
|
||||
{
|
||||
"a": "attr",
|
||||
@ -850,7 +850,7 @@
|
||||
"active": 0,
|
||||
"id_after": 0,
|
||||
"jump_interface": "mainworld",
|
||||
"icon": "rw_cj_icon07",
|
||||
"icon": "rw_cj_icon17",
|
||||
"reword": [
|
||||
{
|
||||
"a": "attr",
|
||||
|
@ -24,7 +24,7 @@ var (
|
||||
fmt.Printf("%d- %v\n", (i + 1), v)
|
||||
}
|
||||
},
|
||||
enabled: true,
|
||||
// enabled: true,
|
||||
next: func(robot *Robot, rsp proto.Message) {
|
||||
tcs := []*TestCase{}
|
||||
if _, ok := rsp.(*pb.HeroListResp); ok {
|
||||
@ -33,13 +33,16 @@ var (
|
||||
mainType: string(comm.ModuleHero),
|
||||
subType: hero.StrengthenUplv,
|
||||
req: &pb.HeroStrengthenUplvReq{
|
||||
HeroObjID: "62dabaacd8c5789e2cc8b95e",
|
||||
ExpCards: map[string]int32{
|
||||
"62dabac1d8c5789e2cc8b9d3": 1,
|
||||
HeroObjID: "62de35b92f462b70c1105aa8",
|
||||
ExpCards: []*pb.MapStringInt32{
|
||||
{
|
||||
Key: "62de35b92f462b70c1105ab8",
|
||||
Value: 1,
|
||||
},
|
||||
},
|
||||
},
|
||||
rsp: &pb.HeroStrengthenUplvResp{},
|
||||
enabled: true,
|
||||
// enabled: true,
|
||||
}
|
||||
tcs = append(tcs, tc)
|
||||
}
|
||||
@ -50,7 +53,7 @@ var (
|
||||
mainType: string(comm.ModuleHero),
|
||||
subType: hero.HeroSubTypeChouka,
|
||||
req: &pb.HeroChoukaReq{
|
||||
HeroIds: []int32{14001, 14002, 14003, 14004, 14005, 14006, 14007},
|
||||
HeroIds: []string{"14001"},
|
||||
},
|
||||
rsp: &pb.HeroChoukaResp{},
|
||||
// enabled: true,
|
||||
@ -97,8 +100,11 @@ var (
|
||||
subType: hero.StrengthenUplv,
|
||||
req: &pb.HeroStrengthenUplvReq{
|
||||
HeroObjID: heroId,
|
||||
ExpCards: map[string]int32{
|
||||
"62da19017944b60fd473df61": 1,
|
||||
ExpCards: []*pb.MapStringInt32{
|
||||
{
|
||||
Key: "62da19017944b60fd473df61",
|
||||
Value: 1,
|
||||
},
|
||||
},
|
||||
},
|
||||
rsp: &pb.HeroStrengthenUplvResp{},
|
||||
|
@ -40,7 +40,7 @@ var (
|
||||
subType: task.TaskSubTypeReceive,
|
||||
req: &pb.TaskReceiveReq{
|
||||
TaskTag: int32(comm.TASK_DAILY),
|
||||
Id: "62dab21d9efd6536b1cc1bb9",
|
||||
Id: "62de35b92f462b70c1105ac5",
|
||||
},
|
||||
rsp: &pb.TaskReceiveResp{},
|
||||
// enabled: true,
|
||||
|
@ -11,14 +11,13 @@ import (
|
||||
//申明测试接口及请求和响应参数
|
||||
var user_builders = []*TestCase{
|
||||
{
|
||||
//create
|
||||
desc: "创角",
|
||||
desc: "修改名称",
|
||||
mainType: string(comm.ModuleUser),
|
||||
subType: user.UserSubTypeCreate,
|
||||
req: &pb.UserCreateReq{ //设置请求参数
|
||||
NickName: "乐谷70616",
|
||||
subType: user.UserSubTypeModifyName,
|
||||
req: &pb.UserModifynameReq{ //设置请求参数
|
||||
Name: "uuuuuu",
|
||||
},
|
||||
rsp: &pb.UserCreateResp{},
|
||||
rsp: &pb.UserModifynameResp{},
|
||||
// enabled: true,
|
||||
}, {
|
||||
desc: "添加资源",
|
||||
@ -45,7 +44,7 @@ var user_builders = []*TestCase{
|
||||
N: 1,
|
||||
},
|
||||
},
|
||||
rsp: &pb.UserAddResResp{},
|
||||
rsp: &pb.UserAddResResp{},
|
||||
// enabled: true,
|
||||
}, {
|
||||
desc: "获取配置",
|
||||
|
@ -67,6 +67,8 @@ const (
|
||||
EventUserLogin core.Event_Key = "Event_UserLogin" //登录事件
|
||||
EventCreateUser core.Event_Key = "Event_CreateUser" //创建角色事件
|
||||
EventUserOffline core.Event_Key = "Event_UserOffline" //用户离线事件
|
||||
|
||||
EventUserChanged core.Event_Key = "event_user_changed" //用户数据变化
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -60,6 +60,8 @@ type (
|
||||
QueryAttributeValue(uid string, attr string) (value int32)
|
||||
//添加/减少属性值 第四个参数控制是否推送给前端
|
||||
AddAttributeValue(session IUserSession, attr string, add int32, bPush bool) (code pb.ErrorCode)
|
||||
//用户改变事件
|
||||
EventUserChanged(session IUserSession)
|
||||
}
|
||||
//武器模块
|
||||
IEquipment interface {
|
||||
|
65
lego/sys/event/v2/app.go
Normal file
65
lego/sys/event/v2/app.go
Normal file
@ -0,0 +1,65 @@
|
||||
package event_v2
|
||||
|
||||
import (
|
||||
"go_dreamfactory/lego/core"
|
||||
"sync"
|
||||
)
|
||||
|
||||
// 服务容器
|
||||
type App struct {
|
||||
//inject.Graph
|
||||
sync.RWMutex
|
||||
events map[core.Event_Key][]Listener // 事件
|
||||
}
|
||||
|
||||
// 容器的目的是为了创建事件之后,为事件注入观察者,所以为了方便,直接全部解耦
|
||||
// 创建
|
||||
|
||||
// 新建一个App,可以在其中注册事件
|
||||
func NewApp() *App {
|
||||
app := &App{}
|
||||
app.events = make(map[core.Event_Key][]Listener)
|
||||
return app
|
||||
}
|
||||
|
||||
// 给容器绑定事件,传入 类型-> 观察者的绑定
|
||||
// 可以使用反射,传入类型的字符串
|
||||
// 否则bind时也可以放置包括通配符的
|
||||
func (app *App) Bind(t core.Event_Key, listeners []Listener) {
|
||||
for k := range listeners {
|
||||
app.Listen(t, listeners[k])
|
||||
}
|
||||
}
|
||||
|
||||
// 监听[事件][监听器],单独绑定一个监听器
|
||||
func (app *App) Listen(str core.Event_Key, listener Listener) {
|
||||
app.Lock()
|
||||
app.events[str] = append(app.events[str], listener)
|
||||
app.Unlock()
|
||||
}
|
||||
|
||||
// 分发事件,传入各种事件,如果是
|
||||
func (app *App) Dispatch(key core.Event_Key, events ...interface{}) {
|
||||
// 容器分发数据
|
||||
for k := range events {
|
||||
// 如果实现了 事件接口 IEvent,则调用事件的观察者模式,得到所有的
|
||||
var observers []Listener
|
||||
if _, ok := events[k].(IEvent); ok {
|
||||
obs := events[k].(IEvent).Observers()
|
||||
observers = append(observers, obs...) // 将事件中自行添加的观察者,放在所有观察者之后
|
||||
}
|
||||
|
||||
if obs, exist := app.events[key]; exist {
|
||||
observers = append(observers, obs...)
|
||||
}
|
||||
|
||||
if len(observers) > 0 {
|
||||
// 得到了所有的观察者,这里通过pipeline来执行,通过next来控制什么时候调用这个观察者
|
||||
new(Pipeline).Send(events[k]).Through(observers).Then(func(context interface{}) {
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
36
lego/sys/event/v2/event.go
Normal file
36
lego/sys/event/v2/event.go
Normal file
@ -0,0 +1,36 @@
|
||||
package event_v2
|
||||
|
||||
// 事件接口
|
||||
type IEvent interface {
|
||||
Attach(listeners ...Listener) // 事件添加观察者
|
||||
Observers() []Listener // 获取所有的观察者
|
||||
//Detach(listener Listener)
|
||||
DetachIndexOf(index int)
|
||||
}
|
||||
|
||||
type Event struct {
|
||||
listeners []Listener
|
||||
}
|
||||
|
||||
func (e *Event) Attach(listeners ...Listener) {
|
||||
e.listeners = append(e.listeners, listeners...)
|
||||
}
|
||||
|
||||
//func (e *Event) Detach(listener Listener) {
|
||||
// for k := range e.listeners {
|
||||
// if listener == e.listeners[k] {
|
||||
//
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
// 移除某个监听器
|
||||
func (e *Event) DetachIndexOf(index int) {
|
||||
if len(e.listeners) > index && index > 0 {
|
||||
e.listeners = append(e.listeners[:index], e.listeners[index+1:]...)
|
||||
}
|
||||
}
|
||||
|
||||
func (e *Event) Observers() []Listener {
|
||||
return e.listeners
|
||||
}
|
5
lego/sys/event/v2/listener.go
Normal file
5
lego/sys/event/v2/listener.go
Normal file
@ -0,0 +1,5 @@
|
||||
package event_v2
|
||||
|
||||
// 监听器接口
|
||||
|
||||
type Listener func(event interface{},next func(event interface{}))
|
41
lego/sys/event/v2/pipeline.go
Normal file
41
lego/sys/event/v2/pipeline.go
Normal file
@ -0,0 +1,41 @@
|
||||
package event_v2
|
||||
|
||||
type Pipeline struct {
|
||||
send interface{} // 穿过管道的上下文
|
||||
through []Listener // 中间件数组
|
||||
current int // 当前执行到第几个中间件
|
||||
}
|
||||
|
||||
func (p *Pipeline) Send(context interface{}) *Pipeline {
|
||||
p.send = context
|
||||
return p
|
||||
}
|
||||
|
||||
func (p *Pipeline) Through(middlewares []Listener) *Pipeline {
|
||||
p.through = middlewares
|
||||
return p
|
||||
}
|
||||
|
||||
func (p *Pipeline) Exec() {
|
||||
if len(p.through) > p.current {
|
||||
m := p.through[p.current]
|
||||
p.current += 1
|
||||
m(p.send, func(c interface{}) {
|
||||
p.Exec()
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 这里是路由的最后一站
|
||||
func (p *Pipeline) Then(then func(context interface{})) {
|
||||
// 按照顺序执行
|
||||
// 将then作为最后一站的中间件
|
||||
var m Listener
|
||||
m = func(c interface{}, next func(c interface{})) {
|
||||
then(c)
|
||||
next(c)
|
||||
}
|
||||
p.through = append(p.through, m)
|
||||
p.Exec()
|
||||
}
|
@ -10,8 +10,10 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
game_global = "game_global.json"
|
||||
game_initial = "game_initial.json"
|
||||
game_global = "game_global.json" //全局配置表
|
||||
game_initial = "game_initial.json" //初始化表
|
||||
game_playerlv = "game_playerlv.json" //玩家等级
|
||||
game_facemod = "game_facemod.json" // 形象配置表
|
||||
)
|
||||
|
||||
///配置管理基础组件
|
||||
@ -24,6 +26,8 @@ func (this *MCompConfigure) Init(service core.IService, module core.IModule, com
|
||||
err = this.ModuleCompBase.Init(service, module, comp, options)
|
||||
err = this.LoadConfigure(game_global, cfg.NewGame_global)
|
||||
err = this.LoadConfigure(game_initial, cfg.NewGame_initial)
|
||||
err = this.LoadConfigure(game_playerlv, cfg.NewGame_playerlv)
|
||||
err = this.LoadConfigure(game_facemod, cfg.NewGame_facemod)
|
||||
return
|
||||
}
|
||||
|
||||
@ -50,7 +54,6 @@ func (this *MCompConfigure) GetConfigure(name string) (v interface{}, err error)
|
||||
}
|
||||
|
||||
//全局配置
|
||||
|
||||
func (this *MCompConfigure) GetGlobalConf(key string) string {
|
||||
if v, err := this.GetConfigure(game_initial); err != nil {
|
||||
log.Errorf("get global conf err:%v", err)
|
||||
@ -87,3 +90,54 @@ func (this *MCompConfigure) GetGlobalInitConf() (configure *cfg.Game_initial, er
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 主角等级经验配置列表
|
||||
func (this *MCompConfigure) GetPlayerlvConfList() (list []*cfg.Game_playerlvData) {
|
||||
if v, err := this.GetConfigure(game_playerlv); err != nil {
|
||||
return
|
||||
} else {
|
||||
if configure, ok := v.(*cfg.Game_playerlv); !ok {
|
||||
err = fmt.Errorf("%T no is *cfg.Game_playerlv", v)
|
||||
return
|
||||
} else {
|
||||
if configure != nil {
|
||||
list = configure.GetDataList()
|
||||
}
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 玩家等级经验配置表
|
||||
func (this *MCompConfigure) GetPlayerlvConf(lv int32) (data *cfg.Game_playerlvData) {
|
||||
if v, err := this.GetConfigure(game_playerlv); err != nil {
|
||||
return
|
||||
} else {
|
||||
if configure, ok := v.(*cfg.Game_playerlv); !ok {
|
||||
err = fmt.Errorf("%T no is *cfg.Game_playerlv", v)
|
||||
return
|
||||
} else {
|
||||
if configure != nil {
|
||||
data = configure.GetDataMap()[lv]
|
||||
}
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 玩家形象预设配置
|
||||
func (this *MCompConfigure) GetPlayerFigureConf() (list []*cfg.Game_facemodData) {
|
||||
if v, err := this.GetConfigure(game_facemod); err != nil {
|
||||
return
|
||||
} else {
|
||||
if configure, ok := v.(*cfg.Game_facemod); !ok {
|
||||
err = fmt.Errorf("%T no is *cfg.Game_playerlv", v)
|
||||
return
|
||||
} else {
|
||||
if configure != nil {
|
||||
list = configure.GetDataList()
|
||||
}
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
@ -492,7 +492,7 @@ func (this *MCompModel) DelListlds(uid string, ids ...string) (err error) {
|
||||
func (this *MCompModel) GetUserExpand(uid string) (result *pb.DBUserExpand, err error) {
|
||||
result = &pb.DBUserExpand{}
|
||||
key := fmt.Sprintf("userexpand:%s", uid)
|
||||
if err = this.Redis.HGetAll(key, result); err != nil && err != redis.RedisNil {
|
||||
if err = this.Redis.HGetAll(key, result); err != nil {
|
||||
return
|
||||
}
|
||||
if err == redis.RedisNil {
|
||||
|
@ -24,7 +24,9 @@ func (this *apiComp) Awaken(session comm.IUserSession, req *pb.HeroAwakenReq) (c
|
||||
var (
|
||||
awakenData *cfg.Game_heroAwakenData
|
||||
_hero *pb.DBHero
|
||||
chanegCard []*pb.DBHero // change
|
||||
)
|
||||
chanegCard = make([]*pb.DBHero, 0)
|
||||
code = this.AwakenCheck(session, req) // check
|
||||
if code != pb.ErrorCode_Success {
|
||||
return
|
||||
@ -59,6 +61,14 @@ func (this *apiComp) Awaken(session comm.IUserSession, req *pb.HeroAwakenReq) (c
|
||||
if code != pb.ErrorCode_Success {
|
||||
return
|
||||
}
|
||||
if _hero.SameCount > 1 { //有堆叠的情况
|
||||
// 克隆一个新的
|
||||
_hero.SameCount -= 1
|
||||
newHero := this.module.modelHero.CloneNewHero(_hero)
|
||||
chanegCard = append(chanegCard, newHero)
|
||||
}
|
||||
_hero.SameCount = 1
|
||||
|
||||
// 加属性 awakenData
|
||||
_value, ok := strconv.Atoi(awakenData.Phasebonus[0])
|
||||
if ok == nil { // 升级技能
|
||||
@ -72,6 +82,7 @@ func (this *apiComp) Awaken(session comm.IUserSession, req *pb.HeroAwakenReq) (c
|
||||
}
|
||||
_heroMap := map[string]interface{}{
|
||||
"normalSkill": _hero.NormalSkill,
|
||||
"sameCount": 1,
|
||||
"isOverlying": false,
|
||||
}
|
||||
// 保存数据
|
||||
@ -102,12 +113,12 @@ func (this *apiComp) Awaken(session comm.IUserSession, req *pb.HeroAwakenReq) (c
|
||||
}
|
||||
}
|
||||
|
||||
m, err1 := this.module.modelHero.PushHeroProperty(session, _hero) // 推送属性变化
|
||||
err1 = this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化
|
||||
if err1 != nil {
|
||||
this.module.Errorf("PushHeroProperty err!")
|
||||
this.module.Errorf("ChangeHeroProperty err!")
|
||||
}
|
||||
_hero.Property = m
|
||||
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: []*pb.DBHero{_hero}})
|
||||
chanegCard = append(chanegCard, _hero)
|
||||
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: chanegCard})
|
||||
session.SendMsg(string(this.module.GetType()), Awaken, &pb.HeroAwakenResp{Hero: _hero})
|
||||
return
|
||||
}
|
||||
|
@ -33,7 +33,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
|
||||
config5Count int32 // 配置表中5星保底次数
|
||||
race int32
|
||||
upDraw []*cfg.Game_drawUpdrawData // 活动数据 英雄抽卡权重增加
|
||||
cardW map[string]int32 // 当前卡牌对应的权重
|
||||
cardW map[string]int32 // 当前卡牌卡池卡牌对应的权重
|
||||
)
|
||||
upDraw = make([]*cfg.Game_drawUpdrawData, 0)
|
||||
szCards = make([]string, 0)
|
||||
@ -46,6 +46,9 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
|
||||
for _, v := range cfgData.GetDataList() {
|
||||
if time.Now().Unix() > int64(v.TimeOn) && time.Now().Unix() < int64(v.TimeOff) { // 在这个时间范围之内
|
||||
upDraw = append(upDraw, v) // 记录下在这活动范围之内的数据
|
||||
for index, v1 := range v.UpHero {
|
||||
cardW[v1] += v.UpWeight[index]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -82,6 +85,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
|
||||
for _, v := range _conf {
|
||||
cardW[v.Id] += v.Weight
|
||||
}
|
||||
|
||||
_costConf, err := this.module.configure.GetDrawCostConfigByID(req.DrawType) // 抽卡消耗
|
||||
if err != nil {
|
||||
code = pb.ErrorCode_ConfigNoFound
|
||||
@ -103,30 +107,15 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
|
||||
}
|
||||
|
||||
drawTimes = _costConf.Count // 抽卡次数
|
||||
for k, v := range cardW { // k是heroid v 权重
|
||||
|
||||
for _, v1 := range upDraw {
|
||||
for _, v2 := range v1.UpHero {
|
||||
if v2 == k {
|
||||
cardW[k] += v
|
||||
}
|
||||
}
|
||||
|
||||
// }
|
||||
// if !updraw {
|
||||
// totalWeight += int64(v.Weight) // 统计所有权重
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
drawTimes = 1
|
||||
for i := 0; i < int(drawTimes); i++ {
|
||||
n, _ := rand.Int(rand.Reader, big.NewInt(totalWeight)) // [0,totalWeight)
|
||||
for _, v := range _conf {
|
||||
curWeigth += int64(v.Weight)
|
||||
for k, v := range cardW {
|
||||
curWeigth += int64(v)
|
||||
if curWeigth < n.Int64() { // 命中
|
||||
// 获取当前星级
|
||||
_getCardCfg := this.module.configure.GetHero(v.Id) //获取的英雄信息
|
||||
_getCardCfg := this.module.configure.GetHero(k) //获取的英雄信息
|
||||
if _getCardCfg != nil {
|
||||
continue
|
||||
}
|
||||
@ -183,7 +172,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
|
||||
}
|
||||
}
|
||||
if !bGet {
|
||||
szCards = append(szCards, v.Id)
|
||||
szCards = append(szCards, k)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -114,22 +114,17 @@ func (this *apiComp) Resonance(session comm.IUserSession, req *pb.HeroResonanceR
|
||||
// 返还对应初始星级的卡
|
||||
for _, v := range resonConfig.Prize {
|
||||
if v.A == "hero" {
|
||||
// value, err := strconv.Atoi(v.T)
|
||||
// if err != nil {
|
||||
// code = pb.ErrorCode_ConfigurationException
|
||||
// return
|
||||
// }
|
||||
for i := 0; i < int(v.N); i++ { // 有多少张加多少次
|
||||
this.module.modelHero.createOneHero(session.GetUserId(), v.T)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
m, err1 := this.module.modelHero.PushHeroProperty(session, _hero) // 推送属性变化
|
||||
err1 = this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化
|
||||
if err1 != nil {
|
||||
this.module.Errorf("PushHeroProperty err!")
|
||||
this.module.Errorf("ChangeHeroProperty err!")
|
||||
}
|
||||
_hero.Property = m
|
||||
|
||||
changeHero = append(changeHero, _hero)
|
||||
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: changeHero})
|
||||
session.SendMsg(string(this.module.GetType()), Resonance, &pb.HeroResonanceResp{Hero: _hero})
|
||||
|
@ -81,11 +81,10 @@ func (this *apiComp) ResonanceReset(session comm.IUserSession, req *pb.HeroReson
|
||||
code = pb.ErrorCode_DBError
|
||||
return
|
||||
}
|
||||
m, err1 := this.module.modelHero.PushHeroProperty(session, _hero) // 推送属性变化
|
||||
err1 = this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化
|
||||
if err1 != nil {
|
||||
this.module.Errorf("PushHeroProperty err!")
|
||||
this.module.Errorf("ChangeHeroProperty err!")
|
||||
}
|
||||
_hero.Property = m
|
||||
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: []*pb.DBHero{_hero}})
|
||||
session.SendMsg(string(this.module.GetType()), ResonanceReset, &pb.HeroResonanceResetResp{Hero: _hero, Energy: _hero.ResonateNum})
|
||||
return
|
||||
|
@ -67,11 +67,10 @@ func (this *apiComp) ResonanceUseEnergy(session comm.IUserSession, req *pb.HeroR
|
||||
}
|
||||
this.module.modelHero.mergeMainProperty(session.GetUserId(), _hero, property)
|
||||
|
||||
m, err1 := this.module.modelHero.PushHeroProperty(session, _hero) // 推送属性变化
|
||||
err1 = this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化
|
||||
if err1 != nil {
|
||||
this.module.Errorf("PushHeroProperty err!")
|
||||
this.module.Errorf("ChangeHeroProperty err!")
|
||||
}
|
||||
_hero.Property = m
|
||||
session.SendMsg(string(this.module.GetType()), ResonanceUseEnergy, &pb.HeroResonanceUseEnergyResp{Hero: _hero})
|
||||
return
|
||||
}
|
||||
|
@ -131,11 +131,10 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt
|
||||
return
|
||||
}
|
||||
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: []*pb.DBHero{_costHero}})
|
||||
m, err1 := this.module.modelHero.PushHeroProperty(session, _hero) // 推送属性变化
|
||||
err1 = this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化
|
||||
if err1 != nil {
|
||||
this.module.Errorf("PushHeroProperty err!")
|
||||
this.module.Errorf("ChangeHeroProperty err!")
|
||||
}
|
||||
_hero.Property = m
|
||||
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: []*pb.DBHero{_hero}})
|
||||
session.SendMsg(string(this.module.GetType()), StrengthenUpSkill, &pb.HeroStrengthenUpSkillResp{Hero: _hero})
|
||||
return
|
||||
|
@ -153,11 +153,19 @@ func (this *apiComp) StrengthenUpStar(session comm.IUserSession, req *pb.HeroStr
|
||||
this.module.Errorf("del hero err card:%s,count = %d", k, v)
|
||||
return
|
||||
}
|
||||
chanegCard = append(chanegCard, CostHeroObj[k])
|
||||
|
||||
}
|
||||
if _hero.SameCount > 1 { //有堆叠的情况
|
||||
// 克隆一个新的
|
||||
_hero.SameCount -= 1
|
||||
newHero := this.module.modelHero.CloneNewHero(_hero)
|
||||
chanegCard = append(chanegCard, newHero)
|
||||
}
|
||||
_hero.Star += 1
|
||||
_hero.SameCount = 1
|
||||
_heroMap := map[string]interface{}{
|
||||
"star": _hero.Star,
|
||||
"sameCount": 1,
|
||||
"isOverlying": false,
|
||||
}
|
||||
// 触发星级任务
|
||||
@ -168,12 +176,11 @@ func (this *apiComp) StrengthenUpStar(session comm.IUserSession, req *pb.HeroStr
|
||||
code = pb.ErrorCode_DBError
|
||||
this.module.Errorf("update hero skill failed:%v", err1)
|
||||
}
|
||||
m, err1 := this.module.modelHero.PushHeroProperty(session, _hero) // 推送属性变化
|
||||
err1 = this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化
|
||||
if err1 != nil {
|
||||
code = pb.ErrorCode_Unknown
|
||||
this.module.Errorf("PushHeroProperty err!")
|
||||
this.module.Errorf("ChangeHeroProperty err!")
|
||||
}
|
||||
_hero.Property = m // 更新属性变化
|
||||
chanegCard = append(chanegCard, _hero)
|
||||
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: chanegCard})
|
||||
session.SendMsg(string(this.module.GetType()), StrengthenUpStar, &pb.HeroStrengthenUpStarResp{Hero: _hero})
|
||||
|
@ -150,7 +150,7 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
|
||||
this.module.Debugf("升级后当前等级: %d,经验: %d,需要消耗的金币: %d,增加的经验: %d", curLv, curExp, costGold, addExp)
|
||||
|
||||
// 执行升级逻辑
|
||||
newhero, code := this.module.AddCardExp(session.GetUserId(), _hero, addExp) // 加经验
|
||||
newhero, code := this.module.modelHero.AddCardExp(session.GetUserId(), _hero, addExp) // 加经验
|
||||
if code != pb.ErrorCode_Success {
|
||||
return
|
||||
}
|
||||
@ -167,7 +167,6 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
|
||||
return
|
||||
}
|
||||
// 删除经验卡
|
||||
|
||||
for k, v := range _mapCost {
|
||||
err1 := this.module.modelHero.consumeHeroCard(session.GetUserId(), _costExpHero[k], v)
|
||||
if err1 != nil {
|
||||
@ -178,12 +177,11 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
|
||||
_changeHero = append(_changeHero, _costExpHero[k])
|
||||
}
|
||||
|
||||
m, err1 := this.module.modelHero.PushHeroProperty(session, _hero) // 推送属性变化
|
||||
err1 := this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化
|
||||
if err1 != nil {
|
||||
this.module.Errorf("PushHeroProperty err!")
|
||||
this.module.Errorf("ChangeHeroProperty err!")
|
||||
}
|
||||
|
||||
_hero.Property = m
|
||||
_changeHero = append(_changeHero, _hero) // 升级后的英雄 hero id 不变
|
||||
if newhero != nil {
|
||||
_changeHero = append(_changeHero, newhero) // 原来的英雄 只是数量变化了
|
||||
|
@ -55,7 +55,7 @@ func (this *ModelHero) initHero(uid string, heroCfgId string) *pb.DBHero {
|
||||
Energy: make(map[int32]int32),
|
||||
Property: make(map[string]int32),
|
||||
}
|
||||
newHero.Property = this.PropertyCompute(uid, newHero)
|
||||
this.PropertyCompute(uid, newHero)
|
||||
this.initHeroSkill(newHero)
|
||||
return newHero
|
||||
}
|
||||
@ -102,6 +102,7 @@ func (this *ModelHero) CloneNewHero(hero *pb.DBHero) (newHero *pb.DBHero) {
|
||||
temp := *hero
|
||||
newHero = &temp
|
||||
newHero.Id = primitive.NewObjectID().Hex()
|
||||
this.AddList(newHero.Uid, newHero.Id, newHero)
|
||||
return
|
||||
}
|
||||
|
||||
@ -217,7 +218,7 @@ func (this *ModelHero) getOneHero(uid, heroId string) *pb.DBHero {
|
||||
return hero
|
||||
}
|
||||
|
||||
//消耗英雄卡 (只需要传heroid即可)
|
||||
//消耗英雄卡
|
||||
func (this *ModelHero) consumeHeroCard(uid string, hero *pb.DBHero, count int32) (err error) {
|
||||
if count == 0 {
|
||||
return
|
||||
@ -308,18 +309,16 @@ func (this *ModelHero) setEquipment(hero *pb.DBHero) (newHero *pb.DBHero, err er
|
||||
return
|
||||
}
|
||||
//创建新卡
|
||||
newHero = this.CloneNewHero(hero)
|
||||
// newHero, err = this.createOneHero(hero.Uid, hero.HeroID)
|
||||
// if err != nil {
|
||||
// this.moduleHero.Errorf("%v", err)
|
||||
// return
|
||||
// }
|
||||
update1 := make(map[string]interface{})
|
||||
|
||||
update1["sameCount"] = curSameCount
|
||||
update1["isoverlying"] = true
|
||||
newHero = this.CloneNewHero(hero)
|
||||
newHero.EquipID = make([]string, 6)
|
||||
newHero.IsOverlying = true
|
||||
newHero.SameCount = curSameCount
|
||||
update1 := make(map[string]interface{})
|
||||
update["equipID"] = newHero.EquipID
|
||||
update1["sameCount"] = curSameCount
|
||||
update1["isoverlying"] = true
|
||||
|
||||
this.ChangeList(newHero.Uid, newHero.Id, update1)
|
||||
} else {
|
||||
update["equipID"] = hero.EquipID
|
||||
@ -349,10 +348,6 @@ func (this *ModelHero) mergeMainProperty(uid string, hero *pb.DBHero, data map[s
|
||||
|
||||
//合并附加属性
|
||||
func (this *ModelHero) mergeAddProperty(uid string, hero *pb.DBHero, data map[string]int32) {
|
||||
//hero := this.getOneHero(uid, heroId)
|
||||
if hero == nil {
|
||||
return
|
||||
}
|
||||
hero.AddProperty = data
|
||||
|
||||
if err := this.ChangeList(uid, hero.Id, map[string]interface{}{
|
||||
@ -364,36 +359,36 @@ func (this *ModelHero) mergeAddProperty(uid string, hero *pb.DBHero, data map[st
|
||||
|
||||
//属性计算 - 暂时放在modelHero里实现
|
||||
//英雄基础属性 + 英雄等级基础属性 * 英雄成长系数 + 英雄星级对应等级属性 * 英雄品质系数
|
||||
func (this *ModelHero) PropertyCompute(uid string, hero *pb.DBHero) map[string]int32 {
|
||||
func (this *ModelHero) PropertyCompute(uid string, hero *pb.DBHero) {
|
||||
|
||||
//英雄等级基础属性levelup
|
||||
heroLvCfg := this.moduleHero.configure.GetHeroLv(hero.Lv)
|
||||
if heroLvCfg == nil {
|
||||
return nil
|
||||
return
|
||||
}
|
||||
|
||||
//英雄基础配置 newhero
|
||||
heroCfg := this.moduleHero.configure.GetHero(hero.HeroID)
|
||||
if heroCfg == nil {
|
||||
return nil
|
||||
return
|
||||
}
|
||||
|
||||
//品质系数
|
||||
stargrowCfg := this.moduleHero.configure.GetHeroStar(heroCfg.Star)
|
||||
if stargrowCfg == nil {
|
||||
return nil
|
||||
return
|
||||
}
|
||||
|
||||
//英雄星级对应等级属性
|
||||
heroStarCfg := this.moduleHero.configure.GetHeroLv(stargrowCfg.Level)
|
||||
if heroStarCfg == nil {
|
||||
return nil
|
||||
return
|
||||
}
|
||||
|
||||
//成长系数
|
||||
lvGrow := this.moduleHero.configure.GetHeroLvgrow(hero.HeroID)
|
||||
if lvGrow == nil {
|
||||
return nil
|
||||
return
|
||||
}
|
||||
|
||||
curHp := hero.Property[comm.Hp]
|
||||
@ -411,7 +406,7 @@ func (this *ModelHero) PropertyCompute(uid string, hero *pb.DBHero) map[string]i
|
||||
(curDef + lvGrow.Def), heroLvCfg.Def, lvGrow.Defgrow, heroStarCfg.Def, stargrowCfg.StarupDef)
|
||||
def, _ := mengine.ParseAndExec(exprDef)
|
||||
|
||||
return map[string]int32{
|
||||
hero.Property = map[string]int32{
|
||||
comm.Hp: int32(math.Floor(hp)),
|
||||
comm.Atk: int32(math.Floor(atk)),
|
||||
comm.Def: int32(math.Floor(def)),
|
||||
@ -419,18 +414,18 @@ func (this *ModelHero) PropertyCompute(uid string, hero *pb.DBHero) map[string]i
|
||||
}
|
||||
|
||||
//重新计算英雄属性
|
||||
func (this *ModelHero) PushHeroProperty(session comm.IUserSession, hero *pb.DBHero) (m map[string]int32, err error) {
|
||||
m = this.PropertyCompute(session.GetUserId(), hero)
|
||||
func (this *ModelHero) ChangeHeroProperty(session comm.IUserSession, hero *pb.DBHero) (err error) {
|
||||
this.PropertyCompute(session.GetUserId(), hero) //重新计算 property 的值
|
||||
update := map[string]interface{}{
|
||||
"property": m,
|
||||
"property": hero.Property,
|
||||
}
|
||||
|
||||
if err = this.ChangeList(session.GetUserId(), hero.Id, update); err != nil {
|
||||
this.moduleHero.Errorf("PushHeroProperty err:%v", err)
|
||||
this.moduleHero.Errorf("ChangeHeroProperty err:%v", err)
|
||||
return
|
||||
}
|
||||
|
||||
return //session.SendMsg("hero", "property", &pb.HeroPropertyPush{Property: m})
|
||||
return
|
||||
}
|
||||
|
||||
func (this *ModelHero) cleanData(uid string) {
|
||||
@ -441,3 +436,78 @@ func (this *ModelHero) cleanData(uid string) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (this *ModelHero) AddCardExp(uid string, hero *pb.DBHero, exp int32) (newhero *pb.DBHero, code pb.ErrorCode) {
|
||||
var (
|
||||
curExp int32
|
||||
curLv int32
|
||||
update map[string]interface{} // 属性变化
|
||||
)
|
||||
if hero == nil {
|
||||
code = pb.ErrorCode_HeroNoExist
|
||||
return
|
||||
}
|
||||
update = make(map[string]interface{}, 0)
|
||||
curExp = hero.Exp
|
||||
curLv = hero.Lv
|
||||
|
||||
var maxLv int32 // 校验等级达到上限
|
||||
maxLv = hero.Star * comm.HeroStarLvRatio
|
||||
_data := this.moduleHero.configure.GetHeroLv(curLv)
|
||||
if _data != nil {
|
||||
if maxLv <= hero.Lv && curExp >= _data.Heroexp[0].N { // 加经验之前校验是否达到最大等级
|
||||
code = pb.ErrorCode_HeroMaxLv
|
||||
return
|
||||
}
|
||||
curExp += exp // 先把经验加上
|
||||
for { // 死循环判断一键升级
|
||||
if maxLv <= hero.Lv && curExp >= _data.Heroexp[0].N { // 设置最大经验和等级
|
||||
curLv = maxLv
|
||||
curExp = _data.Heroexp[0].N
|
||||
break
|
||||
}
|
||||
if _data.Heroexp[0].N > curExp { // 经验不够升级则不能执行升级操作
|
||||
break
|
||||
} else { // 升级操作
|
||||
curExp -= _data.Heroexp[0].N
|
||||
curLv += 1 // 经验够了 那么等级+1
|
||||
_data = this.moduleHero.configure.GetHeroLv(curLv)
|
||||
if _data == nil { // 等级加失败了 回到原来的等级
|
||||
curLv -= 1
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
curCount := hero.SameCount - 1
|
||||
if curCount != 0 { // 有叠加的情况
|
||||
// 克隆一个英雄
|
||||
newhero = this.CloneNewHero(hero)
|
||||
update := map[string]interface{}{
|
||||
"sameCount": curCount,
|
||||
}
|
||||
newhero.SameCount = curCount
|
||||
if err := this.ChangeList(uid, newhero.Id, update); err != nil {
|
||||
code = pb.ErrorCode_DBError
|
||||
}
|
||||
}
|
||||
|
||||
update["lv"] = curLv
|
||||
update["exp"] = curExp
|
||||
update["isOverlying"] = false
|
||||
update["sameCount"] = 1
|
||||
|
||||
hero.Lv = curLv
|
||||
hero.Exp = curExp
|
||||
hero.IsOverlying = false
|
||||
hero.SameCount = 1
|
||||
|
||||
if err := this.ChangeList(uid, hero.Id, update); err != nil {
|
||||
code = pb.ErrorCode_DBError
|
||||
}
|
||||
} else {
|
||||
code = pb.ErrorCode_HeroNoExist
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
|
@ -102,97 +102,6 @@ func (this *Hero) QueryHeroAmount(uId string, heroCfgId string) (amount uint32)
|
||||
return amount
|
||||
}
|
||||
|
||||
// 给指定英雄加经验
|
||||
func (this *Hero) AddCardExp(uid string, hero *pb.DBHero, exp int32) (newhero *pb.DBHero, code pb.ErrorCode) {
|
||||
var (
|
||||
curExp int32
|
||||
curLv int32
|
||||
err1 error
|
||||
update map[string]interface{} // 属性变化
|
||||
)
|
||||
if hero == nil {
|
||||
code = pb.ErrorCode_HeroNoExist
|
||||
return
|
||||
}
|
||||
update = make(map[string]interface{}, 0)
|
||||
curExp = hero.Exp
|
||||
curLv = hero.Lv
|
||||
|
||||
var maxLv int32 // 校验等级达到上限
|
||||
maxLv = hero.Star * comm.HeroStarLvRatio
|
||||
_data := this.configure.GetHeroLv(curLv)
|
||||
if _data != nil {
|
||||
if maxLv <= hero.Lv && curExp >= _data.Heroexp[0].N { // 加经验之前校验是否达到最大等级
|
||||
code = pb.ErrorCode_HeroMaxLv
|
||||
return
|
||||
}
|
||||
curExp += exp // 先把经验加上
|
||||
for { // 死循环判断一键升级
|
||||
|
||||
if maxLv <= hero.Lv && curExp >= _data.Heroexp[0].N { // 设置最大经验和等级
|
||||
curLv = maxLv
|
||||
curExp = _data.Heroexp[0].N
|
||||
break
|
||||
}
|
||||
if _data.Heroexp[0].N > curExp { // 经验不够升级则不能执行升级操作
|
||||
break
|
||||
} else { // 升级操作
|
||||
curExp -= _data.Heroexp[0].N
|
||||
curLv += 1 // 经验够了 那么等级+1
|
||||
_data = this.configure.GetHeroLv(curLv)
|
||||
if _data == nil { // 等级加失败了 回到原来的等级
|
||||
curLv -= 1
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 检测等级有变化
|
||||
if curLv != hero.Lv {
|
||||
//data := make(map[string]int32, 0)
|
||||
preConfig := this.configure.GetHeroLv(hero.Lv)
|
||||
nowConfig := this.configure.GetHeroLv(curLv)
|
||||
update[comm.Hp] = int32(nowConfig.Hp - preConfig.Hp)
|
||||
update[comm.Atk] = int32(nowConfig.Atk - preConfig.Atk)
|
||||
update[comm.Def] = int32(nowConfig.Def - preConfig.Def)
|
||||
//this.modelHero.mergeMainProperty(uid, hero.Id, data)
|
||||
}
|
||||
|
||||
curCount := hero.SameCount - 1
|
||||
if curCount != 0 { // 有叠加的情况
|
||||
newhero, err1 = this.modelHero.createOneHero(uid, hero.HeroID)
|
||||
if err1 != nil {
|
||||
code = pb.ErrorCode_DBError
|
||||
}
|
||||
update := map[string]interface{}{
|
||||
"sameCount": curCount,
|
||||
}
|
||||
newhero.SameCount = curCount
|
||||
if err := this.modelHero.ChangeList(uid, newhero.Id, update); err != nil {
|
||||
code = pb.ErrorCode_DBError
|
||||
}
|
||||
}
|
||||
|
||||
update["lv"] = curLv
|
||||
update["exp"] = curExp
|
||||
update["isOverlying"] = false
|
||||
update["sameCount"] = 1
|
||||
|
||||
hero.Lv = curLv
|
||||
hero.Exp = curExp
|
||||
hero.IsOverlying = false
|
||||
hero.SameCount = 1
|
||||
|
||||
if err := this.modelHero.ChangeList(uid, hero.Id, update); err != nil {
|
||||
code = pb.ErrorCode_DBError
|
||||
}
|
||||
} else {
|
||||
code = pb.ErrorCode_HeroNoExist
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 删除指定卡牌
|
||||
func (this *Hero) DelCard(udi string, hero *pb.DBHero, amount int32) (code pb.ErrorCode) {
|
||||
var (
|
||||
|
@ -16,7 +16,6 @@ func (this *apiComp) ActiveListCheck(session comm.IUserSession, req *pb.TaskActi
|
||||
}
|
||||
|
||||
func (this *apiComp) ActiveList(session comm.IUserSession, req *pb.TaskActiveListReq) (code pb.ErrorCode, data proto.Message) {
|
||||
// this.moduleTask.ModuleTask.SendToTask(session.GetUserId(), comm.TaskTypeGetHero, &pb.TaskParam{First: 5})
|
||||
if code = this.ActiveListCheck(session, req); code != pb.ErrorCode_Success {
|
||||
return
|
||||
}
|
||||
@ -27,12 +26,11 @@ func (this *apiComp) ActiveList(session comm.IUserSession, req *pb.TaskActiveLis
|
||||
if err != nil {
|
||||
code = pb.ErrorCode_SystemError
|
||||
}
|
||||
// utils.TraceFunc(session.GetUserId(), string(this.moduleTask.GetType()), TaskSubTypeActiveList, req, resp)
|
||||
}()
|
||||
|
||||
resp.Active = this.moduleTask.modelTask.countActive(session.GetUserId(), comm.TaskTag(req.TaskTag))
|
||||
//遍历活跃度奖励表
|
||||
resp.List = this.moduleTask.modelTaskActive.getUserActiveList(session.GetUserId(), comm.TaskTag(req.TaskTag))
|
||||
resp.List = this.moduleTask.modelTaskActive.getActiveListByTag(session.GetUserId(), comm.TaskTag(req.TaskTag))
|
||||
|
||||
return
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ func (this *apiComp) List(session comm.IUserSession, req *pb.TaskListReq) (code
|
||||
// utils.TraceFunc(session.GetUserId(), string(this.moduleTask.GetType()), TaskSubTypeList, req, rsp)
|
||||
}()
|
||||
|
||||
rsp.List = this.moduleTask.modelTask.getTaskList(session.GetUserId(), comm.TaskTag(req.TaskTag))
|
||||
rsp.List = this.moduleTask.modelTask.getTaskListByTag(session.GetUserId(), comm.TaskTag(req.TaskTag))
|
||||
|
||||
return
|
||||
}
|
||||
|
@ -2,7 +2,6 @@ package task
|
||||
|
||||
import (
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/lego/sys/log"
|
||||
"go_dreamfactory/pb"
|
||||
|
||||
"google.golang.org/protobuf/proto"
|
||||
@ -27,7 +26,6 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.TaskReceiveReq)
|
||||
if err != nil {
|
||||
code = pb.ErrorCode_SystemError
|
||||
}
|
||||
// utils.TraceFunc(session.GetUserId(), string(this.moduleTask.GetType()), TaskSubTypeReceive, req, resp)
|
||||
}()
|
||||
userTask := this.moduleTask.modelTask.getUserTask(session.GetUserId(), req.Id)
|
||||
if userTask != nil {
|
||||
@ -41,10 +39,10 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.TaskReceiveReq)
|
||||
code = pb.ErrorCode_TaskReceived
|
||||
return
|
||||
}
|
||||
|
||||
conf, err := this.moduleTask.configure.getTaskById(userTask.TaskId)
|
||||
if err != nil {
|
||||
log.Errorf("get task config err:%v", err)
|
||||
// 待领取的任务配置
|
||||
conf := this.moduleTask.configure.getTaskById(userTask.TaskId)
|
||||
if conf == nil {
|
||||
code = pb.ErrorCode_ConfigNoFound
|
||||
return
|
||||
}
|
||||
|
||||
@ -63,6 +61,9 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.TaskReceiveReq)
|
||||
}
|
||||
|
||||
resp.TaskId = userTask.TaskId
|
||||
|
||||
// 监听玩家经验
|
||||
this.moduleTask.ModuleUser.EventUserChanged(session)
|
||||
}
|
||||
|
||||
return
|
||||
|
@ -2,6 +2,7 @@ package task
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/lego/core"
|
||||
"go_dreamfactory/lego/sys/log"
|
||||
"go_dreamfactory/modules"
|
||||
@ -62,11 +63,11 @@ func (this *configureComp) getTaskRoundCfg() (data *cfg.Game_taskRound, err erro
|
||||
}
|
||||
|
||||
//根据taskId获取配置
|
||||
func (this *configureComp) getTaskById(taskId int32) (data *cfg.Game_taskRoundData, err error) {
|
||||
func (this *configureComp) getTaskById(taskId int32) (data *cfg.Game_taskRoundData) {
|
||||
cfg, err := this.getTaskRoundCfg()
|
||||
if err != nil {
|
||||
log.Errorf("%v", err)
|
||||
return data, err
|
||||
return nil
|
||||
}
|
||||
if cfg != nil {
|
||||
data = cfg.GetDataMap()[taskId]
|
||||
@ -74,6 +75,28 @@ func (this *configureComp) getTaskById(taskId int32) (data *cfg.Game_taskRoundDa
|
||||
return
|
||||
}
|
||||
|
||||
//是否第一个成就任务
|
||||
func (this *configureComp) isFirstTask(taskId int32) bool {
|
||||
data := this.getTaskByTag(int32(comm.TASK_ACHIEVE))
|
||||
for _, v := range data {
|
||||
if v.IdAfter == taskId {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
// 上一个任务
|
||||
func (this *configureComp) getPreTask(preTaskId int32) *cfg.Game_taskRoundData {
|
||||
data := this.getTaskByTag(int32(comm.TASK_ACHIEVE))
|
||||
for _, v := range data {
|
||||
if v.IdAfter == preTaskId {
|
||||
return v
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
//获取任务配置列表
|
||||
func (this *configureComp) getTaskList() (data []*cfg.Game_taskRoundData, err error) {
|
||||
cfg, err := this.getTaskRoundCfg()
|
||||
@ -116,11 +139,11 @@ func (this *configureComp) getSortedTasks(taskType int32) (data []*cfg.Game_task
|
||||
}
|
||||
|
||||
//获取任务配置 条件 tasktag
|
||||
func (this *configureComp) getTaskByTag(taskTag int32) (data []*cfg.Game_taskRoundData, err error) {
|
||||
func (this *configureComp) getTaskByTag(taskTag int32) (data []*cfg.Game_taskRoundData) {
|
||||
list, err := this.getTaskList()
|
||||
if err != nil {
|
||||
log.Errorf("%v", err)
|
||||
return data, err
|
||||
return data
|
||||
}
|
||||
for _, d := range list {
|
||||
if d.IdTag == taskTag {
|
||||
|
@ -46,8 +46,16 @@ func (this *ModelTaskActive) initActiveReward(uid string) {
|
||||
}
|
||||
}
|
||||
|
||||
func (this *ModelTaskActive) getActiveList(uid string) (list []*pb.DBTaskActive) {
|
||||
if err := this.GetList(uid, &list); err != nil {
|
||||
log.Errorf("getActiveList err:%v", err)
|
||||
return list
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
//获取玩家活跃度列表
|
||||
func (this *ModelTaskActive) getUserActiveList(uid string, taskTag comm.TaskTag) (list []*pb.DBTaskActive) {
|
||||
func (this *ModelTaskActive) getActiveListByTag(uid string, taskTag comm.TaskTag) (list []*pb.DBTaskActive) {
|
||||
al := []*pb.DBTaskActive{}
|
||||
if err := this.GetList(uid, &al); err != nil {
|
||||
log.Errorf("getUserActiveList err:%v", err)
|
||||
@ -65,7 +73,7 @@ func (this *ModelTaskActive) getUserActiveList(uid string, taskTag comm.TaskTag)
|
||||
|
||||
//获取玩家活跃记录 id 唯一ID
|
||||
func (this *ModelTaskActive) getUserActive(uid, id string, taskTag comm.TaskTag) *pb.DBTaskActive {
|
||||
record := this.getUserActiveList(uid, taskTag)
|
||||
record := this.getActiveListByTag(uid, taskTag)
|
||||
for _, v := range record {
|
||||
if v.Id == id {
|
||||
return v
|
||||
@ -112,14 +120,16 @@ func (this *ModelTaskActive) receiveHandle(uid, id string, conf *cfg.Game_active
|
||||
}
|
||||
|
||||
//清空任务
|
||||
func (this *ModelTaskActive) clearTask(uid string, taskTag comm.TaskTag) error {
|
||||
data := this.getUserActiveList(uid, taskTag)
|
||||
func (this *ModelTaskActive) clearTask(uid string, taskTag ...comm.TaskTag) {
|
||||
if len(taskTag) == 0 {
|
||||
log.Errorf("least one param for taskTag")
|
||||
return
|
||||
}
|
||||
data := this.getActiveListByTag(uid, taskTag[0])
|
||||
for _, v := range data {
|
||||
if err := this.moduleTask.modelTaskActive.DelListlds(uid, v.Id); err != nil {
|
||||
log.Errorf("uid: %v taskTag:%v err:%v", uid, taskTag, err)
|
||||
return err
|
||||
log.Errorf("uid: %v err:%v", uid, err)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
@ -6,6 +6,7 @@ import (
|
||||
"go_dreamfactory/lego/sys/log"
|
||||
"go_dreamfactory/modules"
|
||||
"go_dreamfactory/pb"
|
||||
"sort"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
)
|
||||
@ -26,19 +27,79 @@ func (this *ModelTask) Init(service core.IService, module core.IModule, comp cor
|
||||
return
|
||||
}
|
||||
|
||||
// 玩家的所有任务列表
|
||||
func (this *ModelTask) getTaskList(uid string) (list []*pb.DBTask) {
|
||||
if err := this.GetList(uid, &list); err != nil {
|
||||
log.Errorf("getTaskList err %v", err)
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
//获取玩家任务列表
|
||||
func (this *ModelTask) getTaskList(uid string, taskTag comm.TaskTag) (newlist []*pb.DBTask) {
|
||||
func (this *ModelTask) getTaskListByTag(uid string, taskTag comm.TaskTag) (newlist []*pb.DBTask) {
|
||||
list := []*pb.DBTask{}
|
||||
if err := this.GetList(uid, &list); err != nil {
|
||||
log.Errorf("getTaskList err %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
sort.SliceStable(list, func(i, j int) bool {
|
||||
return list[i].Sort < list[j].Sort
|
||||
})
|
||||
|
||||
var taskList []*pb.DBTask
|
||||
for _, v := range list {
|
||||
if v.Tag == int32(taskTag) {
|
||||
newlist = append(newlist, v)
|
||||
taskList = append(taskList, v)
|
||||
}
|
||||
}
|
||||
|
||||
// 当前玩家任务
|
||||
getCurTask := func(taskId int32) *pb.DBTask {
|
||||
for _, v := range list {
|
||||
if v.TaskId == taskId {
|
||||
return v
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
if taskTag == comm.TASK_ACHIEVE {
|
||||
for _, v := range taskList {
|
||||
if curTask := this.moduleTask.configure.getTaskById(v.TaskId); curTask != nil {
|
||||
if v.Received == 0 && curTask.IdAfter == 0 && this.moduleTask.configure.isFirstTask(curTask.Key) { //未领取和没有下个连续任务的
|
||||
newlist = append(newlist, v)
|
||||
} else if this.moduleTask.configure.isFirstTask(curTask.Key) && curTask.IdAfter != 0 { //连续任务的第一个任务
|
||||
next := this.moduleTask.configure.getTaskById(curTask.IdAfter)
|
||||
if next != nil && v.Received == 0 {
|
||||
newlist = append(newlist, v)
|
||||
}
|
||||
} else if !this.moduleTask.configure.isFirstTask(curTask.Key) && curTask.IdAfter == 0 { //连续任务的最后一个任务
|
||||
// 上个任务
|
||||
if preCnf := this.moduleTask.configure.getPreTask(curTask.Key); preCnf != nil {
|
||||
if preTask := getCurTask(preCnf.Key); preTask != nil {
|
||||
if preTask.Received == 1 { //判断上个任务领取了才显示最后一个任务
|
||||
newlist = append(newlist, v)
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if preCnf := this.moduleTask.configure.getPreTask(curTask.Key); preCnf != nil {
|
||||
if preTask := getCurTask(preCnf.Key); preTask != nil {
|
||||
if preTask.Received == 1 { //判断上个任务领取了才显示最后一个任务
|
||||
newlist = append(newlist, v)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
} else {
|
||||
newlist = taskList
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@ -46,7 +107,7 @@ func (this *ModelTask) getTaskList(uid string, taskTag comm.TaskTag) (newlist []
|
||||
func (this *ModelTask) getTaskById(uid string, taskId int32) (newlist []*pb.DBTask) {
|
||||
list := []*pb.DBTask{}
|
||||
if err := this.GetList(uid, &list); err != nil {
|
||||
log.Errorf("getTaskList err %v", err)
|
||||
log.Errorf("getTaskById err %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
@ -71,6 +132,7 @@ func (this *ModelTask) initTask(uid string) error {
|
||||
TaskId: cnf.Key,
|
||||
Active: cnf.Active,
|
||||
Progress: cnf.ConditionSecond,
|
||||
Sort: cnf.IdList,
|
||||
}
|
||||
if err := this.AddList(uid, task.Id, task); err != nil {
|
||||
log.Errorf("initTask addlists err %v", err)
|
||||
@ -104,7 +166,7 @@ func (this *ModelTask) getUnFinishTasks(uid string, taskId int32) (list []*pb.DB
|
||||
|
||||
//活跃度统计
|
||||
func (this *ModelTask) countActive(uid string, taskTag comm.TaskTag) (total int32) {
|
||||
taskList := this.getTaskList(uid, taskTag)
|
||||
taskList := this.getTaskListByTag(uid, taskTag)
|
||||
for _, v := range taskList {
|
||||
if v.Status == 1 {
|
||||
total += v.Active
|
||||
@ -134,28 +196,27 @@ func (this *ModelTask) modifyUserTask(uid string, taskId string, data map[string
|
||||
}
|
||||
|
||||
//清空任务
|
||||
func (this *ModelTask) clearTask(uid string, taskTag comm.TaskTag) error {
|
||||
taskList := this.getTaskList(uid, taskTag)
|
||||
func (this *ModelTask) clearTask(uid string, taskTag ...comm.TaskTag) {
|
||||
if len(taskTag) == 0 {
|
||||
log.Errorf("least one param for taskTag")
|
||||
return
|
||||
}
|
||||
taskList := this.getTaskListByTag(uid, taskTag[0])
|
||||
for _, v := range taskList {
|
||||
if err := this.moduleTask.modelTask.DelListlds(uid, v.Id); err != nil {
|
||||
log.Errorf("uid: %v taskTag:%v err:%v", uid, taskTag, err)
|
||||
return err
|
||||
log.Errorf("uid: %v err:%v", uid, err)
|
||||
return
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
//进入卡牌攻略
|
||||
func (this *ModelTask) inStrategy(uid string, heroCfgId int32) (taskIds []int32, err error) {
|
||||
//检查此英雄攻略是否完成
|
||||
taskList := this.getTaskList(uid, comm.TASK_STRATEGY)
|
||||
taskList := this.getTaskListByTag(uid, comm.TASK_STRATEGY)
|
||||
allFinished := true
|
||||
for _, v := range taskList {
|
||||
conf, err := this.moduleTask.configure.getTaskById(v.TaskId)
|
||||
if err != nil {
|
||||
this.moduleTask.Errorf("get task[%v] config err %v", v.TaskId, err)
|
||||
return nil, err
|
||||
}
|
||||
conf := this.moduleTask.configure.getTaskById(v.TaskId)
|
||||
if conf != nil {
|
||||
if conf.RestrictiveCondition == heroCfgId && v.Status != 1 {
|
||||
allFinished = false
|
||||
@ -197,13 +258,13 @@ func (this *ModelTask) UpHeroStar(uid string, taskId int32, tp *pb.TaskParam) *p
|
||||
func (this *ModelTask) UpHeroLevel(uid string, taskId int32, tp *pb.TaskParam) *pb.DBTask {
|
||||
if task, ok := this.checkTask(uid, taskId); ok {
|
||||
var progress int32
|
||||
// 任务完成
|
||||
if tp.Second >= task.Progress {
|
||||
progress = 0
|
||||
//修改玩家任务状态和进度
|
||||
update := map[string]interface{}{
|
||||
"progress": progress,
|
||||
"status": 1,
|
||||
}
|
||||
update["status"] = 1
|
||||
if err := this.modifyUserTask(task.Uid, task.Id, update); err != nil {
|
||||
log.Errorf("err %v", err)
|
||||
return nil
|
||||
@ -212,6 +273,7 @@ func (this *ModelTask) UpHeroLevel(uid string, taskId int32, tp *pb.TaskParam) *
|
||||
task.Status = 1
|
||||
return task
|
||||
} else {
|
||||
// 任务未完成
|
||||
progress = task.Progress - tp.Second
|
||||
if progress <= 0 {
|
||||
progress = 0
|
||||
|
@ -57,17 +57,9 @@ func (this *ModuleTask) InitTaskAll(uid string) {
|
||||
|
||||
//重置任务
|
||||
func (this *ModuleTask) ResetTask(uid string, taskTag comm.TaskTag) {
|
||||
if err := this.modelTask.clearTask(uid, taskTag); err != nil {
|
||||
log.Errorf("uid:%v tag:%v ResetTask err:%v", uid, taskTag, err)
|
||||
return
|
||||
}
|
||||
this.modelTask.clearTask(uid, taskTag)
|
||||
this.modelTaskActive.clearTask(uid, taskTag)
|
||||
this.InitTaskAll(uid)
|
||||
|
||||
if err := this.modelTaskActive.clearTask(uid, taskTag); err != nil {
|
||||
log.Errorf("uid:%v tag:%v ResetTaskActive err:%v", uid, taskTag, err)
|
||||
return
|
||||
}
|
||||
// this.modelTaskActive.initActiveRewardByTag(uid, taskTag)
|
||||
}
|
||||
|
||||
//任务处理
|
||||
@ -96,13 +88,8 @@ func (this *ModuleTask) CreateTaskForStrategy(uid string, heroCfgId int32) {
|
||||
|
||||
// 清理任务数据
|
||||
func (this *ModuleTask) CleanData(uid string) {
|
||||
this.modelTask.clearTask(uid, comm.TASK_DAILY)
|
||||
this.modelTask.clearTask(uid, comm.TASK_WEEKLY)
|
||||
this.modelTask.clearTask(uid, comm.TASK_ACHIEVE)
|
||||
this.modelTask.clearTask(uid, comm.TASK_STRATEGY)
|
||||
|
||||
this.modelTaskActive.clearTask(uid, comm.TASK_DAILY)
|
||||
this.modelTaskActive.clearTask(uid, comm.TASK_WEEKLY)
|
||||
this.modelTask.clearTask(uid)
|
||||
this.modelTaskActive.clearTask(uid)
|
||||
}
|
||||
|
||||
//任务处理器注册
|
||||
@ -125,7 +112,7 @@ func (this *ModuleTask) initTaskHandle() {
|
||||
case int32(comm.TaskTypeUpHeroLevel):
|
||||
this.register(comm.TaskTypeUpHeroLevel, this.modelTask.UpHeroLevel)
|
||||
default:
|
||||
log.Errorf("%v task type not supported", v.TypeId)
|
||||
log.Warnf("%v task type not supported", v.TypeId)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -18,6 +18,9 @@ const (
|
||||
UserSubTypeVeriCode = "vericode" //验证码
|
||||
UserSubTypeInitData = "initdata" //初始化用户
|
||||
UserGetTujianResp = "gettujian" //获取图鉴信息
|
||||
UserSubTypeLvChangedPush = "lvChangedPush" //等级变化推送
|
||||
UserSubTypeModifyName = "modifyname" //修改名称
|
||||
UserSubTypeFigure = "figure" //形象
|
||||
)
|
||||
|
||||
type apiComp struct {
|
||||
|
94
modules/user/api_figure.go
Normal file
94
modules/user/api_figure.go
Normal file
@ -0,0 +1,94 @@
|
||||
package user
|
||||
|
||||
import (
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/pb"
|
||||
"go_dreamfactory/utils"
|
||||
|
||||
"google.golang.org/protobuf/proto"
|
||||
)
|
||||
|
||||
// 主角形象设置
|
||||
|
||||
func (this *apiComp) FigureCheck(session comm.IUserSession, req *pb.UserFigureReq) (code pb.ErrorCode) {
|
||||
if req.Preinstall < 1 || req.Preinstall > 5 || req.Action < 0 ||
|
||||
req.Hair == nil || req.Eyes == nil || req.Mouth == nil || req.Body == nil || req.Complexion == nil {
|
||||
code = pb.ErrorCode_ReqParameterError
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (this *apiComp) Figure(session comm.IUserSession, req *pb.UserFigureReq) (code pb.ErrorCode, data proto.Message) {
|
||||
if code = this.FigureCheck(session, req); code != pb.ErrorCode_Success {
|
||||
return
|
||||
}
|
||||
|
||||
expand, err := this.module.modelUser.GetUserExpand(session.GetUserId())
|
||||
if err != nil {
|
||||
code = pb.ErrorCode_DBError
|
||||
return
|
||||
}
|
||||
|
||||
//当前形象
|
||||
var curFigure *pb.Figure
|
||||
if v, ok := expand.Preinstall[req.Preinstall]; ok {
|
||||
curFigure = v
|
||||
} else {
|
||||
//TODO 设置默认形象
|
||||
curFigure = &pb.Figure{}
|
||||
return
|
||||
}
|
||||
|
||||
rsp := &pb.UserFigureResp{
|
||||
Uid: session.GetUserId(),
|
||||
Action: req.Action,
|
||||
}
|
||||
|
||||
if req.Action == 0 {
|
||||
//直接返回预设形象
|
||||
rsp.Figure = curFigure
|
||||
} else {
|
||||
update := make(map[string]interface{})
|
||||
switch req.Action {
|
||||
// 头发
|
||||
case 1:
|
||||
if req.Hair != nil {
|
||||
curFigure.Hair = req.Hair
|
||||
}
|
||||
// 眼睛
|
||||
case 2:
|
||||
if req.Eyes != nil {
|
||||
curFigure.Eyes = req.Eyes
|
||||
}
|
||||
// 嘴巴
|
||||
case 3:
|
||||
if req.Mouth != nil {
|
||||
curFigure.Mouth = req.Mouth
|
||||
}
|
||||
// 体型
|
||||
case 4:
|
||||
if req.Body != nil {
|
||||
curFigure.Body = req.Body
|
||||
}
|
||||
// 肤色
|
||||
case 5:
|
||||
if req.Complexion != nil {
|
||||
curFigure.Complexion = req.Complexion
|
||||
}
|
||||
default:
|
||||
code = pb.ErrorCode_ReqParameterError
|
||||
return
|
||||
}
|
||||
|
||||
update = utils.StructToMap(curFigure)
|
||||
|
||||
this.module.modelUser.ChanageUserExpand(session.GetUserId(), update)
|
||||
}
|
||||
|
||||
if err := session.SendMsg(string(this.module.GetType()), UserSubTypeFigure, rsp); err != nil {
|
||||
code = pb.ErrorCode_SystemError
|
||||
return
|
||||
}
|
||||
|
||||
return
|
||||
}
|
@ -20,7 +20,9 @@ func (this *apiComp) Initdata(session comm.IUserSession, req *pb.UserInitdataReq
|
||||
return
|
||||
}
|
||||
|
||||
rsp := &pb.UserInitdataResp{}
|
||||
rsp := &pb.UserInitdataResp{
|
||||
Uid: session.GetUserId(),
|
||||
}
|
||||
|
||||
defer func() {
|
||||
if err := session.SendMsg(string(this.module.GetType()), UserSubTypeInitData, rsp); err != nil {
|
||||
|
@ -4,12 +4,13 @@ import (
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/pb"
|
||||
cfg "go_dreamfactory/sys/configure/structs"
|
||||
"strings"
|
||||
|
||||
"google.golang.org/protobuf/proto"
|
||||
)
|
||||
|
||||
func (this *apiComp) ModifynameCheck(session comm.IUserSession, req *pb.UserModifynameReq) (code pb.ErrorCode) {
|
||||
if req.Name == "" || len(req.Name) > 6 {
|
||||
if strings.TrimSpace(req.Name) == "" || len(strings.TrimSpace(req.Name)) > 6 {
|
||||
code = pb.ErrorCode_ReqParameterError
|
||||
}
|
||||
return
|
||||
@ -20,13 +21,14 @@ func (this *apiComp) Modifyname(session comm.IUserSession, req *pb.UserModifynam
|
||||
return
|
||||
}
|
||||
|
||||
name := strings.TrimSpace(req.Name)
|
||||
//验证名称
|
||||
if this.module.modelUser.NickNameIsExist(req.Name) {
|
||||
if !this.module.modelUser.NickNameIsExist(name) {
|
||||
code = pb.ErrorCode_NameExist
|
||||
return
|
||||
}
|
||||
|
||||
expand, err := this.module.modelUser.GetUserExpand(session.GetSessionId())
|
||||
expand, err := this.module.modelUser.GetUserExpand(session.GetUserId())
|
||||
if err != nil {
|
||||
code = pb.ErrorCode_DBError
|
||||
return
|
||||
@ -56,7 +58,7 @@ func (this *apiComp) Modifyname(session comm.IUserSession, req *pb.UserModifynam
|
||||
}
|
||||
|
||||
// 修改名称
|
||||
if code = this.module.modelUser.modifyName(session.GetUserId(), req.Name); code != pb.ErrorCode_Success {
|
||||
if code = this.module.modelUser.modifyName(session.GetUserId(), name); code != pb.ErrorCode_Success {
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,9 @@ package user
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/lego/core"
|
||||
event_v2 "go_dreamfactory/lego/sys/event/v2"
|
||||
"go_dreamfactory/lego/sys/log"
|
||||
"go_dreamfactory/modules"
|
||||
"go_dreamfactory/pb"
|
||||
@ -21,11 +23,17 @@ const ( //Redis
|
||||
|
||||
type ModelUser struct {
|
||||
modules.MCompModel
|
||||
moduleUser *User
|
||||
eventApp *event_v2.App
|
||||
}
|
||||
|
||||
func (this *ModelUser) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
|
||||
err = this.MCompModel.Init(service, module, comp, options)
|
||||
this.TableName = string(TableUser)
|
||||
this.moduleUser = module.(*User)
|
||||
this.eventApp = event_v2.NewApp()
|
||||
this.eventApp.Listen(comm.EventUserChanged, this.ChangeExp)
|
||||
this.eventApp.Listen(comm.EventUserChanged, this.ChangeLevel)
|
||||
return
|
||||
}
|
||||
|
||||
@ -125,7 +133,64 @@ func (this *ModelUser) modifyName(uid string, newName string) (code pb.ErrorCode
|
||||
return
|
||||
}
|
||||
|
||||
//
|
||||
func(this *ModelUser) UpLevel(){
|
||||
// 初始化玩家形象
|
||||
func (this *ModelUser) InitFigure(uid string) {
|
||||
figureMap := make(map[int32]interface{})
|
||||
for _, v := range this.moduleUser.configure.GetPlayerFigureConf() {
|
||||
|
||||
figure := &pb.Figure{
|
||||
Hair: &pb.Hair{Color: v.Figure[0].Color},
|
||||
Eyes: &pb.Eyes{Color: v.Figure[0].Color},
|
||||
Mouth: &pb.Mouth{},
|
||||
Body: &pb.Body{},
|
||||
Complexion: &pb.Complexion{},
|
||||
}
|
||||
|
||||
figureMap[v.Id] = figure
|
||||
}
|
||||
|
||||
update := map[string]interface{}{
|
||||
"preinstall": figureMap,
|
||||
}
|
||||
this.ChanageUserExpand(uid, update)
|
||||
}
|
||||
|
||||
// change exp
|
||||
func (this *ModelUser) ChangeExp(event interface{}, next func(event interface{})) {
|
||||
ul := event.(*UserListen)
|
||||
// TODO
|
||||
next(ul)
|
||||
}
|
||||
|
||||
//change level
|
||||
func (this *ModelUser) ChangeLevel(event interface{}, next func(event interface{})) {
|
||||
ul := event.(*UserListen)
|
||||
curLv := ul.lv
|
||||
curLvConf := this.moduleUser.configure.GetPlayerlvConf(curLv)
|
||||
nextLvConf := this.moduleUser.configure.GetPlayerlvConf(curLv + 1)
|
||||
if curLvConf.Exp == 0 || nextLvConf == nil { //最大等级
|
||||
next(ul)
|
||||
return
|
||||
}
|
||||
|
||||
if ul.exp > curLvConf.Exp && ul.exp <= nextLvConf.Exp {
|
||||
ul.lv++
|
||||
// 更新等级
|
||||
update := map[string]interface{}{
|
||||
"lv": ul.lv,
|
||||
}
|
||||
this.moduleUser.modelUser.Change(ul.session.GetUserId(), update)
|
||||
ul.session.SendMsg(string(this.moduleUser.GetType()),
|
||||
UserSubTypeLvChangedPush,
|
||||
&pb.UserChangedPush{Uid: ul.session.GetUserId(), Exp: ul.exp, Lv: ul.lv})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//玩家信息监听
|
||||
type UserListen struct {
|
||||
event_v2.Event
|
||||
session comm.IUserSession
|
||||
exp int32
|
||||
lv int32
|
||||
}
|
||||
|
@ -172,3 +172,14 @@ func (this *User) GetUserRecordData(uid string, typeValue int32, parmare int32)
|
||||
//pb.DBUserRecord
|
||||
return
|
||||
}
|
||||
|
||||
func (this *User) EventUserChanged(session comm.IUserSession) {
|
||||
ul := new(UserListen)
|
||||
user := this.GetUser(session.GetUserId())
|
||||
if user != nil {
|
||||
ul.session = session
|
||||
ul.exp = user.Exp
|
||||
ul.lv = user.Lv
|
||||
}
|
||||
this.modelUser.eventApp.Dispatch(comm.EventUserChanged, ul)
|
||||
}
|
||||
|
@ -34,6 +34,7 @@ type DBTask struct {
|
||||
Status int32 `protobuf:"varint,7,opt,name=status,proto3" json:"status" bson:"status"` // 任务状态 默认0未完成 1已完成
|
||||
Received int32 `protobuf:"varint,8,opt,name=received,proto3" json:"received" bson:"received"` //领取状态 默认0未领取 1已领取
|
||||
TypeId int32 `protobuf:"varint,9,opt,name=typeId,proto3" json:"typeId" bson:"typeId"`
|
||||
Sort int32 `protobuf:"varint,10,opt,name=sort,proto3" json:"sort" bson:"sort"`
|
||||
}
|
||||
|
||||
func (x *DBTask) Reset() {
|
||||
@ -131,6 +132,13 @@ func (x *DBTask) GetTypeId() int32 {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *DBTask) GetSort() int32 {
|
||||
if x != nil {
|
||||
return x.Sort
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
type DBTaskActive struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@ -214,7 +222,7 @@ var File_task_task_db_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_task_task_db_proto_rawDesc = []byte{
|
||||
0x0a, 0x12, 0x74, 0x61, 0x73, 0x6b, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x64, 0x62, 0x2e, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd4, 0x01, 0x0a, 0x06, 0x44, 0x42, 0x54, 0x61, 0x73, 0x6b, 0x12,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe8, 0x01, 0x0a, 0x06, 0x44, 0x42, 0x54, 0x61, 0x73, 0x6b, 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, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69,
|
||||
0x64, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
|
||||
@ -227,15 +235,17 @@ var file_task_task_db_proto_rawDesc = []byte{
|
||||
0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69,
|
||||
0x76, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69,
|
||||
0x76, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x09, 0x20,
|
||||
0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x79, 0x70, 0x65, 0x49, 0x64, 0x22, 0x70, 0x0a, 0x0c, 0x44,
|
||||
0x42, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 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, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a,
|
||||
0x03, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x72, 0x49, 0x64, 0x12,
|
||||
0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x74, 0x61,
|
||||
0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20,
|
||||
0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x06, 0x5a,
|
||||
0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73,
|
||||
0x6f, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x22,
|
||||
0x70, 0x0a, 0x0c, 0x44, 0x42, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 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, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69,
|
||||
0x64, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03,
|
||||
0x72, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
|
||||
0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65,
|
||||
0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65,
|
||||
0x64, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||
0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
@ -774,6 +774,8 @@ type UserUpdateSettingResp struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"`
|
||||
}
|
||||
|
||||
func (x *UserUpdateSettingResp) Reset() {
|
||||
@ -808,6 +810,13 @@ func (*UserUpdateSettingResp) Descriptor() ([]byte, []int) {
|
||||
return file_user_user_msg_proto_rawDescGZIP(), []int{15}
|
||||
}
|
||||
|
||||
func (x *UserUpdateSettingResp) GetUid() string {
|
||||
if x != nil {
|
||||
return x.Uid
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// 初始化验证码
|
||||
type UserVeriCodeReq struct {
|
||||
state protoimpl.MessageState
|
||||
@ -946,6 +955,8 @@ type UserInitdataResp struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"`
|
||||
}
|
||||
|
||||
func (x *UserInitdataResp) Reset() {
|
||||
@ -980,6 +991,13 @@ func (*UserInitdataResp) Descriptor() ([]byte, []int) {
|
||||
return file_user_user_msg_proto_rawDescGZIP(), []int{19}
|
||||
}
|
||||
|
||||
func (x *UserInitdataResp) GetUid() string {
|
||||
if x != nil {
|
||||
return x.Uid
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
//修改玩家名字
|
||||
type UserModifynameReq struct {
|
||||
state protoimpl.MessageState
|
||||
@ -1083,6 +1101,7 @@ func (x *UserModifynameResp) GetCount() uint32 {
|
||||
return 0
|
||||
}
|
||||
|
||||
// 图鉴
|
||||
type UserGetTujianReq struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@ -1168,6 +1187,229 @@ func (x *UserGetTujianResp) GetHeroids() []string {
|
||||
return nil
|
||||
}
|
||||
|
||||
//玩家等级经验变化推送
|
||||
type UserChangedPush struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"`
|
||||
Exp int32 `protobuf:"varint,2,opt,name=exp,proto3" json:"exp"`
|
||||
Lv int32 `protobuf:"varint,3,opt,name=lv,proto3" json:"lv"`
|
||||
}
|
||||
|
||||
func (x *UserChangedPush) Reset() {
|
||||
*x = UserChangedPush{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_user_user_msg_proto_msgTypes[24]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *UserChangedPush) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*UserChangedPush) ProtoMessage() {}
|
||||
|
||||
func (x *UserChangedPush) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_user_user_msg_proto_msgTypes[24]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use UserChangedPush.ProtoReflect.Descriptor instead.
|
||||
func (*UserChangedPush) Descriptor() ([]byte, []int) {
|
||||
return file_user_user_msg_proto_rawDescGZIP(), []int{24}
|
||||
}
|
||||
|
||||
func (x *UserChangedPush) GetUid() string {
|
||||
if x != nil {
|
||||
return x.Uid
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *UserChangedPush) GetExp() int32 {
|
||||
if x != nil {
|
||||
return x.Exp
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *UserChangedPush) GetLv() int32 {
|
||||
if x != nil {
|
||||
return x.Lv
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
//主角形象
|
||||
type UserFigureReq struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Preinstall int32 `protobuf:"varint,1,opt,name=preinstall,proto3" json:"preinstall"` //预设编号 1-5
|
||||
Action int32 `protobuf:"varint,2,opt,name=action,proto3" json:"action"` //部位 1-5 0不修改任何数据
|
||||
Hair *Hair `protobuf:"bytes,3,opt,name=hair,proto3" json:"hair"` //部位 1
|
||||
Eyes *Eyes `protobuf:"bytes,4,opt,name=eyes,proto3" json:"eyes"` //部位 2
|
||||
Mouth *Mouth `protobuf:"bytes,5,opt,name=mouth,proto3" json:"mouth"` //部位 3
|
||||
Body *Body `protobuf:"bytes,6,opt,name=body,proto3" json:"body"` //部位 4
|
||||
Complexion *Complexion `protobuf:"bytes,7,opt,name=complexion,proto3" json:"complexion"` //部位 5
|
||||
}
|
||||
|
||||
func (x *UserFigureReq) Reset() {
|
||||
*x = UserFigureReq{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_user_user_msg_proto_msgTypes[25]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *UserFigureReq) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*UserFigureReq) ProtoMessage() {}
|
||||
|
||||
func (x *UserFigureReq) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_user_user_msg_proto_msgTypes[25]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use UserFigureReq.ProtoReflect.Descriptor instead.
|
||||
func (*UserFigureReq) Descriptor() ([]byte, []int) {
|
||||
return file_user_user_msg_proto_rawDescGZIP(), []int{25}
|
||||
}
|
||||
|
||||
func (x *UserFigureReq) GetPreinstall() int32 {
|
||||
if x != nil {
|
||||
return x.Preinstall
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *UserFigureReq) GetAction() int32 {
|
||||
if x != nil {
|
||||
return x.Action
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *UserFigureReq) GetHair() *Hair {
|
||||
if x != nil {
|
||||
return x.Hair
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *UserFigureReq) GetEyes() *Eyes {
|
||||
if x != nil {
|
||||
return x.Eyes
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *UserFigureReq) GetMouth() *Mouth {
|
||||
if x != nil {
|
||||
return x.Mouth
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *UserFigureReq) GetBody() *Body {
|
||||
if x != nil {
|
||||
return x.Body
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *UserFigureReq) GetComplexion() *Complexion {
|
||||
if x != nil {
|
||||
return x.Complexion
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type UserFigureResp struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"`
|
||||
Action int32 `protobuf:"varint,2,opt,name=action,proto3" json:"action"` //部位
|
||||
Figure *Figure `protobuf:"bytes,3,opt,name=figure,proto3" json:"figure"`
|
||||
}
|
||||
|
||||
func (x *UserFigureResp) Reset() {
|
||||
*x = UserFigureResp{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_user_user_msg_proto_msgTypes[26]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *UserFigureResp) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*UserFigureResp) ProtoMessage() {}
|
||||
|
||||
func (x *UserFigureResp) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_user_user_msg_proto_msgTypes[26]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use UserFigureResp.ProtoReflect.Descriptor instead.
|
||||
func (*UserFigureResp) Descriptor() ([]byte, []int) {
|
||||
return file_user_user_msg_proto_rawDescGZIP(), []int{26}
|
||||
}
|
||||
|
||||
func (x *UserFigureResp) GetUid() string {
|
||||
if x != nil {
|
||||
return x.Uid
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *UserFigureResp) GetAction() int32 {
|
||||
if x != nil {
|
||||
return x.Action
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *UserFigureResp) GetFigure() *Figure {
|
||||
if x != nil {
|
||||
return x.Figure
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
var File_user_user_msg_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_user_user_msg_proto_rawDesc = []byte{
|
||||
@ -1227,27 +1469,54 @@ var file_user_user_msg_proto_rawDesc = []byte{
|
||||
0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a,
|
||||
0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e,
|
||||
0x2e, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x07,
|
||||
0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x17, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x55,
|
||||
0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x29, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x55,
|
||||
0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70,
|
||||
0x22, 0x11, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x56, 0x65, 0x72, 0x69, 0x43, 0x6f, 0x64, 0x65,
|
||||
0x52, 0x65, 0x71, 0x22, 0x26, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x56, 0x65, 0x72, 0x69, 0x43,
|
||||
0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x55,
|
||||
0x73, 0x65, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x12, 0x12,
|
||||
0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f,
|
||||
0x64, 0x65, 0x22, 0x12, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x64, 0x61,
|
||||
0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x22, 0x27, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f,
|
||||
0x64, 0x69, 0x66, 0x79, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x6e,
|
||||
0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22,
|
||||
0x3c, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x6e, 0x61, 0x6d,
|
||||
0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x12, 0x0a,
|
||||
0x10, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x52, 0x65,
|
||||
0x71, 0x22, 0x2d, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x54, 0x75, 0x6a, 0x69,
|
||||
0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64,
|
||||
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x73,
|
||||
0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75,
|
||||
0x69, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x56, 0x65, 0x72, 0x69, 0x43, 0x6f,
|
||||
0x64, 0x65, 0x52, 0x65, 0x71, 0x22, 0x26, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x56, 0x65, 0x72,
|
||||
0x69, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64,
|
||||
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x25, 0x0a,
|
||||
0x0f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71,
|
||||
0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
|
||||
0x63, 0x6f, 0x64, 0x65, 0x22, 0x24, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x69, 0x74,
|
||||
0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x27, 0x0a, 0x11, 0x55, 0x73,
|
||||
0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12,
|
||||
0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
|
||||
0x61, 0x6d, 0x65, 0x22, 0x3c, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x69, 0x66,
|
||||
0x79, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63,
|
||||
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e,
|
||||
0x74, 0x22, 0x12, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74, 0x54, 0x75, 0x6a, 0x69,
|
||||
0x61, 0x6e, 0x52, 0x65, 0x71, 0x22, 0x2d, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x47, 0x65, 0x74,
|
||||
0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65,
|
||||
0x72, 0x6f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x72,
|
||||
0x6f, 0x69, 0x64, 0x73, 0x22, 0x45, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e,
|
||||
0x67, 0x65, 0x64, 0x50, 0x75, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x78, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x6c,
|
||||
0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x22, 0xe3, 0x01, 0x0a, 0x0d,
|
||||
0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x67, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a,
|
||||
0x0a, 0x70, 0x72, 0x65, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x05, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x12, 0x16, 0x0a,
|
||||
0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61,
|
||||
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x04, 0x68, 0x61, 0x69, 0x72, 0x18, 0x03, 0x20,
|
||||
0x01, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x48, 0x61, 0x69, 0x72, 0x52, 0x04, 0x68, 0x61, 0x69, 0x72,
|
||||
0x12, 0x19, 0x0a, 0x04, 0x65, 0x79, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x05,
|
||||
0x2e, 0x45, 0x79, 0x65, 0x73, 0x52, 0x04, 0x65, 0x79, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x05, 0x6d,
|
||||
0x6f, 0x75, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x4d, 0x6f, 0x75,
|
||||
0x74, 0x68, 0x52, 0x05, 0x6d, 0x6f, 0x75, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x04, 0x62, 0x6f, 0x64,
|
||||
0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04,
|
||||
0x62, 0x6f, 0x64, 0x79, 0x12, 0x2b, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69,
|
||||
0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6c,
|
||||
0x65, 0x78, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x6f,
|
||||
0x6e, 0x22, 0x5b, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x46, 0x69, 0x67, 0x75, 0x72, 0x65, 0x52,
|
||||
0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18,
|
||||
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a,
|
||||
0x06, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e,
|
||||
0x46, 0x69, 0x67, 0x75, 0x72, 0x65, 0x52, 0x06, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x42, 0x06,
|
||||
0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
@ -1262,7 +1531,7 @@ func file_user_user_msg_proto_rawDescGZIP() []byte {
|
||||
return file_user_user_msg_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_user_user_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 24)
|
||||
var file_user_user_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 27)
|
||||
var file_user_user_msg_proto_goTypes = []interface{}{
|
||||
(*UserLoginReq)(nil), // 0: UserLoginReq
|
||||
(*UserLoginResp)(nil), // 1: UserLoginResp
|
||||
@ -1288,27 +1557,42 @@ var file_user_user_msg_proto_goTypes = []interface{}{
|
||||
(*UserModifynameResp)(nil), // 21: UserModifynameResp
|
||||
(*UserGetTujianReq)(nil), // 22: UserGetTujianReq
|
||||
(*UserGetTujianResp)(nil), // 23: UserGetTujianResp
|
||||
(*DBUser)(nil), // 24: DBUser
|
||||
(*DBUserExpand)(nil), // 25: DBUserExpand
|
||||
(ErrorCode)(0), // 26: ErrorCode
|
||||
(*CacheUser)(nil), // 27: CacheUser
|
||||
(*UserAssets)(nil), // 28: UserAssets
|
||||
(*DBUserSetting)(nil), // 29: DBUserSetting
|
||||
(*UserChangedPush)(nil), // 24: UserChangedPush
|
||||
(*UserFigureReq)(nil), // 25: UserFigureReq
|
||||
(*UserFigureResp)(nil), // 26: UserFigureResp
|
||||
(*DBUser)(nil), // 27: DBUser
|
||||
(*DBUserExpand)(nil), // 28: DBUserExpand
|
||||
(ErrorCode)(0), // 29: ErrorCode
|
||||
(*CacheUser)(nil), // 30: CacheUser
|
||||
(*UserAssets)(nil), // 31: UserAssets
|
||||
(*DBUserSetting)(nil), // 32: DBUserSetting
|
||||
(*Hair)(nil), // 33: Hair
|
||||
(*Eyes)(nil), // 34: Eyes
|
||||
(*Mouth)(nil), // 35: Mouth
|
||||
(*Body)(nil), // 36: Body
|
||||
(*Complexion)(nil), // 37: Complexion
|
||||
(*Figure)(nil), // 38: Figure
|
||||
}
|
||||
var file_user_user_msg_proto_depIdxs = []int32{
|
||||
24, // 0: UserLoginResp.data:type_name -> DBUser
|
||||
25, // 1: UserLoginResp.ex:type_name -> DBUserExpand
|
||||
26, // 2: UserRegisterResp.Code:type_name -> ErrorCode
|
||||
27, // 3: UserLoadResp.data:type_name -> CacheUser
|
||||
28, // 4: UserAddResReq.res:type_name -> UserAssets
|
||||
28, // 5: UserAddResResp.res:type_name -> UserAssets
|
||||
29, // 6: UserGetSettingResp.setting:type_name -> DBUserSetting
|
||||
29, // 7: UserUpdateSettingReq.setting:type_name -> DBUserSetting
|
||||
8, // [8:8] is the sub-list for method output_type
|
||||
8, // [8:8] is the sub-list for method input_type
|
||||
8, // [8:8] is the sub-list for extension type_name
|
||||
8, // [8:8] is the sub-list for extension extendee
|
||||
0, // [0:8] is the sub-list for field type_name
|
||||
27, // 0: UserLoginResp.data:type_name -> DBUser
|
||||
28, // 1: UserLoginResp.ex:type_name -> DBUserExpand
|
||||
29, // 2: UserRegisterResp.Code:type_name -> ErrorCode
|
||||
30, // 3: UserLoadResp.data:type_name -> CacheUser
|
||||
31, // 4: UserAddResReq.res:type_name -> UserAssets
|
||||
31, // 5: UserAddResResp.res:type_name -> UserAssets
|
||||
32, // 6: UserGetSettingResp.setting:type_name -> DBUserSetting
|
||||
32, // 7: UserUpdateSettingReq.setting:type_name -> DBUserSetting
|
||||
33, // 8: UserFigureReq.hair:type_name -> Hair
|
||||
34, // 9: UserFigureReq.eyes:type_name -> Eyes
|
||||
35, // 10: UserFigureReq.mouth:type_name -> Mouth
|
||||
36, // 11: UserFigureReq.body:type_name -> Body
|
||||
37, // 12: UserFigureReq.complexion:type_name -> Complexion
|
||||
38, // 13: UserFigureResp.figure:type_name -> Figure
|
||||
14, // [14:14] is the sub-list for method output_type
|
||||
14, // [14:14] is the sub-list for method input_type
|
||||
14, // [14:14] is the sub-list for extension type_name
|
||||
14, // [14:14] is the sub-list for extension extendee
|
||||
0, // [0:14] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_user_user_msg_proto_init() }
|
||||
@ -1609,6 +1893,42 @@ func file_user_user_msg_proto_init() {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_user_user_msg_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*UserChangedPush); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_user_user_msg_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*UserFigureReq); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_user_user_msg_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*UserFigureResp); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
@ -1616,7 +1936,7 @@ func file_user_user_msg_proto_init() {
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_user_user_msg_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 24,
|
||||
NumMessages: 27,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
|
@ -20,26 +20,372 @@ const (
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
// 发型
|
||||
type Hair struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
ResId int32 `protobuf:"varint,1,opt,name=resId,proto3" json:"resId"` //资源ID
|
||||
Color string `protobuf:"bytes,2,opt,name=color,proto3" json:"color"` //颜色
|
||||
}
|
||||
|
||||
func (x *Hair) Reset() {
|
||||
*x = Hair{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_userexpand_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *Hair) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Hair) ProtoMessage() {}
|
||||
|
||||
func (x *Hair) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_userexpand_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use Hair.ProtoReflect.Descriptor instead.
|
||||
func (*Hair) Descriptor() ([]byte, []int) {
|
||||
return file_userexpand_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
func (x *Hair) GetResId() int32 {
|
||||
if x != nil {
|
||||
return x.ResId
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *Hair) GetColor() string {
|
||||
if x != nil {
|
||||
return x.Color
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// 眼睛
|
||||
type Eyes struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
ResId int32 `protobuf:"varint,1,opt,name=resId,proto3" json:"resId"` //资源ID
|
||||
Color string `protobuf:"bytes,2,opt,name=color,proto3" json:"color"` //颜色
|
||||
}
|
||||
|
||||
func (x *Eyes) Reset() {
|
||||
*x = Eyes{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_userexpand_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *Eyes) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Eyes) ProtoMessage() {}
|
||||
|
||||
func (x *Eyes) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_userexpand_proto_msgTypes[1]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use Eyes.ProtoReflect.Descriptor instead.
|
||||
func (*Eyes) Descriptor() ([]byte, []int) {
|
||||
return file_userexpand_proto_rawDescGZIP(), []int{1}
|
||||
}
|
||||
|
||||
func (x *Eyes) GetResId() int32 {
|
||||
if x != nil {
|
||||
return x.ResId
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *Eyes) GetColor() string {
|
||||
if x != nil {
|
||||
return x.Color
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// 嘴巴
|
||||
type Mouth struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
ResId string `protobuf:"bytes,1,opt,name=resId,proto3" json:"resId"` //资源ID
|
||||
}
|
||||
|
||||
func (x *Mouth) Reset() {
|
||||
*x = Mouth{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_userexpand_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *Mouth) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Mouth) ProtoMessage() {}
|
||||
|
||||
func (x *Mouth) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_userexpand_proto_msgTypes[2]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use Mouth.ProtoReflect.Descriptor instead.
|
||||
func (*Mouth) Descriptor() ([]byte, []int) {
|
||||
return file_userexpand_proto_rawDescGZIP(), []int{2}
|
||||
}
|
||||
|
||||
func (x *Mouth) GetResId() string {
|
||||
if x != nil {
|
||||
return x.ResId
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// 身体
|
||||
type Body struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
High int32 `protobuf:"varint,1,opt,name=high,proto3" json:"high"` //身高
|
||||
Shape int32 `protobuf:"varint,2,opt,name=shape,proto3" json:"shape"` //体型
|
||||
}
|
||||
|
||||
func (x *Body) Reset() {
|
||||
*x = Body{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_userexpand_proto_msgTypes[3]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *Body) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Body) ProtoMessage() {}
|
||||
|
||||
func (x *Body) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_userexpand_proto_msgTypes[3]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use Body.ProtoReflect.Descriptor instead.
|
||||
func (*Body) Descriptor() ([]byte, []int) {
|
||||
return file_userexpand_proto_rawDescGZIP(), []int{3}
|
||||
}
|
||||
|
||||
func (x *Body) GetHigh() int32 {
|
||||
if x != nil {
|
||||
return x.High
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *Body) GetShape() int32 {
|
||||
if x != nil {
|
||||
return x.Shape
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
// 肤色
|
||||
type Complexion struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Color string `protobuf:"bytes,1,opt,name=color,proto3" json:"color"` //颜色值
|
||||
}
|
||||
|
||||
func (x *Complexion) Reset() {
|
||||
*x = Complexion{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_userexpand_proto_msgTypes[4]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *Complexion) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Complexion) ProtoMessage() {}
|
||||
|
||||
func (x *Complexion) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_userexpand_proto_msgTypes[4]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use Complexion.ProtoReflect.Descriptor instead.
|
||||
func (*Complexion) Descriptor() ([]byte, []int) {
|
||||
return file_userexpand_proto_rawDescGZIP(), []int{4}
|
||||
}
|
||||
|
||||
func (x *Complexion) GetColor() string {
|
||||
if x != nil {
|
||||
return x.Color
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// 形象
|
||||
type Figure struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Hair *Hair `protobuf:"bytes,1,opt,name=hair,proto3" json:"hair"`
|
||||
Eyes *Eyes `protobuf:"bytes,2,opt,name=eyes,proto3" json:"eyes"`
|
||||
Mouth *Mouth `protobuf:"bytes,3,opt,name=mouth,proto3" json:"mouth"`
|
||||
Body *Body `protobuf:"bytes,4,opt,name=body,proto3" json:"body"`
|
||||
Complexion *Complexion `protobuf:"bytes,5,opt,name=complexion,proto3" json:"complexion"`
|
||||
}
|
||||
|
||||
func (x *Figure) Reset() {
|
||||
*x = Figure{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_userexpand_proto_msgTypes[5]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *Figure) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Figure) ProtoMessage() {}
|
||||
|
||||
func (x *Figure) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_userexpand_proto_msgTypes[5]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use Figure.ProtoReflect.Descriptor instead.
|
||||
func (*Figure) Descriptor() ([]byte, []int) {
|
||||
return file_userexpand_proto_rawDescGZIP(), []int{5}
|
||||
}
|
||||
|
||||
func (x *Figure) GetHair() *Hair {
|
||||
if x != nil {
|
||||
return x.Hair
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *Figure) GetEyes() *Eyes {
|
||||
if x != nil {
|
||||
return x.Eyes
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *Figure) GetMouth() *Mouth {
|
||||
if x != nil {
|
||||
return x.Mouth
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *Figure) GetBody() *Body {
|
||||
if x != nil {
|
||||
return x.Body
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *Figure) GetComplexion() *Complexion {
|
||||
if x != nil {
|
||||
return x.Complexion
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
//用户扩展数据
|
||||
type DBUserExpand struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` //主键id
|
||||
Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid"` //用户id
|
||||
Lastreadnotiftime int64 `protobuf:"varint,3,opt,name=lastreadnotiftime,proto3" json:"lastreadnotiftime"` //最后阅读公告时间
|
||||
LastInitdataTime int64 `protobuf:"varint,4,opt,name=lastInitdataTime,proto3" json:"lastInitdataTime"` //上次初始数据时间
|
||||
InitdataCount uint32 `protobuf:"varint,5,opt,name=initdataCount,proto3" json:"initdataCount"` //今日初始累计次数
|
||||
Chatchannel int32 `protobuf:"varint,6,opt,name=chatchannel,proto3" json:"chatchannel"` //跨服聊天频道
|
||||
ModifynameCount int32 `protobuf:"varint,7,opt,name=modifynameCount,proto3" json:"modifynameCount"` //修改昵称次数
|
||||
Tujian map[string]bool `protobuf:"bytes,8,rep,name=tujian,proto3" json:"tujian" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 图鉴
|
||||
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` //主键id
|
||||
Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid"` //用户id
|
||||
Lastreadnotiftime int64 `protobuf:"varint,3,opt,name=lastreadnotiftime,proto3" json:"lastreadnotiftime"` //最后阅读公告时间
|
||||
LastInitdataTime int64 `protobuf:"varint,4,opt,name=lastInitdataTime,proto3" json:"lastInitdataTime"` //上次初始数据时间
|
||||
InitdataCount uint32 `protobuf:"varint,5,opt,name=initdataCount,proto3" json:"initdataCount"` //今日初始累计次数
|
||||
Chatchannel int32 `protobuf:"varint,6,opt,name=chatchannel,proto3" json:"chatchannel"` //跨服聊天频道
|
||||
ModifynameCount int32 `protobuf:"varint,7,opt,name=modifynameCount,proto3" json:"modifynameCount"` //修改昵称次数
|
||||
Tujian map[string]bool `protobuf:"bytes,8,rep,name=tujian,proto3" json:"tujian" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 图鉴
|
||||
CurFigure int32 `protobuf:"varint,9,opt,name=curFigure,proto3" json:"curFigure"` //当前形象
|
||||
Preinstall map[int32]*Figure `protobuf:"bytes,10,rep,name=preinstall,proto3" json:"preinstall" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` //形象预设
|
||||
}
|
||||
|
||||
func (x *DBUserExpand) Reset() {
|
||||
*x = DBUserExpand{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_userexpand_proto_msgTypes[0]
|
||||
mi := &file_userexpand_proto_msgTypes[6]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@ -52,7 +398,7 @@ func (x *DBUserExpand) String() string {
|
||||
func (*DBUserExpand) ProtoMessage() {}
|
||||
|
||||
func (x *DBUserExpand) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_userexpand_proto_msgTypes[0]
|
||||
mi := &file_userexpand_proto_msgTypes[6]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@ -65,7 +411,7 @@ func (x *DBUserExpand) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use DBUserExpand.ProtoReflect.Descriptor instead.
|
||||
func (*DBUserExpand) Descriptor() ([]byte, []int) {
|
||||
return file_userexpand_proto_rawDescGZIP(), []int{0}
|
||||
return file_userexpand_proto_rawDescGZIP(), []int{6}
|
||||
}
|
||||
|
||||
func (x *DBUserExpand) GetId() string {
|
||||
@ -124,34 +470,83 @@ func (x *DBUserExpand) GetTujian() map[string]bool {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *DBUserExpand) GetCurFigure() int32 {
|
||||
if x != nil {
|
||||
return x.CurFigure
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *DBUserExpand) GetPreinstall() map[int32]*Figure {
|
||||
if x != nil {
|
||||
return x.Preinstall
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
var File_userexpand_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_userexpand_proto_rawDesc = []byte{
|
||||
0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x2e, 0x70, 0x72, 0x6f,
|
||||
0x74, 0x6f, 0x22, 0xea, 0x02, 0x0a, 0x0c, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x70,
|
||||
0x61, 0x6e, 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, 0x28, 0x09,
|
||||
0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x72, 0x65, 0x61,
|
||||
0x64, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03,
|
||||
0x52, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x72, 0x65, 0x61, 0x64, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x74,
|
||||
0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x69, 0x74, 0x64,
|
||||
0x61, 0x74, 0x61, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6c,
|
||||
0x61, 0x73, 0x74, 0x49, 0x6e, 0x69, 0x74, 0x64, 0x61, 0x74, 0x61, 0x54, 0x69, 0x6d, 0x65, 0x12,
|
||||
0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x69, 0x74, 0x64, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74,
|
||||
0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x69, 0x6e, 0x69, 0x74, 0x64, 0x61, 0x74, 0x61,
|
||||
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x74, 0x63, 0x68, 0x61,
|
||||
0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x74,
|
||||
0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x6f, 0x64, 0x69, 0x66,
|
||||
0x79, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05,
|
||||
0x52, 0x0f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e,
|
||||
0x74, 0x12, 0x31, 0x0a, 0x06, 0x74, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x18, 0x08, 0x20, 0x03, 0x28,
|
||||
0x0b, 0x32, 0x19, 0x2e, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64,
|
||||
0x2e, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x74, 0x75,
|
||||
0x6a, 0x69, 0x61, 0x6e, 0x1a, 0x39, 0x0a, 0x0b, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x45, 0x6e,
|
||||
0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42,
|
||||
0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x74, 0x6f, 0x22, 0x32, 0x0a, 0x04, 0x48, 0x61, 0x69, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65,
|
||||
0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72, 0x65, 0x73, 0x49, 0x64,
|
||||
0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x79, 0x65, 0x73, 0x12, 0x14,
|
||||
0x0a, 0x05, 0x72, 0x65, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x72,
|
||||
0x65, 0x73, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x1d, 0x0a, 0x05, 0x4d, 0x6f,
|
||||
0x75, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x73, 0x49, 0x64, 0x22, 0x30, 0x0a, 0x04, 0x42, 0x6f, 0x64,
|
||||
0x79, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
|
||||
0x04, 0x68, 0x69, 0x67, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x70, 0x65, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x68, 0x61, 0x70, 0x65, 0x22, 0x22, 0x0a, 0x0a, 0x43,
|
||||
0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c,
|
||||
0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x22,
|
||||
0xa4, 0x01, 0x0a, 0x06, 0x46, 0x69, 0x67, 0x75, 0x72, 0x65, 0x12, 0x19, 0x0a, 0x04, 0x68, 0x61,
|
||||
0x69, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x48, 0x61, 0x69, 0x72, 0x52,
|
||||
0x04, 0x68, 0x61, 0x69, 0x72, 0x12, 0x19, 0x0a, 0x04, 0x65, 0x79, 0x65, 0x73, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x45, 0x79, 0x65, 0x73, 0x52, 0x04, 0x65, 0x79, 0x65, 0x73,
|
||||
0x12, 0x1c, 0x0a, 0x05, 0x6d, 0x6f, 0x75, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||
0x06, 0x2e, 0x4d, 0x6f, 0x75, 0x74, 0x68, 0x52, 0x05, 0x6d, 0x6f, 0x75, 0x74, 0x68, 0x12, 0x19,
|
||||
0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x42,
|
||||
0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x2b, 0x0a, 0x0a, 0x63, 0x6f, 0x6d,
|
||||
0x70, 0x6c, 0x65, 0x78, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e,
|
||||
0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70,
|
||||
0x6c, 0x65, 0x78, 0x69, 0x6f, 0x6e, 0x22, 0x8f, 0x04, 0x0a, 0x0c, 0x44, 0x42, 0x55, 0x73, 0x65,
|
||||
0x72, 0x45, 0x78, 0x70, 0x61, 0x6e, 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, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x6c, 0x61, 0x73,
|
||||
0x74, 0x72, 0x65, 0x61, 0x64, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03,
|
||||
0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x72, 0x65, 0x61, 0x64, 0x6e, 0x6f,
|
||||
0x74, 0x69, 0x66, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x49,
|
||||
0x6e, 0x69, 0x74, 0x64, 0x61, 0x74, 0x61, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
|
||||
0x03, 0x52, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x69, 0x74, 0x64, 0x61, 0x74, 0x61, 0x54,
|
||||
0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x69, 0x74, 0x64, 0x61, 0x74, 0x61, 0x43,
|
||||
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x69, 0x6e, 0x69, 0x74,
|
||||
0x64, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61,
|
||||
0x74, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b,
|
||||
0x63, 0x68, 0x61, 0x74, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x6d,
|
||||
0x6f, 0x64, 0x69, 0x66, 0x79, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07,
|
||||
0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x6e, 0x61, 0x6d, 0x65,
|
||||
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x74, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x18,
|
||||
0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x45, 0x78,
|
||||
0x70, 0x61, 0x6e, 0x64, 0x2e, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79,
|
||||
0x52, 0x06, 0x74, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x75, 0x72, 0x46,
|
||||
0x69, 0x67, 0x75, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x75, 0x72,
|
||||
0x46, 0x69, 0x67, 0x75, 0x72, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x69, 0x6e, 0x73,
|
||||
0x74, 0x61, 0x6c, 0x6c, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x44, 0x42, 0x55,
|
||||
0x73, 0x65, 0x72, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x2e, 0x50, 0x72, 0x65, 0x69, 0x6e, 0x73,
|
||||
0x74, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x69, 0x6e,
|
||||
0x73, 0x74, 0x61, 0x6c, 0x6c, 0x1a, 0x39, 0x0a, 0x0b, 0x54, 0x75, 0x6a, 0x69, 0x61, 0x6e, 0x45,
|
||||
0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
|
||||
0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
|
||||
0x1a, 0x46, 0x0a, 0x0f, 0x50, 0x72, 0x65, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x45, 0x6e,
|
||||
0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
|
||||
0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x46, 0x69, 0x67, 0x75, 0x72, 0x65, 0x52, 0x05, 0x76,
|
||||
0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62,
|
||||
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
@ -166,18 +561,32 @@ func file_userexpand_proto_rawDescGZIP() []byte {
|
||||
return file_userexpand_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_userexpand_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
|
||||
var file_userexpand_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
|
||||
var file_userexpand_proto_goTypes = []interface{}{
|
||||
(*DBUserExpand)(nil), // 0: DBUserExpand
|
||||
nil, // 1: DBUserExpand.TujianEntry
|
||||
(*Hair)(nil), // 0: Hair
|
||||
(*Eyes)(nil), // 1: Eyes
|
||||
(*Mouth)(nil), // 2: Mouth
|
||||
(*Body)(nil), // 3: Body
|
||||
(*Complexion)(nil), // 4: Complexion
|
||||
(*Figure)(nil), // 5: Figure
|
||||
(*DBUserExpand)(nil), // 6: DBUserExpand
|
||||
nil, // 7: DBUserExpand.TujianEntry
|
||||
nil, // 8: DBUserExpand.PreinstallEntry
|
||||
}
|
||||
var file_userexpand_proto_depIdxs = []int32{
|
||||
1, // 0: DBUserExpand.tujian:type_name -> DBUserExpand.TujianEntry
|
||||
1, // [1:1] is the sub-list for method output_type
|
||||
1, // [1:1] is the sub-list for method input_type
|
||||
1, // [1:1] is the sub-list for extension type_name
|
||||
1, // [1:1] is the sub-list for extension extendee
|
||||
0, // [0:1] is the sub-list for field type_name
|
||||
0, // 0: Figure.hair:type_name -> Hair
|
||||
1, // 1: Figure.eyes:type_name -> Eyes
|
||||
2, // 2: Figure.mouth:type_name -> Mouth
|
||||
3, // 3: Figure.body:type_name -> Body
|
||||
4, // 4: Figure.complexion:type_name -> Complexion
|
||||
7, // 5: DBUserExpand.tujian:type_name -> DBUserExpand.TujianEntry
|
||||
8, // 6: DBUserExpand.preinstall:type_name -> DBUserExpand.PreinstallEntry
|
||||
5, // 7: DBUserExpand.PreinstallEntry.value:type_name -> Figure
|
||||
8, // [8:8] is the sub-list for method output_type
|
||||
8, // [8:8] is the sub-list for method input_type
|
||||
8, // [8:8] is the sub-list for extension type_name
|
||||
8, // [8:8] is the sub-list for extension extendee
|
||||
0, // [0:8] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_userexpand_proto_init() }
|
||||
@ -187,6 +596,78 @@ func file_userexpand_proto_init() {
|
||||
}
|
||||
if !protoimpl.UnsafeEnabled {
|
||||
file_userexpand_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Hair); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_userexpand_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Eyes); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_userexpand_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Mouth); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_userexpand_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Body); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_userexpand_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Complexion); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_userexpand_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Figure); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_userexpand_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*DBUserExpand); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
@ -205,7 +686,7 @@ func file_userexpand_proto_init() {
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_userexpand_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 2,
|
||||
NumMessages: 9,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
|
@ -16,9 +16,7 @@ type Tables struct {
|
||||
LocalizeConfig_ENCategory *Localize_LocalizeConfig_ENCategory
|
||||
LocalizeConfig_TWCategory *Localize_LocalizeConfig_TWCategory
|
||||
global *Game_global
|
||||
hero *Game_hero
|
||||
ui *Game_ui
|
||||
skill *Game_skill
|
||||
plot *Game_plot
|
||||
extservers *Game_extservers
|
||||
skillAtk *Game_skillAtk
|
||||
@ -68,6 +66,8 @@ type Tables struct {
|
||||
monster *Game_monster
|
||||
equipPos *Game_equipPos
|
||||
playerlv *Game_playerlv
|
||||
propsgroup *Game_propsgroup
|
||||
facemod *Game_facemod
|
||||
}
|
||||
|
||||
func NewTables(loader JsonLoader) (*Tables, error) {
|
||||
@ -99,24 +99,12 @@ func NewTables(loader JsonLoader) (*Tables, error) {
|
||||
if tables.global, err = NewGame_global(buf) ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if buf, err = loader("game_hero") ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if tables.hero, err = NewGame_hero(buf) ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if buf, err = loader("game_ui") ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if tables.ui, err = NewGame_ui(buf) ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if buf, err = loader("game_skill") ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if tables.skill, err = NewGame_skill(buf) ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if buf, err = loader("game_plot") ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -411,5 +399,17 @@ func NewTables(loader JsonLoader) (*Tables, error) {
|
||||
if tables.playerlv, err = NewGame_playerlv(buf) ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if buf, err = loader("game_propsgroup") ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if tables.propsgroup, err = NewGame_propsgroup(buf) ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if buf, err = loader("game_facemod") ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if tables.facemod, err = NewGame_facemod(buf) ; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return tables, nil
|
||||
}
|
||||
|
39
sys/configure/structs/game.Figure.go
Normal file
39
sys/configure/structs/game.Figure.go
Normal file
@ -0,0 +1,39 @@
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
package cfg
|
||||
|
||||
import "errors"
|
||||
|
||||
type Game_Figure struct {
|
||||
Id int32
|
||||
Key string
|
||||
Color string
|
||||
Val int32
|
||||
PositonX int32
|
||||
PositonY int32
|
||||
PositonZ int32
|
||||
Icon string
|
||||
}
|
||||
|
||||
func (Game_Figure) GetTypeId() int {
|
||||
return -1818502016
|
||||
}
|
||||
|
||||
func NewGame_Figure(_buf map[string]interface{}) (_v *Game_Figure, err error) {
|
||||
_v = &Game_Figure{}
|
||||
{ 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.Key, _ok_ = _buf["key"].(string); !_ok_ { err = errors.New("key error"); return } }
|
||||
{ var _ok_ bool; if _v.Color, _ok_ = _buf["color"].(string); !_ok_ { err = errors.New("color error"); return } }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["val"].(float64); !_ok_ { err = errors.New("val error"); return }; _v.Val = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["positon_x"].(float64); !_ok_ { err = errors.New("positon_x error"); return }; _v.PositonX = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["positon_y"].(float64); !_ok_ { err = errors.New("positon_y error"); return }; _v.PositonY = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["positon_z"].(float64); !_ok_ { err = errors.New("positon_z error"); return }; _v.PositonZ = int32(_tempNum_) }
|
||||
{ var _ok_ bool; if _v.Icon, _ok_ = _buf["icon"].(string); !_ok_ { err = errors.New("icon error"); return } }
|
||||
return
|
||||
}
|
42
sys/configure/structs/game.facemod.go
Normal file
42
sys/configure/structs/game.facemod.go
Normal file
@ -0,0 +1,42 @@
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
package cfg
|
||||
|
||||
type Game_facemod struct {
|
||||
_dataMap map[int32]*Game_facemodData
|
||||
_dataList []*Game_facemodData
|
||||
}
|
||||
|
||||
func NewGame_facemod(_buf []map[string]interface{}) (*Game_facemod, error) {
|
||||
_dataList := make([]*Game_facemodData, 0, len(_buf))
|
||||
dataMap := make(map[int32]*Game_facemodData)
|
||||
for _, _ele_ := range _buf {
|
||||
if _v, err2 := NewGame_facemodData(_ele_); err2 != nil {
|
||||
return nil, err2
|
||||
} else {
|
||||
_dataList = append(_dataList, _v)
|
||||
dataMap[_v.Id] = _v
|
||||
}
|
||||
}
|
||||
return &Game_facemod{_dataList:_dataList, _dataMap:dataMap}, nil
|
||||
}
|
||||
|
||||
func (table *Game_facemod) GetDataMap() map[int32]*Game_facemodData {
|
||||
return table._dataMap
|
||||
}
|
||||
|
||||
func (table *Game_facemod) GetDataList() []*Game_facemodData {
|
||||
return table._dataList
|
||||
}
|
||||
|
||||
func (table *Game_facemod) Get(key int32) *Game_facemodData {
|
||||
return table._dataMap[key]
|
||||
}
|
||||
|
||||
|
42
sys/configure/structs/game.facemodData.go
Normal file
42
sys/configure/structs/game.facemodData.go
Normal file
@ -0,0 +1,42 @@
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
package cfg
|
||||
|
||||
import "errors"
|
||||
|
||||
type Game_facemodData struct {
|
||||
Id int32
|
||||
Suitintr string
|
||||
Figure []*Game_Figure
|
||||
}
|
||||
|
||||
func (Game_facemodData) GetTypeId() int {
|
||||
return -214755117
|
||||
}
|
||||
|
||||
func NewGame_facemodData(_buf map[string]interface{}) (_v *Game_facemodData, err error) {
|
||||
_v = &Game_facemodData{}
|
||||
{ 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.Suitintr, _ok_ = _buf["suitintr"].(string); !_ok_ { err = errors.New("suitintr error"); return } }
|
||||
{
|
||||
var _arr_ []interface{}
|
||||
var _ok_ bool
|
||||
if _arr_, _ok_ = _buf["figure"].([]interface{}); !_ok_ { err = errors.New("figure error"); return }
|
||||
|
||||
_v.Figure = make([]*Game_Figure, 0, len(_arr_))
|
||||
|
||||
for _, _e_ := range _arr_ {
|
||||
var _list_v_ *Game_Figure
|
||||
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = NewGame_Figure(_x_); err != nil { return } }
|
||||
_v.Figure = append(_v.Figure, _list_v_)
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
}
|
@ -19,6 +19,7 @@ type Game_newHeroData struct {
|
||||
Race int32
|
||||
Job int32
|
||||
Type int32
|
||||
Handbook int32
|
||||
Prefab int32
|
||||
Icon int32
|
||||
Sound string
|
||||
@ -33,6 +34,8 @@ type Game_newHeroData struct {
|
||||
Skill2 int32
|
||||
Skill3 int32
|
||||
Txt string
|
||||
Enteranivalue int32
|
||||
Camerainterval float32
|
||||
}
|
||||
|
||||
func (Game_newHeroData) GetTypeId() int {
|
||||
@ -48,6 +51,7 @@ func NewGame_newHeroData(_buf map[string]interface{}) (_v *Game_newHeroData, err
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["race"].(float64); !_ok_ { err = errors.New("race error"); return }; _v.Race = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["job"].(float64); !_ok_ { err = errors.New("job error"); return }; _v.Job = 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["handbook"].(float64); !_ok_ { err = errors.New("handbook error"); return }; _v.Handbook = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["prefab"].(float64); !_ok_ { err = errors.New("prefab error"); return }; _v.Prefab = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["icon"].(float64); !_ok_ { err = errors.New("icon error"); return }; _v.Icon = int32(_tempNum_) }
|
||||
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["sound"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Sound error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Sound, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
|
||||
@ -95,5 +99,7 @@ func NewGame_newHeroData(_buf map[string]interface{}) (_v *Game_newHeroData, err
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["skill2"].(float64); !_ok_ { err = errors.New("skill2 error"); return }; _v.Skill2 = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["skill3"].(float64); !_ok_ { err = errors.New("skill3 error"); return }; _v.Skill3 = int32(_tempNum_) }
|
||||
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["txt"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Txt error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Txt, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["enteranivalue"].(float64); !_ok_ { err = errors.New("enteranivalue error"); return }; _v.Enteranivalue = int32(_tempNum_) }
|
||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["camerainterval"].(float64); !_ok_ { err = errors.New("camerainterval error"); return }; _v.Camerainterval = float32(_tempNum_) }
|
||||
return
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user