This commit is contained in:
liwei1dao 2023-01-07 10:01:30 +08:00
commit 8b30a4a45b
49 changed files with 9969 additions and 7190 deletions

View File

@ -7,6 +7,7 @@
"key": "suit_13001",
"text": "神龙大侠"
},
"FloatIcon": "",
"skillintr": {
"key": "equip_13215",
"text": "攻击力+30%"
@ -26,6 +27,7 @@
"key": "suit_13002",
"text": "无牙仔"
},
"FloatIcon": "",
"skillintr": {
"key": "equip_13215",
"text": "速度+25%"
@ -45,6 +47,7 @@
"key": "suit_13003",
"text": "冰霜杰克"
},
"FloatIcon": "ty_zd_buff_z007",
"skillintr": {
"key": "equip_13215",
"text": "受到伤害时有25%的概率【冰冻】目标1回合"
@ -59,6 +62,7 @@
"key": "suit_13004",
"text": "漆黑"
},
"FloatIcon": "",
"skillintr": {
"key": "equip_13215",
"text": "+35%吸血"
@ -78,6 +82,7 @@
"key": "suit_13005",
"text": "醉乡民谣"
},
"FloatIcon": "",
"skillintr": {
"key": "equip_13215",
"text": "治疗效果+30%"
@ -97,6 +102,7 @@
"key": "suit_13006",
"text": "果子酒"
},
"FloatIcon": "ty_zd_buff_z007",
"skillintr": {
"key": "equip_13215",
"text": "回合开始时有35%概率令自身所有技能冷却时间-1回合"
@ -111,6 +117,7 @@
"key": "suit_13007",
"text": "月中人"
},
"FloatIcon": "ty_zd_buff_z007",
"skillintr": {
"key": "equip_13215",
"text": "造成伤害时有20%概率【眩晕】目标1回合"
@ -125,6 +132,7 @@
"key": "suit_13008",
"text": "功夫五侠"
},
"FloatIcon": "",
"skillintr": {
"key": "equip_13215",
"text": "暴击伤害+40%"
@ -144,6 +152,7 @@
"key": "suit_13009",
"text": "黄金包子"
},
"FloatIcon": "ty_zd_buff_z007",
"skillintr": {
"key": "equip_13215",
"text": "自身可行动时有20%概率额外行动一次(仅触发一次,额外行动不会恢复技能冷却时间)"
@ -158,6 +167,7 @@
"key": "suit_13010",
"text": "月台"
},
"FloatIcon": "ty_zd_buff_z007",
"skillintr": {
"key": "equip_13215",
"text": "我方被施加控制效果的神觉者速度提高50点不可叠加"
@ -172,6 +182,7 @@
"key": "suit_13011",
"text": "老板"
},
"FloatIcon": "",
"skillintr": {
"key": "equip_13215",
"text": "生命值+25%"
@ -191,6 +202,7 @@
"key": "suit_13012",
"text": "野蛮人"
},
"FloatIcon": "",
"skillintr": {
"key": "equip_13215",
"text": "防御力+25%"
@ -210,6 +222,7 @@
"key": "suit_13013",
"text": "文明人"
},
"FloatIcon": "",
"skillintr": {
"key": "equip_13215",
"text": "效果命中+25%"
@ -229,6 +242,7 @@
"key": "suit_13014",
"text": "玉如意"
},
"FloatIcon": "ty_zd_buff_z007",
"skillintr": {
"key": "equip_13215",
"text": "受到伤害时有25%几率使用技能一反击"
@ -243,6 +257,7 @@
"key": "suit_13015",
"text": "牙仙"
},
"FloatIcon": "ty_zd_buff_z007",
"skillintr": {
"key": "equip_13215",
"text": "己方全体在战斗开始的时候获得2回合【护盾】数值为最大生命值的15%"
@ -257,6 +272,7 @@
"key": "suit_13016",
"text": "圣诞老人"
},
"FloatIcon": "",
"skillintr": {
"key": "equip_13215",
"text": "暴击率+20%"
@ -276,6 +292,7 @@
"key": "suit_13017",
"text": "睡神"
},
"FloatIcon": "ty_zd_buff_z007",
"skillintr": {
"key": "equip_13215",
"text": "施加中毒、流血效果时有30%几率令其持续时间增加1回合"
@ -290,6 +307,7 @@
"key": "suit_13018",
"text": "维京"
},
"FloatIcon": "",
"skillintr": {
"key": "equip_13215",
"text": "效果抵抗+25%"
@ -309,6 +327,7 @@
"key": "suit_13019",
"text": "史莱克"
},
"FloatIcon": "ty_zd_buff_z007",
"skillintr": {
"key": "equip_13215",
"text": "战斗开始时获得1回合【免疫】"

View File

@ -46,7 +46,7 @@
"text": "凤凰城"
},
"ips": "119.3.89.14:9891",
"debug": false,
"debug": true,
"sid": "df01"
},
{
@ -56,7 +56,7 @@
"text": "翡翠宫"
},
"ips": "119.3.89.14:9891",
"debug": false,
"debug": true,
"sid": "df01"
},
{
@ -66,7 +66,7 @@
"text": "乌鸦岭"
},
"ips": "119.3.89.14:9891",
"debug": false,
"debug": true,
"sid": "df01"
},
{
@ -76,7 +76,7 @@
"text": "和平谷"
},
"ips": "119.3.89.14:7891",
"debug": true,
"debug": false,
"sid": "df02"
}
]

View File

@ -2,7 +2,6 @@
{
"type_id": 5011001,
"id_list": 1,
"weight": 1000,
"jump_interface": 115,
"task_display": {
"key": "guild_task5011001",
@ -37,7 +36,6 @@
{
"type_id": 5012001,
"id_list": 2,
"weight": 1000,
"jump_interface": 113,
"task_display": {
"key": "guild_task5012001",
@ -72,7 +70,6 @@
{
"type_id": 5018001,
"id_list": 3,
"weight": 1000,
"jump_interface": 107,
"task_display": {
"key": "guild_task5018001",
@ -107,7 +104,6 @@
{
"type_id": 5024001,
"id_list": 4,
"weight": 1000,
"jump_interface": 103,
"task_display": {
"key": "guild_task5024001",
@ -142,7 +138,6 @@
{
"type_id": 5047001,
"id_list": 5,
"weight": 1000,
"jump_interface": 103,
"task_display": {
"key": "guild_task5047001",
@ -177,7 +172,6 @@
{
"type_id": 5063001,
"id_list": 6,
"weight": 1000,
"jump_interface": 109,
"task_display": {
"key": "guild_task5063001",
@ -212,7 +206,6 @@
{
"type_id": 5068001,
"id_list": 7,
"weight": 1000,
"jump_interface": 122,
"task_display": {
"key": "guild_task5068001",
@ -247,7 +240,6 @@
{
"type_id": 5104001,
"id_list": 8,
"weight": 1000,
"jump_interface": 123,
"task_display": {
"key": "guild_task5104001",

View File

@ -6540,7 +6540,7 @@
"ip": 1,
"sd": 1,
"handbook": -1,
"prefab": "55007",
"prefab": "11021",
"rotation": "0|0|0",
"icon": "11021",
"vocal": "11021",

View File

@ -2877,6 +2877,82 @@
"text": "阵营挑战券不足"
}
},
{
"id": "100100",
"name": {
"key": "itemname_100100",
"text": "副本挑战券"
},
"usetype": 10,
"color": 3,
"bagtype": 0,
"index": 1,
"special_type": 0,
"time": 0,
"effects": "",
"box_id": 0,
"synthetize_num": 0,
"access": [
107
],
"use_skip": 107,
"upper_limit": -1,
"uselv": 0,
"isani": 0,
"star": 0,
"race": 0,
"img": "wp_icon_jjcq",
"ico": "wp_icon_jjcq",
"intr": {
"key": "itemdesc_100100",
"text": "进入阵营BOSS的凭证"
},
"sale": [],
"synthetize_deplete": [],
"decompose_deplete": [],
"tipstxt": {
"key": "itemtipstxt_100100",
"text": "副本挑战券不足"
}
},
{
"id": "100101",
"name": {
"key": "itemname_100101",
"text": "副本挑战券"
},
"usetype": 10,
"color": 3,
"bagtype": 0,
"index": 1,
"special_type": 0,
"time": 0,
"effects": "",
"box_id": 0,
"synthetize_num": 0,
"access": [
107
],
"use_skip": 107,
"upper_limit": -1,
"uselv": 0,
"isani": 0,
"star": 0,
"race": 0,
"img": "wp_icon_jjcq",
"ico": "wp_icon_jjcq",
"intr": {
"key": "itemdesc_100101",
"text": "进入阵营BOSS的凭证"
},
"sale": [],
"synthetize_deplete": [],
"decompose_deplete": [],
"tipstxt": {
"key": "itemtipstxt_100101",
"text": "副本挑战券不足"
}
},
{
"id": "110001",
"name": {

View File

@ -0,0 +1,458 @@
[
{
"id": 11001,
"name": {
"key": "mainline_name_10001",
"text": "Chapter 1"
},
"chapter_type": 1,
"map": "scenes_worldmap_01 ",
"camera": "",
"title": {
"key": "mainline_title_10001",
"text": "第1章功夫世界"
},
"desc": {
"key": "mainline_desc_10001",
"text": "故事发生在很久以前的古代中国,而且要从一只喜欢滚来滚去、滚来滚去的大熊猫身上说起。话说熊猫阿宝是一家面条店的学徒,虽然笨手笨脚,也勉强算是谋到了一份职业。"
},
"starreward": 11001
},
{
"id": 11002,
"name": {
"key": "mainline_name_10002",
"text": "Chapter 2"
},
"chapter_type": 1,
"map": "scenes_worldmap_01 ",
"camera": "",
"title": {
"key": "mainline_title_10002",
"text": "第2章练功房"
},
"desc": {
"key": "mainline_desc_10002",
"text": "别看阿宝所在的“和平谷”一派欣欣向荣的安详景象,其实是一个卧虎藏龙的风水宝地,先不说五大功夫高手皆坐镇于此,更有一大师级别的宗师在这里隐居。"
},
"starreward": 0
},
{
"id": 11003,
"name": {
"key": "mainline_name_10003",
"text": "Chapter 3"
},
"chapter_type": 1,
"map": "scenes_worldmap_01 ",
"camera": "",
"title": {
"key": "mainline_title_10003",
"text": "第3章太狼来袭"
},
"desc": {
"key": "mainline_desc_10003",
"text": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
},
"starreward": 11002
},
{
"id": 11004,
"name": {
"key": "mainline_name_10004",
"text": "Chapter 4"
},
"chapter_type": 1,
"map": "scenes_worldmap_01 ",
"camera": "",
"title": {
"key": "mainline_title_10004",
"text": "第4章乌龟大师"
},
"desc": {
"key": "mainline_desc_10004",
"text": "自负的毒蛇大师虽然给人的感觉稍显轻浮,但对这件事的态度就有如她善变的性格,不太明朗;螳螂大师算是几位高手中最聪明的一个,对阿宝的现状很是无奈,总是暗中帮忙。"
},
"starreward": 11003
},
{
"id": 11005,
"name": {
"key": "mainline_name_10005",
"text": "Chapter 5"
},
"chapter_type": 1,
"map": "scenes_worldmap_01 ",
"camera": "",
"title": {
"key": "mainline_title_10005",
"text": "第5章激烈战斗"
},
"desc": {
"key": "mainline_desc_10005",
"text": "最后要将阿宝调教成“功夫高手”的一代宗师“师父”华丽丽地出场了,然而有着一身好功夫并不意味着就是完美的,“师父”因为过去犯下的一个错误,一直纠结着没办法释然。"
},
"starreward": 11004
},
{
"id": 11006,
"name": {
"key": "mainline_name_10006",
"text": "Chapter 6"
},
"chapter_type": 1,
"map": "scenes_worldmap_01 ",
"camera": "",
"title": {
"key": "mainline_title_10006",
"text": "第6章下山"
},
"desc": {
"key": "mainline_desc_10006",
"text": "至于那个让人人都如临大敌的太郎则是一只非常自恋的雪豹他等待复仇的这一天已经整整等了20年了可是他做梦也没想到自己等来的竟然是一只大熊猫。"
},
"starreward": 0
},
{
"id": 11007,
"name": {
"key": "mainline_name_10007",
"text": "Chapter 7"
},
"chapter_type": 1,
"map": "scenes_worldmap_01 ",
"camera": "",
"title": {
"key": "mainline_title_10007",
"text": "第7章事件余波"
},
"desc": {
"key": "mainline_desc_10007",
"text": "激烈的战斗后,阿宝以自己对武功的悟性和师父传授的武术,战胜了太郎,拯救了山谷,为山谷带来了和平。"
},
"starreward": 0
},
{
"id": 11008,
"name": {
"key": "mainline_name_10008",
"text": "Chapter 8"
},
"chapter_type": 1,
"map": "scenes_worldmap_01 ",
"camera": "",
"title": {
"key": "mainline_title_10008",
"text": "第8章乌龟大师"
},
"desc": {
"key": "mainline_desc_10008",
"text": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
},
"starreward": 0
},
{
"id": 11009,
"name": {
"key": "mainline_name_10009",
"text": "Chapter 9"
},
"chapter_type": 1,
"map": "scenes_worldmap_01 ",
"camera": "",
"title": {
"key": "mainline_title_10009",
"text": "第9章太狼来袭"
},
"desc": {
"key": "mainline_desc_10009",
"text": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
},
"starreward": 0
},
{
"id": 11010,
"name": {
"key": "mainline_name_10010",
"text": "Chapter 10"
},
"chapter_type": 1,
"map": "scenes_worldmap_01 ",
"camera": "",
"title": {
"key": "mainline_title_10010",
"text": "第10章乌龟大师"
},
"desc": {
"key": "mainline_desc_10010",
"text": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
},
"starreward": 0
},
{
"id": 11011,
"name": {
"key": "mainline_name_10011",
"text": "Chapter 11"
},
"chapter_type": 1,
"map": "scenes_worldmap_01 ",
"camera": "",
"title": {
"key": "mainline_title_10011",
"text": "第11章太狼来袭"
},
"desc": {
"key": "mainline_desc_10011",
"text": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
},
"starreward": 0
},
{
"id": 11012,
"name": {
"key": "mainline_name_10012",
"text": "Chapter 12"
},
"chapter_type": 1,
"map": "scenes_worldmap_01 ",
"camera": "",
"title": {
"key": "mainline_title_10012",
"text": "第12章乌龟大师"
},
"desc": {
"key": "mainline_desc_10012",
"text": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
},
"starreward": 0
},
{
"id": 12001,
"name": {
"key": "mainline_name_10001",
"text": "Chapter 1"
},
"chapter_type": 2,
"map": "scenes_worldmap_01",
"camera": "",
"title": {
"key": "mainline_title_10001",
"text": "第1章功夫世界"
},
"desc": {
"key": "mainline_desc_10001",
"text": "故事发生在很久以前的古代中国,而且要从一只喜欢滚来滚去、滚来滚去的大熊猫身上说起。话说熊猫阿宝是一家面条店的学徒,虽然笨手笨脚,也勉强算是谋到了一份职业。"
},
"starreward": 0
},
{
"id": 12002,
"name": {
"key": "mainline_name_10002",
"text": "Chapter 2"
},
"chapter_type": 2,
"map": "scenes_worldmap_01",
"camera": "",
"title": {
"key": "mainline_title_10002",
"text": "第2章练功房"
},
"desc": {
"key": "mainline_desc_10002",
"text": "别看阿宝所在的“和平谷”一派欣欣向荣的安详景象,其实是一个卧虎藏龙的风水宝地,先不说五大功夫高手皆坐镇于此,更有一大师级别的宗师在这里隐居。"
},
"starreward": 0
},
{
"id": 12003,
"name": {
"key": "mainline_name_10003",
"text": "Chapter 3"
},
"chapter_type": 2,
"map": "scenes_worldmap_01",
"camera": "",
"title": {
"key": "mainline_title_10003",
"text": "第3章太狼来袭"
},
"desc": {
"key": "mainline_desc_10003",
"text": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
},
"starreward": 0
},
{
"id": 12004,
"name": {
"key": "mainline_name_10004",
"text": "Chapter 4"
},
"chapter_type": 2,
"map": "scenes_worldmap_01",
"camera": "",
"title": {
"key": "mainline_title_10004",
"text": "第4章乌龟大师"
},
"desc": {
"key": "mainline_desc_10004",
"text": "自负的毒蛇大师虽然给人的感觉稍显轻浮,但对这件事的态度就有如她善变的性格,不太明朗;螳螂大师算是几位高手中最聪明的一个,对阿宝的现状很是无奈,总是暗中帮忙。"
},
"starreward": 0
},
{
"id": 12005,
"name": {
"key": "mainline_name_10005",
"text": "Chapter 5"
},
"chapter_type": 2,
"map": "scenes_worldmap_01",
"camera": "",
"title": {
"key": "mainline_title_10005",
"text": "第5章激烈战斗"
},
"desc": {
"key": "mainline_desc_10005",
"text": "最后要将阿宝调教成“功夫高手”的一代宗师“师父”华丽丽地出场了,然而有着一身好功夫并不意味着就是完美的,“师父”因为过去犯下的一个错误,一直纠结着没办法释然。"
},
"starreward": 0
},
{
"id": 12006,
"name": {
"key": "mainline_name_10006",
"text": "Chapter 6"
},
"chapter_type": 2,
"map": "scenes_worldmap_01",
"camera": "",
"title": {
"key": "mainline_title_10006",
"text": "第6章下山"
},
"desc": {
"key": "mainline_desc_10006",
"text": "至于那个让人人都如临大敌的太郎则是一只非常自恋的雪豹他等待复仇的这一天已经整整等了20年了可是他做梦也没想到自己等来的竟然是一只大熊猫。"
},
"starreward": 0
},
{
"id": 12007,
"name": {
"key": "mainline_name_10007",
"text": "Chapter 7"
},
"chapter_type": 2,
"map": "scenes_worldmap_01",
"camera": "",
"title": {
"key": "mainline_title_10007",
"text": "第7章事件余波"
},
"desc": {
"key": "mainline_desc_10007",
"text": "激烈的战斗后,阿宝以自己对武功的悟性和师父传授的武术,战胜了太郎,拯救了山谷,为山谷带来了和平。"
},
"starreward": 0
},
{
"id": 12008,
"name": {
"key": "mainline_name_10008",
"text": "Chapter 8"
},
"chapter_type": 2,
"map": "scenes_worldmap_01",
"camera": "",
"title": {
"key": "mainline_title_10008",
"text": "第8章乌龟大师"
},
"desc": {
"key": "mainline_desc_10008",
"text": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
},
"starreward": 0
},
{
"id": 12009,
"name": {
"key": "mainline_name_10009",
"text": "Chapter 9"
},
"chapter_type": 2,
"map": "scenes_worldmap_01",
"camera": "",
"title": {
"key": "mainline_title_10009",
"text": "第9章太狼来袭"
},
"desc": {
"key": "mainline_desc_10009",
"text": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
},
"starreward": 0
},
{
"id": 12010,
"name": {
"key": "mainline_name_10010",
"text": "Chapter 10"
},
"chapter_type": 2,
"map": "scenes_worldmap_01",
"camera": "",
"title": {
"key": "mainline_title_10010",
"text": "第10章乌龟大师"
},
"desc": {
"key": "mainline_desc_10010",
"text": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
},
"starreward": 0
},
{
"id": 12011,
"name": {
"key": "mainline_name_10011",
"text": "Chapter 11"
},
"chapter_type": 2,
"map": "scenes_worldmap_01",
"camera": "",
"title": {
"key": "mainline_title_10011",
"text": "第11章太狼来袭"
},
"desc": {
"key": "mainline_desc_10011",
"text": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
},
"starreward": 0
},
{
"id": 12012,
"name": {
"key": "mainline_name_10012",
"text": "Chapter 12"
},
"chapter_type": 2,
"map": "scenes_worldmap_01",
"camera": "",
"title": {
"key": "mainline_title_10012",
"text": "第12章乌龟大师"
},
"desc": {
"key": "mainline_desc_10012",
"text": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
},
"starreward": 0
}
]

2017
bin/json/game_mainstage.json Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,146 @@
[
{
"id": 1,
"boxid": 11001,
"starnum": 3,
"reward": [
{
"a": "attr",
"t": "diamond",
"n": 100
}
]
},
{
"id": 2,
"boxid": 11001,
"starnum": 6,
"reward": [
{
"a": "attr",
"t": "diamond",
"n": 200
}
]
},
{
"id": 3,
"boxid": 11001,
"starnum": 9,
"reward": [
{
"a": "attr",
"t": "diamond",
"n": 300
}
]
},
{
"id": 4,
"boxid": 11002,
"starnum": 3,
"reward": [
{
"a": "attr",
"t": "diamond",
"n": 100
}
]
},
{
"id": 5,
"boxid": 11002,
"starnum": 6,
"reward": [
{
"a": "attr",
"t": "diamond",
"n": 200
}
]
},
{
"id": 6,
"boxid": 11002,
"starnum": 9,
"reward": [
{
"a": "attr",
"t": "diamond",
"n": 300
}
]
},
{
"id": 7,
"boxid": 11003,
"starnum": 3,
"reward": [
{
"a": "attr",
"t": "diamond",
"n": 100
}
]
},
{
"id": 8,
"boxid": 11003,
"starnum": 6,
"reward": [
{
"a": "attr",
"t": "diamond",
"n": 200
}
]
},
{
"id": 9,
"boxid": 11003,
"starnum": 9,
"reward": [
{
"a": "attr",
"t": "diamond",
"n": 300
}
]
},
{
"id": 10,
"boxid": 11004,
"starnum": 3,
"reward": [
{
"a": "attr",
"t": "diamond",
"n": 100
}
]
},
{
"id": 11,
"boxid": 11004,
"starnum": 6,
"reward": [
{
"a": "attr",
"t": "diamond",
"n": 200
}
]
},
{
"id": 12,
"boxid": 11004,
"starnum": 9,
"reward": [
{
"a": "attr",
"t": "diamond",
"n": 300
}
]
}
]

View File

@ -0,0 +1,23 @@
[
{
"id": 1,
"starName": {
"key": "startype_name_1",
"text": "成功通关"
}
},
{
"id": 2,
"starName": {
"key": "startype_name_2",
"text": "死亡人数不超过{0}人"
}
},
{
"id": 3,
"starName": {
"key": "startype_name_3",
"text": "不超过{0}回合通关"
}
}
]

View File

@ -3005,7 +3005,7 @@
"presonshow": "11021_exhibition",
"presonstory": "11021",
"presondraw": "",
"height": 1,
"height": 30,
"weight": 1,
"ico": "tx_js_11021",
"fight": "ytx_js_11021",

View File

@ -13959,7 +13959,7 @@
"Id": 301013,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 35,
"hppro": 0.6,
@ -14139,7 +14139,7 @@
"Id": 301016,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 40,
"hppro": 0.6,
@ -14319,7 +14319,7 @@
"Id": 301019,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 45,
"hppro": 0.6,
@ -14499,7 +14499,7 @@
"Id": 301022,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 50,
"hppro": 0.6,
@ -14679,7 +14679,7 @@
"Id": 301025,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 55,
"hppro": 0.6,
@ -14859,7 +14859,7 @@
"Id": 301028,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 60,
"hppro": 0.6,
@ -15039,7 +15039,7 @@
"Id": 301031,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 65,
"hppro": 0.6,
@ -15219,7 +15219,7 @@
"Id": 301034,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 70,
"hppro": 0.6,
@ -15399,7 +15399,7 @@
"Id": 301037,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 75,
"hppro": 0.6,
@ -15579,7 +15579,7 @@
"Id": 301040,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 80,
"hppro": 0.6,
@ -15759,7 +15759,7 @@
"Id": 302013,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 35,
"hppro": 0.6,
@ -15939,7 +15939,7 @@
"Id": 302016,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 40,
"hppro": 0.6,
@ -16119,7 +16119,7 @@
"Id": 302019,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 45,
"hppro": 0.6,
@ -16299,7 +16299,7 @@
"Id": 302022,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 50,
"hppro": 0.6,
@ -16479,7 +16479,7 @@
"Id": 302025,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 55,
"hppro": 0.6,
@ -16659,7 +16659,7 @@
"Id": 302028,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 60,
"hppro": 0.6,
@ -16839,7 +16839,7 @@
"Id": 302031,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 65,
"hppro": 0.6,
@ -17019,7 +17019,7 @@
"Id": 302034,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 70,
"hppro": 0.6,
@ -17199,7 +17199,7 @@
"Id": 302037,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 75,
"hppro": 0.6,
@ -17379,7 +17379,7 @@
"Id": 302040,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 80,
"hppro": 0.6,
@ -17559,7 +17559,7 @@
"Id": 303013,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 35,
"hppro": 0.6,
@ -17739,7 +17739,7 @@
"Id": 303016,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 40,
"hppro": 0.6,
@ -17919,7 +17919,7 @@
"Id": 303019,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 45,
"hppro": 0.6,
@ -18099,7 +18099,7 @@
"Id": 303022,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 50,
"hppro": 0.6,
@ -18279,7 +18279,7 @@
"Id": 303025,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 55,
"hppro": 0.6,
@ -18459,7 +18459,7 @@
"Id": 303028,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 60,
"hppro": 0.6,
@ -18639,7 +18639,7 @@
"Id": 303031,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 65,
"hppro": 0.6,
@ -18819,7 +18819,7 @@
"Id": 303034,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 70,
"hppro": 0.6,
@ -18999,7 +18999,7 @@
"Id": 303037,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 75,
"hppro": 0.6,
@ -19179,7 +19179,7 @@
"Id": 303040,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 110215,
"lv": 80,
"hppro": 0.6,
@ -19359,7 +19359,7 @@
"Id": 401003,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 35,
"hppro": 0.6,
@ -19539,7 +19539,7 @@
"Id": 401006,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 40,
"hppro": 0.6,
@ -19719,7 +19719,7 @@
"Id": 401009,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 45,
"hppro": 0.6,
@ -19899,7 +19899,7 @@
"Id": 401012,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 50,
"hppro": 0.6,
@ -20079,7 +20079,7 @@
"Id": 401015,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 55,
"hppro": 0.6,
@ -20259,7 +20259,7 @@
"Id": 401018,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 60,
"hppro": 0.6,
@ -20439,7 +20439,7 @@
"Id": 401021,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 65,
"hppro": 0.6,
@ -20619,7 +20619,7 @@
"Id": 401024,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 70,
"hppro": 0.6,
@ -20799,7 +20799,7 @@
"Id": 401027,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 75,
"hppro": 0.6,
@ -20979,7 +20979,7 @@
"Id": 401030,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 80,
"hppro": 0.6,
@ -21159,7 +21159,7 @@
"Id": 402003,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 35,
"hppro": 0.6,
@ -21339,7 +21339,7 @@
"Id": 402006,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 40,
"hppro": 0.6,
@ -21519,7 +21519,7 @@
"Id": 402009,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 45,
"hppro": 0.6,
@ -21699,7 +21699,7 @@
"Id": 402012,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 50,
"hppro": 0.6,
@ -21879,7 +21879,7 @@
"Id": 402015,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 55,
"hppro": 0.6,
@ -22059,7 +22059,7 @@
"Id": 402018,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 60,
"hppro": 0.6,
@ -22239,7 +22239,7 @@
"Id": 402021,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 65,
"hppro": 0.6,
@ -22419,7 +22419,7 @@
"Id": 402024,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 70,
"hppro": 0.6,
@ -22599,7 +22599,7 @@
"Id": 402027,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 75,
"hppro": 0.6,
@ -22779,7 +22779,7 @@
"Id": 402030,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 80,
"hppro": 0.6,
@ -22959,7 +22959,7 @@
"Id": 403003,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 35,
"hppro": 0.6,
@ -23139,7 +23139,7 @@
"Id": 403006,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 40,
"hppro": 0.6,
@ -23319,7 +23319,7 @@
"Id": 403009,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 45,
"hppro": 0.6,
@ -23499,7 +23499,7 @@
"Id": 403012,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 50,
"hppro": 0.6,
@ -23679,7 +23679,7 @@
"Id": 403015,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 55,
"hppro": 0.6,
@ -23859,7 +23859,7 @@
"Id": 403018,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 60,
"hppro": 0.6,
@ -24039,7 +24039,7 @@
"Id": 403021,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 65,
"hppro": 0.6,
@ -24219,7 +24219,7 @@
"Id": 403024,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 70,
"hppro": 0.6,
@ -24399,7 +24399,7 @@
"Id": 403027,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 75,
"hppro": 0.6,
@ -24579,7 +24579,7 @@
"Id": 403030,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 80,
"hppro": 0.6,
@ -24759,7 +24759,7 @@
"Id": 404003,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 35,
"hppro": 0.6,
@ -24939,7 +24939,7 @@
"Id": 404006,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 40,
"hppro": 0.6,
@ -25119,7 +25119,7 @@
"Id": 404009,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 45,
"hppro": 0.6,
@ -25299,7 +25299,7 @@
"Id": 404012,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 50,
"hppro": 0.6,
@ -25479,7 +25479,7 @@
"Id": 404015,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 55,
"hppro": 0.6,
@ -25659,7 +25659,7 @@
"Id": 404018,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 60,
"hppro": 0.6,
@ -25839,7 +25839,7 @@
"Id": 404021,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 65,
"hppro": 0.6,
@ -26019,7 +26019,7 @@
"Id": 404024,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 70,
"hppro": 0.6,
@ -26199,7 +26199,7 @@
"Id": 404027,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 75,
"hppro": 0.6,
@ -26379,7 +26379,7 @@
"Id": 404030,
"pos": 4,
"captainId": 0,
"IsBoss": 0,
"IsBoss": 1,
"monster": 350015,
"lv": 80,
"hppro": 0.6,

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1675,11 +1675,11 @@
},
"Desc": {
"key": "skill_buffdes_390001311",
"text": "生命提升25%"
"text": "生命提升24%"
},
"BuffType": 24,
"EffectArgu": [
250
240
],
"BufParNum": 1,
"RelyCheckArgu": [],
@ -2880,7 +2880,7 @@
{
"Id": 390001429,
"Name": {
"key": "skill_buff_390001428",
"key": "skill_buff_390001429",
"text": "每吸收1个减益状态可增加我方全体5%的行动值"
},
"Desc": {
@ -2900,5 +2900,153 @@
"buffIcon": "",
"buffeffect": "",
"buffpos": ""
},
{
"Id": 390001430,
"Name": {
"key": "skill_buff_390001430",
"text": "流血"
},
"Desc": {
"key": "skill_buffdes_390001430",
"text": ""
},
"BuffType": 0,
"EffectArgu": [],
"BufParNum": 1,
"RelyCheckArgu": [],
"CoexistCheckArgu": [],
"Effect": 1,
"AddEffect": false,
"RemoveType": true,
"OverlayTimes": 1,
"SameID": true,
"buffIcon": "ty_zd_buff_j011",
"buffeffect": "",
"buffpos": "头"
},
{
"Id": 390001431,
"Name": {
"key": "skill_buff_390001431",
"text": "虎啸(狂暴)"
},
"Desc": {
"key": "skill_buffdes_390001431",
"text": "下一次攻击暴击率提升100%暴击伤害提升40%。"
},
"BuffType": 0,
"EffectArgu": [],
"BufParNum": 0,
"RelyCheckArgu": [],
"CoexistCheckArgu": [],
"Effect": 0,
"AddEffect": false,
"RemoveType": false,
"OverlayTimes": 0,
"SameID": false,
"buffIcon": "",
"buffeffect": "",
"buffpos": ""
},
{
"Id": 390001432,
"Name": {
"key": "skill_buff_390001432",
"text": "魔之秘语"
},
"Desc": {
"key": "skill_buffdes_390001432",
"text": "携带者受到伤害时对攻击者反弹所受伤害60%的真实伤害;携带者回合开始时净化其1个减益。"
},
"BuffType": 102,
"EffectArgu": [],
"BufParNum": 0,
"RelyCheckArgu": [],
"CoexistCheckArgu": [],
"Effect": 1,
"AddEffect": false,
"RemoveType": true,
"OverlayTimes": 1,
"SameID": true,
"buffIcon": "ty_zd_buff_j011",
"buffeffect": "",
"buffpos": "头"
},
{
"Id": 390001433,
"Name": {
"key": "skill_buff_390001433",
"text": "【毒牙】"
},
"Desc": {
"key": "skill_buffdes_390001433",
"text": "无法被附加【中毒】状态受击时有概率为攻击者附加1回合【中毒】"
},
"BuffType": 0,
"EffectArgu": [],
"BufParNum": 0,
"RelyCheckArgu": [],
"CoexistCheckArgu": [],
"Effect": 1,
"AddEffect": false,
"RemoveType": true,
"OverlayTimes": 1,
"SameID": true,
"buffIcon": "ty_zd_buff_j011",
"buffeffect": "",
"buffpos": "头"
},
{
"Id": 390001434,
"Name": {
"key": "skill_buff_390001434",
"text": "护盾"
},
"Desc": {
"key": "skill_buffdes_390001434",
"text": "护盾量为最大生命值22%"
},
"BuffType": 21,
"EffectArgu": [
1,
1,
220
],
"BufParNum": 1,
"RelyCheckArgu": [],
"CoexistCheckArgu": [],
"Effect": 0,
"AddEffect": false,
"RemoveType": true,
"OverlayTimes": 1,
"SameID": false,
"buffIcon": "ty_zd_buff_z010",
"buffeffect": "",
"buffpos": "头"
},
{
"Id": 390001435,
"Name": {
"key": "skill_buff_390001435",
"text": "【奥术】(疾风)"
},
"Desc": {
"key": "skill_buffdes_390001435",
"text": "每层提高30点速度"
},
"BuffType": 103,
"EffectArgu": [],
"BufParNum": 1,
"RelyCheckArgu": [],
"CoexistCheckArgu": [],
"Effect": 0,
"AddEffect": false,
"RemoveType": false,
"OverlayTimes": 3,
"SameID": false,
"buffIcon": "ty_zd_buff_z010",
"buffeffect": "",
"buffpos": "头"
}
]

View File

@ -2105,5 +2105,197 @@
"Callback": [
243004214
]
},
{
"Id": 444001113,
"When": 10,
"FromCheck": "Target=3",
"TargetCheck": "3",
"MainSkillCheck": "",
"AfterSkillCheck": "",
"BuffCheck": "",
"AddCon": [],
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
"Callback": [
244001114
]
},
{
"Id": 444001213,
"When": 10,
"FromCheck": "Target=3",
"TargetCheck": "3",
"MainSkillCheck": "",
"AfterSkillCheck": "",
"BuffCheck": "",
"AddCon": [],
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
"Callback": [
244001214
]
},
{
"Id": 435004211,
"When": 2,
"FromCheck": "Target=3",
"TargetCheck": "3",
"MainSkillCheck": "",
"AfterSkillCheck": "",
"BuffCheck": "",
"AddCon": [],
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
"Callback": [
235004212
]
},
{
"Id": 424006211,
"When": 21,
"FromCheck": "Target=3",
"TargetCheck": "3",
"MainSkillCheck": "",
"AfterSkillCheck": "",
"BuffCheck": "",
"AddCon": [],
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
"Callback": [
224006212
]
},
{
"Id": 433004312,
"When": 10,
"FromCheck": "Target=3",
"TargetCheck": "",
"MainSkillCheck": "",
"AfterSkillCheck": "",
"BuffCheck": "",
"AddCon": [],
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
"Callback": [
233004313
]
},
{
"Id": 453006211,
"When": 4,
"FromCheck": "Target=3",
"TargetCheck": "Target=3,Hpproless=500",
"MainSkillCheck": "",
"AfterSkillCheck": "",
"BuffCheck": "",
"AddCon": [],
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
"Callback": [
253006213
]
},
{
"Id": 453006311,
"When": 4,
"FromCheck": "Target=3",
"TargetCheck": "Target=1",
"MainSkillCheck": "",
"AfterSkillCheck": "",
"BuffCheck": "BuffID=390001122",
"AddCon": [],
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
"Callback": [
253006313
]
},
{
"Id": 425002211,
"When": 2,
"FromCheck": "Target=3",
"TargetCheck": "",
"MainSkillCheck": "",
"AfterSkillCheck": "",
"BuffCheck": "",
"AddCon": [],
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
"Callback": [
225002213
]
},
{
"Id": 434005211,
"When": 16,
"FromCheck": "Target=2",
"TargetCheck": "Target=3HasBuff=390001433",
"MainSkillCheck": "",
"AfterSkillCheck": "",
"BuffCheck": "",
"AddCon": [],
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
"Callback": [
234005212
]
},
{
"Id": 425002215,
"When": 19,
"FromCheck": "",
"TargetCheck": "Target=1",
"MainSkillCheck": "",
"AfterSkillCheck": "",
"BuffCheck": "Effect=1,Succ=1",
"AddCon": [],
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
"Callback": [
225002216
]
},
{
"Id": 445002211,
"When": 21,
"FromCheck": "Target=3,HasBuff=2",
"TargetCheck": "",
"MainSkillCheck": "",
"AfterSkillCheck": "",
"BuffCheck": "",
"AddCon": [],
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
"Callback": [
245002212
]
},
{
"Id": 445002213,
"When": 21,
"FromCheck": "Target=2",
"TargetCheck": "",
"MainSkillCheck": "",
"AfterSkillCheck": "",
"BuffCheck": "",
"AddCon": [],
"PasPr": 1000,
"Type": "CallSkillPas",
"MaxEmitTimes": 1,
"Callback": [
245002214
]
}
]

View File

@ -168,7 +168,7 @@
"vip_privilege": [
20104,
20203,
20701
20601
]
},
{
@ -212,7 +212,7 @@
"vip_privilege": [
20105,
20204,
20702
20602
]
},
{
@ -256,7 +256,7 @@
"vip_privilege": [
20106,
20205,
20703
20603
]
},
{
@ -300,10 +300,8 @@
"vip_privilege": [
20107,
20206,
20704,
20801,
20901,
21001
20604,
20701
]
},
{
@ -347,10 +345,8 @@
"vip_privilege": [
20108,
20207,
20705,
20802,
20902,
21002
20605,
20702
]
},
{
@ -394,10 +390,8 @@
"vip_privilege": [
20109,
20208,
20706,
20803,
20903,
21003
20606,
20703
]
},
{
@ -441,12 +435,10 @@
"vip_privilege": [
20110,
20209,
20707,
20804,
20904,
21004,
20607,
20704,
20401,
20501
20301
]
},
{
@ -490,12 +482,10 @@
"vip_privilege": [
20111,
20210,
20708,
20805,
20905,
21005,
20608,
20705,
20402,
20502
20302
]
},
{
@ -539,12 +529,10 @@
"vip_privilege": [
20112,
20211,
20709,
20806,
20906,
21006,
20609,
20706,
20403,
20503
20303
]
},
{
@ -588,12 +576,11 @@
"vip_privilege": [
20113,
20212,
20710,
20807,
20907,
21007,
20610,
20707,
20404,
20504
20304,
20501
]
},
{
@ -637,12 +624,11 @@
"vip_privilege": [
20114,
20213,
20711,
20808,
20908,
21008,
20611,
20708,
20405,
20505
20305,
20502
]
},
{
@ -686,12 +672,11 @@
"vip_privilege": [
20115,
20214,
20712,
20809,
20909,
21009,
20612,
20709,
20406,
20506
20306,
20503
]
}
]

View File

@ -8,7 +8,9 @@
"SelectableHero": [],
"LockSlots": [],
"AssistTeam": 0,
"EventList": [],
"EventList": [
21
],
"playexp": {
"a": "attr",
"t": "exp",

View File

@ -1988,9 +1988,15 @@
4001
],
"completetask": 0,
"auto_accept": 0,
"auto_accept": 1,
"overtips": 1,
"reword": []
"reword": [
{
"a": "hero",
"t": "44911",
"n": 2
}
]
},
{
"key": 20020,
@ -2007,7 +2013,7 @@
],
"getafter_event": [
2,
401
1001
],
"completetask": 0,
"auto_accept": 0,
@ -2029,7 +2035,7 @@
],
"getafter_event": [
2,
401
1001
],
"completetask": 0,
"auto_accept": 0,
@ -2051,7 +2057,7 @@
],
"getafter_event": [
2,
401
1001
],
"completetask": 0,
"auto_accept": 0,
@ -2073,7 +2079,7 @@
],
"getafter_event": [
2,
401
1001
],
"completetask": 0,
"auto_accept": 0,
@ -2095,7 +2101,7 @@
],
"getafter_event": [
2,
401
1001
],
"completetask": 0,
"auto_accept": 0,

View File

@ -6,6 +6,7 @@ import (
"go_dreamfactory/cmd/v2/service"
"go_dreamfactory/cmd/v2/service/observer"
"net"
"runtime"
"strings"
"sync"
"time"
@ -14,13 +15,18 @@ import (
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/theme"
"fyne.io/fyne/v2/widget"
"github.com/go-ping/ping"
"github.com/sirupsen/logrus"
"github.com/spf13/cast"
)
type portStatus struct {
port int
err string
}
type appPing struct {
appAdapter
resultCh chan int
resultCh chan portStatus
}
func (this *appPing) LazyInit(ptService service.PttService, obs observer.Observer) error {
@ -33,36 +39,59 @@ func (this *appPing) LazyInit(ptService service.PttService, obs observer.Observe
targetHost.PlaceHolder = "目标主机Ip"
portEntry := widget.NewMultiLineEntry()
portEntry.Text = "80,3306,6379"
portEntry.Text = "20,21,22,80,1521,2379,2380,3306,6379,8080,8020,8500,9000,9090,13306,50070,27019,10013,8300,8301,8600,10012,10011"
form := widget.NewForm(
widget.NewFormItem("主机", targetHost),
widget.NewFormItem("端口", portEntry),
)
// result
result := widget.NewMultiLineEntry()
result.Disable()
form.OnSubmit = func() {
result.Text = ""
if portEntry.Text == "" {
return
}
this.resultCh = make(chan int)
this.resultCh = make(chan portStatus)
ports := strings.Split(portEntry.Text, ",")
this.ping(targetHost.Text, ports)
pinger, err := ping.NewPinger(targetHost.Text)
if err != nil {
panic(err)
}
pinger.Count = 3
if runtime.GOOS == "windows" {
pinger.SetPrivileged(true)
}
var msgs []string
pinger.OnRecv = func(p *ping.Packet) {
msgs = append(msgs, fmt.Sprintf("来自:%s 的回复 字节=%d 时间=%dms TTL=%d",
p.IPAddr.String(),
p.Nbytes,
p.Rtt.Milliseconds(),
p.Ttl))
result.Text = strings.Join(msgs, "\n")
result.Refresh()
}
if err := pinger.Run(); err != nil {
logrus.Error(err)
}
ip, err := net.ResolveIPAddr("ip", targetHost.Text)
if err != nil {
logrus.Error(err)
return
}
this.ping(ip.String(), ports)
for p := range this.resultCh {
for _, v := range ports {
if cast.ToInt(v) == p {
msgs = append(msgs, fmt.Sprintf("端口:%d OK", p))
} else {
msgs = append(msgs, fmt.Sprintf("端口:%s ERR", v))
}
result.Text = strings.Join(msgs, "\n")
result.Refresh()
}
msgs = append(msgs, fmt.Sprintf("端口:%d %s", p.port, p.err))
result.Text = strings.Join(msgs, "\n")
result.Refresh()
}
}
form.Items[1].HintText = "多个端口使用英文,号分隔"
@ -81,11 +110,14 @@ func (this *appPing) ping(targetHost string, ports []string) {
go func(p int) {
defer wg.Done()
_, err := net.DialTimeout("tcp", fmt.Sprintf("%s:%d", targetHost, p), time.Millisecond*500)
var errStr string
if err == nil {
this.resultCh <- p
errStr = "OK"
} else {
errStr = "ERR"
logrus.Error(err)
}
this.resultCh <- portStatus{port: p, err: errStr}
}(cast.ToInt(port))
}

View File

@ -77,6 +77,7 @@ const (
ModuleCombat core.M_Modules = "combat" //关卡编辑
ModuleEnchant core.M_Modules = "enchant" //附魔
ModuleAutoBattle core.M_Modules = "autobattle" //自动战斗
ModuleMline core.M_Modules = "mline" //主线模块
)
//数据表名定义处
@ -212,6 +213,9 @@ const (
// 自动战斗
TableAuto = "autoBattle"
///新主线数据表
TableMline = "mline"
)
//RPC服务接口定义处
@ -695,3 +699,8 @@ const (
PrivilegeType9 //武馆每日最大练功时间
PrivilegeType10 //铁匠铺每日最大锻造时间
)
const (
MainStarType1 = 1 //成功通关
MainStarType2 = 1 //死亡人数不超过{0}人
MainStarType3 = 1 //不超过{0}回合通关
)

View File

@ -6,23 +6,23 @@ import (
)
const (
MainlineGetListResp = "getlist"
MainlineChallengeResp = "challenge"
MainlineChallengeOverResp = "challengeover"
MainlineGetRewardResp = "getreward"
MainlineNewChapterPush = "newchapter"
MlineGetListResp = "getlist"
MlineChallengeResp = "challenge"
MlineCleanStageResp = "cleanstage"
MlineChallengeOverResp = "challengeover"
MlineGetRewardResp = "getreward"
)
type apiComp struct {
modules.MCompGate
service core.IService
module *Mainline
module *Mline
}
//组件初始化接口
func (this *apiComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
err = this.MCompGate.Init(service, module, comp, options)
this.module = module.(*Mainline)
this.module = module.(*Mline)
this.service = service
return
}

View File

@ -5,68 +5,100 @@ import (
"go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"go.mongodb.org/mongo-driver/bson/primitive"
"google.golang.org/protobuf/proto"
)
//参数校验
func (this *apiComp) ChallengeCheck(session comm.IUserSession, req *pb.MainlineChallengeReq) (code pb.ErrorCode) {
if req.MainlineId == 0 || req.ChapterObj == "" || req.Leadpos >= 5 || len(req.Teamids) != 5 || req.Leadpos < 0 {
func (this *apiComp) ChallengeCheck(session comm.IUserSession, req *pb.MlineChallengeReq) (code pb.ErrorCode) {
if req.StageId == 0 {
code = pb.ErrorCode_ReqParameterError
return
}
return
}
///挑战主线关卡
func (this *apiComp) Challenge(session comm.IUserSession, req *pb.MainlineChallengeReq) (code pb.ErrorCode, data proto.Message) {
func (this *apiComp) Challenge(session comm.IUserSession, req *pb.MlineChallengeReq) (code pb.ErrorCode, data proto.Message) {
var (
curChapter *pb.DBMainline // 当前章节信息
ps int32
curChapter *pb.DBMline // 当前章节信息
ps int32 // 消耗的体力
psAnt *cfg.Gameatn
stageConf *cfg.GameMainStageData
)
code = this.ChallengeCheck(session, req)
if code != pb.ErrorCode_Success {
if code = this.ChallengeCheck(session, req); code != pb.ErrorCode_Success {
return // 参数校验失败直接返回
}
// 校验关卡存不存在
curChapter = this.module.modelMainline.getOneChapterInfo(session.GetUserId(), req.ChapterObj)
if curChapter == nil {
code = pb.ErrorCode_MainlineNotFound
return
}
node := this.module.configure.GetMainlineConfigData(int32(req.MainlineId), curChapter.Intensity)
if node == nil { // 配置文件校验
if stageConf = this.module.configure.GetMainStageConf(req.StageId); stageConf == nil { // 配置文件校验
code = pb.ErrorCode_MainlineNotFindChapter
return
}
for _, v := range curChapter.BranchID {
if v == int32(req.MainlineId) { // 重复挑战
code = pb.ErrorCode_MainlineNotFindChapter
return
}
if v == int32(req.MainlineId) {
list, _ := this.module.modelMline.getMainlineList(session.GetUserId())
for _, v := range list {
if stageConf.Chapterid == v.ChapterId {
curChapter = v
break
}
}
if curChapter.Ps != 0 {
if code = this.module.ConsumeRes(session, node.PsMg, true); code != pb.ErrorCode_Success { // 扣1点
return
if curChapter == nil { // 校验是不是新的数据
if stageConf.Previoustage == 0 { // 创建一条新的章节数据
// 新章节数据校验
chapter := this.module.configure.GetPreMainChapter(req.StageId)
bCheck := false
if chapter == 0 {
bCheck = true
} else {
for _, v := range list {
if chapter == v.ChapterId { // 有上一章节数据
// 获取该章节最后一关卡ID
stage := this.module.configure.GetLastStageIDByChapter(chapter)
if _, ok := v.Star[stage]; ok {
bCheck = true
}
break
}
}
}
if bCheck {
newData := &pb.DBMline{
Id: primitive.NewObjectID().Hex(),
Uid: session.GetUserId(),
CType: stageConf.Episodetype,
ChapterId: stageConf.Chapterid,
StageId: stageConf.Id,
Star: map[int32]int32{},
Award: map[int32]bool{},
Ps: map[int32]int32{},
}
this.module.modelMline.addNewChapter(session.GetUserId(), newData)
} else {
code = pb.ErrorCode_MainlineNotFindChapter
return
}
}
}
if v, ok := curChapter.Ps[req.StageId]; ok && v > 0 {
if v != 0 { // 扣1点
if code = this.module.ConsumeRes(session, stageConf.PsMg, true); code != pb.ErrorCode_Success { // 扣1点
return
}
}
} else {
for _, v := range node.PsConsume {
for _, v := range stageConf.PsConsume {
if v.A == "attr" && v.T == "ps" {
ps += v.N
}
}
for _, v := range node.PsMg {
for _, v := range stageConf.PsMg {
if v.A == "attr" && v.T == "ps" {
ps += v.N
}
}
psAnt = &cfg.Gameatn{
psAnt = &cfg.Gameatn{ // 构建一个atn 对象
A: "attr",
T: "ps",
N: ps,
@ -75,34 +107,26 @@ func (this *apiComp) Challenge(session comm.IUserSession, req *pb.MainlineChalle
return
}
curChapter.Ps = ps
update := map[string]interface{}{
"ps": ps,
}
curChapter.Ps[req.StageId] = ps
this.module.modelMline.modifyMlineData(session.GetUserId(), curChapter.Id, map[string]interface{}{
"ps": curChapter.Ps,
})
err := this.module.modelMainline.modifyMainlineData(session.GetUserId(), curChapter.Id, update)
if err != nil {
code = pb.ErrorCode_DBError
return
}
}
code, record := this.module.battle.CreatePveBattle(session, &pb.BattlePVEReq{
Ptype: pb.PlayType_mainline,
Title: "",
Format: &pb.BattleFormation{
Leadpos: req.Leadpos,
Format: req.Teamids,
},
Mformat: node.FormatList,
Ptype: pb.PlayType_mainline,
Title: "",
Format: req.Battle,
Mformat: stageConf.FormatList,
})
if code != pb.ErrorCode_Success {
return
}
session.SendMsg(string(this.module.GetType()), MainlineChallengeResp, &pb.MainlineChallengeResp{
Info: &pb.BattleInfo{Id: record.Id, Title: record.Title, Btype: record.Btype, Ptype: record.Ptype, RedCompId: record.RedCompId, Redflist: record.Redflist, BlueCompId: record.BlueCompId, Buleflist: record.Buleflist},
ChapterObj: req.ChapterObj,
MainlineId: req.GetMainlineId(),
session.SendMsg(string(this.module.GetType()), MlineChallengeResp, &pb.MlineChallengeResp{
Info: &pb.BattleInfo{Id: record.Id, Title: record.Title, Btype: record.Btype, Ptype: record.Ptype, RedCompId: record.RedCompId, Redflist: record.Redflist, BlueCompId: record.BlueCompId, Buleflist: record.Buleflist},
StageId: req.StageId,
})
return
}

View File

@ -6,13 +6,12 @@ import (
cfg "go_dreamfactory/sys/configure/structs"
"go.mongodb.org/mongo-driver/bson/primitive"
"google.golang.org/protobuf/proto"
)
//参数校验
func (this *apiComp) ChallengeOverCheck(session comm.IUserSession, req *pb.MainlineChallengeOverReq) (code pb.ErrorCode) {
if req.MainlineId == 0 {
func (this *apiComp) ChallengeOverCheck(session comm.IUserSession, req *pb.MlineChallengeOverReq) (code pb.ErrorCode) {
if req.StageId == 0 {
code = pb.ErrorCode_ReqParameterError
return
}
@ -20,134 +19,132 @@ func (this *apiComp) ChallengeOverCheck(session comm.IUserSession, req *pb.Mainl
}
///挑战主线关卡
func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.MainlineChallengeOverReq) (code pb.ErrorCode, data proto.Message) {
func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.MlineChallengeOverReq) (code pb.ErrorCode, data proto.Message) {
var (
mainline *pb.DBMainline // 当前章节信息
res []*cfg.Gameatn // 小章节奖励
isWin bool
user *pb.DBUser
hero []string //新的英雄
newhero []string //新的英雄
curChapter *pb.DBMline // 当前章节信息
stageConf *cfg.GameMainStageData
isWin bool
first bool // 判断是否是首通
update map[string]interface{}
rsp *pb.MlineChallengeOverResp
star int32 // 评星
)
res = make([]*cfg.Gameatn, 0)
hero = make([]string, 0)
newhero = make([]string, 0)
rsp = &pb.MlineChallengeOverResp{}
update = make(map[string]interface{})
code = this.ChallengeOverCheck(session, req)
if code != pb.ErrorCode_Success {
return // 参数校验失败直接返回
}
// 校验关卡存不存在
mainline = this.module.modelMainline.getOneChapterInfo(session.GetUserId(), req.ChapterObj)
if mainline == nil {
code = pb.ErrorCode_MainlineNotFound
return
}
node := this.module.configure.GetMainlineConfigData(int32(req.MainlineId), mainline.Intensity)
if node == nil { // 配置文件校验
if stageConf = this.module.configure.GetMainStageConf(req.StageId); stageConf == nil { // 配置文件校验
code = pb.ErrorCode_MainlineNotFindChapter
return
}
for _, v := range mainline.BranchID {
if v == int32(req.MainlineId) { // 重复挑战
code = pb.ErrorCode_MainlineNotFindChapter
return
list, _ := this.module.modelMline.getMainlineList(session.GetUserId())
for _, v := range list {
if stageConf.Chapterid == v.ChapterId {
curChapter = v
break
}
}
if curChapter == nil {
code = pb.ErrorCode_MainlineNotFindChapter
return
}
// 校验通过
code, isWin = this.module.battle.CheckBattleReport(session, req.Report)
if code != pb.ErrorCode_Success {
return
}
if !isWin { // 战斗失败直接返回
// 返还
mainline.Ps = 0
this.module.modelMainline.modifyMainlineData(session.GetUserId(), mainline.Id, map[string]interface{}{
"ps": 0,
})
if code = this.module.DispenseRes(session, node.PsConsume, true); code != pb.ErrorCode_Success { // 返还预扣体力
return
if !isWin { // 战斗失败返还扣除的体力
if v, ok := curChapter.Ps[req.StageId]; ok && v > 0 {
if code = this.module.DispenseRes(session, stageConf.PsConsume, true); code != pb.ErrorCode_Success { // 返还预扣体力
return
}
}
curChapter.Ps[req.StageId] = 0 // 清空预扣体力值
update["ps"] = curChapter.Ps
this.module.modelMline.modifyMlineData(session.GetUserId(), curChapter.Id, update)
code = pb.ErrorCode_BattleNoWin
return
}
res = append(res, node.Award...)
for _, v := range node.Award {
if v.A == comm.HeroType {
hero = append(hero, v.T)
}
}
if len(hero) > 0 {
ishave := this.module.ModuleUser.CheckTujianHero(session, hero)
for i, v := range ishave {
if !v {
newhero = append(newhero, hero[i])
}
}
}
user = this.module.ModuleUser.GetUser(session.GetUserId())
mainline.MainlineId = int32(req.MainlineId)
mainline.BranchID = append(mainline.BranchID, int32(req.MainlineId))
mainline.Ps = 0 // 重置预扣体力
update := map[string]interface{}{
"mainlineId": req.MainlineId,
"chapterId": mainline.ChapterId,
"branchID": mainline.BranchID,
"ps": 0,
}
if node.Episodetype == comm.MainLineBoss { // 打完boss 设置领奖状态
update["awaredID"] = pb.AwaredType_TypeAvailable
mainline.AwaredID = pb.AwaredType_TypeAvailable
}
err := this.module.modelMainline.modifyMainlineData(session.GetUserId(), mainline.Id, update)
if err != nil {
code = pb.ErrorCode_DBError
// 评星规则
if len(stageConf.Star) != len(stageConf.StarType) || len(stageConf.Star) != len(stageConf.StarValue) || len(stageConf.StarValue) != len(stageConf.StarType) {
this.module.Errorf("配置错误, 参数数量不一致,StageId: %d", req.StageId)
code = pb.ErrorCode_ConfigNoFound
return
}
if node.Episodetype == comm.MainLineBoss { // 挑战完成 boss关
_data := &pb.DBMainline{}
conf := this.module.configure.GetMainlineChapter(mainline.ChapterId + 1)
_data.Id = primitive.NewObjectID().Hex()
_data.ChapterId = mainline.ChapterId + 1
_data.Intensity = mainline.Intensity
if conf == nil { // 这里就是切换下一个难度了
if mainline.Intensity < comm.MaxMainlineIntensity {
_data.Intensity = mainline.Intensity + 1 // 难度+1
_data.ChapterId = 1 // 默认第一章节
for i, v := range stageConf.StarType {
if v == comm.MainStarType1 {
star += stageConf.Star[i]
} else if v == comm.MainStarType2 {
if req.Report.Death <= stageConf.StarValue[i] {
star += stageConf.Star[i]
}
} else if v == comm.MainStarType3 {
if req.Report.Round <= stageConf.StarValue[i] {
star += stageConf.Star[i]
}
}
_mData := make(map[string]interface{}, 0)
_data.Uid = session.GetUserId()
_mData[_data.Id] = _data
this.module.modelMainline.addNewChapter(session.GetUserId(), _mData)
session.SendMsg(string(this.module.GetType()), MainlineNewChapterPush, &pb.MainlineNewChapterPush{Data: _data}) // 推送新的章节
}
// 发奖
if code = this.module.DispenseRes(session, res, true); code != pb.ErrorCode_Success {
this.module.Debugf("DispenseRes err:+%v", res)
// 判断是不是首通
if _, ok := curChapter.Star[req.StageId]; !ok {
first = true
curChapter.Star[req.StageId] = star // 星级赋值
update["star"] = curChapter.Star
}
// 加经验
if node.Episodetype != 5 && node.Episodetype != 7 {
if curChapter.Star[req.StageId] > star { // 给最高星
curChapter.Star[req.StageId] = star
update["star"] = curChapter.Star
}
curChapter.Ps[req.StageId] = 0 // 清空预扣体力值
update["ps"] = curChapter.Ps
curChapter.StageId = req.StageId
update["stageId"] = curChapter.StageId
if first { // 发奖
if code = this.module.DispenseRes(session, stageConf.Firstaward, true); code != pb.ErrorCode_Success {
this.module.Debugf("Mline first DispenseRes err:+%v", stageConf.Firstaward)
}
for _, v := range stageConf.Firstaward {
rsp.Reward = append(rsp.Reward, &pb.UserAssets{
A: v.A,
T: v.T,
N: v.N,
})
}
} else {
if code = this.module.DispenseRes(session, stageConf.Commonaward, true); code != pb.ErrorCode_Success {
this.module.Debugf("Mline Commonaward DispenseRes err:+%v", stageConf.Commonaward)
}
for _, v := range stageConf.Commonaward {
rsp.Reward = append(rsp.Reward, &pb.UserAssets{
A: v.A,
T: v.T,
N: v.N,
})
}
}
// 加英雄经验
if stageConf.HeroExp > 0 {
if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 {
for _, v := range req.Report.Info.Redflist[0].Team {
if node.Exp > 0 && !v.Ishelp { // 助战英雄不加经验
this.module.ModuleHero.AddHeroExp(session, v.Oid, node.Exp)
if !v.Ishelp { // 助战英雄不加经验
this.module.ModuleHero.AddHeroExp(session, v.Oid, stageConf.HeroExp)
}
}
}
}
session.SendMsg(string(this.module.GetType()), MainlineChallengeOverResp, &pb.MainlineChallengeOverResp{Data: mainline, Newheros: newhero, Olv: user.Lv})
this.module.modelMline.modifyMlineData(session.GetUserId(), curChapter.Id, update)
rsp.Data = curChapter
session.SendMsg(string(this.module.GetType()), MlineChallengeOverResp, rsp) // 数据推送
// 主线任务统计 Rtype60
this.module.ModuleRtask.SendToRtask(session, comm.Rtype60, 1)
this.module.ModuleRtask.SendToRtask(session, comm.Rtype61, int32(req.MainlineId))
this.module.ModuleRtask.SendToRtask(session, comm.Rtype61, int32(req.StageId))
return
}

View File

@ -0,0 +1,65 @@
package mline
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"google.golang.org/protobuf/proto"
)
//参数校验
func (this *apiComp) CleanStageCheck(session comm.IUserSession, req *pb.MlineCleanStageReq) (code pb.ErrorCode) {
if req.StageId == 0 {
code = pb.ErrorCode_ReqParameterError
}
return
}
///挑战主线关卡
func (this *apiComp) CleanStage(session comm.IUserSession, req *pb.MlineCleanStageReq) (code pb.ErrorCode, data proto.Message) {
var (
curChapter *pb.DBMline // 当前章节信息
stageConf *cfg.GameMainStageData
rsp *pb.MlineCleanStageResp
)
rsp = &pb.MlineCleanStageResp{}
if code = this.CleanStageCheck(session, req); code != pb.ErrorCode_Success {
return // 参数校验失败直接返回
}
if stageConf = this.module.configure.GetMainStageConf(req.StageId); stageConf == nil { // 配置文件校验
code = pb.ErrorCode_MainlineNotFindChapter
return
}
list, _ := this.module.modelMline.getMainlineList(session.GetUserId())
for _, v := range list {
if stageConf.Chapterid == v.ChapterId {
curChapter = v
break
}
}
if curChapter == nil { // 校验是不是新的数据
code = pb.ErrorCode_MainlineNotFindChapter
return
}
if v, ok := curChapter.Star[req.StageId]; !ok || v < 3 {
code = pb.ErrorCode_MainlineNoEnoughStar
return
}
if code = this.module.DispenseRes(session, stageConf.Commonaward, true); code != pb.ErrorCode_Success {
this.module.Debugf("Mline Clean DispenseRes err:+%v", stageConf.Commonaward)
return
}
rsp.StageId = req.StageId
for _, v := range stageConf.Commonaward {
rsp.Reward = append(rsp.Reward, &pb.UserAssets{
A: v.A,
T: v.T,
N: v.N,
})
}
session.SendMsg(string(this.module.GetType()), MlineChallengeResp, rsp)
return
}

View File

@ -3,63 +3,75 @@ package mline
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"google.golang.org/protobuf/proto"
)
//参数校验
func (this *apiComp) GetRewardCheck(session comm.IUserSession, req *pb.MainlineGetRewardReq) (code pb.ErrorCode) {
if req.ChapterObj == "" {
func (this *apiComp) GetRewardCheck(session comm.IUserSession, req *pb.MlineGetRewardReq) (code pb.ErrorCode) {
if req.CId == 0 || req.Star == 0 {
code = pb.ErrorCode_ReqParameterError
}
return
}
///获取主线关卡信息
func (this *apiComp) GetReward(session comm.IUserSession, req *pb.MainlineGetRewardReq) (code pb.ErrorCode, data proto.Message) {
rsp := &pb.MainlineGetRewardResp{}
code = this.GetRewardCheck(session, req)
if code != pb.ErrorCode_Success {
return // 参数校验失败直接返回
}
_obj := this.module.modelMainline.getOneChapterInfo(session.GetUserId(), req.ChapterObj)
if _obj == nil {
code = pb.ErrorCode_DBError
// 领取奖励
func (this *apiComp) GetReward(session comm.IUserSession, req *pb.MlineGetRewardReq) (code pb.ErrorCode, data proto.Message) {
var (
curChapter *pb.DBMline // 当前章节信息
stageConf *cfg.GameMainStageData
update map[string]interface{}
rsp *pb.MlineGetRewardResp
)
update = make(map[string]interface{})
if code = this.GetRewardCheck(session, req); code != pb.ErrorCode_Success {
return
}
if _obj.AwaredID == pb.AwaredType_TypeReceived {
code = pb.ErrorCode_MainlineRepeatReward // 重复领奖
if stageConf = this.module.configure.GetMainStageConf(req.CId); stageConf == nil { // 配置文件校验
code = pb.ErrorCode_MainlineNotFindChapter
return
}
if _obj.AwaredID != pb.AwaredType_TypeAvailable {
code = pb.ErrorCode_MainlineCompleteReward // 通关才能领奖
return
}
// 校验是不是通关了
chaptConfig := this.module.configure.GetMainlineChapter(int32(_obj.ChapterId)) // 根据配置文件找
if chaptConfig == nil {
mLineConf := this.module.configure.GetMainChapterConf(stageConf.Chapterid)
if mLineConf == nil {
code = pb.ErrorCode_ConfigNoFound
return
}
_obj.AwaredID = pb.AwaredType_TypeReceived // 设置领奖标记
update := map[string]interface{}{
"awaredID": _obj.AwaredID,
list, _ := this.module.modelMline.getMainlineList(session.GetUserId())
for _, v := range list {
if stageConf.Chapterid == v.ChapterId {
curChapter = v
break
}
}
// 发奖
code = this.module.DispenseRes(session, chaptConfig.Award, true)
if code != pb.ErrorCode_Success {
if curChapter == nil {
code = pb.ErrorCode_MainlineNotFindChapter
return
}
err := this.module.modelMainline.modifyMainlineData(session.GetUserId(), _obj.Id, update)
if err != nil {
code = pb.ErrorCode_DBError
if b, ok := curChapter.Award[req.Star]; ok && b { // 重复领奖
code = pb.ErrorCode_MainlineRepeatReward
return
}
rsp.Data = _obj
session.SendMsg(string(this.module.GetType()), MainlineGetRewardResp, rsp)
curChapter.Award[req.Star] = true
update["awared"] = curChapter.Award
awardConf := this.module.configure.GetMainStarRewardConf(mLineConf.Starreward)
for _, v := range awardConf {
if v.Starnum == req.Star {
if code = this.module.DispenseRes(session, v.Reward, true); code != pb.ErrorCode_Success {
return
}
for _, v := range v.Reward {
rsp.Reward = append(rsp.Reward, &pb.UserAssets{
A: v.A,
T: v.T,
N: v.N,
})
}
}
}
rsp.Data = curChapter
this.module.modelMline.modifyMlineData(session.GetUserId(), curChapter.Id, update)
session.SendMsg(string(this.module.GetType()), MlineGetRewardResp, rsp) // 数据推送
return
}

View File

@ -9,39 +9,53 @@ import (
)
//参数校验
func (this *apiComp) GetListCheck(session comm.IUserSession, req *pb.MainlineGetListReq) (code pb.ErrorCode) {
func (this *apiComp) GetListCheck(session comm.IUserSession, req *pb.MlineGetListReq) (code pb.ErrorCode) {
if req.CType == 0 {
code = pb.ErrorCode_ReqParameterError
}
return
}
///获取主线关卡信息
func (this *apiComp) GetList(session comm.IUserSession, req *pb.MainlineGetListReq) (code pb.ErrorCode, data proto.Message) {
rsp := &pb.MainlineGetListResp{}
func (this *apiComp) GetList(session comm.IUserSession, req *pb.MlineGetListReq) (code pb.ErrorCode, data proto.Message) {
rsp := &pb.MlineGetListResp{}
code = this.GetListCheck(session, req)
if code != pb.ErrorCode_Success {
return // 参数校验失败直接返回
}
list, err := this.module.modelMainline.getMainlineList(session.GetUserId())
list, err := this.module.modelMline.getMainlineList(session.GetUserId())
if err != nil {
code = pb.ErrorCode_DBError
return
}
if len(list) == 0 { // 如果数量为0 则默认创建一条数据
_data := &pb.DBMainline{}
_data.Id = primitive.NewObjectID().Hex()
_data.ChapterId = 1 // 默认第一章节
_mData := make(map[string]interface{}, 0)
_data.Uid = session.GetUserId()
_data.Intensity = 1 // 难度1
_mData[_data.Id] = _data
this.module.modelMainline.addNewChapter(session.GetUserId(), _mData)
list = append(list, _data)
for _, v := range list {
if v.CType == req.CType {
rsp.Data = append(rsp.Data, v)
}
}
if len(rsp.Data) == 0 { // 什么数据都没有 创建一条
stageConf := this.module.configure.GetFirstStageIDByChapter(req.CType)
if stageConf != nil { // 配置文件校验
newData := &pb.DBMline{
Id: primitive.NewObjectID().Hex(),
Uid: session.GetUserId(),
CType: stageConf.Episodetype,
ChapterId: stageConf.Chapterid,
StageId: stageConf.Id,
Star: map[int32]int32{},
Award: map[int32]bool{},
Ps: map[int32]int32{},
}
rsp.Data = append(rsp.Data, newData)
this.module.modelMline.addNewChapter(session.GetUserId(), newData)
} else {
code = pb.ErrorCode_ConfigNoFound
return
}
}
rsp.Data = list
session.SendMsg(string(this.module.GetType()), MainlineGetListResp, &pb.MainlineGetListResp{Data: rsp.Data})
session.SendMsg(string(this.module.GetType()), MlineGetListResp, rsp)
return
}

View File

@ -2,7 +2,6 @@ package mline
import (
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/modules"
"go_dreamfactory/sys/configure"
cfg "go_dreamfactory/sys/configure/structs"
@ -10,83 +9,122 @@ import (
)
const (
game_mainlinechapter = "game_mainlinechapter.json"
game_mainline = "game_mainline.json"
game_mainchapter = "game_mainchapter.json"
game_mainstage = "game_mainstage.json"
game_mainstarreward = "game_mainstarreward.json"
)
///配置管理基础组件
type configureComp struct {
modules.MCompConfigure
module *Mainline
hlock sync.RWMutex
_mapMainline map[int64]*cfg.GameMainlineData
module *Mline
hlock sync.RWMutex
}
//组件初始化接口
func (this *configureComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
err = this.MCompConfigure.Init(service, module, comp, options)
this.module = module.(*Mainline)
this.module = module.(*Mline)
err = this.LoadMultiConfigure(map[string]interface{}{
game_mainlinechapter: cfg.NewGameMainlineChapter,
game_mainchapter: cfg.NewGameMainChapter,
game_mainstage: cfg.NewGameMainStage,
game_mainstarreward: cfg.NewGameMainStarreward,
})
this._mapMainline = make(map[int64]*cfg.GameMainlineData, 0)
configure.RegisterConfigure(game_mainline, cfg.NewGameMainline, this.GetMainline)
return
}
func (this *configureComp) GetMainline() {
if v, err := this.GetConfigure(game_mainline); err == nil {
if configure, ok := v.(*cfg.GameMainline); ok {
this.hlock.Lock()
defer this.hlock.Unlock()
for _, value := range configure.GetDataList() {
this._mapMainline[int64(value.Id<<16)+int64(value.Intensity)] = value
}
return
}
} else {
log.Errorf("get game_mainline conf err:%v", err)
}
return
}
// id + intensity
func (this *configureComp) GetMainlineConfigData(id, intensity int32) *cfg.GameMainlineData {
return this._mapMainline[int64(id<<16)+int64(intensity)]
}
//读取配置数据
func (this *configureComp) GetConfigure(name string) (v interface{}, err error) {
return configure.GetConfigure(name)
}
func (this *configureComp) GetMainlineChapter(id int32) (data *cfg.GameMainlineChapterData) {
if v, err := this.GetConfigure(game_mainlinechapter); err != nil {
this.module.Errorf("get global conf err:%v", err)
return
} else {
var (
configure *cfg.GameMainlineChapter
ok bool
)
if configure, ok = v.(*cfg.GameMainlineChapter); !ok {
this.module.Errorf("%T no is *cfg.Game_MainlineChapterData", v)
return
func (this *configureComp) GetMainChapterConf(id int32) (data *cfg.GameMainChapterData) {
if v, err := this.GetConfigure(game_mainchapter); err == nil {
if configure, ok := v.(*cfg.GameMainChapter); ok {
return configure.Get(id)
}
}
this.module.Errorf("GameMainChapterData conf not found key :%d", id)
return
}
data = configure.Get(int(id - 1))
func (this *configureComp) GetMainStarRewardConf(boxId int32) (data []*cfg.GameMainStarrewardData) {
if v, err := this.GetConfigure(game_mainstarreward); err == nil {
if configure, ok := v.(*cfg.GameMainStarreward); ok {
for _, v1 := range configure.GetDataList() {
if v1.Boxid == boxId {
data = append(data, v1)
}
}
}
}
return
}
// 获取章节数量
func (this *configureComp) GetMaxMainlineChapter() int32 {
if v, err := this.GetConfigure(game_mainlinechapter); err == nil {
if configure, ok := v.(*cfg.GameMainlineChapter); ok {
return int32(len(configure.GetDataList()))
func (this *configureComp) GetMainStageConf(id int32) (data *cfg.GameMainStageData) {
if v, err := this.GetConfigure(game_mainstage); err == nil {
if configure, ok := v.(*cfg.GameMainStage); ok {
return configure.Get(id)
}
}
return 0
this.module.Errorf("GameMainStageData conf not found key :%d", id)
return
}
// 获取上一章节信息
func (this *configureComp) GetPreMainChapter(id int32) (stageID int32) {
if v, err := this.GetConfigure(game_mainchapter); err == nil {
if configure, ok := v.(*cfg.GameMainChapter); ok {
for index, v1 := range configure.GetDataList() {
if v1.Id == id {
if index > 0 {
data := configure.GetDataList()[index-1]
if v1.ChapterType != data.ChapterType { // 章节类型必须一致
stageID = data.Id
}
} else { // 第一章节
stageID = 0
}
break
}
}
}
}
return
}
// 获取该章节最后一关ID
func (this *configureComp) GetLastStageIDByChapter(id int32) (stageID int32) {
var (
sz []int32
)
if v, err := this.GetConfigure(game_mainstage); err == nil {
if configure, ok := v.(*cfg.GameMainStage); ok {
for _, v := range configure.GetDataList() {
if v.Chapterid == id {
sz = append(sz, v.Id)
}
}
}
}
if len(sz) > 0 {
stageID = sz[len(sz)-1]
}
return stageID
}
func (this *configureComp) GetFirstStageIDByChapter(iType int32) *cfg.GameMainStageData {
if v, err := this.GetConfigure(game_mainstage); err == nil {
if configure, ok := v.(*cfg.GameMainStage); ok {
for _, v := range configure.GetDataList() {
if v.Episodetype == iType {
return v
}
}
}
}
return nil
}

View File

@ -7,44 +7,45 @@ import (
"go_dreamfactory/pb"
)
type ModelMainline struct {
type ModelMline struct {
modules.MCompModel
module *Mainline
module *Mline
}
func (this *ModelMainline) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
this.TableName = comm.TableMainline
func (this *ModelMline) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
this.TableName = comm.TableMline
err = this.MCompModel.Init(service, module, comp, options)
this.module = module.(*Mainline)
this.module = module.(*Mline)
return
}
// 获取章节信息
func (this *ModelMainline) getMainlineList(uid string) (storys []*pb.DBMainline, err error) {
storys = make([]*pb.DBMainline, 0)
err = this.GetList(uid, &storys)
func (this *ModelMline) getMainlineList(uid string) (mLine []*pb.DBMline, err error) {
mLine = make([]*pb.DBMline, 0)
this.GetList(uid, &mLine)
return
}
// 修改章节信息
func (this *ModelMainline) modifyMainlineData(uid string, objid string, data map[string]interface{}) error {
return this.module.modelMainline.ChangeList(uid, objid, data)
func (this *ModelMline) modifyMlineData(uid string, objId string, data map[string]interface{}) error {
return this.module.modelMline.ChangeList(uid, objId, data)
}
// 增加新的章节数据
func (this *ModelMainline) addNewChapter(uId string, data map[string]interface{}) (err error) {
if err = this.AddLists(uId, data); err != nil {
this.module.Errorf("err:%v", err)
return
func (this *ModelMline) addNewChapter(uId string, data *pb.DBMline) (err error) {
update := make(map[string]*pb.DBMline)
update[data.Id] = data
if err = this.AddLists(uId, update); err != nil {
this.module.Errorln(err)
}
return nil
return err
}
// 获取指定章节数据
func (this *ModelMainline) getOneChapterInfo(uid, obj string) *pb.DBMainline {
func (this *ModelMline) getOneChapterInfo(uid, obj string) *pb.DBMainline {
data := &pb.DBMainline{}
err := this.module.modelMainline.GetListObj(uid, obj, data)
err := this.module.modelMline.GetListObj(uid, obj, data)
if err != nil {
this.module.Errorf("%v", err)
return nil
@ -53,7 +54,7 @@ func (this *ModelMainline) getOneChapterInfo(uid, obj string) *pb.DBMainline {
}
// 增加新的章节数据
func (this *ModelMainline) cleanChapter(uId string) (err error) {
func (this *ModelMline) cleanChapter(uId string) (err error) {
if err = this.DelByUId(uId); err != nil {
this.module.Errorf("err:%v", err)

View File

@ -5,90 +5,39 @@ import (
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
"sort"
"go.mongodb.org/mongo-driver/bson/primitive"
)
type Mainline struct {
type Mline struct {
modules.ModuleBase
modelMainline *ModelMainline
service core.IService
api *apiComp
configure *configureComp
battle comm.IBattle
modelMline *ModelMline
service core.IService
api *apiComp
configure *configureComp
battle comm.IBattle
}
func NewModule() core.IModule {
return &Mainline{}
return &Mline{}
}
func (this *Mainline) GetType() core.M_Modules {
return comm.ModuleMainline
func (this *Mline) GetType() core.M_Modules {
return comm.ModuleMline
}
func (this *Mainline) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) {
func (this *Mline) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) {
err = this.ModuleBase.Init(service, module, options)
this.service = service
return
}
func (this *Mainline) OnInstallComp() {
func (this *Mline) OnInstallComp() {
this.ModuleBase.OnInstallComp()
this.api = this.RegisterComp(new(apiComp)).(*apiComp)
this.modelMainline = this.RegisterComp(new(ModelMainline)).(*ModelMainline)
this.modelMline = this.RegisterComp(new(ModelMline)).(*ModelMline)
this.configure = this.RegisterComp(new(configureComp)).(*configureComp)
}
// 接口信息 给其他模块调用 用来修改主线关卡信息
func (this *Mainline) ModifyMainlineData(uid string, id int32) (code pb.ErrorCode) {
conf := this.configure.GetMainlineConfigData(id, 1)
list, err := this.modelMainline.getMainlineList(uid)
if err != nil {
code = pb.ErrorCode_DBError
return
}
for _, v := range list {
if v.ChapterId == conf.Chapter {
data := make(map[string]interface{}, 0)
data["mainlineId"] = id
data["chapterId"] = v.ChapterId
this.modelMainline.modifyMainlineData(uid, v.Id, data)
if err != nil {
code = pb.ErrorCode_DBError
}
return
}
}
//add
_data := &pb.DBMainline{}
_data.Id = primitive.NewObjectID().Hex()
_data.ChapterId = conf.Chapter
_data.MainlineId = conf.Id
_mData := make(map[string]interface{}, 0)
_data.Uid = uid
_data.Intensity = 1 // 难度1
_mData[_data.Id] = _data
this.modelMainline.addNewChapter(uid, _mData)
return
}
func (this *Mainline) GetUsermainLineData(uid string) (mainlineId int32) {
_szData, err := this.modelMainline.getMainlineList(uid)
if err == nil {
sort.SliceStable(_szData, func(i, j int) bool { // 排序
return _szData[i].ChapterId > _szData[j].ChapterId
})
}
return
}
func (this *Mainline) Start() (err error) {
func (this *Mline) Start() (err error) {
err = this.ModuleBase.Start()
var module core.IModule
if module, err = this.service.GetModule(comm.ModuleBattle); err != nil {
@ -100,7 +49,7 @@ func (this *Mainline) Start() (err error) {
}
//红点查询
func (this *Mainline) Reddot(session comm.IUserSession, rid ...comm.ReddotType) (reddot map[comm.ReddotType]bool) {
func (this *Mline) Reddot(session comm.IUserSession, rid ...comm.ReddotType) (reddot map[comm.ReddotType]bool) {
reddot = make(map[comm.ReddotType]bool)
for _, v := range rid {
if v == comm.Reddot5 {
@ -112,90 +61,25 @@ func (this *Mainline) Reddot(session comm.IUserSession, rid ...comm.ReddotType)
}
// 红点检测
func (this *Mainline) CheckPoint(uid string) bool {
list, err := this.modelMainline.getMainlineList(uid)
if err != nil {
return false
}
for _, v := range list {
conf := this.configure.GetMainlineChapter(v.ChapterId)
if conf == nil {
continue
}
if len(conf.Episode) != len(v.BranchID) {
return true
}
}
func (this *Mline) CheckPoint(uid string) bool {
// list, err := this.modelMainline.getMainlineList(uid)
// if err != nil {
// return false
// }
// for _, v := range list {
// conf := this.configure.GetMainlineChapter(v.ChapterId)
// if conf == nil {
// continue
// }
// if len(conf.Episode) != len(v.BranchID) {
// return true
// }
// }
return false
}
// 参数 难度 + 关卡id
func (this *Mainline) ModifyMainlineDataByNanduID(uid string, nandu, id int32) (code pb.ErrorCode) {
conf := this.configure.GetMainlineConfigData(id, nandu)
if conf == nil {
code = pb.ErrorCode_ConfigNoFound // 找不到配置
return
}
// 已现在设置的为准 删除之前的所有数据
this.modelMainline.cleanChapter(uid)
// 获取当前的章节数据
jumpCap := conf.Chapter
// 先加所有难度小于1 的章节
for ndIndex := 1; ndIndex <= int(nandu)-1; ndIndex++ {
max := this.configure.GetMaxMainlineChapter()
for i := 1; i <= int(max); i++ {
confCap := this.configure.GetMainlineChapter(int32(i))
//_conf := this.configure.GetMainlineConfigData(int32(i), int32(ndIndex))
_data := &pb.DBMainline{}
_data.Id = primitive.NewObjectID().Hex()
_data.ChapterId = int32(i)
_data.MainlineId = confCap.Id
_mData := make(map[string]interface{}, 0)
_data.Uid = uid
_data.Intensity = int32(ndIndex) // 难度1
for _, v := range confCap.Episode {
_data.BranchID = append(_data.BranchID, v)
}
_mData[_data.Id] = _data
this.modelMainline.addNewChapter(uid, _mData)
}
}
// 加当前难度 的章节数据
for i := 1; i <= int(jumpCap-1); i++ {
confCap := this.configure.GetMainlineChapter(int32(i))
_data := &pb.DBMainline{}
_data.Id = primitive.NewObjectID().Hex()
_data.ChapterId = int32(i)
_data.MainlineId = confCap.Id
_mData := make(map[string]interface{}, 0)
_data.Uid = uid
_data.Intensity = int32(nandu) // 难度1
for _, v := range confCap.Episode {
_data.BranchID = append(_data.BranchID, v)
}
_mData[_data.Id] = _data
this.modelMainline.addNewChapter(uid, _mData)
}
// 加当前难度 当前章节的前置关卡数据
_data := &pb.DBMainline{}
_data.Id = primitive.NewObjectID().Hex()
_data.ChapterId = conf.Chapter
_data.MainlineId = conf.Id
_mData := make(map[string]interface{}, 0)
_data.Uid = uid
_data.Intensity = int32(nandu) // 难度1
confCap := this.configure.GetMainlineChapter(int32(conf.Chapter))
for _, v := range confCap.Episode {
if v <= id {
_data.BranchID = append(_data.BranchID, v)
}
}
_mData[_data.Id] = _data
this.modelMainline.addNewChapter(uid, _mData)
func (this *Mline) ModifyMainlineDataByNanduID(uid string, nandu, id int32) (code pb.ErrorCode) {
return
}

View File

@ -164,7 +164,8 @@ func (this *ModuleRtask) initRtaskVerifyHandle() {
comm.Rtype54, comm.Rtype57, comm.Rtype58, comm.Rtype60,
comm.Rtype62, comm.Rtype64, comm.Rtype69, comm.Rtype72, comm.Rtype88, comm.Rtype104,
comm.Rtype96, comm.Rtype105, comm.Rtype128, comm.Rtype130, comm.Rtype131,
comm.Rtype141, comm.Rtype142, comm.Rtype143, comm.Rtype144, comm.Rtype145, comm.Rtype146:
comm.Rtype141, comm.Rtype142, comm.Rtype143, comm.Rtype144, comm.Rtype145, comm.Rtype146,
comm.Rtype147, comm.Rtype149, comm.Rtype153, comm.Rtype154, comm.Rtype155, comm.Rtype156:
this.registerVerifyHandle(v.Id, &rtaskCondi{
find: this.modelRtaskRecord.lessEqualFirstParam,
verify: this.modelRtaskRecord.verifyFirstGreatEqualParam,
@ -343,6 +344,11 @@ func (this *ModuleRtask) SendToRtask(session comm.IUserSession, rtaskType comm.T
log.Field{Key: "err", Value: err2.Error()},
)
}
if module, err := this.service.GetModule(comm.ModuleRtask); err == nil {
if iRtask,ok:=module.(comm.IRtask);ok{
iRtask.SendToRtask(session, comm.Rtype156, 1)
}
}
}
}
}

View File

@ -39,6 +39,7 @@ func (this *ModelSociatyTask) initSociatyTask(uid, sociatyId string) error {
globalConf := this.moduleSociaty.globalConf
// 大于4条配置
if len(taskListConf) > int(globalConf.GuildTaskNum) {
// 按照权重
//随机4条任务
randInts := utils.RandomNumbers(0, len(taskListConf)-1, int(globalConf.GuildTaskNum))
for _, v := range randInts {

View File

@ -630,6 +630,8 @@ type BattleReport struct {
Incmd []*BattleCmd `protobuf:"bytes,3,rep,name=incmd,proto3" json:"incmd"` //输入指令
Outcmd []*BattleCmd `protobuf:"bytes,4,rep,name=outcmd,proto3" json:"outcmd"` //输出指令
Completetask []int32 `protobuf:"varint,5,rep,packed,name=completetask,proto3" json:"completetask"` //完成任务
Death int32 `protobuf:"varint,6,opt,name=death,proto3" json:"death"` // 死亡人数
Round int32 `protobuf:"varint,7,opt,name=round,proto3" json:"round"` // 回合数
}
func (x *BattleReport) Reset() {
@ -699,6 +701,20 @@ func (x *BattleReport) GetCompletetask() []int32 {
return nil
}
func (x *BattleReport) GetDeath() int32 {
if x != nil {
return x.Death
}
return 0
}
func (x *BattleReport) GetRound() int32 {
if x != nil {
return x.Round
}
return 0
}
//公用消息结构代码
type BattleRpcMessage struct {
state protoimpl.MessageState
@ -892,7 +908,7 @@ var file_battle_battle_msg_proto_rawDesc = []byte{
0x65, 0x43, 0x6d, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6d, 0x64, 0x74, 0x79, 0x70, 0x65, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6d, 0x64, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14,
0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x22, 0xb5, 0x01, 0x0a, 0x0c, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52,
0x61, 0x6c, 0x75, 0x65, 0x22, 0xe1, 0x01, 0x0a, 0x0c, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52,
0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f,
0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x73, 0x74, 0x74, 0x69,
@ -903,18 +919,20 @@ var file_battle_battle_msg_proto_rawDesc = []byte{
0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x6d, 0x64,
0x52, 0x06, 0x6f, 0x75, 0x74, 0x63, 0x6d, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70,
0x6c, 0x65, 0x74, 0x65, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0c,
0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x66, 0x0a, 0x10,
0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x70, 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
0x12, 0x10, 0x0a, 0x03, 0x72, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x72,
0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61,
0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04,
0x64, 0x61, 0x74, 0x61, 0x22, 0x2e, 0x0a, 0x12, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x68,
0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73,
0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x63,
0x68, 0x65, 0x63, 0x6b, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x33,
0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x74, 0x61, 0x73, 0x6b, 0x12, 0x14, 0x0a, 0x05,
0x64, 0x65, 0x61, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x64, 0x65, 0x61,
0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28,
0x05, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x66, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x74,
0x6c, 0x65, 0x52, 0x70, 0x63, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03,
0x72, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x72, 0x69, 0x64, 0x12, 0x16,
0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61,
0x22, 0x2e, 0x0a, 0x12, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52,
0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x63, 0x68, 0x65, 0x63,
0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x63, 0x68, 0x65, 0x63, 0x6b,
0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (

View File

@ -134,6 +134,7 @@ const (
ErrorCode_MainlinePreNotFound ErrorCode = 1503 // 前置关卡不匹配
ErrorCode_MainlineRepeatReward ErrorCode = 1504 // 重复领奖
ErrorCode_MainlineCompleteReward ErrorCode = 1505 // 通关才能领奖
ErrorCode_MainlineNoEnoughStar ErrorCode = 1506 // 扫荡通关星级不够
// task
ErrorCode_TaskInit ErrorCode = 1600 //初始化失败
ErrorCode_TaskReset ErrorCode = 1601 //重置任务失败
@ -403,6 +404,7 @@ var (
1503: "MainlinePreNotFound",
1504: "MainlineRepeatReward",
1505: "MainlineCompleteReward",
1506: "MainlineNoEnoughStar",
1600: "TaskInit",
1601: "TaskReset",
1602: "TaskHandle",
@ -645,6 +647,7 @@ var (
"MainlinePreNotFound": 1503,
"MainlineRepeatReward": 1504,
"MainlineCompleteReward": 1505,
"MainlineNoEnoughStar": 1506,
"TaskInit": 1600,
"TaskReset": 1601,
"TaskHandle": 1602,
@ -815,7 +818,7 @@ var File_errorcode_proto protoreflect.FileDescriptor
var file_errorcode_proto_rawDesc = []byte{
0x0a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x2a, 0xfd, 0x2a, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12,
0x6f, 0x2a, 0x98, 0x2b, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12,
0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d,
0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x10, 0x0a, 0x12,
0x1b, 0x0a, 0x17, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
@ -955,212 +958,213 @@ var file_errorcode_proto_rawDesc = []byte{
0x6e, 0x64, 0x10, 0xdf, 0x0b, 0x12, 0x19, 0x0a, 0x14, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e,
0x65, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe0, 0x0b,
0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6d, 0x70,
0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe1, 0x0b, 0x12, 0x0d, 0x0a,
0x08, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x69, 0x74, 0x10, 0xc0, 0x0c, 0x12, 0x0e, 0x0a, 0x09,
0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x65, 0x74, 0x10, 0xc1, 0x0c, 0x12, 0x0f, 0x0a, 0x0a,
0x54, 0x61, 0x73, 0x6b, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x10, 0xc2, 0x0c, 0x12, 0x11, 0x0a,
0x0c, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xc3, 0x0c,
0x12, 0x13, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e,
0x69, 0x74, 0x10, 0xc4, 0x0c, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74,
0x69, 0x76, 0x65, 0x4e, 0x6f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xc5, 0x0c, 0x12, 0x17, 0x0a,
0x12, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x65, 0x6e, 0x6f,
0x75, 0x67, 0x68, 0x10, 0xc6, 0x0c, 0x12, 0x13, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f,
0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xc7, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54,
0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xc8, 0x0c, 0x12, 0x11,
0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x61, 0x67, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xc9,
0x0c, 0x12, 0x10, 0x0a, 0x0b, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79,
0x10, 0xca, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x74, 0x46, 0x6f,
0x75, 0x6e, 0x64, 0x10, 0xcb, 0x0c, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x68, 0x6f, 0x70, 0x47, 0x6f,
0x6f, 0x64, 0x73, 0x49, 0x73, 0x53, 0x6f, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x10, 0xa4, 0x0d, 0x12,
0x1c, 0x0a, 0x17, 0x53, 0x68, 0x6f, 0x70, 0x4e, 0x6f, 0x53, 0x75, 0x72, 0x70, 0x6c, 0x75, 0x73,
0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x10, 0xa5, 0x0d, 0x12, 0x0c, 0x0a,
0x07, 0x4d, 0x61, 0x69, 0x6c, 0x45, 0x72, 0x72, 0x10, 0x88, 0x0e, 0x12, 0x13, 0x0a, 0x0e, 0x50,
0x61, 0x67, 0x6f, 0x64, 0x61, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xec, 0x0e,
0x12, 0x12, 0x0a, 0x0d, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x4c, 0x65, 0x76, 0x6c, 0x45, 0x72,
0x72, 0x10, 0xed, 0x0e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x47, 0x65,
0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x72, 0x72, 0x10, 0xee, 0x0e, 0x12, 0x17, 0x0a,
0x12, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,
0x45, 0x72, 0x72, 0x10, 0xef, 0x0e, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61,
0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x74, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64,
0x10, 0xd0, 0x0f, 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61,
0x6c, 0x6c, 0x49, 0x6e, 0x55, 0x73, 0x65, 0x10, 0xd1, 0x0f, 0x12, 0x18, 0x0a, 0x13, 0x4d, 0x61,
0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65,
0x64, 0x10, 0xd2, 0x0f, 0x12, 0x1a, 0x0a, 0x15, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68,
0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0xd3, 0x0f,
0x12, 0x19, 0x0a, 0x14, 0x47, 0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x4d, 0x6f, 0x72, 0x65, 0x4f,
0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x10, 0xb5, 0x10, 0x12, 0x16, 0x0a, 0x11, 0x47,
0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x4c, 0x76,
0x10, 0xb6, 0x10, 0x12, 0x12, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69,
0x73, 0x68, 0x65, 0x64, 0x10, 0x99, 0x11, 0x12, 0x14, 0x0a, 0x0f, 0x52, 0x74, 0x61, 0x73, 0x6b,
0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x9a, 0x11, 0x12, 0x11, 0x0a,
0x0c, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x10, 0x9b, 0x11,
0x12, 0x12, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x65,
0x64, 0x10, 0x9c, 0x11, 0x12, 0x15, 0x0a, 0x10, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x65,
0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x10, 0x9d, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x52,
0x74, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x4e, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x68,
0x10, 0x9e, 0x11, 0x12, 0x13, 0x0a, 0x0e, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x4c, 0x61,
0x73, 0x74, 0x4f, 0x6e, 0x65, 0x10, 0x9f, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x52, 0x74, 0x61, 0x73,
0x6b, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xa0, 0x11,
0x12, 0x10, 0x0a, 0x0b, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10,
0xfd, 0x11, 0x12, 0x13, 0x0a, 0x0e, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x73,
0x54, 0x79, 0x70, 0x65, 0x10, 0xfe, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x56, 0x69, 0x6b, 0x69, 0x6e,
0x67, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xff, 0x11, 0x12,
0x1c, 0x0a, 0x17, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c,
0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x80, 0x12, 0x12, 0x1a, 0x0a,
0x15, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x48, 0x61, 0x73, 0x45,
0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x10, 0xe1, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f,
0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x4a, 0x6f, 0x69, 0x6e, 0x55, 0x70, 0x10, 0xe2,
0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79,
0x44, 0x61, 0x72, 0x65, 0x55, 0x70, 0x10, 0xe3, 0x12, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f,
0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f,
0x45, 0x6e, 0x64, 0x10, 0xe4, 0x12, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61,
0x6e, 0x74, 0x61, 0x73, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x57, 0x69, 0x6e,
0x10, 0xe5, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61,
0x73, 0x79, 0x4e, 0x6f, 0x4a, 0x6f, 0x69, 0x6e, 0x10, 0xe6, 0x12, 0x12, 0x20, 0x0a, 0x1b, 0x4d,
0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f,
0x75, 0x67, 0x68, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x73, 0x10, 0xe7, 0x12, 0x12, 0x18, 0x0a,
0x13, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65,
0x63, 0x6f, 0x72, 0x64, 0x10, 0xc5, 0x13, 0x12, 0x1a, 0x0a, 0x15, 0x4c, 0x69, 0x6e, 0x65, 0x73,
0x74, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64,
0x10, 0xa9, 0x14, 0x12, 0x17, 0x0a, 0x12, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79,
0x4e, 0x6f, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x10, 0xaa, 0x14, 0x12, 0x1f, 0x0a, 0x1a,
0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x69, 0x73,
0x61, 0x62, 0x6c, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, 0xab, 0x14, 0x12, 0x1b, 0x0a,
0x16, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x43, 0x68, 0x61, 0x70, 0x74, 0x65,
0x72, 0x4e, 0x6f, 0x4f, 0x70, 0x65, 0x6e, 0x10, 0xac, 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x4c, 0x69,
0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x65, 0x4e, 0x6f, 0x43, 0x6f, 0x6d, 0x70,
0x6c, 0x65, 0x74, 0x65, 0x10, 0xad, 0x14, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x75, 0x6e, 0x74, 0x69,
0x6e, 0x67, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0x8d, 0x15, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x75,
0x6e, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x10, 0x8e, 0x15,
0x12, 0x17, 0x0a, 0x12, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x79, 0x4d, 0x61,
0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x8f, 0x15, 0x12, 0x1d, 0x0a, 0x18, 0x48, 0x75, 0x6e,
0x74, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65,
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x90, 0x15, 0x12, 0x1c, 0x0a, 0x17, 0x48, 0x75, 0x6e, 0x74,
0x69, 0x6e, 0x67, 0x4e, 0x6f, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f,
0x75, 0x6e, 0x74, 0x10, 0x91, 0x15, 0x12, 0x11, 0x0a, 0x0c, 0x45, 0x6e, 0x63, 0x68, 0x61, 0x6e,
0x74, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0x97, 0x15, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x6e, 0x63,
0x68, 0x61, 0x6e, 0x74, 0x42, 0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x10, 0x98, 0x15, 0x12,
0x17, 0x0a, 0x12, 0x45, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78,
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x99, 0x15, 0x12, 0x1d, 0x0a, 0x18, 0x45, 0x6e, 0x63, 0x68,
0x61, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43,
0x6f, 0x75, 0x6e, 0x74, 0x10, 0x9a, 0x15, 0x12, 0x1c, 0x0a, 0x17, 0x45, 0x6e, 0x63, 0x68, 0x61,
0x6e, 0x74, 0x4e, 0x6f, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75,
0x6e, 0x74, 0x10, 0x9b, 0x15, 0x12, 0x11, 0x0a, 0x0c, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79,
0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, 0xf1, 0x15, 0x12, 0x12, 0x0a, 0x0d, 0x4c, 0x69, 0x62, 0x72,
0x61, 0x72, 0x79, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10, 0xf2, 0x15, 0x12, 0x16, 0x0a, 0x11,
0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x10, 0xf3, 0x15, 0x12, 0x12, 0x0a, 0x0d, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x52,
0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xf4, 0x15, 0x12, 0x14, 0x0a, 0x0f, 0x4c, 0x69, 0x62, 0x72,
0x61, 0x72, 0x79, 0x4c, 0x76, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xf5, 0x15, 0x12, 0x1d,
0x0a, 0x18, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x54,
0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xf6, 0x15, 0x12, 0x1d, 0x0a,
0x18, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x50, 0x72, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x4e,
0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xf7, 0x15, 0x12, 0x1b, 0x0a, 0x16,
0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xd5, 0x16, 0x12, 0x10, 0x0a, 0x0b, 0x42, 0x61, 0x74,
0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x57, 0x69, 0x6e, 0x10, 0xd6, 0x16, 0x12, 0x13, 0x0a, 0x0e, 0x53,
0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xb8, 0x17,
0x12, 0x11, 0x0a, 0x0c, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64,
0x10, 0xb9, 0x17, 0x12, 0x1b, 0x0a, 0x16, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x44, 0x69,
0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xba, 0x17,
0x12, 0x14, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x4d, 0x65, 0x6d,
0x62, 0x65, 0x72, 0x10, 0xbb, 0x17, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74,
0x79, 0x4e, 0x6f, 0x52, 0x69, 0x67, 0x68, 0x74, 0x10, 0xbc, 0x17, 0x12, 0x13, 0x0a, 0x0e, 0x53,
0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x41, 0x64, 0x64, 0x65, 0x64, 0x10, 0xbd, 0x17,
0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x44, 0x69, 0x73, 0x6d, 0x69,
0x73, 0x73, 0x10, 0xbe, 0x17, 0x12, 0x10, 0x0a, 0x0b, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79,
0x51, 0x75, 0x69, 0x74, 0x10, 0xbf, 0x17, 0x12, 0x11, 0x0a, 0x0c, 0x53, 0x6f, 0x63, 0x69, 0x61,
0x74, 0x79, 0x41, 0x67, 0x72, 0x65, 0x65, 0x10, 0xc0, 0x17, 0x12, 0x12, 0x0a, 0x0d, 0x53, 0x6f,
0x63, 0x69, 0x61, 0x74, 0x79, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x10, 0xc1, 0x17, 0x12, 0x16,
0x0a, 0x10, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x50, 0x61, 0x72, 0x61,
0x6d, 0x73, 0x10, 0xba, 0xea, 0x01, 0x12, 0x19, 0x0a, 0x13, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74,
0x79, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x44, 0x69, 0x73, 0x73, 0x10, 0xbb, 0xea,
0x01, 0x12, 0x17, 0x0a, 0x11, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, 0x65, 0x74, 0x74,
0x69, 0x6e, 0x67, 0x4a, 0x6f, 0x62, 0x10, 0xbc, 0xea, 0x01, 0x12, 0x14, 0x0a, 0x0e, 0x53, 0x6f,
0x63, 0x69, 0x61, 0x74, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x10, 0xbd, 0xea, 0x01,
0x12, 0x15, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x41, 0x63, 0x63,
0x75, 0x73, 0x65, 0x10, 0xbe, 0xea, 0x01, 0x12, 0x11, 0x0a, 0x0b, 0x53, 0x6f, 0x63, 0x69, 0x61,
0x74, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x10, 0xbf, 0xea, 0x01, 0x12, 0x13, 0x0a, 0x0d, 0x53, 0x6f,
0x63, 0x69, 0x61, 0x74, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x10, 0xc0, 0xea, 0x01, 0x12,
0x14, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x43, 0x44, 0x4c, 0x69, 0x6d, 0x69,
0x74, 0x10, 0xc1, 0xea, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79,
0x41, 0x70, 0x70, 0x6c, 0x79, 0x4d, 0x61, 0x78, 0x10, 0xc2, 0xea, 0x01, 0x12, 0x18, 0x0a, 0x12,
0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, 0x65, 0x6c, 0x66, 0x53, 0x65, 0x74, 0x74, 0x69,
0x6e, 0x67, 0x10, 0xc3, 0xea, 0x01, 0x12, 0x1d, 0x0a, 0x17, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74,
0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69,
0x74, 0x10, 0xc4, 0xea, 0x01, 0x12, 0x1b, 0x0a, 0x15, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79,
0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xc5,
0xea, 0x01, 0x12, 0x1a, 0x0a, 0x14, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x52, 0x65, 0x77,
0x61, 0x72, 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x10, 0xc6, 0xea, 0x01, 0x12, 0x15,
0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
0x65, 0x10, 0xc7, 0xea, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79,
0x42, 0x65, 0x6c, 0x6f, 0x6e, 0x67, 0x54, 0x6f, 0x10, 0xc9, 0xea, 0x01, 0x12, 0x14, 0x0a, 0x0e,
0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x10, 0xca,
0xea, 0x01, 0x12, 0x1b, 0x0a, 0x15, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x70, 0x70,
0x79, 0x4c, 0x76, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xcb, 0xea, 0x01, 0x12,
0x1b, 0x0a, 0x15, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x56, 0x61,
0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xcc, 0xea, 0x01, 0x12, 0x1d, 0x0a, 0x17,
0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x4e,
0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xcd, 0xea, 0x01, 0x12, 0x1c, 0x0a, 0x16, 0x53,
0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x63, 0x69, 0x74, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65,
0x63, 0x65, 0x69, 0x76, 0x65, 0x10, 0xce, 0xea, 0x01, 0x12, 0x16, 0x0a, 0x10, 0x53, 0x6f, 0x63,
0x69, 0x61, 0x74, 0x79, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x10, 0xcf, 0xea,
0x01, 0x12, 0x16, 0x0a, 0x10, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65,
0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0xd0, 0xea, 0x01, 0x12, 0x1a, 0x0a, 0x14, 0x53, 0x6f, 0x63,
0x69, 0x61, 0x74, 0x79, 0x51, 0x75, 0x69, 0x74, 0x4e, 0x6f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65,
0x64, 0x10, 0xd1, 0xea, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79,
0x4e, 0x6f, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x10, 0xd2, 0xea, 0x01, 0x12, 0x15, 0x0a, 0x10,
0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x42, 0x75, 0x79, 0x55, 0x70,
0x10, 0x9d, 0x18, 0x12, 0x19, 0x0a, 0x14, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x69, 0x63, 0x6b,
0x65, 0x74, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x9e, 0x18, 0x12, 0x17,
0x0a, 0x12, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x4e, 0x70, 0x63,
0x49, 0x6e, 0x43, 0x64, 0x10, 0x9f, 0x18, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x61, 0x6c, 0x65, 0x6e,
0x74, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x10, 0x81, 0x19, 0x12,
0x12, 0x0a, 0x0d, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x45, 0x72, 0x72, 0x44, 0x61, 0x74, 0x61,
0x10, 0x82, 0x19, 0x12, 0x19, 0x0a, 0x14, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x55, 0x6e, 0x4c,
0x6f, 0x63, 0x6b, 0x65, 0x72, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x10, 0x83, 0x19, 0x12, 0x15,
0x0a, 0x10, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61,
0x74, 0x65, 0x10, 0x84, 0x19, 0x12, 0x10, 0x0a, 0x0b, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x75,
0x79, 0x4d, 0x61, 0x78, 0x10, 0xe5, 0x19, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x72, 0x6f, 0x6c, 0x6c,
0x53, 0x65, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x10, 0xe6, 0x19, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x72,
0x6f, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x53, 0x65, 0x6c, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10,
0xe7, 0x19, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x49, 0x74,
0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xe8, 0x19, 0x12, 0x18, 0x0a, 0x13, 0x54, 0x72,
0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x77, 0x61, 0x72,
0x64, 0x10, 0xe9, 0x19, 0x12, 0x19, 0x0a, 0x14, 0x48, 0x6f, 0x72, 0x6f, 0x73, 0x63, 0x6f, 0x70,
0x65, 0x4e, 0x6f, 0x74, 0x54, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x4f, 0x6e, 0x10, 0xc9, 0x1a, 0x12,
0x19, 0x0a, 0x14, 0x48, 0x6f, 0x72, 0x6f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x65, 0x73, 0x74,
0x43, 0x44, 0x4e, 0x6f, 0x45, 0x6e, 0x64, 0x10, 0xca, 0x1a, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x72,
0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10,
0xad, 0x1b, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x52,
0x65, 0x6e, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x10, 0xae, 0x1b, 0x12, 0x0f, 0x0a, 0x0a, 0x56,
0x69, 0x70, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xaf, 0x1b, 0x12, 0x11, 0x0a, 0x0c,
0x56, 0x69, 0x70, 0x47, 0x69, 0x66, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xb0, 0x1b, 0x12,
0x11, 0x0a, 0x0c, 0x56, 0x69, 0x70, 0x42, 0x75, 0x79, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x10,
0xb1, 0x1b, 0x12, 0x14, 0x0a, 0x0f, 0x47, 0x72, 0x6f, 0x77, 0x74, 0x61, 0x73, 0x6b, 0x52, 0x65,
0x63, 0x65, 0x69, 0x76, 0x65, 0x10, 0x91, 0x1c, 0x12, 0x17, 0x0a, 0x12, 0x47, 0x72, 0x6f, 0x77,
0x74, 0x61, 0x73, 0x6b, 0x41, 0x64, 0x76, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x10, 0x92,
0x1c, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4e, 0x75, 0x6d, 0x4e, 0x6f,
0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xf5, 0x1c, 0x12, 0x14, 0x0a, 0x0f, 0x50, 0x61,
0x79, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x72, 0x72, 0x10, 0xf6, 0x1c,
0x12, 0x16, 0x0a, 0x11, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x70,
0x6c, 0x65, 0x74, 0x65, 0x64, 0x10, 0xf7, 0x1c, 0x12, 0x14, 0x0a, 0x0f, 0x57, 0x6f, 0x72, 0x6c,
0x64, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x10, 0xd9, 0x1d, 0x12, 0x19,
0x0a, 0x14, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x4c, 0x76, 0x4e, 0x6f, 0x74,
0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xda, 0x1d, 0x12, 0x16, 0x0a, 0x11, 0x57, 0x6f, 0x72,
0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x10, 0xdb,
0x1d, 0x12, 0x18, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f,
0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0xdc, 0x1d, 0x12, 0x15, 0x0a, 0x10, 0x57,
0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x68, 0x65, 0x64, 0x10,
0xdd, 0x1d, 0x12, 0x1c, 0x0a, 0x17, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x4c,
0x61, 0x73, 0x74, 0x55, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xde, 0x1d,
0x12, 0x1e, 0x0a, 0x19, 0x41, 0x63, 0x61, 0x64, 0x65, 0x6d, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x4e,
0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x10, 0xbd, 0x1e,
0x12, 0x15, 0x0a, 0x10, 0x41, 0x75, 0x74, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f,
0x44, 0x61, 0x74, 0x61, 0x10, 0xa1, 0x1f, 0x12, 0x18, 0x0a, 0x13, 0x41, 0x75, 0x74, 0x6f, 0x42,
0x61, 0x74, 0x74, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, 0x72, 0x72, 0x10, 0xa2,
0x1f, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x33,
0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe1, 0x0b, 0x12, 0x19, 0x0a,
0x14, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67,
0x68, 0x53, 0x74, 0x61, 0x72, 0x10, 0xe2, 0x0b, 0x12, 0x0d, 0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b,
0x49, 0x6e, 0x69, 0x74, 0x10, 0xc0, 0x0c, 0x12, 0x0e, 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x52,
0x65, 0x73, 0x65, 0x74, 0x10, 0xc1, 0x0c, 0x12, 0x0f, 0x0a, 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x48,
0x61, 0x6e, 0x64, 0x6c, 0x65, 0x10, 0xc2, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b,
0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xc3, 0x0c, 0x12, 0x13, 0x0a, 0x0e, 0x54,
0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x10, 0xc4, 0x0c,
0x12, 0x16, 0x0a, 0x11, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f,
0x66, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xc5, 0x0c, 0x12, 0x17, 0x0a, 0x12, 0x54, 0x61, 0x73, 0x6b,
0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x65, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xc6,
0x0c, 0x12, 0x13, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69, 0x73,
0x68, 0x65, 0x64, 0x10, 0xc7, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x46, 0x69,
0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xc8, 0x0c, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x61, 0x73,
0x6b, 0x54, 0x61, 0x67, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xc9, 0x0c, 0x12, 0x10, 0x0a, 0x0b,
0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0xca, 0x0c, 0x12, 0x11,
0x0a, 0x0c, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xcb,
0x0c, 0x12, 0x17, 0x0a, 0x12, 0x53, 0x68, 0x6f, 0x70, 0x47, 0x6f, 0x6f, 0x64, 0x73, 0x49, 0x73,
0x53, 0x6f, 0x6c, 0x64, 0x4f, 0x75, 0x74, 0x10, 0xa4, 0x0d, 0x12, 0x1c, 0x0a, 0x17, 0x53, 0x68,
0x6f, 0x70, 0x4e, 0x6f, 0x53, 0x75, 0x72, 0x70, 0x6c, 0x75, 0x73, 0x52, 0x65, 0x66, 0x72, 0x65,
0x73, 0x68, 0x4e, 0x75, 0x6d, 0x10, 0xa5, 0x0d, 0x12, 0x0c, 0x0a, 0x07, 0x4d, 0x61, 0x69, 0x6c,
0x45, 0x72, 0x72, 0x10, 0x88, 0x0e, 0x12, 0x13, 0x0a, 0x0e, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61,
0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xec, 0x0e, 0x12, 0x12, 0x0a, 0x0d, 0x50,
0x61, 0x67, 0x6f, 0x64, 0x61, 0x4c, 0x65, 0x76, 0x6c, 0x45, 0x72, 0x72, 0x10, 0xed, 0x0e, 0x12,
0x17, 0x0a, 0x12, 0x50, 0x61, 0x67, 0x6f, 0x64, 0x61, 0x47, 0x65, 0x74, 0x52, 0x65, 0x77, 0x61,
0x72, 0x64, 0x45, 0x72, 0x72, 0x10, 0xee, 0x0e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x61, 0x67, 0x6f,
0x64, 0x61, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x10, 0xef,
0x0e, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c,
0x4e, 0x6f, 0x74, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0xd0, 0x0f, 0x12, 0x15,
0x0a, 0x10, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x55,
0x73, 0x65, 0x10, 0xd1, 0x0f, 0x12, 0x18, 0x0a, 0x13, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c,
0x68, 0x61, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0xd2, 0x0f, 0x12,
0x1a, 0x0a, 0x15, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x4e, 0x6f,
0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0xd3, 0x0f, 0x12, 0x19, 0x0a, 0x14, 0x47,
0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x4d, 0x6f, 0x72, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54,
0x69, 0x6d, 0x65, 0x10, 0xb5, 0x10, 0x12, 0x16, 0x0a, 0x11, 0x47, 0x6f, 0x75, 0x72, 0x6d, 0x65,
0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, 0xb6, 0x10, 0x12, 0x12,
0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10,
0x99, 0x11, 0x12, 0x14, 0x0a, 0x0f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x55, 0x6e, 0x46, 0x69, 0x6e,
0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x9a, 0x11, 0x12, 0x11, 0x0a, 0x0c, 0x52, 0x74, 0x61, 0x73,
0x6b, 0x4e, 0x6f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x10, 0x9b, 0x11, 0x12, 0x12, 0x0a, 0x0d, 0x52,
0x74, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x65, 0x64, 0x10, 0x9c, 0x11, 0x12,
0x15, 0x0a, 0x10, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x65, 0x4e, 0x6f, 0x46, 0x69, 0x6e,
0x69, 0x73, 0x68, 0x10, 0x9d, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x43,
0x6f, 0x6e, 0x64, 0x69, 0x4e, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x68, 0x10, 0x9e, 0x11, 0x12, 0x13,
0x0a, 0x0e, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x4c, 0x61, 0x73, 0x74, 0x4f, 0x6e, 0x65,
0x10, 0x9f, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x64,
0x69, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xa0, 0x11, 0x12, 0x10, 0x0a, 0x0b, 0x56,
0x69, 0x6b, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0xfd, 0x11, 0x12, 0x13, 0x0a,
0x0e, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x10,
0xfe, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x56, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x79, 0x4d,
0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xff, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x56, 0x69,
0x6b, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65,
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x80, 0x12, 0x12, 0x1a, 0x0a, 0x15, 0x4d, 0x6f, 0x6f, 0x6e,
0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x48, 0x61, 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65,
0x64, 0x10, 0xe1, 0x12, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74,
0x61, 0x73, 0x79, 0x4a, 0x6f, 0x69, 0x6e, 0x55, 0x70, 0x10, 0xe2, 0x12, 0x12, 0x16, 0x0a, 0x11,
0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x44, 0x61, 0x72, 0x65, 0x55,
0x70, 0x10, 0xe3, 0x12, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74,
0x61, 0x73, 0x79, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x45, 0x6e, 0x64, 0x10, 0xe4,
0x12, 0x12, 0x1b, 0x0a, 0x16, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79,
0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x57, 0x69, 0x6e, 0x10, 0xe5, 0x12, 0x12, 0x16,
0x0a, 0x11, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61, 0x6e, 0x74, 0x61, 0x73, 0x79, 0x4e, 0x6f, 0x4a,
0x6f, 0x69, 0x6e, 0x10, 0xe6, 0x12, 0x12, 0x20, 0x0a, 0x1b, 0x4d, 0x6f, 0x6f, 0x6e, 0x66, 0x61,
0x6e, 0x74, 0x61, 0x73, 0x79, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x62, 0x61,
0x74, 0x74, 0x6c, 0x65, 0x73, 0x10, 0xe7, 0x12, 0x12, 0x18, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x74,
0x6c, 0x65, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x10,
0xc5, 0x13, 0x12, 0x1a, 0x0a, 0x15, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x54,
0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xa9, 0x14, 0x12, 0x17,
0x0a, 0x12, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4e, 0x6f, 0x52, 0x65, 0x63,
0x65, 0x69, 0x76, 0x65, 0x10, 0xaa, 0x14, 0x12, 0x1f, 0x0a, 0x1a, 0x4c, 0x69, 0x6e, 0x65, 0x73,
0x74, 0x6f, 0x72, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64,
0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, 0xab, 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x4c, 0x69, 0x6e, 0x65,
0x73, 0x74, 0x6f, 0x72, 0x79, 0x43, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x4f, 0x70,
0x65, 0x6e, 0x10, 0xac, 0x14, 0x12, 0x1b, 0x0a, 0x16, 0x4c, 0x69, 0x6e, 0x65, 0x73, 0x74, 0x6f,
0x72, 0x79, 0x50, 0x72, 0x65, 0x4e, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10,
0xad, 0x14, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x45,
0x72, 0x72, 0x10, 0x8d, 0x15, 0x12, 0x14, 0x0a, 0x0f, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67,
0x42, 0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x10, 0x8e, 0x15, 0x12, 0x17, 0x0a, 0x12, 0x48,
0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e,
0x74, 0x10, 0x8f, 0x15, 0x12, 0x1d, 0x0a, 0x18, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4d,
0x61, 0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74,
0x10, 0x90, 0x15, 0x12, 0x1c, 0x0a, 0x17, 0x48, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4e, 0x6f,
0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x91,
0x15, 0x12, 0x11, 0x0a, 0x0c, 0x45, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x4c, 0x76, 0x45, 0x72,
0x72, 0x10, 0x97, 0x15, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x42,
0x6f, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x10, 0x98, 0x15, 0x12, 0x17, 0x0a, 0x12, 0x45, 0x6e,
0x63, 0x68, 0x61, 0x6e, 0x74, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74,
0x10, 0x99, 0x15, 0x12, 0x1d, 0x0a, 0x18, 0x45, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x4d, 0x61,
0x78, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10,
0x9a, 0x15, 0x12, 0x1c, 0x0a, 0x17, 0x45, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x4e, 0x6f, 0x43,
0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x9b, 0x15,
0x12, 0x11, 0x0a, 0x0c, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x4c, 0x76,
0x10, 0xf1, 0x15, 0x12, 0x12, 0x0a, 0x0d, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x4e, 0x6f,
0x44, 0x61, 0x74, 0x61, 0x10, 0xf2, 0x15, 0x12, 0x16, 0x0a, 0x11, 0x4c, 0x69, 0x62, 0x72, 0x61,
0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xf3, 0x15, 0x12,
0x12, 0x0a, 0x0d, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64,
0x10, 0xf4, 0x15, 0x12, 0x14, 0x0a, 0x0f, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x4c, 0x76,
0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xf5, 0x15, 0x12, 0x1d, 0x0a, 0x18, 0x4c, 0x69, 0x62,
0x72, 0x61, 0x72, 0x79, 0x46, 0x65, 0x74, 0x74, 0x65, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f,
0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xf6, 0x15, 0x12, 0x1d, 0x0a, 0x18, 0x4c, 0x69, 0x62, 0x72,
0x61, 0x72, 0x79, 0x50, 0x72, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x69,
0x73, 0x68, 0x65, 0x64, 0x10, 0xf7, 0x15, 0x12, 0x1b, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x74, 0x6c,
0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65,
0x64, 0x10, 0xd5, 0x16, 0x12, 0x10, 0x0a, 0x0b, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f,
0x57, 0x69, 0x6e, 0x10, 0xd6, 0x16, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74,
0x79, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xb8, 0x17, 0x12, 0x11, 0x0a, 0x0c, 0x53,
0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x64, 0x64, 0x65, 0x64, 0x10, 0xb9, 0x17, 0x12, 0x1b,
0x0a, 0x16, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64,
0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xba, 0x17, 0x12, 0x14, 0x0a, 0x0f, 0x53,
0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0xbb,
0x17, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x52, 0x69,
0x67, 0x68, 0x74, 0x10, 0xbc, 0x17, 0x12, 0x13, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74,
0x79, 0x4e, 0x6f, 0x41, 0x64, 0x64, 0x65, 0x64, 0x10, 0xbd, 0x17, 0x12, 0x13, 0x0a, 0x0e, 0x53,
0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x10, 0xbe, 0x17,
0x12, 0x10, 0x0a, 0x0b, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x51, 0x75, 0x69, 0x74, 0x10,
0xbf, 0x17, 0x12, 0x11, 0x0a, 0x0c, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x67, 0x72,
0x65, 0x65, 0x10, 0xc0, 0x17, 0x12, 0x12, 0x0a, 0x0d, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79,
0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x10, 0xc1, 0x17, 0x12, 0x16, 0x0a, 0x10, 0x53, 0x6f, 0x63,
0x69, 0x61, 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x10, 0xba, 0xea,
0x01, 0x12, 0x19, 0x0a, 0x13, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4d, 0x61, 0x73, 0x74,
0x65, 0x72, 0x4e, 0x6f, 0x44, 0x69, 0x73, 0x73, 0x10, 0xbb, 0xea, 0x01, 0x12, 0x17, 0x0a, 0x11,
0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x4a, 0x6f,
0x62, 0x10, 0xbc, 0xea, 0x01, 0x12, 0x14, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79,
0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x10, 0xbd, 0xea, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x53,
0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x41, 0x63, 0x63, 0x75, 0x73, 0x65, 0x10, 0xbe,
0xea, 0x01, 0x12, 0x11, 0x0a, 0x0b, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x53, 0x69, 0x67,
0x6e, 0x10, 0xbf, 0xea, 0x01, 0x12, 0x13, 0x0a, 0x0d, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79,
0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x10, 0xc0, 0xea, 0x01, 0x12, 0x14, 0x0a, 0x0e, 0x53, 0x6f,
0x63, 0x69, 0x61, 0x74, 0x79, 0x43, 0x44, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xc1, 0xea, 0x01,
0x12, 0x15, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x79,
0x4d, 0x61, 0x78, 0x10, 0xc2, 0xea, 0x01, 0x12, 0x18, 0x0a, 0x12, 0x53, 0x6f, 0x63, 0x69, 0x61,
0x74, 0x79, 0x53, 0x65, 0x6c, 0x66, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x10, 0xc3, 0xea,
0x01, 0x12, 0x1d, 0x0a, 0x17, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4d, 0x65, 0x6d, 0x62,
0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xc4, 0xea, 0x01,
0x12, 0x1b, 0x0a, 0x15, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72,
0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0xc5, 0xea, 0x01, 0x12, 0x1a, 0x0a,
0x14, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65,
0x63, 0x65, 0x69, 0x76, 0x65, 0x10, 0xc6, 0xea, 0x01, 0x12, 0x15, 0x0a, 0x0f, 0x53, 0x6f, 0x63,
0x69, 0x61, 0x74, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x10, 0xc7, 0xea, 0x01,
0x12, 0x15, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x42, 0x65, 0x6c, 0x6f, 0x6e,
0x67, 0x54, 0x6f, 0x10, 0xc9, 0xea, 0x01, 0x12, 0x14, 0x0a, 0x0e, 0x53, 0x6f, 0x63, 0x69, 0x61,
0x74, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x10, 0xca, 0xea, 0x01, 0x12, 0x1b, 0x0a,
0x15, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x41, 0x70, 0x70, 0x79, 0x4c, 0x76, 0x4e, 0x6f,
0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xcb, 0xea, 0x01, 0x12, 0x1b, 0x0a, 0x15, 0x53, 0x6f,
0x63, 0x69, 0x61, 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x10, 0xcc, 0xea, 0x01, 0x12, 0x1d, 0x0a, 0x17, 0x53, 0x6f, 0x63, 0x69, 0x61,
0x74, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x75,
0x67, 0x68, 0x10, 0xcd, 0xea, 0x01, 0x12, 0x1c, 0x0a, 0x16, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74,
0x79, 0x41, 0x63, 0x69, 0x74, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65,
0x10, 0xce, 0xea, 0x01, 0x12, 0x16, 0x0a, 0x10, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x44,
0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x10, 0xcf, 0xea, 0x01, 0x12, 0x16, 0x0a, 0x10,
0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74,
0x10, 0xd0, 0xea, 0x01, 0x12, 0x1a, 0x0a, 0x14, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x51,
0x75, 0x69, 0x74, 0x4e, 0x6f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x10, 0xd1, 0xea, 0x01,
0x12, 0x15, 0x0a, 0x0f, 0x53, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x79, 0x4e, 0x6f, 0x4d, 0x61, 0x73,
0x74, 0x65, 0x72, 0x10, 0xd2, 0xea, 0x01, 0x12, 0x15, 0x0a, 0x10, 0x41, 0x72, 0x65, 0x6e, 0x61,
0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x42, 0x75, 0x79, 0x55, 0x70, 0x10, 0x9d, 0x18, 0x12, 0x19,
0x0a, 0x14, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x4e, 0x6f, 0x74,
0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x9e, 0x18, 0x12, 0x17, 0x0a, 0x12, 0x41, 0x72, 0x65,
0x6e, 0x61, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x4e, 0x70, 0x63, 0x49, 0x6e, 0x43, 0x64, 0x10,
0x9f, 0x18, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x65,
0x61, 0x74, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x10, 0x81, 0x19, 0x12, 0x12, 0x0a, 0x0d, 0x54, 0x61,
0x6c, 0x65, 0x6e, 0x74, 0x45, 0x72, 0x72, 0x44, 0x61, 0x74, 0x61, 0x10, 0x82, 0x19, 0x12, 0x19,
0x0a, 0x14, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x55, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x72,
0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x10, 0x83, 0x19, 0x12, 0x15, 0x0a, 0x10, 0x54, 0x61, 0x6c,
0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0x84, 0x19,
0x12, 0x10, 0x0a, 0x0b, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x42, 0x75, 0x79, 0x4d, 0x61, 0x78, 0x10,
0xe5, 0x19, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x6c, 0x6c, 0x4d,
0x61, 0x78, 0x10, 0xe6, 0x19, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x4d, 0x61,
0x78, 0x53, 0x65, 0x6c, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xe7, 0x19, 0x12, 0x16, 0x0a,
0x11, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x75,
0x6e, 0x74, 0x10, 0xe8, 0x19, 0x12, 0x18, 0x0a, 0x13, 0x54, 0x72, 0x6f, 0x6c, 0x6c, 0x52, 0x65,
0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xe9, 0x19, 0x12,
0x19, 0x0a, 0x14, 0x48, 0x6f, 0x72, 0x6f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x4e, 0x6f, 0x74, 0x54,
0x75, 0x72, 0x6e, 0x65, 0x64, 0x4f, 0x6e, 0x10, 0xc9, 0x1a, 0x12, 0x19, 0x0a, 0x14, 0x48, 0x6f,
0x72, 0x6f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x65, 0x73, 0x74, 0x43, 0x44, 0x4e, 0x6f, 0x45,
0x6e, 0x64, 0x10, 0xca, 0x1a, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65,
0x67, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xad, 0x1b, 0x12, 0x17, 0x0a,
0x12, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x54,
0x69, 0x6d, 0x65, 0x10, 0xae, 0x1b, 0x12, 0x0f, 0x0a, 0x0a, 0x56, 0x69, 0x70, 0x4c, 0x76, 0x45,
0x72, 0x72, 0x6f, 0x72, 0x10, 0xaf, 0x1b, 0x12, 0x11, 0x0a, 0x0c, 0x56, 0x69, 0x70, 0x47, 0x69,
0x66, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xb0, 0x1b, 0x12, 0x11, 0x0a, 0x0c, 0x56, 0x69,
0x70, 0x42, 0x75, 0x79, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x10, 0xb1, 0x1b, 0x12, 0x14, 0x0a,
0x0f, 0x47, 0x72, 0x6f, 0x77, 0x74, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65,
0x10, 0x91, 0x1c, 0x12, 0x17, 0x0a, 0x12, 0x47, 0x72, 0x6f, 0x77, 0x74, 0x61, 0x73, 0x6b, 0x41,
0x64, 0x76, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x10, 0x92, 0x1c, 0x12, 0x17, 0x0a, 0x12,
0x50, 0x61, 0x79, 0x42, 0x75, 0x79, 0x4e, 0x75, 0x6d, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75,
0x67, 0x68, 0x10, 0xf5, 0x1c, 0x12, 0x14, 0x0a, 0x0f, 0x50, 0x61, 0x79, 0x52, 0x65, 0x6e, 0x65,
0x77, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x72, 0x72, 0x10, 0xf6, 0x1c, 0x12, 0x16, 0x0a, 0x11, 0x50,
0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64,
0x10, 0xf7, 0x1c, 0x12, 0x14, 0x0a, 0x0f, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b,
0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x10, 0xd9, 0x1d, 0x12, 0x19, 0x0a, 0x14, 0x57, 0x6f, 0x72,
0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x4c, 0x76, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67,
0x68, 0x10, 0xda, 0x1d, 0x12, 0x16, 0x0a, 0x11, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73,
0x6b, 0x4e, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x10, 0xdb, 0x1d, 0x12, 0x18, 0x0a, 0x13,
0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x6c,
0x65, 0x74, 0x65, 0x10, 0xdc, 0x1d, 0x12, 0x15, 0x0a, 0x10, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74,
0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x68, 0x65, 0x64, 0x10, 0xdd, 0x1d, 0x12, 0x1c, 0x0a,
0x17, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x4c, 0x61, 0x73, 0x74, 0x55, 0x6e,
0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0xde, 0x1d, 0x12, 0x1e, 0x0a, 0x19, 0x41,
0x63, 0x61, 0x64, 0x65, 0x6d, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x4e, 0x6f, 0x43, 0x6f, 0x6d, 0x70,
0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x10, 0xbd, 0x1e, 0x12, 0x15, 0x0a, 0x10, 0x41,
0x75, 0x74, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10,
0xa1, 0x1f, 0x12, 0x18, 0x0a, 0x13, 0x41, 0x75, 0x74, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65,
0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, 0x72, 0x72, 0x10, 0xa2, 0x1f, 0x42, 0x06, 0x5a, 0x04,
0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (

View File

@ -25,14 +25,14 @@ type DBMline struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID
Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid" bson:"uid"` //用户ID
CType int32 `protobuf:"varint,3,opt,name=cType,proto3" json:"cType" bson:"cType"` //章节ID
ChapterId int32 `protobuf:"varint,4,opt,name=chapterId,proto3" json:"chapterId" bson:"chapterId"` //章节ID
StageId int32 `protobuf:"varint,5,opt,name=stageId,proto3" json:"stageId" bson:"stageId"` //主线关卡ID
Star map[int32]int32 `protobuf:"bytes,6,rep,name=star,proto3" json:"star" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 关卡对应的星级 (key 关卡ID value 星数)
Awared map[int32]bool `protobuf:"bytes,7,rep,name=awared,proto3" json:"awared" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3" bson:"awared"` //(key 配置表星级)
Ps map[int32]int32 `protobuf:"bytes,8,rep,name=ps,proto3" json:"ps" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 预扣的体力
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID
Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid" bson:"uid"` //用户ID
CType int32 `protobuf:"varint,3,opt,name=cType,proto3" json:"cType" bson:"cType"` //章节类型
ChapterId int32 `protobuf:"varint,4,opt,name=chapterId,proto3" json:"chapterId" bson:"chapterId"` //章节ID
StageId int32 `protobuf:"varint,5,opt,name=stageId,proto3" json:"stageId" bson:"stageId"` //主线关卡ID
Star map[int32]int32 `protobuf:"bytes,6,rep,name=star,proto3" json:"star" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 关卡对应的星级 (key 关卡ID value 星数)
Award map[int32]bool `protobuf:"bytes,7,rep,name=award,proto3" json:"award" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3" bson:"award"` //(key 配置表星级)
Ps map[int32]int32 `protobuf:"bytes,8,rep,name=ps,proto3" json:"ps" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 预扣的体力
}
func (x *DBMline) Reset() {
@ -109,9 +109,9 @@ func (x *DBMline) GetStar() map[int32]int32 {
return nil
}
func (x *DBMline) GetAwared() map[int32]bool {
func (x *DBMline) GetAward() map[int32]bool {
if x != nil {
return x.Awared
return x.Award
}
return nil
}
@ -127,7 +127,7 @@ var File_mline_mline_db_proto protoreflect.FileDescriptor
var file_mline_mline_db_proto_rawDesc = []byte{
0x0a, 0x14, 0x6d, 0x6c, 0x69, 0x6e, 0x65, 0x2f, 0x6d, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x64, 0x62,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9c, 0x03, 0x0a, 0x07, 0x44, 0x42, 0x4d, 0x6c, 0x69,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x98, 0x03, 0x0a, 0x07, 0x44, 0x42, 0x4d, 0x6c, 0x69,
0x6e, 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, 0x14, 0x0a, 0x05, 0x63, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20,
@ -137,24 +137,24 @@ var file_mline_mline_db_proto_rawDesc = []byte{
0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x74, 0x61, 0x67, 0x65,
0x49, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x73, 0x74, 0x61, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x12, 0x2e, 0x44, 0x42, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x45,
0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x73, 0x74, 0x61, 0x72, 0x12, 0x2c, 0x0a, 0x06, 0x61, 0x77,
0x61, 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42, 0x4d,
0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79,
0x52, 0x06, 0x61, 0x77, 0x61, 0x72, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x02, 0x70, 0x73, 0x18, 0x08,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x44, 0x42, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x50,
0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x02, 0x70, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x53, 0x74,
0x61, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x41, 0x77, 0x61, 0x72, 0x65, 0x64, 0x45, 0x6e, 0x74,
0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x35,
0x0a, 0x07, 0x50, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 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,
0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x73, 0x74, 0x61, 0x72, 0x12, 0x29, 0x0a, 0x05, 0x61, 0x77,
0x61, 0x72, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x44, 0x42, 0x4d, 0x6c,
0x69, 0x6e, 0x65, 0x2e, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05,
0x61, 0x77, 0x61, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x02, 0x70, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x10, 0x2e, 0x44, 0x42, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x50, 0x73, 0x45, 0x6e,
0x74, 0x72, 0x79, 0x52, 0x02, 0x70, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x45,
0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
0x1a, 0x38, 0x0a, 0x0a, 0x41, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79,
0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x35, 0x0a, 0x07, 0x50, 0x73,
0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 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 (
@ -173,12 +173,12 @@ var file_mline_mline_db_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_mline_mline_db_proto_goTypes = []interface{}{
(*DBMline)(nil), // 0: DBMline
nil, // 1: DBMline.StarEntry
nil, // 2: DBMline.AwaredEntry
nil, // 2: DBMline.AwardEntry
nil, // 3: DBMline.PsEntry
}
var file_mline_mline_db_proto_depIdxs = []int32{
1, // 0: DBMline.star:type_name -> DBMline.StarEntry
2, // 1: DBMline.awared:type_name -> DBMline.AwaredEntry
2, // 1: DBMline.award:type_name -> DBMline.AwardEntry
3, // 2: DBMline.ps:type_name -> DBMline.PsEntry
3, // [3:3] is the sub-list for method output_type
3, // [3:3] is the sub-list for method input_type

View File

@ -177,7 +177,8 @@ type MlineGetRewardResp struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Data *DBMline `protobuf:"bytes,1,opt,name=data,proto3" json:"data"` //当前章节信息
Data *DBMline `protobuf:"bytes,1,opt,name=data,proto3" json:"data"` //当前章节信息
Reward []*UserAssets `protobuf:"bytes,2,rep,name=reward,proto3" json:"reward"` // 奖励
}
func (x *MlineGetRewardResp) Reset() {
@ -219,6 +220,13 @@ func (x *MlineGetRewardResp) GetData() *DBMline {
return nil
}
func (x *MlineGetRewardResp) GetReward() []*UserAssets {
if x != nil {
return x.Reward
}
return nil
}
// 挑战关卡
type MlineChallengeReq struct {
state protoimpl.MessageState
@ -391,7 +399,8 @@ type MlineChallengeOverResp struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Data *DBMline `protobuf:"bytes,1,opt,name=data,proto3" json:"data"` //当前章节信息
Data *DBMline `protobuf:"bytes,1,opt,name=data,proto3" json:"data"` //当前章节信息
Reward []*UserAssets `protobuf:"bytes,2,rep,name=reward,proto3" json:"reward"` // 奖励
}
func (x *MlineChallengeOverResp) Reset() {
@ -433,6 +442,116 @@ func (x *MlineChallengeOverResp) GetData() *DBMline {
return nil
}
func (x *MlineChallengeOverResp) GetReward() []*UserAssets {
if x != nil {
return x.Reward
}
return nil
}
// 扫荡关卡
type MlineCleanStageReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
StageId int32 `protobuf:"varint,1,opt,name=stageId,proto3" json:"stageId"` // 小关ID
}
func (x *MlineCleanStageReq) Reset() {
*x = MlineCleanStageReq{}
if protoimpl.UnsafeEnabled {
mi := &file_mline_mline_msg_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MlineCleanStageReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MlineCleanStageReq) ProtoMessage() {}
func (x *MlineCleanStageReq) ProtoReflect() protoreflect.Message {
mi := &file_mline_mline_msg_proto_msgTypes[8]
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 MlineCleanStageReq.ProtoReflect.Descriptor instead.
func (*MlineCleanStageReq) Descriptor() ([]byte, []int) {
return file_mline_mline_msg_proto_rawDescGZIP(), []int{8}
}
func (x *MlineCleanStageReq) GetStageId() int32 {
if x != nil {
return x.StageId
}
return 0
}
type MlineCleanStageResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
StageId int32 `protobuf:"varint,1,opt,name=stageId,proto3" json:"stageId"` // 小关ID
Reward []*UserAssets `protobuf:"bytes,2,rep,name=reward,proto3" json:"reward"` // 奖励
}
func (x *MlineCleanStageResp) Reset() {
*x = MlineCleanStageResp{}
if protoimpl.UnsafeEnabled {
mi := &file_mline_mline_msg_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MlineCleanStageResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MlineCleanStageResp) ProtoMessage() {}
func (x *MlineCleanStageResp) ProtoReflect() protoreflect.Message {
mi := &file_mline_mline_msg_proto_msgTypes[9]
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 MlineCleanStageResp.ProtoReflect.Descriptor instead.
func (*MlineCleanStageResp) Descriptor() ([]byte, []int) {
return file_mline_mline_msg_proto_rawDescGZIP(), []int{9}
}
func (x *MlineCleanStageResp) GetStageId() int32 {
if x != nil {
return x.StageId
}
return 0
}
func (x *MlineCleanStageResp) GetReward() []*UserAssets {
if x != nil {
return x.Reward
}
return nil
}
var File_mline_mline_msg_proto protoreflect.FileDescriptor
var file_mline_mline_msg_proto_rawDesc = []byte{
@ -440,40 +559,54 @@ var file_mline_mline_msg_proto_rawDesc = []byte{
0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x6d, 0x6c, 0x69, 0x6e, 0x65, 0x2f, 0x6d,
0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x62,
0x61, 0x74, 0x74, 0x6c, 0x65, 0x2f, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x6d, 0x73, 0x67,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x27, 0x0a, 0x0f, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x47,
0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x54, 0x79,
0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22,
0x30, 0x0a, 0x10, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52,
0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x08, 0x2e, 0x44, 0x42, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74,
0x61, 0x22, 0x39, 0x0a, 0x11, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x77,
0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x05, 0x52, 0x03, 0x63, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x61, 0x72,
0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x74, 0x61, 0x72, 0x22, 0x32, 0x0a, 0x12,
0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65,
0x73, 0x70, 0x12, 0x1c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x08, 0x2e, 0x44, 0x42, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61,
0x22, 0x57, 0x0a, 0x11, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e,
0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x67, 0x65, 0x49, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x74, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12,
0x28, 0x0a, 0x06, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x10, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x52, 0x06, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x22, 0x4f, 0x0a, 0x12, 0x4d, 0x6c, 0x69,
0x6e, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12,
0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e,
0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f,
0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x67, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
0x05, 0x52, 0x07, 0x73, 0x74, 0x61, 0x67, 0x65, 0x49, 0x64, 0x22, 0x58, 0x0a, 0x15, 0x4d, 0x6c,
0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x4f, 0x76, 0x65, 0x72,
0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x67, 0x65, 0x49, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x74, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a,
0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e,
0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x06, 0x72, 0x65,
0x70, 0x6f, 0x72, 0x74, 0x22, 0x36, 0x0a, 0x16, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61,
0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x22, 0x27, 0x0a, 0x0f, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x4c, 0x69,
0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01,
0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0x30, 0x0a, 0x10, 0x4d,
0x6c, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12,
0x1c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e,
0x44, 0x42, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x39, 0x0a,
0x11, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52,
0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
0x03, 0x63, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01,
0x28, 0x05, 0x52, 0x04, 0x73, 0x74, 0x61, 0x72, 0x22, 0x57, 0x0a, 0x12, 0x4d, 0x6c, 0x69, 0x6e,
0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c,
0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x44,
0x42, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x06, 0x5a, 0x04,
0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x42, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x06,
0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x55,
0x73, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72,
0x64, 0x22, 0x57, 0x0a, 0x11, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65,
0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x67, 0x65, 0x49,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x74, 0x61, 0x67, 0x65, 0x49, 0x64,
0x12, 0x28, 0x0a, 0x06, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x10, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x52, 0x06, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x22, 0x4f, 0x0a, 0x12, 0x4d, 0x6c,
0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70,
0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b,
0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66,
0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x67, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01,
0x28, 0x05, 0x52, 0x07, 0x73, 0x74, 0x61, 0x67, 0x65, 0x49, 0x64, 0x22, 0x58, 0x0a, 0x15, 0x4d,
0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x4f, 0x76, 0x65,
0x72, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x67, 0x65, 0x49, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x74, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x25,
0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d,
0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x06, 0x72,
0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x5b, 0x0a, 0x16, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68,
0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12,
0x1c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e,
0x44, 0x42, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a,
0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e,
0x55, 0x73, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61,
0x72, 0x64, 0x22, 0x2e, 0x0a, 0x12, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6c, 0x65, 0x61, 0x6e,
0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x67,
0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x74, 0x61, 0x67, 0x65,
0x49, 0x64, 0x22, 0x54, 0x0a, 0x13, 0x4d, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6c, 0x65, 0x61, 0x6e,
0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61,
0x67, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x74, 0x61, 0x67,
0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73,
0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62,
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@ -488,7 +621,7 @@ func file_mline_mline_msg_proto_rawDescGZIP() []byte {
return file_mline_mline_msg_proto_rawDescData
}
var file_mline_mline_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
var file_mline_mline_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
var file_mline_mline_msg_proto_goTypes = []interface{}{
(*MlineGetListReq)(nil), // 0: MlineGetListReq
(*MlineGetListResp)(nil), // 1: MlineGetListResp
@ -498,23 +631,29 @@ var file_mline_mline_msg_proto_goTypes = []interface{}{
(*MlineChallengeResp)(nil), // 5: MlineChallengeResp
(*MlineChallengeOverReq)(nil), // 6: MlineChallengeOverReq
(*MlineChallengeOverResp)(nil), // 7: MlineChallengeOverResp
(*DBMline)(nil), // 8: DBMline
(*BattleFormation)(nil), // 9: BattleFormation
(*BattleInfo)(nil), // 10: BattleInfo
(*BattleReport)(nil), // 11: BattleReport
(*MlineCleanStageReq)(nil), // 8: MlineCleanStageReq
(*MlineCleanStageResp)(nil), // 9: MlineCleanStageResp
(*DBMline)(nil), // 10: DBMline
(*UserAssets)(nil), // 11: UserAssets
(*BattleFormation)(nil), // 12: BattleFormation
(*BattleInfo)(nil), // 13: BattleInfo
(*BattleReport)(nil), // 14: BattleReport
}
var file_mline_mline_msg_proto_depIdxs = []int32{
8, // 0: MlineGetListResp.data:type_name -> DBMline
8, // 1: MlineGetRewardResp.data:type_name -> DBMline
9, // 2: MlineChallengeReq.battle:type_name -> BattleFormation
10, // 3: MlineChallengeResp.info:type_name -> BattleInfo
11, // 4: MlineChallengeOverReq.report:type_name -> BattleReport
8, // 5: MlineChallengeOverResp.data:type_name -> DBMline
6, // [6:6] is the sub-list for method output_type
6, // [6:6] is the sub-list for method input_type
6, // [6:6] is the sub-list for extension type_name
6, // [6:6] is the sub-list for extension extendee
0, // [0:6] is the sub-list for field type_name
10, // 0: MlineGetListResp.data:type_name -> DBMline
10, // 1: MlineGetRewardResp.data:type_name -> DBMline
11, // 2: MlineGetRewardResp.reward:type_name -> UserAssets
12, // 3: MlineChallengeReq.battle:type_name -> BattleFormation
13, // 4: MlineChallengeResp.info:type_name -> BattleInfo
14, // 5: MlineChallengeOverReq.report:type_name -> BattleReport
10, // 6: MlineChallengeOverResp.data:type_name -> DBMline
11, // 7: MlineChallengeOverResp.reward:type_name -> UserAssets
11, // 8: MlineCleanStageResp.reward:type_name -> UserAssets
9, // [9:9] is the sub-list for method output_type
9, // [9:9] is the sub-list for method input_type
9, // [9:9] is the sub-list for extension type_name
9, // [9:9] is the sub-list for extension extendee
0, // [0:9] is the sub-list for field type_name
}
func init() { file_mline_mline_msg_proto_init() }
@ -524,6 +663,7 @@ func file_mline_mline_msg_proto_init() {
}
file_mline_mline_db_proto_init()
file_battle_battle_msg_proto_init()
file_comm_proto_init()
if !protoimpl.UnsafeEnabled {
file_mline_mline_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MlineGetListReq); i {
@ -621,6 +761,30 @@ func file_mline_mline_msg_proto_init() {
return nil
}
}
file_mline_mline_msg_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MlineCleanStageReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mline_mline_msg_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MlineCleanStageResp); 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{
@ -628,7 +792,7 @@ func file_mline_mline_msg_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_mline_mline_msg_proto_rawDesc,
NumEnums: 0,
NumMessages: 8,
NumMessages: 10,
NumExtensions: 0,
NumServices: 0,
},

View File

@ -24,6 +24,7 @@ import (
"go_dreamfactory/modules/mail"
"go_dreamfactory/modules/mainline"
"go_dreamfactory/modules/martialhall"
"go_dreamfactory/modules/mline"
"go_dreamfactory/modules/moonfantasy"
"go_dreamfactory/modules/notify"
"go_dreamfactory/modules/pagoda"
@ -108,7 +109,7 @@ func main() {
reddot.NewModule(),
combat.NewModule(),
enchant.NewModule(),
//autoBattle.NewModule(),
mline.NewModule(),
)
}

View File

@ -13,7 +13,6 @@ import "errors"
type GameGuildTaskData struct {
TypeId int32
IdList int32
Weight int32
JumpInterface int32
TaskDisplay string
Reward []*Gameatn
@ -30,7 +29,6 @@ func (*GameGuildTaskData) GetTypeId() int32 {
func (_v *GameGuildTaskData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["type_id"].(float64); !_ok_ { err = errors.New("type_id error"); return }; _v.TypeId = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id_list"].(float64); !_ok_ { err = errors.New("id_list error"); return }; _v.IdList = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["weight"].(float64); !_ok_ { err = errors.New("weight error"); return }; _v.Weight = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["jump_interface"].(float64); !_ok_ { err = errors.New("jump_interface error"); return }; _v.JumpInterface = int32(_tempNum_) }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["task_display"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.TaskDisplay error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.TaskDisplay, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{

View 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 GameMainChapter struct {
_dataMap map[int32]*GameMainChapterData
_dataList []*GameMainChapterData
}
func NewGameMainChapter(_buf []map[string]interface{}) (*GameMainChapter, error) {
_dataList := make([]*GameMainChapterData, 0, len(_buf))
dataMap := make(map[int32]*GameMainChapterData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameMainChapterData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Id] = _v
}
}
return &GameMainChapter{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameMainChapter) GetDataMap() map[int32]*GameMainChapterData {
return table._dataMap
}
func (table *GameMainChapter) GetDataList() []*GameMainChapterData {
return table._dataList
}
func (table *GameMainChapter) Get(key int32) *GameMainChapterData {
return table._dataMap[key]
}

View File

@ -0,0 +1,49 @@
//------------------------------------------------------------------------------
// <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 GameMainChapterData struct {
Id int32
Name string
ChapterType int32
Map string
Camera string
Title string
Desc string
Starreward int32
}
const TypeId_GameMainChapterData = 2014963746
func (*GameMainChapterData) GetTypeId() int32 {
return 2014963746
}
func (_v *GameMainChapterData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["name"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Name error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Name, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["chapter_type"].(float64); !_ok_ { err = errors.New("chapter_type error"); return }; _v.ChapterType = int32(_tempNum_) }
{ var _ok_ bool; if _v.Map, _ok_ = _buf["map"].(string); !_ok_ { err = errors.New("map error"); return } }
{ var _ok_ bool; if _v.Camera, _ok_ = _buf["camera"].(string); !_ok_ { err = errors.New("camera error"); return } }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["title"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Title error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Title, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["desc"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Desc error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Desc, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["starreward"].(float64); !_ok_ { err = errors.New("starreward error"); return }; _v.Starreward = int32(_tempNum_) }
return
}
func DeserializeGameMainChapterData(_buf map[string]interface{}) (*GameMainChapterData, error) {
v := &GameMainChapterData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

View 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 GameMainStage struct {
_dataMap map[int32]*GameMainStageData
_dataList []*GameMainStageData
}
func NewGameMainStage(_buf []map[string]interface{}) (*GameMainStage, error) {
_dataList := make([]*GameMainStageData, 0, len(_buf))
dataMap := make(map[int32]*GameMainStageData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameMainStageData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Id] = _v
}
}
return &GameMainStage{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameMainStage) GetDataMap() map[int32]*GameMainStageData {
return table._dataMap
}
func (table *GameMainStage) GetDataList() []*GameMainStageData {
return table._dataList
}
func (table *GameMainStage) Get(key int32) *GameMainStageData {
return table._dataMap[key]
}

View File

@ -0,0 +1,185 @@
//------------------------------------------------------------------------------
// <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"
import "bright/serialization"
type GameMainStageData struct {
Id int32
Chapterid int32
Previoustage int32
Episodetype int32
Openlevel int32
Episodelocation serialization.Vector3
MainlineName string
Title string
Desc string
Exp int32
HeroExp int32
PsConsume []*Gameatn
PsMg []*Gameatn
Firstaward []*Gameatn
Commonaward []*Gameatn
FormatList []int32
CaptainId int32
Star []int32
StarType []int32
StarValue []int32
}
const TypeId_GameMainStageData = -1084910317
func (*GameMainStageData) GetTypeId() int32 {
return -1084910317
}
func (_v *GameMainStageData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["chapterid"].(float64); !_ok_ { err = errors.New("chapterid error"); return }; _v.Chapterid = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["previoustage"].(float64); !_ok_ { err = errors.New("previoustage error"); return }; _v.Previoustage = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Episodetype"].(float64); !_ok_ { err = errors.New("Episodetype error"); return }; _v.Episodetype = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["openlevel"].(float64); !_ok_ { err = errors.New("openlevel error"); return }; _v.Openlevel = int32(_tempNum_) }
{ var _ok_ bool; var _v_ map[string]interface{}; if _v_, _ok_ = _buf["Episodelocation"].(map[string]interface{}); !_ok_ { err = errors.New("Episodelocation error"); return }
var _x_, _y_, _z_ float32;
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["x"].(float64); !_ok_ { err = errors.New("x error"); return }; _x_ = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["y"].(float64); !_ok_ { err = errors.New("y error"); return }; _y_ = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["z"].(float64); !_ok_ { err = errors.New("z error"); return }; _z_ = float32(_tempNum_) }
_v.Episodelocation = serialization.NewVector3(_x_, _y_, _z_)
}
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["mainlineName"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.MainlineName error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.MainlineName, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["title"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Title error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Title, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["desc"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Desc error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Desc, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["exp"].(float64); !_ok_ { err = errors.New("exp error"); return }; _v.Exp = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["hero_exp"].(float64); !_ok_ { err = errors.New("hero_exp error"); return }; _v.HeroExp = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["ps_consume"].([]interface{}); !_ok_ { err = errors.New("ps_consume error"); return }
_v.PsConsume = make([]*Gameatn, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ *Gameatn
{ 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 = DeserializeGameatn(_x_); err != nil { return } }
_v.PsConsume = append(_v.PsConsume, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["ps_mg"].([]interface{}); !_ok_ { err = errors.New("ps_mg error"); return }
_v.PsMg = make([]*Gameatn, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ *Gameatn
{ 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 = DeserializeGameatn(_x_); err != nil { return } }
_v.PsMg = append(_v.PsMg, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["firstaward"].([]interface{}); !_ok_ { err = errors.New("firstaward error"); return }
_v.Firstaward = make([]*Gameatn, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ *Gameatn
{ 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 = DeserializeGameatn(_x_); err != nil { return } }
_v.Firstaward = append(_v.Firstaward, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["commonaward"].([]interface{}); !_ok_ { err = errors.New("commonaward error"); return }
_v.Commonaward = make([]*Gameatn, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ *Gameatn
{ 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 = DeserializeGameatn(_x_); err != nil { return } }
_v.Commonaward = append(_v.Commonaward, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["FormatList"].([]interface{}); !_ok_ { err = errors.New("FormatList error"); return }
_v.FormatList = make([]int32, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ int32
{ var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
_v.FormatList = append(_v.FormatList, _list_v_)
}
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["captainId"].(float64); !_ok_ { err = errors.New("captainId error"); return }; _v.CaptainId = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["star"].([]interface{}); !_ok_ { err = errors.New("star error"); return }
_v.Star = make([]int32, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ int32
{ var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
_v.Star = append(_v.Star, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["star_type"].([]interface{}); !_ok_ { err = errors.New("star_type error"); return }
_v.StarType = make([]int32, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ int32
{ var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
_v.StarType = append(_v.StarType, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["star_value"].([]interface{}); !_ok_ { err = errors.New("star_value error"); return }
_v.StarValue = make([]int32, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ int32
{ var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
_v.StarValue = append(_v.StarValue, _list_v_)
}
}
return
}
func DeserializeGameMainStageData(_buf map[string]interface{}) (*GameMainStageData, error) {
v := &GameMainStageData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

View 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 GameMainStarreward struct {
_dataMap map[int32]*GameMainStarrewardData
_dataList []*GameMainStarrewardData
}
func NewGameMainStarreward(_buf []map[string]interface{}) (*GameMainStarreward, error) {
_dataList := make([]*GameMainStarrewardData, 0, len(_buf))
dataMap := make(map[int32]*GameMainStarrewardData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameMainStarrewardData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Id] = _v
}
}
return &GameMainStarreward{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameMainStarreward) GetDataMap() map[int32]*GameMainStarrewardData {
return table._dataMap
}
func (table *GameMainStarreward) GetDataList() []*GameMainStarrewardData {
return table._dataList
}
func (table *GameMainStarreward) Get(key int32) *GameMainStarrewardData {
return table._dataMap[key]
}

View File

@ -0,0 +1,54 @@
//------------------------------------------------------------------------------
// <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 GameMainStarrewardData struct {
Id int32
Boxid int32
Starnum int32
Reward []*Gameatn
}
const TypeId_GameMainStarrewardData = -40647456
func (*GameMainStarrewardData) GetTypeId() int32 {
return -40647456
}
func (_v *GameMainStarrewardData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["boxid"].(float64); !_ok_ { err = errors.New("boxid error"); return }; _v.Boxid = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["starnum"].(float64); !_ok_ { err = errors.New("starnum error"); return }; _v.Starnum = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["reward"].([]interface{}); !_ok_ { err = errors.New("reward error"); return }
_v.Reward = make([]*Gameatn, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ *Gameatn
{ 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 = DeserializeGameatn(_x_); err != nil { return } }
_v.Reward = append(_v.Reward, _list_v_)
}
}
return
}
func DeserializeGameMainStarrewardData(_buf map[string]interface{}) (*GameMainStarrewardData, error) {
v := &GameMainStarrewardData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

View 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 GameMainStartype struct {
_dataMap map[int32]*GameMainStartypeData
_dataList []*GameMainStartypeData
}
func NewGameMainStartype(_buf []map[string]interface{}) (*GameMainStartype, error) {
_dataList := make([]*GameMainStartypeData, 0, len(_buf))
dataMap := make(map[int32]*GameMainStartypeData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameMainStartypeData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Id] = _v
}
}
return &GameMainStartype{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameMainStartype) GetDataMap() map[int32]*GameMainStartypeData {
return table._dataMap
}
func (table *GameMainStartype) GetDataList() []*GameMainStartypeData {
return table._dataList
}
func (table *GameMainStartype) Get(key int32) *GameMainStartypeData {
return table._dataMap[key]
}

View File

@ -0,0 +1,37 @@
//------------------------------------------------------------------------------
// <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 GameMainStartypeData struct {
Id int32
StarName string
}
const TypeId_GameMainStartypeData = 1238709547
func (*GameMainStartypeData) GetTypeId() int32 {
return 1238709547
}
func (_v *GameMainStartypeData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["starName"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.StarName error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.StarName, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
return
}
func DeserializeGameMainStartypeData(_buf map[string]interface{}) (*GameMainStartypeData, error) {
v := &GameMainStartypeData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

View File

@ -151,6 +151,10 @@ type Tables struct {
EnchantShop *GameEnchantShop
EnchantBoss *GameEnchantBoss
EnchantLineup *GameEnchantLineup
MainChapter *GameMainChapter
MainStage *GameMainStage
MainStarreward *GameMainStarreward
MainStartype *GameMainStartype
}
func NewTables(loader JsonLoader) (*Tables, error) {
@ -998,5 +1002,29 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.EnchantLineup, err = NewGameEnchantLineup(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_mainchapter") ; err != nil {
return nil, err
}
if tables.MainChapter, err = NewGameMainChapter(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_mainstage") ; err != nil {
return nil, err
}
if tables.MainStage, err = NewGameMainStage(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_mainstarreward") ; err != nil {
return nil, err
}
if tables.MainStarreward, err = NewGameMainStarreward(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_mainstartype") ; err != nil {
return nil, err
}
if tables.MainStartype, err = NewGameMainStartype(buf) ; err != nil {
return nil, err
}
return tables, nil
}

View File

@ -15,6 +15,7 @@ type GameEquipSuitData struct {
Suitnum int32
Skill int32
Skillname string
FloatIcon string
Skillintr string
SetBonuses map[string]int32
}
@ -30,6 +31,7 @@ func (_v *GameEquipSuitData)Deserialize(_buf map[string]interface{}) (err error)
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["suitnum"].(float64); !_ok_ { err = errors.New("suitnum error"); return }; _v.Suitnum = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["skill"].(float64); !_ok_ { err = errors.New("skill error"); return }; _v.Skill = int32(_tempNum_) }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["skillname"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Skillname error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Skillname, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; if _v.FloatIcon, _ok_ = _buf["FloatIcon"].(string); !_ok_ { err = errors.New("FloatIcon error"); return } }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["skillintr"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Skillintr error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Skillintr, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{
var _arr_ []interface{}