This commit is contained in:
liwei1dao 2022-07-20 14:04:37 +08:00
commit 560eda6b87
117 changed files with 393269 additions and 284158 deletions

View File

@ -0,0 +1,494 @@
[
{
"key": "hero_13001",
"text_cn": "闪闪"
},
{
"key": "hero_13002",
"text_cn": "食人鱼先生"
},
{
"key": "hero_13003",
"text_cn": "啊啊"
},
{
"key": "hero_13004",
"text_cn": "法夸德勋爵"
},
{
"key": "hero_13005",
"text_cn": "大大"
},
{
"key": "hero_14001",
"text_cn": "史图依克"
},
{
"key": "hero_14002",
"text_cn": "大龙"
},
{
"key": "hero_14003",
"text_cn": "亚丝翠"
},
{
"key": "hero_14004",
"text_cn": "克莱尔·努涅斯"
},
{
"key": "hero_14005",
"text_cn": "鹤大师"
},
{
"key": "hero_14006",
"text_cn": "布兰奇"
},
{
"key": "hero_14007",
"text_cn": "格里斯特王子"
},
{
"key": "hero_15001",
"text_cn": "吉姆·莱克"
},
{
"key": "hero_15002",
"text_cn": "船长"
},
{
"key": "hero_15003",
"text_cn": "希沙窦斯"
},
{
"key": "hero_15004",
"text_cn": "小欧"
},
{
"key": "hero_15005",
"text_cn": "亚力克斯"
},
{
"key": "hero_23001",
"text_cn": "斯梅克船长"
},
{
"key": "hero_23002",
"text_cn": "警卫队长"
},
{
"key": "hero_23003",
"text_cn": "泰德·邓普顿"
},
{
"key": "hero_23004",
"text_cn": "吉姆·普雷斯科特"
},
{
"key": "hero_24001",
"text_cn": "警长"
},
{
"key": "hero_24002",
"text_cn": "牙仙"
},
{
"key": "hero_24003",
"text_cn": "睡神沙人"
},
{
"key": "hero_24004",
"text_cn": "邦尼兔"
},
{
"key": "hero_24005",
"text_cn": "金猴"
},
{
"key": "hero_24006",
"text_cn": "凯尔"
},
{
"key": "hero_24007",
"text_cn": "小钱"
},
{
"key": "hero_24008",
"text_cn": "暴芙那特"
},
{
"key": "hero_24009",
"text_cn": "云朵先生"
},
{
"key": "hero_25001",
"text_cn": "阿宝"
},
{
"key": "hero_25002",
"text_cn": "沃尔夫先生"
},
{
"key": "hero_25003",
"text_cn": "无牙仔"
},
{
"key": "hero_25004",
"text_cn": "波比"
},
{
"key": "hero_33001",
"text_cn": "巫嘎"
},
{
"key": "hero_33002",
"text_cn": "坦克"
},
{
"key": "hero_33003",
"text_cn": "胡德先生"
},
{
"key": "hero_33004",
"text_cn": "普鲁格兰杰"
},
{
"key": "hero_33005",
"text_cn": "鼻涕粗"
},
{
"key": "hero_33006",
"text_cn": "珍妮丝·邓普顿"
},
{
"key": "hero_34001",
"text_cn": "贫嘴驴"
},
{
"key": "hero_34002",
"text_cn": "蒂姆·邓普顿"
},
{
"key": "hero_34003",
"text_cn": "圣诞老人"
},
{
"key": "hero_34004",
"text_cn": "瓜哥"
},
{
"key": "hero_34005",
"text_cn": "沃尔特·史翠克勒"
},
{
"key": "hero_34006",
"text_cn": "冰霜杰克"
},
{
"key": "hero_34007",
"text_cn": "菲奥娜"
},
{
"key": "hero_34008",
"text_cn": "悍夫那特"
},
{
"key": "hero_35001",
"text_cn": "师父"
},
{
"key": "hero_35002",
"text_cn": "希卡普"
},
{
"key": "hero_35003",
"text_cn": "漆黑"
},
{
"key": "hero_35004",
"text_cn": "黛安·福克斯顿"
},
{
"key": "hero_35005",
"text_cn": "幸运·普雷斯科特"
},
{
"key": "hero_35006",
"text_cn": "平先生"
},
{
"key": "hero_43001",
"text_cn": "阿比盖尔·斯通"
},
{
"key": "hero_43002",
"text_cn": "果酱教授"
},
{
"key": "hero_43003",
"text_cn": "史蒂夫·帕丘克"
},
{
"key": "hero_43004",
"text_cn": "姜饼人"
},
{
"key": "hero_43005",
"text_cn": "瓦希尔指挥官"
},
{
"key": "hero_43006",
"text_cn": "布里奇特"
},
{
"key": "hero_43007",
"text_cn": "戈伯"
},
{
"key": "hero_44001",
"text_cn": "美肚鲨"
},
{
"key": "hero_44002",
"text_cn": "蛇先生"
},
{
"key": "hero_44003",
"text_cn": "匹诺曹"
},
{
"key": "hero_44004",
"text_cn": "艾札塔伦"
},
{
"key": "hero_44005",
"text_cn": "小伊"
},
{
"key": "hero_44006",
"text_cn": "悍娇虎"
},
{
"key": "hero_45001",
"text_cn": "乌龟大师"
},
{
"key": "hero_45002",
"text_cn": "梅林"
},
{
"key": "hero_45003",
"text_cn": "盖"
},
{
"key": "hero_45004",
"text_cn": "穿靴子的猫"
},
{
"key": "hero_43901",
"text_cn": "升星精灵"
},
{
"key": "hero_42911",
"text_cn": "初级经验精灵"
},
{
"key": "hero_43911",
"text_cn": "中级经验精灵"
},
{
"key": "hero_44911",
"text_cn": "高级经验精灵"
},
{
"key": "hero_43921",
"text_cn": "技能精灵·稀有"
},
{
"key": "hero_44921",
"text_cn": "技能精灵·史诗"
},
{
"key": "hero_45921",
"text_cn": "技能精灵·传说"
},
{
"key": "hero_51001",
"text_cn": "啵啵星人(新增)"
},
{
"key": "hero_51002",
"text_cn": "埃雷特手下1号新增"
},
{
"key": "hero_51003",
"text_cn": "埃雷特手下2号新增"
},
{
"key": "hero_51004",
"text_cn": "豺狼小怪(新增)"
},
{
"key": "hero_51005",
"text_cn": "犀牛守卫(新增)"
},
{
"key": "hero_51006",
"text_cn": "香塔尔 杜布瓦队长手下1号新增"
},
{
"key": "hero_51007",
"text_cn": "香塔尔 杜布瓦队长手下2号新增"
},
{
"key": "hero_51008",
"text_cn": "香塔尔 杜布瓦队长手下3号新增"
},
{
"key": "hero_51009",
"text_cn": "香塔尔 杜布瓦队长手下4号新增"
},
{
"key": "hero_51010",
"text_cn": "警卫1号新增"
},
{
"key": "hero_51011",
"text_cn": "警卫2号新增"
},
{
"key": "hero_51012",
"text_cn": "小猴子(新增)"
},
{
"key": "hero_51013",
"text_cn": "巨怪啰啰(新增)"
},
{
"key": "hero_51014",
"text_cn": "博啃族宫廷守卫(新增)"
},
{
"key": "hero_53001",
"text_cn": "埃雷特(新增)"
},
{
"key": "hero_53002",
"text_cn": "豺狼头领(新增)"
},
{
"key": "hero_53003",
"text_cn": "豪猪大师(翡翠僵尸)(新增)"
},
{
"key": "hero_53004",
"text_cn": "双獾大师(翡翠僵尸)(新增)"
},
{
"key": "hero_53005",
"text_cn": "小猴子首领(新增)"
},
{
"key": "hero_53006",
"text_cn": "巨怪首领(新增)"
},
{
"key": "hero_55001",
"text_cn": "香塔尔 杜布瓦队长"
},
{
"key": "hero_55002",
"text_cn": "亨得利克斯(新增)"
},
{
"key": "hero_55003",
"text_cn": "巨型猩猩怪兽(新增)"
},
{
"key": "hero_55004",
"text_cn": "白龙王"
},
{
"key": "hero_55005",
"text_cn": "大厨(新增)"
},
{
"key": "hero_55006",
"text_cn": "德雷格(新增)"
},
{
"key": "hero_55007",
"text_cn": "莫甘娜巨怪"
},
{
"key": "hero_55008",
"text_cn": "莫甘娜二阶"
},
{
"key": "item_10001",
"text_cn": "1阵营觉醒材料"
},
{
"key": "item_10002",
"text_cn": "1阵营觉醒材料"
},
{
"key": "item_10003",
"text_cn": "1阵营觉醒材料"
},
{
"key": "item_10011",
"text_cn": "2阵营觉醒材料"
},
{
"key": "item_10012",
"text_cn": "2阵营觉醒材料"
},
{
"key": "item_10013",
"text_cn": "2阵营觉醒材料"
},
{
"key": "item_10021",
"text_cn": "3阵营觉醒材料"
},
{
"key": "item_10022",
"text_cn": "3阵营觉醒材料"
},
{
"key": "item_10023",
"text_cn": "3阵营觉醒材料"
},
{
"key": "item_10031",
"text_cn": "4阵营觉醒材料"
},
{
"key": "item_10032",
"text_cn": "4阵营觉醒材料"
},
{
"key": "item_10033",
"text_cn": "4阵营觉醒材料"
},
{
"key": "equip_10001",
"text_cn": "劣质"
},
{
"key": "equip_10002",
"text_cn": "普通"
},
{
"key": "equip_10003",
"text_cn": "精良"
},
{
"key": "equip_10004",
"text_cn": "史诗"
},
{
"key": "equip_10005",
"text_cn": "传说"
}
]

View File

@ -0,0 +1,494 @@
[
{
"key": "hero_13001",
"text_en": "shining"
},
{
"key": "hero_13002",
"text_en": "Mr Piranhas"
},
{
"key": "hero_13003",
"text_en": "..."
},
{
"key": "hero_13004",
"text_en": "Law Lord kua DE"
},
{
"key": "hero_13005",
"text_en": "greatly"
},
{
"key": "hero_14001",
"text_en": "The history of figure according to g"
},
{
"key": "hero_14002",
"text_en": "dragon"
},
{
"key": "hero_14003",
"text_en": "The silk cui"
},
{
"key": "hero_14004",
"text_en": "Claire nunes"
},
{
"key": "hero_14005",
"text_en": "Crane master"
},
{
"key": "hero_14006",
"text_en": "Blanche"
},
{
"key": "hero_14007",
"text_en": "Grist, prince"
},
{
"key": "hero_15001",
"text_en": "Jim lake"
},
{
"key": "hero_15002",
"text_en": "The captain"
},
{
"key": "hero_15003",
"text_en": "Mr Shah DouSi"
},
{
"key": "hero_15004",
"text_en": "Small European"
},
{
"key": "hero_15005",
"text_en": "alex"
},
{
"key": "hero_23001",
"text_en": "\u0027m the captain"
},
{
"key": "hero_23002",
"text_en": "Captain of the guard"
},
{
"key": "hero_23003",
"text_en": "Ted templeton"
},
{
"key": "hero_23004",
"text_en": "Jim Prescott"
},
{
"key": "hero_24001",
"text_en": "The sheriff"
},
{
"key": "hero_24002",
"text_en": "The tooth fairy"
},
{
"key": "hero_24003",
"text_en": "The sand people sleep god"
},
{
"key": "hero_24004",
"text_en": "Bunny rabbit"
},
{
"key": "hero_24005",
"text_en": "Monkey!"
},
{
"key": "hero_24006",
"text_en": "kyle"
},
{
"key": "hero_24007",
"text_en": "penny"
},
{
"key": "hero_24008",
"text_en": "Fu knut"
},
{
"key": "hero_24009",
"text_en": "The clouds Mr."
},
{
"key": "hero_25001",
"text_en": "Po"
},
{
"key": "hero_25002",
"text_en": "Mr. Wolf"
},
{
"key": "hero_25003",
"text_en": "No teeth young"
},
{
"key": "hero_25004",
"text_en": "bobby"
},
{
"key": "hero_33001",
"text_en": "ugga"
},
{
"key": "hero_33002",
"text_en": "tanks"
},
{
"key": "hero_33003",
"text_en": "Mr Hood"
},
{
"key": "hero_33004",
"text_en": "Plutarch granger"
},
{
"key": "hero_33005",
"text_en": "Nose thick"
},
{
"key": "hero_33006",
"text_en": "Janice, templeton"
},
{
"key": "hero_34001",
"text_en": "Loquacious donkey"
},
{
"key": "hero_34002",
"text_en": "Tim templeton"
},
{
"key": "hero_34003",
"text_en": "Santa Claus"
},
{
"key": "hero_34004",
"text_en": "The elder brother of the melon"
},
{
"key": "hero_34005",
"text_en": "Walter Shi Cui koehler"
},
{
"key": "hero_34006",
"text_en": "Jack frost"
},
{
"key": "hero_34007",
"text_en": "fiona"
},
{
"key": "hero_34008",
"text_en": "Katherine, knut"
},
{
"key": "hero_35001",
"text_en": "The master"
},
{
"key": "hero_35002",
"text_en": "Mr Karp"
},
{
"key": "hero_35003",
"text_en": "dark"
},
{
"key": "hero_35004",
"text_en": "Diane folkestone"
},
{
"key": "hero_35005",
"text_en": "Lucky, Prescott"
},
{
"key": "hero_35006",
"text_en": "Mr. Ping"
},
{
"key": "hero_43001",
"text_en": "Abigail stone"
},
{
"key": "hero_43002",
"text_en": "Professor jam"
},
{
"key": "hero_43003",
"text_en": "Steve cukor"
},
{
"key": "hero_43004",
"text_en": "Gingerbread man"
},
{
"key": "hero_43005",
"text_en": "Tile hill commander"
},
{
"key": "hero_43006",
"text_en": "Bridget"
},
{
"key": "hero_43007",
"text_en": "gerber"
},
{
"key": "hero_44001",
"text_en": "The belly shark"
},
{
"key": "hero_44002",
"text_en": "Mr Snake"
},
{
"key": "hero_44003",
"text_en": "Pinocchio"
},
{
"key": "hero_44004",
"text_en": "Ai Zagreb tarun"
},
{
"key": "hero_44005",
"text_en": "Small Iraq"
},
{
"key": "hero_44006",
"text_en": "Katherine jiao tiger"
},
{
"key": "hero_45001",
"text_en": "Master oogway"
},
{
"key": "hero_45002",
"text_en": "merlin"
},
{
"key": "hero_45003",
"text_en": "cover"
},
{
"key": "hero_45004",
"text_en": "Puss in boots"
},
{
"key": "hero_43901",
"text_en": "L star elves"
},
{
"key": "hero_42911",
"text_en": "The primary experience elves"
},
{
"key": "hero_43911",
"text_en": "Intermediate experience elves"
},
{
"key": "hero_44911",
"text_en": "Advanced experience elves"
},
{
"key": "hero_43921",
"text_en": "The elves, a rare skill"
},
{
"key": "hero_44921",
"text_en": "Skills to the elves, epic"
},
{
"key": "hero_45921",
"text_en": "Skills elves legends"
},
{
"key": "hero_51001",
"text_en": "Bam bam star (new)"
},
{
"key": "hero_51002",
"text_en": "Mr Leite\u0027s no. 1 (new)"
},
{
"key": "hero_51003",
"text_en": "Mr Leite\u0027s no. 2 (new)"
},
{
"key": "hero_51004",
"text_en": "The Wolf small blame (new)"
},
{
"key": "hero_51005",
"text_en": "Rhino guards (new)"
},
{
"key": "hero_51006",
"text_en": "Chantal dubois captain\u0027s no. 1 (new)"
},
{
"key": "hero_51007",
"text_en": "Chantal dubois captain\u0027s no. 2 (new)"
},
{
"key": "hero_51008",
"text_en": "Chantal dubois captain under 3 (new)"
},
{
"key": "hero_51009",
"text_en": "Chantal dubois captain under 4 (new)"
},
{
"key": "hero_51010",
"text_en": "The guards (new) 1"
},
{
"key": "hero_51011",
"text_en": "The guards (new) 2,"
},
{
"key": "hero_51012",
"text_en": "Little monkey (new)"
},
{
"key": "hero_51013",
"text_en": "Johnson\u0027s then (new)"
},
{
"key": "hero_51014",
"text_en": "Bo on family palace guards (new)"
},
{
"key": "hero_53001",
"text_en": "Mr Leite (new)"
},
{
"key": "hero_53002",
"text_en": "The Wolf leader (new)"
},
{
"key": "hero_53003",
"text_en": "The porcupine master (jade zombie) (new)"
},
{
"key": "hero_53004",
"text_en": "Double the badger master (emerald zombie) (new)"
},
{
"key": "hero_53005",
"text_en": "Little monkey chief (new)"
},
{
"key": "hero_53006",
"text_en": "Johnson chief (new)"
},
{
"key": "hero_55001",
"text_en": "Chantal dubois captain"
},
{
"key": "hero_55002",
"text_en": "Hendry, (new)"
},
{
"key": "hero_55003",
"text_en": "A giant gorilla monster (new)"
},
{
"key": "hero_55004",
"text_en": "White dragon king"
},
{
"key": "hero_55005",
"text_en": "Chef (new)"
},
{
"key": "hero_55006",
"text_en": "DE reg (new)"
},
{
"key": "hero_55007",
"text_en": "Mo GanNaJu blame"
},
{
"key": "hero_55008",
"text_en": "Morgana second order"
},
{
"key": "item_10001",
"text_en": "One camp awakening materials"
},
{
"key": "item_10002",
"text_en": "One camp awakening materials"
},
{
"key": "item_10003",
"text_en": "One camp awakening materials"
},
{
"key": "item_10011",
"text_en": "Awakening material 2 camps"
},
{
"key": "item_10012",
"text_en": "Awakening material 2 camps"
},
{
"key": "item_10013",
"text_en": "Awakening material 2 camps"
},
{
"key": "item_10021",
"text_en": "3 camp awakening materials"
},
{
"key": "item_10022",
"text_en": "3 camp awakening materials"
},
{
"key": "item_10023",
"text_en": "3 camp awakening materials"
},
{
"key": "item_10031",
"text_en": "4 camp awakening materials"
},
{
"key": "item_10032",
"text_en": "4 camp awakening materials"
},
{
"key": "item_10033",
"text_en": "4 camp awakening materials"
},
{
"key": "equip_10001",
"text_en": ""
},
{
"key": "equip_10002",
"text_en": ""
},
{
"key": "equip_10003",
"text_en": ""
},
{
"key": "equip_10004",
"text_en": ""
},
{
"key": "equip_10005",
"text_en": ""
}
]

View File

@ -0,0 +1,494 @@
[
{
"key": "hero_13001",
"text_tw": "shining"
},
{
"key": "hero_13002",
"text_tw": "食人鱼先生"
},
{
"key": "hero_13003",
"text_tw": "啊啊"
},
{
"key": "hero_13004",
"text_tw": "法夸德勋爵"
},
{
"key": "hero_13005",
"text_tw": "大大"
},
{
"key": "hero_14001",
"text_tw": "史图依克"
},
{
"key": "hero_14002",
"text_tw": "大龙"
},
{
"key": "hero_14003",
"text_tw": "亚丝翠"
},
{
"key": "hero_14004",
"text_tw": "克莱尔·努涅斯"
},
{
"key": "hero_14005",
"text_tw": "鹤大师"
},
{
"key": "hero_14006",
"text_tw": "布兰奇"
},
{
"key": "hero_14007",
"text_tw": "格里斯特王子"
},
{
"key": "hero_15001",
"text_tw": "吉姆·莱克"
},
{
"key": "hero_15002",
"text_tw": "船长"
},
{
"key": "hero_15003",
"text_tw": "希沙窦斯"
},
{
"key": "hero_15004",
"text_tw": "小欧"
},
{
"key": "hero_15005",
"text_tw": "亚力克斯"
},
{
"key": "hero_23001",
"text_tw": "斯梅克船长"
},
{
"key": "hero_23002",
"text_tw": "警卫队长"
},
{
"key": "hero_23003",
"text_tw": "泰德·邓普顿"
},
{
"key": "hero_23004",
"text_tw": "吉姆·普雷斯科特"
},
{
"key": "hero_24001",
"text_tw": "警长"
},
{
"key": "hero_24002",
"text_tw": "牙仙"
},
{
"key": "hero_24003",
"text_tw": "睡神沙人"
},
{
"key": "hero_24004",
"text_tw": "邦尼兔"
},
{
"key": "hero_24005",
"text_tw": "金猴"
},
{
"key": "hero_24006",
"text_tw": "凯尔"
},
{
"key": "hero_24007",
"text_tw": "小钱"
},
{
"key": "hero_24008",
"text_tw": "暴芙那特"
},
{
"key": "hero_24009",
"text_tw": "云朵先生"
},
{
"key": "hero_25001",
"text_tw": "阿宝"
},
{
"key": "hero_25002",
"text_tw": "沃尔夫先生"
},
{
"key": "hero_25003",
"text_tw": "无牙仔"
},
{
"key": "hero_25004",
"text_tw": "波比"
},
{
"key": "hero_33001",
"text_tw": "巫嘎"
},
{
"key": "hero_33002",
"text_tw": "坦克"
},
{
"key": "hero_33003",
"text_tw": "胡德先生"
},
{
"key": "hero_33004",
"text_tw": "普鲁格兰杰"
},
{
"key": "hero_33005",
"text_tw": "鼻涕粗"
},
{
"key": "hero_33006",
"text_tw": "珍妮丝·邓普顿"
},
{
"key": "hero_34001",
"text_tw": "贫嘴驴"
},
{
"key": "hero_34002",
"text_tw": "蒂姆·邓普顿"
},
{
"key": "hero_34003",
"text_tw": "圣诞老人"
},
{
"key": "hero_34004",
"text_tw": "瓜哥"
},
{
"key": "hero_34005",
"text_tw": "沃尔特·史翠克勒"
},
{
"key": "hero_34006",
"text_tw": "冰霜杰克"
},
{
"key": "hero_34007",
"text_tw": "菲奥娜"
},
{
"key": "hero_34008",
"text_tw": "悍夫那特"
},
{
"key": "hero_35001",
"text_tw": "师父"
},
{
"key": "hero_35002",
"text_tw": "希卡普"
},
{
"key": "hero_35003",
"text_tw": "漆黑"
},
{
"key": "hero_35004",
"text_tw": "黛安·福克斯顿"
},
{
"key": "hero_35005",
"text_tw": "幸运·普雷斯科特"
},
{
"key": "hero_35006",
"text_tw": "平先生"
},
{
"key": "hero_43001",
"text_tw": "阿比盖尔·斯通"
},
{
"key": "hero_43002",
"text_tw": "果酱教授"
},
{
"key": "hero_43003",
"text_tw": "史蒂夫·帕丘克"
},
{
"key": "hero_43004",
"text_tw": "姜饼人"
},
{
"key": "hero_43005",
"text_tw": "瓦希尔指挥官"
},
{
"key": "hero_43006",
"text_tw": "布里奇特"
},
{
"key": "hero_43007",
"text_tw": "戈伯"
},
{
"key": "hero_44001",
"text_tw": "美肚鲨"
},
{
"key": "hero_44002",
"text_tw": "蛇先生"
},
{
"key": "hero_44003",
"text_tw": "匹诺曹"
},
{
"key": "hero_44004",
"text_tw": "艾札塔伦"
},
{
"key": "hero_44005",
"text_tw": "小伊"
},
{
"key": "hero_44006",
"text_tw": "悍娇虎"
},
{
"key": "hero_45001",
"text_tw": "乌龟大师"
},
{
"key": "hero_45002",
"text_tw": "梅林"
},
{
"key": "hero_45003",
"text_tw": "盖"
},
{
"key": "hero_45004",
"text_tw": "穿靴子的猫"
},
{
"key": "hero_43901",
"text_tw": "升星精灵"
},
{
"key": "hero_42911",
"text_tw": "初级经验精灵"
},
{
"key": "hero_43911",
"text_tw": "中级经验精灵"
},
{
"key": "hero_44911",
"text_tw": "高级经验精灵"
},
{
"key": "hero_43921",
"text_tw": "技能精灵·稀有"
},
{
"key": "hero_44921",
"text_tw": "技能精灵·史诗"
},
{
"key": "hero_45921",
"text_tw": "技能精灵·传说"
},
{
"key": "hero_51001",
"text_tw": "啵啵星人(新增)"
},
{
"key": "hero_51002",
"text_tw": "埃雷特手下1号新增"
},
{
"key": "hero_51003",
"text_tw": "埃雷特手下2号新增"
},
{
"key": "hero_51004",
"text_tw": "豺狼小怪(新增)"
},
{
"key": "hero_51005",
"text_tw": "犀牛守卫(新增)"
},
{
"key": "hero_51006",
"text_tw": "香塔尔 杜布瓦队长手下1号新增"
},
{
"key": "hero_51007",
"text_tw": "香塔尔 杜布瓦队长手下2号新增"
},
{
"key": "hero_51008",
"text_tw": "香塔尔 杜布瓦队长手下3号新增"
},
{
"key": "hero_51009",
"text_tw": "香塔尔 杜布瓦队长手下4号新增"
},
{
"key": "hero_51010",
"text_tw": "警卫1号新增"
},
{
"key": "hero_51011",
"text_tw": "警卫2号新增"
},
{
"key": "hero_51012",
"text_tw": "小猴子(新增)"
},
{
"key": "hero_51013",
"text_tw": "巨怪啰啰(新增)"
},
{
"key": "hero_51014",
"text_tw": "博啃族宫廷守卫(新增)"
},
{
"key": "hero_53001",
"text_tw": "埃雷特(新增)"
},
{
"key": "hero_53002",
"text_tw": "豺狼头领(新增)"
},
{
"key": "hero_53003",
"text_tw": "豪猪大师(翡翠僵尸)(新增)"
},
{
"key": "hero_53004",
"text_tw": "双獾大师(翡翠僵尸)(新增)"
},
{
"key": "hero_53005",
"text_tw": "小猴子首领(新增)"
},
{
"key": "hero_53006",
"text_tw": "巨怪首领(新增)"
},
{
"key": "hero_55001",
"text_tw": "香塔尔 杜布瓦队长"
},
{
"key": "hero_55002",
"text_tw": "亨得利克斯(新增)"
},
{
"key": "hero_55003",
"text_tw": "巨型猩猩怪兽(新增)"
},
{
"key": "hero_55004",
"text_tw": "白龙王"
},
{
"key": "hero_55005",
"text_tw": "大厨(新增)"
},
{
"key": "hero_55006",
"text_tw": "德雷格(新增)"
},
{
"key": "hero_55007",
"text_tw": "莫甘娜巨怪"
},
{
"key": "hero_55008",
"text_tw": "莫甘娜二阶"
},
{
"key": "item_10001",
"text_tw": ""
},
{
"key": "item_10002",
"text_tw": ""
},
{
"key": "item_10003",
"text_tw": ""
},
{
"key": "item_10011",
"text_tw": ""
},
{
"key": "item_10012",
"text_tw": ""
},
{
"key": "item_10013",
"text_tw": ""
},
{
"key": "item_10021",
"text_tw": ""
},
{
"key": "item_10022",
"text_tw": ""
},
{
"key": "item_10023",
"text_tw": ""
},
{
"key": "item_10031",
"text_tw": ""
},
{
"key": "item_10032",
"text_tw": ""
},
{
"key": "item_10033",
"text_tw": ""
},
{
"key": "equip_10001",
"text_tw": ""
},
{
"key": "equip_10002",
"text_tw": ""
},
{
"key": "equip_10003",
"text_tw": ""
},
{
"key": "equip_10004",
"text_tw": ""
},
{
"key": "equip_10005",
"text_tw": ""
}
]

View File

@ -0,0 +1,92 @@
[
{
"key": 1,
"id": 10001,
"type_id": 1,
"weight": 1000
},
{
"key": 2,
"id": 10002,
"type_id": 1,
"weight": 1000
},
{
"key": 3,
"id": 10003,
"type_id": 1,
"weight": 1000
},
{
"key": 4,
"id": 10004,
"type_id": 1,
"weight": 1000
},
{
"key": 5,
"id": 10005,
"type_id": 1,
"weight": 1000
},
{
"key": 6,
"id": 10006,
"type_id": 1,
"weight": 1000
},
{
"key": 7,
"id": 10007,
"type_id": 1,
"weight": 1000
},
{
"key": 8,
"id": 10008,
"type_id": 1,
"weight": 1000
},
{
"key": 9,
"id": 10009,
"type_id": 1,
"weight": 1000
},
{
"key": 10,
"id": 10010,
"type_id": 1,
"weight": 1000
},
{
"key": 11,
"id": 10011,
"type_id": 1,
"weight": 1000
},
{
"key": 12,
"id": 10012,
"type_id": 1,
"weight": 1000
},
{
"key": 13,
"id": 10013,
"type_id": 1,
"weight": 1000
},
{
"key": 14,
"id": 10014,
"type_id": 1,
"weight": 1000
},
{
"key": 15,
"id": 10015,
"type_id": 1,
"weight": 1000
}
]

View File

@ -0,0 +1,9 @@
[
{
"key": 1,
"time": 20220715,
"duration": 14,
"up_hero": 10001,
"up_weight": 10000
}
]

File diff suppressed because it is too large Load Diff

126636
bin/json/game_mainlineeasy.json Normal file

File diff suppressed because it is too large Load Diff

126636
bin/json/game_mainlinehard.json Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

850
bin/json/game_model.json Normal file
View File

@ -0,0 +1,850 @@
[
{
"id": 13001,
"preson": "13001",
"ico": "tx_js_13001",
"img": "sbkp_js_24003",
"heroimg": "ty_kp_004",
"portrait": "portrait_13001"
},
{
"id": 13002,
"preson": "13002",
"ico": "tx_js_13002",
"img": "sbkp_js_24003",
"heroimg": "ty_kp_004",
"portrait": "portrait_13002"
},
{
"id": 13003,
"preson": "13003",
"ico": "tx_js_13003",
"img": "sbkp_js_24003",
"heroimg": "ty_kp_004",
"portrait": "portrait_13003"
},
{
"id": 13004,
"preson": "13004",
"ico": "tx_js_13004",
"img": "sbkp_js_24003",
"heroimg": "ty_kp_004",
"portrait": "portrait_13004"
},
{
"id": 13005,
"preson": "13005",
"ico": "tx_js_13005",
"img": "sbkp_js_24003",
"heroimg": "ty_kp_004",
"portrait": "portrait_13005"
},
{
"id": 14001,
"preson": "14001",
"ico": "tx_js_14001",
"img": "sbkp_js_24003",
"heroimg": "ty_kp_004",
"portrait": "portrait_14001"
},
{
"id": 14002,
"preson": "14002",
"ico": "tx_js_14002",
"img": "sbkp_js_24003",
"heroimg": "ty_kp_004",
"portrait": "portrait_14002"
},
{
"id": 14003,
"preson": "14003",
"ico": "tx_js_14003",
"img": "sbkp_js_24003",
"heroimg": "ty_kp_004",
"portrait": "portrait_14003"
},
{
"id": 14004,
"preson": "14004",
"ico": "tx_js_14004",
"img": "sbkp_js_24003",
"heroimg": "ty_kp_004",
"portrait": "portrait_14004"
},
{
"id": 14005,
"preson": "14005",
"ico": "tx_js_14005",
"img": "sbkp_js_24003",
"heroimg": "ty_kp_004",
"portrait": "portrait_14005"
},
{
"id": 14006,
"preson": "14006",
"ico": "tx_js_14006",
"img": "sbkp_js_24003",
"heroimg": "ty_kp_004",
"portrait": "portrait_14006"
},
{
"id": 14007,
"preson": "14007",
"ico": "tx_js_14007",
"img": "sbkp_js_24003",
"heroimg": "ty_kp_004",
"portrait": "portrait_14007"
},
{
"id": 15001,
"preson": "15001",
"ico": "tx_js_15001",
"img": "sbkp_js_24003",
"heroimg": "ty_kp_004",
"portrait": "portrait_15001"
},
{
"id": 15002,
"preson": "15002",
"ico": "tx_js_15002",
"img": "sbkp_js_24003",
"heroimg": "ty_kp_004",
"portrait": "portrait_15002"
},
{
"id": 15003,
"preson": "15003",
"ico": "tx_js_15003",
"img": "sbkp_js_24003",
"heroimg": "ty_kp_004",
"portrait": "portrait_15003"
},
{
"id": 15004,
"preson": "15004",
"ico": "tx_js_15004",
"img": "sbkp_js_24003",
"heroimg": "ty_kp_004",
"portrait": "portrait_15004"
},
{
"id": 15005,
"preson": "15005",
"ico": "tx_js_15005",
"img": "sbkp_js_24003",
"heroimg": "ty_kp_004",
"portrait": "portrait_15005"
},
{
"id": 23001,
"preson": "23001",
"ico": "tx_js_23001",
"img": "sbkp_js_24003",
"heroimg": "ty_kp_004",
"portrait": "portrait_23001"
},
{
"id": 23002,
"preson": "23002",
"ico": "tx_js_23002",
"img": "sbkp_js_24003",
"heroimg": "ty_kp_004",
"portrait": "portrait_23002"
},
{
"id": 23003,
"preson": "23003",
"ico": "tx_js_23003",
"img": "sbkp_js_24003",
"heroimg": "ty_kp_004",
"portrait": "portrait_23003"
},
{
"id": 23004,
"preson": "23004",
"ico": "tx_js_23004",
"img": "sbkp_js_24003",
"heroimg": "ty_kp_004",
"portrait": "portrait_23004"
},
{
"id": 24001,
"preson": "24001",
"ico": "tx_js_24001",
"img": "sbkp_js_24003",
"heroimg": "ty_kp_004",
"portrait": "portrait_24001"
},
{
"id": 24002,
"preson": "24002",
"ico": "tx_js_24002",
"img": "sbkp_js_24003",
"heroimg": "ty_kp_004",
"portrait": "portrait_24002"
},
{
"id": 24003,
"preson": "24003",
"ico": "tx_js_24003",
"img": "sbkp_js_24003",
"heroimg": "ty_kp_004",
"portrait": "portrait_24003"
},
{
"id": 24004,
"preson": "24004",
"ico": "tx_js_24004",
"img": "sbkp_js_25001",
"heroimg": "ty_kp_004",
"portrait": "portrait_24004"
},
{
"id": 24005,
"preson": "24005",
"ico": "tx_js_24005",
"img": "sbkp_js_25001",
"heroimg": "ty_kp_004",
"portrait": "portrait_24005"
},
{
"id": 24006,
"preson": "24006",
"ico": "tx_js_24006",
"img": "sbkp_js_25001",
"heroimg": "ty_kp_004",
"portrait": "portrait_24006"
},
{
"id": 24007,
"preson": "24007",
"ico": "tx_js_24007",
"img": "sbkp_js_25001",
"heroimg": "ty_kp_004",
"portrait": "portrait_24007"
},
{
"id": 24008,
"preson": "24008",
"ico": "tx_js_24008",
"img": "sbkp_js_25001",
"heroimg": "ty_kp_004",
"portrait": "portrait_24008"
},
{
"id": 24009,
"preson": "24009",
"ico": "tx_js_24009",
"img": "sbkp_js_25001",
"heroimg": "ty_kp_004",
"portrait": "portrait_24009"
},
{
"id": 25001,
"preson": "25001",
"ico": "tx_js_25001",
"img": "sbkp_js_25001",
"heroimg": "ty_kp_004",
"portrait": "portrait_25001"
},
{
"id": 25002,
"preson": "25002",
"ico": "tx_js_25002",
"img": "sbkp_js_25004",
"heroimg": "ty_kp_004",
"portrait": "portrait_25002"
},
{
"id": 25003,
"preson": "25003",
"ico": "tx_js_25003",
"img": "sbkp_js_25004",
"heroimg": "ty_kp_004",
"portrait": "portrait_25003"
},
{
"id": 25004,
"preson": "25004",
"ico": "tx_js_25004",
"img": "sbkp_js_25004",
"heroimg": "ty_kp_001",
"portrait": "portrait_25004"
},
{
"id": 33001,
"preson": "33001",
"ico": "tx_js_33001",
"img": "sbkp_js_34006",
"heroimg": "ty_kp_001",
"portrait": "portrait_33001"
},
{
"id": 33002,
"preson": "33002",
"ico": "tx_js_33002",
"img": "sbkp_js_34006",
"heroimg": "ty_kp_001",
"portrait": "portrait_33002"
},
{
"id": 33003,
"preson": "33003",
"ico": "tx_js_33003",
"img": "sbkp_js_34006",
"heroimg": "ty_kp_001",
"portrait": "portrait_33003"
},
{
"id": 33004,
"preson": "33004",
"ico": "tx_js_33004",
"img": "sbkp_js_34006",
"heroimg": "ty_kp_001",
"portrait": "portrait_33004"
},
{
"id": 33005,
"preson": "33005",
"ico": "tx_js_33005",
"img": "sbkp_js_34006",
"heroimg": "ty_kp_001",
"portrait": "portrait_33005"
},
{
"id": 33006,
"preson": "33006",
"ico": "tx_js_33006",
"img": "sbkp_js_34006",
"heroimg": "ty_kp_001",
"portrait": "portrait_33006"
},
{
"id": 34001,
"preson": "34001",
"ico": "tx_js_34001",
"img": "sbkp_js_34006",
"heroimg": "ty_kp_001",
"portrait": "portrait_34001"
},
{
"id": 34002,
"preson": "34002",
"ico": "tx_js_34002",
"img": "sbkp_js_34006",
"heroimg": "ty_kp_001",
"portrait": "portrait_34002"
},
{
"id": 34003,
"preson": "34003",
"ico": "tx_js_34003",
"img": "sbkp_js_34006",
"heroimg": "ty_kp_001",
"portrait": "portrait_34003"
},
{
"id": 34004,
"preson": "34004",
"ico": "tx_js_34004",
"img": "sbkp_js_34006",
"heroimg": "ty_kp_001",
"portrait": "portrait_34004"
},
{
"id": 34005,
"preson": "34005",
"ico": "tx_js_34005",
"img": "sbkp_js_34006",
"heroimg": "ty_kp_001",
"portrait": "portrait_34005"
},
{
"id": 34006,
"preson": "34006",
"ico": "tx_js_34006",
"img": "sbkp_js_34006",
"heroimg": "ty_kp_004",
"portrait": "portrait_34006"
},
{
"id": 34007,
"preson": "34007",
"ico": "tx_js_34007",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_004",
"portrait": "portrait_34007"
},
{
"id": 34008,
"preson": "34008",
"ico": "tx_js_34008",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_004",
"portrait": "portrait_34008"
},
{
"id": 35001,
"preson": "35001",
"ico": "tx_js_35001",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_004",
"portrait": "portrait_35001"
},
{
"id": 35002,
"preson": "35002",
"ico": "tx_js_35002",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_002",
"portrait": "portrait_35002"
},
{
"id": 35003,
"preson": "35003",
"ico": "tx_js_35003",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_002",
"portrait": "portrait_35003"
},
{
"id": 35004,
"preson": "35004",
"ico": "tx_js_35004",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_002",
"portrait": "portrait_35004"
},
{
"id": 35005,
"preson": "35005",
"ico": "tx_js_35005",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_002",
"portrait": "portrait_35005"
},
{
"id": 35006,
"preson": "35006",
"ico": "tx_js_35006",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_002",
"portrait": "portrait_35006"
},
{
"id": 43001,
"preson": "43001",
"ico": "tx_js_43001",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_002",
"portrait": "portrait_43001"
},
{
"id": 43002,
"preson": "43002",
"ico": "tx_js_43002",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_002",
"portrait": "portrait_43002"
},
{
"id": 43003,
"preson": "43003",
"ico": "tx_js_43003",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_002",
"portrait": "portrait_43003"
},
{
"id": 43004,
"preson": "43004",
"ico": "tx_js_43004",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_002",
"portrait": "portrait_43004"
},
{
"id": 43005,
"preson": "43005",
"ico": "tx_js_43005",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_002",
"portrait": "portrait_43005"
},
{
"id": 43006,
"preson": "43006",
"ico": "tx_js_43006",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_002",
"portrait": "portrait_43006"
},
{
"id": 43007,
"preson": "43007",
"ico": "tx_js_43007",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_002",
"portrait": "portrait_43007"
},
{
"id": 44001,
"preson": "44001",
"ico": "tx_js_44001",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_002",
"portrait": "portrait_44001"
},
{
"id": 44002,
"preson": "44002",
"ico": "tx_js_44002",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_002",
"portrait": "portrait_44002"
},
{
"id": 44003,
"preson": "44003",
"ico": "tx_js_44003",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_002",
"portrait": "portrait_44003"
},
{
"id": 44004,
"preson": "44004",
"ico": "tx_js_44004",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_002",
"portrait": "portrait_44004"
},
{
"id": 44005,
"preson": "44005",
"ico": "tx_js_44005",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_002",
"portrait": "portrait_44005"
},
{
"id": 44006,
"preson": "44006",
"ico": "tx_js_44006",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_002",
"portrait": "portrait_44006"
},
{
"id": 45001,
"preson": "45001",
"ico": "tx_js_45001",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_002",
"portrait": "portrait_45001"
},
{
"id": 45002,
"preson": "45002",
"ico": "tx_js_45002",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_002",
"portrait": "portrait_45002"
},
{
"id": 45003,
"preson": "45003",
"ico": "tx_js_45003",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_45003"
},
{
"id": 45004,
"preson": "45004",
"ico": "tx_js_45004",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_45004"
},
{
"id": 43901,
"preson": "43901",
"ico": "tx_js_43901",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_43901"
},
{
"id": 42911,
"preson": "42911",
"ico": "tx_js_42911",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_42911"
},
{
"id": 43911,
"preson": "43911",
"ico": "tx_js_43911",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_43911"
},
{
"id": 44911,
"preson": "44911",
"ico": "tx_js_44911",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_44911"
},
{
"id": 43921,
"preson": "43921",
"ico": "tx_js_43921",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_43921"
},
{
"id": 44921,
"preson": "44921",
"ico": "tx_js_44921",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_44921"
},
{
"id": 45921,
"preson": "45921",
"ico": "tx_js_45921",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_45921"
},
{
"id": 51001,
"preson": "51001",
"ico": "tx_js_51001",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_51001"
},
{
"id": 51002,
"preson": "51002",
"ico": "tx_js_51002",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_51002"
},
{
"id": 51003,
"preson": "51003",
"ico": "tx_js_51003",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_51003"
},
{
"id": 51004,
"preson": "51004",
"ico": "tx_js_51004",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_51004"
},
{
"id": 51005,
"preson": "51005",
"ico": "tx_js_51005",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_51005"
},
{
"id": 51006,
"preson": "51006",
"ico": "tx_js_51006",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_51006"
},
{
"id": 51007,
"preson": "51007",
"ico": "tx_js_51007",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_51007"
},
{
"id": 51008,
"preson": "51008",
"ico": "tx_js_51008",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_51008"
},
{
"id": 51009,
"preson": "51009",
"ico": "tx_js_51009",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_51009"
},
{
"id": 51010,
"preson": "51010",
"ico": "tx_js_51010",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_51010"
},
{
"id": 51011,
"preson": "51011",
"ico": "tx_js_51011",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_51011"
},
{
"id": 51012,
"preson": "51012",
"ico": "tx_js_51012",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_51012"
},
{
"id": 51013,
"preson": "51013",
"ico": "tx_js_51013",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_51013"
},
{
"id": 51014,
"preson": "51014",
"ico": "tx_js_51014",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_51014"
},
{
"id": 53001,
"preson": "53001",
"ico": "tx_js_53001",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_53001"
},
{
"id": 53002,
"preson": "53002",
"ico": "tx_js_53002",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_53002"
},
{
"id": 53003,
"preson": "53003",
"ico": "tx_js_53003",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_53003"
},
{
"id": 53004,
"preson": "53004",
"ico": "tx_js_53004",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_53004"
},
{
"id": 53005,
"preson": "53005",
"ico": "tx_js_53005",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_53005"
},
{
"id": 53006,
"preson": "53006",
"ico": "tx_js_53006",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_53006"
},
{
"id": 55001,
"preson": "55001",
"ico": "tx_js_55001",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_55001"
},
{
"id": 55002,
"preson": "55002",
"ico": "tx_js_55002",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_55002"
},
{
"id": 55003,
"preson": "55003",
"ico": "tx_js_55003",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_55003"
},
{
"id": 55004,
"preson": "55004",
"ico": "tx_js_55004",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_55004"
},
{
"id": 55005,
"preson": "55005",
"ico": "tx_js_55005",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_55005"
},
{
"id": 55006,
"preson": "55006",
"ico": "tx_js_55006",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_55006"
},
{
"id": 55007,
"preson": "55007",
"ico": "tx_js_55007",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_55007"
},
{
"id": 55008,
"preson": "55008",
"ico": "tx_js_55008",
"img": "sbkp_js_35002",
"heroimg": "ty_kp_003",
"portrait": "portrait_55008"
}
]

View File

@ -44,7 +44,7 @@
},
"star": 3,
"color": 2,
"race": 2,
"race": 1,
"job": 1,
"type": 1,
"prefab": "13002",
@ -81,7 +81,7 @@
},
"star": 3,
"color": 2,
"race": 3,
"race": 1,
"job": 2,
"type": 1,
"prefab": "13003",
@ -118,7 +118,7 @@
},
"star": 3,
"color": 2,
"race": 4,
"race": 1,
"job": 1,
"type": 1,
"prefab": "13004",
@ -155,7 +155,7 @@
},
"star": 3,
"color": 2,
"race": 4,
"race": 1,
"job": 3,
"type": 1,
"prefab": "13005",
@ -192,7 +192,7 @@
},
"star": 4,
"color": 3,
"race": 4,
"race": 1,
"job": 2,
"type": 1,
"prefab": "14001",
@ -229,7 +229,7 @@
},
"star": 4,
"color": 3,
"race": 4,
"race": 1,
"job": 2,
"type": 1,
"prefab": "14002",
@ -266,7 +266,7 @@
},
"star": 4,
"color": 3,
"race": 4,
"race": 1,
"job": 4,
"type": 1,
"prefab": "14003",
@ -303,7 +303,7 @@
},
"star": 4,
"color": 3,
"race": 4,
"race": 1,
"job": 3,
"type": 1,
"prefab": "14004",
@ -340,7 +340,7 @@
},
"star": 4,
"color": 3,
"race": 4,
"race": 1,
"job": 1,
"type": 1,
"prefab": "14005",
@ -377,7 +377,7 @@
},
"star": 4,
"color": 3,
"race": 4,
"race": 1,
"job": 4,
"type": 1,
"prefab": "14006",
@ -414,7 +414,7 @@
},
"star": 4,
"color": 3,
"race": 4,
"race": 1,
"job": 2,
"type": 1,
"prefab": "14007",
@ -451,7 +451,7 @@
},
"star": 5,
"color": 4,
"race": 4,
"race": 1,
"job": 1,
"type": 1,
"prefab": "15001",
@ -488,7 +488,7 @@
},
"star": 5,
"color": 4,
"race": 4,
"race": 1,
"job": 1,
"type": 1,
"prefab": "15002",
@ -525,7 +525,7 @@
},
"star": 5,
"color": 4,
"race": 4,
"race": 1,
"job": 1,
"type": 1,
"prefab": "15003",
@ -562,7 +562,7 @@
},
"star": 5,
"color": 4,
"race": 4,
"race": 1,
"job": 4,
"type": 1,
"prefab": "15004",
@ -599,7 +599,7 @@
},
"star": 5,
"color": 4,
"race": 4,
"race": 1,
"job": 3,
"type": 1,
"prefab": "15005",
@ -636,7 +636,7 @@
},
"star": 3,
"color": 2,
"race": 4,
"race": 2,
"job": 3,
"type": 1,
"prefab": "23001",
@ -673,7 +673,7 @@
},
"star": 3,
"color": 2,
"race": 4,
"race": 2,
"job": 1,
"type": 1,
"prefab": "23002",
@ -710,7 +710,7 @@
},
"star": 3,
"color": 2,
"race": 4,
"race": 2,
"job": 3,
"type": 1,
"prefab": "23003",
@ -747,7 +747,7 @@
},
"star": 3,
"color": 2,
"race": 4,
"race": 2,
"job": 4,
"type": 1,
"prefab": "23004",
@ -784,7 +784,7 @@
},
"star": 4,
"color": 3,
"race": 4,
"race": 2,
"job": 1,
"type": 1,
"prefab": "24001",
@ -821,7 +821,7 @@
},
"star": 4,
"color": 3,
"race": 4,
"race": 2,
"job": 1,
"type": 1,
"prefab": "24002",
@ -858,7 +858,7 @@
},
"star": 4,
"color": 3,
"race": 4,
"race": 2,
"job": 4,
"type": 1,
"prefab": "24003",
@ -895,7 +895,7 @@
},
"star": 4,
"color": 3,
"race": 4,
"race": 2,
"job": 1,
"type": 1,
"prefab": "24004",
@ -932,7 +932,7 @@
},
"star": 4,
"color": 3,
"race": 4,
"race": 2,
"job": 3,
"type": 1,
"prefab": "24005",
@ -969,7 +969,7 @@
},
"star": 4,
"color": 3,
"race": 4,
"race": 2,
"job": 3,
"type": 1,
"prefab": "24006",
@ -1006,7 +1006,7 @@
},
"star": 4,
"color": 3,
"race": 4,
"race": 2,
"job": 3,
"type": 1,
"prefab": "24007",
@ -1043,7 +1043,7 @@
},
"star": 4,
"color": 3,
"race": 4,
"race": 2,
"job": 1,
"type": 1,
"prefab": "24008",
@ -1080,7 +1080,7 @@
},
"star": 4,
"color": 3,
"race": 4,
"race": 2,
"job": 4,
"type": 1,
"prefab": "24009",
@ -1117,7 +1117,7 @@
},
"star": 5,
"color": 4,
"race": 4,
"race": 2,
"job": 2,
"type": 1,
"prefab": "25001",
@ -1154,7 +1154,7 @@
},
"star": 5,
"color": 4,
"race": 4,
"race": 2,
"job": 3,
"type": 1,
"prefab": "25002",
@ -1191,7 +1191,7 @@
},
"star": 5,
"color": 4,
"race": 4,
"race": 2,
"job": 4,
"type": 1,
"prefab": "25003",
@ -1228,7 +1228,7 @@
},
"star": 5,
"color": 4,
"race": 4,
"race": 2,
"job": 3,
"type": 1,
"prefab": "25004",
@ -1265,7 +1265,7 @@
},
"star": 3,
"color": 2,
"race": 4,
"race": 3,
"job": 3,
"type": 1,
"prefab": "33001",
@ -1302,7 +1302,7 @@
},
"star": 3,
"color": 2,
"race": 4,
"race": 3,
"job": 1,
"type": 1,
"prefab": "33002",
@ -1339,7 +1339,7 @@
},
"star": 3,
"color": 2,
"race": 4,
"race": 3,
"job": 1,
"type": 1,
"prefab": "33003",
@ -1376,7 +1376,7 @@
},
"star": 3,
"color": 2,
"race": 4,
"race": 3,
"job": 1,
"type": 1,
"prefab": "33004",
@ -1413,7 +1413,7 @@
},
"star": 3,
"color": 2,
"race": 4,
"race": 3,
"job": 1,
"type": 1,
"prefab": "33005",
@ -1450,7 +1450,7 @@
},
"star": 3,
"color": 2,
"race": 4,
"race": 3,
"job": 3,
"type": 1,
"prefab": "33006",
@ -1487,7 +1487,7 @@
},
"star": 4,
"color": 3,
"race": 4,
"race": 3,
"job": 1,
"type": 1,
"prefab": "34001",
@ -1524,7 +1524,7 @@
},
"star": 4,
"color": 3,
"race": 4,
"race": 3,
"job": 3,
"type": 1,
"prefab": "34002",
@ -1561,7 +1561,7 @@
},
"star": 4,
"color": 3,
"race": 4,
"race": 3,
"job": 1,
"type": 1,
"prefab": "34003",
@ -1598,7 +1598,7 @@
},
"star": 4,
"color": 3,
"race": 4,
"race": 3,
"job": 3,
"type": 1,
"prefab": "34004",
@ -1635,7 +1635,7 @@
},
"star": 4,
"color": 3,
"race": 4,
"race": 3,
"job": 4,
"type": 1,
"prefab": "34005",
@ -1672,7 +1672,7 @@
},
"star": 4,
"color": 3,
"race": 4,
"race": 3,
"job": 4,
"type": 1,
"prefab": "34006",
@ -1709,7 +1709,7 @@
},
"star": 4,
"color": 3,
"race": 4,
"race": 3,
"job": 1,
"type": 1,
"prefab": "34007",
@ -1746,7 +1746,7 @@
},
"star": 4,
"color": 3,
"race": 4,
"race": 3,
"job": 4,
"type": 1,
"prefab": "34008",
@ -1783,7 +1783,7 @@
},
"star": 5,
"color": 4,
"race": 4,
"race": 3,
"job": 1,
"type": 1,
"prefab": "35001",
@ -1820,7 +1820,7 @@
},
"star": 5,
"color": 4,
"race": 4,
"race": 3,
"job": 4,
"type": 1,
"prefab": "35002",
@ -1857,7 +1857,7 @@
},
"star": 5,
"color": 4,
"race": 4,
"race": 3,
"job": 1,
"type": 1,
"prefab": "35003",
@ -1894,7 +1894,7 @@
},
"star": 5,
"color": 4,
"race": 4,
"race": 3,
"job": 1,
"type": 1,
"prefab": "35004",
@ -1931,7 +1931,7 @@
},
"star": 5,
"color": 4,
"race": 4,
"race": 3,
"job": 3,
"type": 1,
"prefab": "35005",
@ -1968,7 +1968,7 @@
},
"star": 5,
"color": 4,
"race": 4,
"race": 3,
"job": 3,
"type": 1,
"prefab": "35006",

4728
bin/json/game_newskill.json Normal file

File diff suppressed because it is too large Load Diff

View File

@ -133,5 +133,14 @@
"tubiao": "skillicon_015",
"name": "梦·创世",
"describe": ""
},
{
"sameid": 110016,
"act": "Skill_1",
"type": 1,
"triggerchannce": 0,
"tubiao": "skillicon_015",
"name": "梦·创世",
"describe": ""
}
]

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

@ -698,5 +698,47 @@
"n": 100
}
]
},
{
"key": 40000,
"id_list": 41,
"id_tag": 4,
"task_display": "释放1技能",
"type_id": 401,
"condition_second": 1,
"condition_condition": 13001,
"active": 0,
"id_after": 0,
"reword": []
},
{
"key": 40001,
"id_list": 42,
"id_tag": 4,
"task_display": "释放2技能",
"type_id": 402,
"condition_second": 2,
"condition_condition": 13001,
"active": 0,
"id_after": 0,
"reword": []
},
{
"key": 40002,
"id_list": 43,
"id_tag": 4,
"task_display": "战斗胜利",
"type_id": 403,
"condition_second": 1,
"condition_condition": 13001,
"active": 0,
"id_after": 0,
"reword": [
{
"a": "attr",
"t": "gold",
"n": 1000
}
]
}
]

View File

@ -454,5 +454,41 @@
"packagename": "notice",
"comname": "main",
"des": "背包"
},
{
"id": "mainbarrier",
"file": "MainBarrierWindow",
"unloadpkg": 2,
"loadtype": 1,
"full": 1,
"blur": 0,
"package": "mainline/mainline",
"packagename": "mainline",
"comname": "battledetails",
"des": "主线任务关卡界面"
},
{
"id": "rewardTips",
"file": "RewardTipsWindow",
"unloadpkg": 5,
"loadtype": 1,
"full": 0,
"blur": 0,
"package": "tips/tips",
"packagename": "tips",
"comname": "rewardTips",
"des": "奖励预览弹窗"
},
{
"id": "roleupgrade",
"file": "RoleUpGradeWindow",
"unloadpkg": 1,
"loadtype": 1,
"full": 2,
"blur": 1,
"package": "roledetails/roledetails",
"packagename": "roledetails",
"comname": "roleupgrade",
"des": "英雄升级升星详情"
}
]

View File

@ -30,6 +30,7 @@ func Execute() {
func init() {
RootCmd.AddCommand(runCmd)
initLog()
robot.InitDb()
}
var account = flag.String("account", "", "登录账号")

View File

@ -6,7 +6,9 @@ package robot
// 理这类问题,这个助手可以返回合适的数据,作为输入参数。
type assistant struct {
//TODO
}
func NewAssistant() *assistant {
return &assistant{}
}

38
cmd/robot/db.go Normal file
View File

@ -0,0 +1,38 @@
package robot
import (
"context"
"log"
"sync"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
)
var dbOnce sync.Once
var mgoCli *mongo.Client
var mgoDb *mongo.Database
func InitDb() {
dbOnce.Do(func() {
var err error
// Set client options
clientOptions := options.Client().ApplyURI("mongodb://admin:123456@10.0.0.9:27018")
// Connect to MongoDB
mgoCli, err = mongo.Connect(context.TODO(), clientOptions)
if err != nil {
log.Fatal(err)
}
// Check the connection
err = mgoCli.Ping(context.TODO(), nil)
if err != nil {
log.Fatal(err)
}
mgoDb = mgoCli.Database("dreamfactory")
})
}

View File

@ -1,6 +1,7 @@
package robot
import (
"fmt"
"go_dreamfactory/comm"
"go_dreamfactory/modules/hero"
"go_dreamfactory/pb"
@ -17,12 +18,12 @@ var (
subType: hero.HeroSubTypeList,
req: &pb.HeroListReq{},
rsp: &pb.HeroListResp{},
// print: func(rsp proto.Message) {
// out := rsp.(*pb.HeroListResp)
// for i, v := range out.List {
// fmt.Printf("%d- %v\n", (i + 1), v)
// }
// },
print: func(rsp proto.Message) {
out := rsp.(*pb.HeroListResp)
for i, v := range out.List {
fmt.Printf("%d- %v\n", (i + 1), v)
}
},
// enabled: true,
next: func(robot *Robot, rsp proto.Message) {
tcs := []*TestCase{}
@ -36,27 +37,13 @@ var (
req: &pb.HeroInfoReq{
HeroId: heroId,
},
rsp: &pb.HeroInfoResp{},
enabled: true,
rsp: &pb.HeroInfoResp{},
// enabled: true,
// print: func(rsp proto.Message) {
// r := rsp.(*pb.HeroInfoResp)
// fmt.Printf("%v\n", r)
// },
next: func(robot *Robot, rsp proto.Message) {
tcs := []*TestCase{
{
desc: "觉醒",
mainType: string(comm.ModuleHero),
subType: hero.Awaken,
req: &pb.HeroAwakenReq{
HeroObjID: heroId,
},
rsp: &pb.HeroAwakenResp{},
//enabled: true,
},
}
robot.addBuilders(tcs)
},
}
tcs = append(tcs, tc)
}
@ -104,40 +91,37 @@ var (
},
},
},
rsp: &pb.HeroStrengthenUpStarResp{},
enabled: true,
rsp: &pb.HeroStrengthenUpStarResp{},
// enabled: true,
}
tcs = append(tcs, tc)
}
robot.addBuilders(tcs)
}
},
}, {
desc: "英雄列表",
mainType: string(comm.ModuleHero),
subType: hero.HeroSubTypeList,
req: &pb.HeroListReq{},
rsp: &pb.HeroListResp{},
enabled: true,
next: func(robot *Robot, rsp proto.Message) {
if r, ok := rsp.(*pb.HeroListResp); ok {
tcs := []*TestCase{}
// selHero := r.List[0] //选中的英雄
for _, v := range r.List {
heroId := v.Id
tc := &TestCase{
tc2 := &TestCase{
desc: "英雄升级",
mainType: string(comm.ModuleHero),
subType: hero.StrengthenUplv,
req: &pb.HeroStrengthenUplvReq{
HeroObjID: heroId,
ExpCardID: "62d124700625e43054ba307d",
Amount: 1,
ExpCards: map[string]int32{
"62d124700625e43054ba307d": 1,
},
},
rsp: &pb.HeroStrengthenUplvResp{},
enabled: true,
}
tcs = append(tcs, tc)
tcs = append(tcs, tc2)
tc3 := &TestCase{
desc: "觉醒",
mainType: string(comm.ModuleHero),
subType: hero.Awaken,
req: &pb.HeroAwakenReq{
HeroObjID: heroId,
},
rsp: &pb.HeroAwakenResp{},
enabled: true,
}
tcs = append(tcs, tc3)
}
robot.addBuilders(tcs)
}

View File

@ -53,7 +53,7 @@ func initlog() {
writers := []io.Writer{
file,
os.Stdout}
//同时写文件和屏幕
fileAndStdoutWriter := io.MultiWriter(writers...)
if err == nil {
@ -151,7 +151,6 @@ func (r *Robot) printBuilders() {
//处理用例,发送请求
func (r *Robot) handleReq() {
// go func() {
for len(r.builderMap) > 0 {
for _, b := range r.builderMap {
if b.enabled && b.req != nil {
@ -170,7 +169,6 @@ func (r *Robot) handleReq() {
}
}
}
// }()
}
//加入用例并执行请求
@ -183,6 +181,7 @@ func (r *Robot) addTestCaseAndReq(tcs []*TestCase) {
func (r *Robot) handleNotify(uuid string, msg *pb.UserMessage) {
if msg.MainType == "notify" && msg.SubType == "errornotify" {
r.caseError++
logrus.Debug("errornotify %v", r.caseError)
rsp := &pb.NotifyErrorNotifyPush{}
if !comm.ProtoUnmarshal(msg, rsp) {
return
@ -227,7 +226,7 @@ func (r *Robot) handleRsp(id string) {
if v.enabled &&
(msg.MainType == v.mainType &&
msg.SubType == v.subType) {
zlog.Debugf("2 %v.%v", msg.MainType, msg.SubType)
v.hs = time.Since(v.start)
if !comm.ProtoUnmarshal(msg, v.rsp) {
return
@ -463,7 +462,7 @@ func (r *Robot) onUserLoaded() {
r.RunTask()
// story
r.RunStory()
r.RunMainline()
}
type RobotFormatter struct {

View File

@ -3,7 +3,7 @@ package robot
import (
"fmt"
"go_dreamfactory/comm"
"go_dreamfactory/modules/story"
"go_dreamfactory/modules/mainline"
"go_dreamfactory/pb"
"google.golang.org/protobuf/proto"
@ -13,12 +13,12 @@ var (
storyBuilders = []*TestCase{
{
desc: "主线数据",
mainType: string(comm.ModuleStory),
subType: story.StoryGetListResp,
req: &pb.StoryGetListReq{},
rsp: &pb.StoryGetListResp{},
mainType: string(comm.ModuleMainline),
subType: mainline.MainlineGetListResp,
req: &pb.MainlineGetListReq{},
rsp: &pb.MainlineGetListResp{},
print: func(rsp proto.Message) {
out := rsp.(*pb.StoryGetListResp)
out := rsp.(*pb.MainlineGetListResp)
for i, v := range out.Data {
fmt.Printf("%d- %v\n", (i + 1), v)
}
@ -26,19 +26,19 @@ var (
//enabled: true,
}, {
desc: "主线详情",
mainType: string(comm.ModuleStory),
subType: story.StoryChallengeResp,
req: &pb.StoryChallengeReq{
ChapterId: 1,
StoryId: 1,
mainType: string(comm.ModuleMainline),
subType: mainline.MainlineChallengeResp,
req: &pb.MainlineChallengeReq{
ChapterId: 1,
MainlineId: 1,
},
rsp: &pb.StoryChallengeResp{},
rsp: &pb.MainlineChallengeResp{},
// enabled: true,
},
}
)
//声明加入到构建器并发起请求
func (r *Robot) RunStory() {
func (r *Robot) RunMainline() {
r.addBuilders(storyBuilders)
}

View File

@ -1,6 +1,7 @@
package robot
import (
"fmt"
"go_dreamfactory/comm"
"go_dreamfactory/modules/task"
"go_dreamfactory/pb"
@ -15,32 +16,40 @@ var (
mainType: string(comm.ModuleTask),
subType: task.TaskSubTypeList,
req: &pb.TaskListReq{
TaskTag: int32(comm.TASK_DAILY),
//设置任务类型
// TaskTag: int32(comm.TASK_DAILY), //每天任务
// TaskTag: int32(comm.TASK_WEEKLY), //周任务
// TaskTag: int32(comm.TASK_ACHIEVE),
TaskTag: int32(comm.TASK_STRATEGY),
},
rsp: &pb.TaskListResp{},
// print: func(rsp proto.Message) {
// out := rsp.(*pb.TaskListResp)
// for _, v := range out.List {
// fmt.Printf("%v \n", v)
// }
// },
print: func(rsp proto.Message) {
out := rsp.(*pb.TaskListResp)
for _, v := range out.List {
fmt.Printf("%v \n", v)
}
},
// enabled: true,
next: func(robot *Robot, rsp proto.Message) {
tcs := []*TestCase{}
if _, ok := rsp.(*pb.TaskListResp); ok {
if v, ok := rsp.(*pb.TaskListResp); ok {
for _, tt := range v.List {
tc := &TestCase{
desc: "领取任务奖励",
mainType: string(comm.ModuleTask),
subType: task.TaskSubTypeReceive,
req: &pb.TaskReceiveReq{
TaskTag: int32(comm.TASK_DAILY),
Id: tt.Id,
},
rsp: &pb.TaskReceiveResp{},
// enabled: true,
}
tcs = append(tcs, tc)
}
robot.addBuilders(tcs)
}
robot.addBuilders(tcs)
},
}, {
desc: "领取任务奖励",
mainType: string(comm.ModuleTask),
subType: task.TaskSubTypeReceive,
req: &pb.TaskReceiveReq{
TaskTag: int32(comm.TASK_DAILY),
Id: "62c5681374c83911207fa265",
},
rsp: &pb.TaskReceiveResp{},
// enabled: true,
}, {
desc: "活跃度",
mainType: string(comm.ModuleTask),
@ -49,17 +58,32 @@ var (
TaskTag: int32(comm.TASK_DAILY),
},
rsp: &pb.TaskActiveListResp{},
print: func(rsp proto.Message) {
out := rsp.(*pb.TaskActiveListResp)
for _, v := range out.List {
fmt.Printf("%v 活跃值:%v\n", v, out.Active)
}
},
// enabled: true,
}, {
desc: "活跃度领取",
mainType: string(comm.ModuleTask),
subType: task.TaskSubTypeActiveReceive,
req: &pb.TaskActiveReceiveReq{
Id: "62c676d57deea8b9af8884fb",
Id: "62d4c90c3ccfe7787f317975",
TaskTag: int32(comm.TASK_DAILY),
},
rsp: &pb.TaskActiveReceiveResp{},
// enabled: true,
}, {
desc: "卡牌攻略",
mainType: string(comm.ModuleTask),
subType: task.TaskSubTypeStrategy,
req: &pb.TaskDoStrategyReq{
HeroCfgId: 13001,
},
rsp: &pb.TaskDoStrategyResp{},
enabled: true,
},
}
)

View File

@ -35,16 +35,16 @@ var user_builders = []*TestCase{
{
desc: "添加资源",
mainType: string(comm.ModuleUser),
subType: "addres",
subType: user.UserSubTypeAddRes,
req: &pb.UserAddResReq{
Res: &pb.UserAssets{
A: "item",
T: "10001",
A: "hero",
T: "43001",
N: 1,
},
},
rsp: &pb.UserAddResResp{},
//enabled: true,
rsp: &pb.UserAddResResp{},
// enabled: true,
},
}

View File

@ -41,7 +41,7 @@ const (
ModuleItems core.M_Modules = "items" //道具模块
ModuleShop core.M_Modules = "shop" //商店模块
ModuleTask core.M_Modules = "task" //任务模块
ModuleStory core.M_Modules = "story" //主线模块
ModuleMainline core.M_Modules = "mainline" //主线模块
ModuleNotify core.M_Modules = "notify" //公告模块
)
@ -104,7 +104,8 @@ const (
type TaskTag int32
const (
TASK_DAILY TaskTag = 1 //每日任务
TASK_WEEKLY TaskTag = 2 //周任务
TASK_ACHIEVE TaskTag = 3 //成就
TASK_DAILY TaskTag = 1 //每日任务
TASK_WEEKLY TaskTag = 2 //周任务
TASK_ACHIEVE TaskTag = 3 //成就
TASK_STRATEGY TaskTag = 4 // 攻略
)

View File

@ -26,9 +26,9 @@ type (
//查询用户背包多个物品数量
QueryItemsAmount(source *ModuleCallSource, uId string, itemid ...int32) (result map[int32]uint32)
///添加单个物品到背包 (可以加物品和减物品)
AddItem(source *ModuleCallSource, uId string, itemid, addnum int32, bPush bool) (code pb.ErrorCode)
AddItem(source *ModuleCallSource, session IUserSession, itemid, addnum int32, bPush bool) (code pb.ErrorCode)
///添加多个物品到背包 (可以加物品和减物品)
AddItems(source *ModuleCallSource, uId string, items map[int32]int32, bPush bool) (code pb.ErrorCode)
AddItems(source *ModuleCallSource, session IUserSession, items map[int32]int32, bPush bool) (code pb.ErrorCode)
}
//英雄
@ -36,7 +36,9 @@ type (
//查询用户卡片数量
QueryHeroAmount(uId string, heroCfgId int32) (amount uint32)
//创建新英雄
CreateHero(uid string, bPush bool, heroCfgId ...int32) error
CreateHeroes(uid string, heroCfgId ...int32) error
//创建指定数量
CreateRepeatHero(uid string, heroCfgId, num int32) (*pb.DBHero, error)
// 获取英雄
// heroId 英雄ID
GetHero(uid, heroId string) (*pb.DBHero, pb.ErrorCode)
@ -55,7 +57,7 @@ type (
//查询用户属性值 例如 金币 经验
QueryAttributeValue(uid string, attr string) (value int32)
//添加/减少属性值 第四个参数控制是否推送给前端
AddAttributeValue(uid string, attr string, add int32, bPush bool) (code pb.ErrorCode)
AddAttributeValue(session IUserSession, attr string, add int32, bPush bool) (code pb.ErrorCode)
}
//武器模块
IEquipment interface {
@ -64,11 +66,11 @@ type (
//查询服务资源数量 参数武器配置id
QueryEquipmentAmount(source *ModuleCallSource, uid string, equipmentId int32) (amount uint32)
//添加新武器
AddNewEquipments(source *ModuleCallSource, uid string, cIds map[int32]uint32, bPush bool) (code pb.ErrorCode)
AddNewEquipments(source *ModuleCallSource, session IUserSession, cIds map[int32]uint32, bPush bool) (code pb.ErrorCode)
}
IStory interface {
IMainline interface {
// 修改章节信息
ModifyStoryData(uid string, objId string, data interface{}) (code pb.ErrorCode)
ModifyMainlineData(uid string, objId string, data interface{}) (code pb.ErrorCode)
// 检查能不能挑战该关卡
CheckChallengeChapter(stroyId int32, uid string, zhangjieID int32) (code pb.ErrorCode)
}

27
comm/result.go Normal file
View File

@ -0,0 +1,27 @@
package comm
import "go_dreamfactory/lego/sys/log"
type ResultStruct[T any] struct {
Result T
Err error
}
func Result[T any](result T, err error) *ResultStruct[T] {
return &ResultStruct[T]{Result: result, Err: err}
}
func (this *ResultStruct[T]) Unwrap() T {
if this.Err != nil {
log.Errorf("%v", this.Err)
}
return this.Result
}
func (this *ResultStruct[T]) UnwrapOr(ret T) T {
if this.Err != nil {
return ret
}
return this.Result
}

View File

@ -66,7 +66,7 @@ func (this *apiComp) Upgrade(session comm.IUserSession, req *pb.EquipmentUpgrade
}
}
if issucc {
if code = this.module.CheckConsumeRes(session.GetUserId(), intensify.Need, true); code != pb.ErrorCode_Success {
if code = this.module.CheckConsumeRes(session, intensify.Need, true); code != pb.ErrorCode_Success {
return
}
modifyequipments = make([]*pb.DB_Equipment, 0)

View File

@ -80,28 +80,27 @@ func (this *Equipment) QueryEquipmentAmount(source *comm.ModuleCallSource, uid s
}
//添加武器
func (this *Equipment) AddNewEquipments(source *comm.ModuleCallSource, uid string, cIds map[int32]uint32, bPush bool) (code pb.ErrorCode) {
func (this *Equipment) AddNewEquipments(source *comm.ModuleCallSource, session comm.IUserSession, cIds map[int32]uint32, bPush bool) (code pb.ErrorCode) {
var (
err error
change []*pb.DB_Equipment
)
if change, err = this.modelEquipment.AddEquipments(uid, cIds); err != nil {
if change, err = this.modelEquipment.AddEquipments(session.GetUserId(), cIds); err != nil {
log.Errorf("err%v", err)
code = pb.ErrorCode_SystemError
return
}
if len(change) > 0 && bPush {
this.equipmentsChangePush(uid, change)
this.equipmentsChangePush(session, change)
}
return
}
//Evens--------------------------------------------------------------------------------------------------------------------------------
//推送道具变化消息
func (this *Equipment) equipmentsChangePush(uid string, items []*pb.DB_Equipment) (err error) {
if session, ok := this.GetUserSession(uid); ok {
session.SendMsg(string(this.GetType()), "change", &pb.EquipmentChangePush{Equipments: items})
err = session.Push()
}
func (this *Equipment) equipmentsChangePush(session comm.IUserSession, items []*pb.DB_Equipment) (err error) {
session.SendMsg(string(this.GetType()), "change", &pb.EquipmentChangePush{Equipments: items})
return
}

View File

@ -98,12 +98,12 @@ func Test_Modules_EquipmentUpgradeReq(t *testing.T) {
//添加武器测试
func Test_Module_AddNewEquipments(t *testing.T) {
code := module.AddNewEquipments(&comm.ModuleCallSource{
Module: "Test",
FuncName: "Test_Module",
Describe: "摸底测试",
}, "0_62b16dda909b2f8faeff788d", map[int32]uint32{10001: 1}, true)
log.Debugf("Test_Module Code:%d", code)
// code := module.AddNewEquipments(&comm.ModuleCallSource{
// Module: "Test",
// FuncName: "Test_Module",
// Describe: "摸底测试",
// }, "0_62b16dda909b2f8faeff788d", map[int32]uint32{10001: 1}, true)
// log.Debugf("Test_Module Code:%d", code)
}
//查询武器信息

View File

@ -23,6 +23,7 @@ const ( //消息回复的头名称
StrengthenUpStar = "strengthenupstar" // 英雄升星
Awaken = "awaken" // 英雄觉醒
HeroLock = "lock" // 英雄锁定
DrawCard = "drawcard" // 抽卡
)
//组件初始化接口

View File

@ -55,7 +55,7 @@ func (this *apiComp) Awaken(session comm.IUserSession, req *pb.HeroAwakenReq) (c
return
}
// 消耗校验
code = this.module.CheckConsumeRes(session.GetUserId(), awakenData.Phaseneed, true)
code = this.module.CheckConsumeRes(session, awakenData.Phaseneed, true)
if code != pb.ErrorCode_Success {
return
}
@ -72,6 +72,7 @@ func (this *apiComp) Awaken(session comm.IUserSession, req *pb.HeroAwakenReq) (c
}
_heroMap := map[string]interface{}{
"normalSkill": _hero.NormalSkill,
"isOverlying": false,
}
// 保存数据
err1 = this.module.modelHero.modifyHeroData(session.GetUserId(), _hero.Id, _heroMap)
@ -89,7 +90,8 @@ func (this *apiComp) Awaken(session comm.IUserSession, req *pb.HeroAwakenReq) (c
this.module.modelHero.mergeMainProperty(session.GetUserId(), _hero.Id, property)
_heroMap := map[string]interface{}{
"juexingLv": _hero.JuexingLv + 1,
"juexingLv": _hero.JuexingLv + 1,
"isOverlying": false,
}
// 保存数据
err1 = this.module.modelHero.modifyHeroData(session.GetUserId(), _hero.Id, _heroMap)

View File

@ -27,7 +27,7 @@ func (this *apiComp) Chouka(session comm.IUserSession, req *pb.HeroChoukaReq) (c
}()
heroCfgIds := req.HeroIds
if err := this.module.modelHero.createMultiHero(session.GetUserId(), false, heroCfgIds...); err != nil {
if err := this.module.modelHero.createMultiHero(session.GetUserId(), heroCfgIds...); err != nil {
code = pb.ErrorCode_HeroCreate
return
}

View File

@ -0,0 +1,57 @@
package hero
import (
"crypto/rand"
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"math/big"
"google.golang.org/protobuf/proto"
)
func (this *apiComp) DrawCardCheck(session comm.IUserSession, req *pb.HeroDrawCardReq) (code pb.ErrorCode) {
if req.DrawCount != 1 && req.DrawCount != 10 { // 只能是单抽或10抽
code = pb.ErrorCode_ReqParameterError
}
return
}
//抽卡
func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq) (code pb.ErrorCode, data proto.Message) {
var (
szCards []int32 // 最终抽到的卡牌
totalWeight int64 // 总权重
curWeigth int64 // 临时随机获得的权重
)
szCards = make([]int32, 0)
rsp := &pb.HeroDrawCardResp{}
// 抽卡相关
// 获取配置文件的权重信息
_conf, err := this.module.configure.GetHeroDrawConfig()
if err != nil {
code = pb.ErrorCode_ConfigNoFound
return
}
for _, v := range _conf.GetDataList() {
totalWeight += int64(v.Weight) // 统计所有权重
}
for i := 0; i < int(req.DrawCount); i++ {
n, _ := rand.Int(rand.Reader, big.NewInt(totalWeight)) // [0,totalWeight)
for _, v := range _conf.GetDataList() {
curWeigth += int64(v.Weight)
if curWeigth < n.Int64() { // 命中
szCards = append(szCards, v.Id)
break
}
}
}
if err := this.module.modelHero.createMultiHero(session.GetUserId(), szCards...); err != nil {
code = pb.ErrorCode_HeroCreate
return
}
rsp.Heroes = szCards
session.SendMsg(string(this.module.GetType()), DrawCard, rsp)
return
}

View File

@ -92,8 +92,8 @@ func (this *apiComp) Resonance(session comm.IUserSession, req *pb.HeroResonanceR
code = pb.ErrorCode_ConfigNoFound
return
}
// 消耗校验
code = this.module.CheckConsumeRes(session.GetUserId(), resonConfig.Need, true)
code = this.module.CheckConsumeRes(session, resonConfig.Need, true)
if code != pb.ErrorCode_Success {
return
}
@ -101,6 +101,7 @@ func (this *apiComp) Resonance(session comm.IUserSession, req *pb.HeroResonanceR
_heroMap := map[string]interface{}{
"resonateNum": _hero.ResonateNum + 1,
"distributionResonate": _hero.DistributionResonate + resonConfig.Energy,
"isOverlying": false,
}
err1 = this.module.modelHero.modifyHeroData(session.GetUserId(), req.HeroObjID, _heroMap) // 修改英雄信息
if err1 != nil {
@ -117,11 +118,13 @@ func (this *apiComp) Resonance(session comm.IUserSession, req *pb.HeroResonanceR
return
}
for i := 0; i < int(v.N); i++ { // 有多少张加多少次
this.module.modelHero.createOneHero(session.GetUserId(), int32(value), true)
this.module.modelHero.createOneHero(session.GetUserId(), int32(value))
}
}
}
err1 = this.module.modelHero.PushHeroProperty(session, _hero.Id) // 推送属性变化
session.SendMsg(string(this.module.GetType()), "delhero", &pb.HeroDelHeroPush{Heros: szCostHero}) // 推送删除的英雄
err1 = this.module.modelHero.PushHeroProperty(session, _hero.Id) // 推送属性变化
if err1 != nil {
this.module.Errorf("PushHeroProperty err!")
}

View File

@ -56,7 +56,7 @@ func (this *apiComp) ResonanceReset(session comm.IUserSession, req *pb.HeroReson
return
}
// 消耗校验
code = this.module.CheckConsumeRes(session.GetUserId(), _costConfig.Var, true)
code = this.module.CheckConsumeRes(session, _costConfig.Var, true)
if code != pb.ErrorCode_Success {
return
}
@ -71,6 +71,7 @@ func (this *apiComp) ResonanceReset(session comm.IUserSession, req *pb.HeroReson
_heroMap := map[string]interface{}{
"DistributionResonate": _hero.ResonateNum * resonConfig.Energy,
"Energy": _hero.Energy,
"isOverlying": false,
}
err1 = this.module.modelHero.modifyHeroData(session.GetUserId(), req.HeroObjID, _heroMap) // 修改英雄信息

View File

@ -40,6 +40,7 @@ func (this *apiComp) ResonanceUseEnergy(session comm.IUserSession, req *pb.HeroR
_heroMap := map[string]interface{}{
"DistributionResonate": _hero.ResonateNum - req.UseEnergy, // 减没有分配的能量
"Energy": _hero.Energy,
"isOverlying": false,
}
err1 := this.module.modelHero.modifyHeroData(session.GetUserId(), req.HeroObjID, _heroMap) // 修改英雄信息

View File

@ -0,0 +1,47 @@
package hero
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/pb"
"google.golang.org/protobuf/proto"
)
//参数校验
func (this *apiComp) GetSpecifiedCheck(session comm.IUserSession, req *pb.HeroGetSpecifiedReq) (code pb.ErrorCode) {
if req.HeroCoinfigID == 0 {
code = pb.ErrorCode_ReqParameterError
return
}
return
}
/// 英雄锁定
func (this *apiComp) GetSpecified(session comm.IUserSession, req *pb.HeroGetSpecifiedReq) (code pb.ErrorCode, data proto.Message) {
code = this.GetSpecifiedCheck(session, req) // check
if code != pb.ErrorCode_Success {
return
}
hero, err := this.module.modelHero.createOneHero(session.GetUserId(), req.HeroCoinfigID)
if err != nil {
hero.Lv = req.Lv
hero.Star = req.Star
}
_heroMap := map[string]interface{}{
"lv": hero.Lv,
"star": hero.Star,
"isOverlying": false,
}
// 保存数据
err1 := this.module.modelHero.modifyHeroData(session.GetUserId(), hero.Id, _heroMap)
if err1 != nil {
code = pb.ErrorCode_DBError
log.Errorf("GetSpecified failed:%v", err)
return
}
session.SendMsg(string(this.module.GetType()), "getspecified", &pb.HeroGetSpecifiedResp{Hero: hero})
return
}

View File

@ -116,6 +116,7 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt
}
_heroMap := map[string]interface{}{
"normalSkill": _hero.NormalSkill,
"isOverlying": false,
}
err1 = this.module.modelHero.modifyHeroData(session.GetUserId(), req.HeroObjID, _heroMap) // 修改英雄信息
if err1 != nil {
@ -129,7 +130,9 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt
code = pb.ErrorCode_DBError
return
}
err1 = this.module.modelHero.PushHeroProperty(session, _hero.Id) // 推送属性变化
session.SendMsg(string(this.module.GetType()), "delhero", &pb.HeroDelHeroPush{Heros: map[string]int32{req.CostCardObj: 1}}) // 推送删除的英雄
err1 = this.module.modelHero.PushHeroProperty(session, _hero.Id) // 推送属性变化
if err1 != nil {
this.module.Errorf("PushHeroProperty err!")
}

View File

@ -69,7 +69,16 @@ func (this *apiComp) StrengthenUpStar(session comm.IUserSession, req *pb.HeroStr
}
for _, value := range tagHeroConfig.GetDataList() {
if _hero.HeroID == value.Id && _hero.Star == value.Star { //&& _hero.Lv >= value.Maxlevel { // 找到了 满足升星条件
if _hero.HeroID == value.Id && _hero.Star == value.Star {
// 校验等级
if _hero.Lv < _hero.Star*comm.HeroStarLvRatio {
code = pb.ErrorCode_HeroStarLvErr
return
}
if value.Needhero == 0 && value.Needracenum == 0 && value.Gold == 0 { // 不能再升星了
code = pb.ErrorCode_HeroMaxStarLv
return
}
target = value
break
}
@ -102,12 +111,15 @@ func (this *apiComp) StrengthenUpStar(session comm.IUserSession, req *pb.HeroStr
}
for _, value := range target.Needrace { // 阵营校验
if tagHero.Formation == value {
bCheckRacehero = true
break
// 获取配置表英雄阵营
cfg := this.module.configure.GetHero(tagHero.HeroID)
if cfg != nil {
if cfg.Race == value {
bCheckRacehero = true
break
}
}
}
this.module.Debugf("指定英雄校验结果:%b,种族英雄校验结果:%b", bCheckNeedhero, bCheckRacehero)
}
}
@ -124,7 +136,7 @@ func (this *apiComp) StrengthenUpStar(session comm.IUserSession, req *pb.HeroStr
}
// 消耗道具
code = this.module.ModuleUser.AddAttributeValue(session.GetUserId(), "gold", -target.Gold, true) // 减少金币
code = this.module.ModuleUser.AddAttributeValue(session, "gold", -target.Gold, true) // 减少金币
if code != pb.ErrorCode_Success {
this.module.Errorf("cost gold failed ,count = %d", target.Gold)
code = pb.ErrorCode_GoldNoEnough
@ -138,7 +150,7 @@ func (this *apiComp) StrengthenUpStar(session comm.IUserSession, req *pb.HeroStr
return
}
}
session.SendMsg(string(this.module.GetType()), "delhero", &pb.HeroDelHeroPush{Heros: mapCostHero})
code = this.module.modelHero.HeroStarUp(session, _hero) // 执行升星操作
if code != pb.ErrorCode_Success {
return

View File

@ -27,12 +27,13 @@ func (this *apiComp) StrengthenUplvCheck(session comm.IUserSession, req *pb.Hero
func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStrengthenUplvReq) (code pb.ErrorCode, data proto.Message) {
var (
curLv int32
curExp int32 // 当前英雄的经验
addExp int32 // 需要增加的经验
costGold int32 // 需要消耗的资源
_hero *pb.DBHero // 目标英雄
_expHero *pb.DBHero // 消耗英雄
curLv int32
curExp int32 // 当前英雄的经验
addExp int32 // 需要增加的经验
costGold int32 // 需要消耗的资源
_hero *pb.DBHero // 目标英雄
_expHero *pb.DBHero // 消耗英雄
minAddExp int32
)
code = this.StrengthenUplvCheck(session, req) // check
@ -72,6 +73,11 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
code = pb.ErrorCode_HeroNoEnough
return
}
if minAddExp == 0 {
minAddExp = expConf.Heroexp //初始化
} else if minAddExp > expConf.Heroexp {
minAddExp = expConf.Heroexp // 取出最小的经验卡
}
}
if addExp == 0 {
code = pb.ErrorCode_HeroExpTypeErr
@ -95,6 +101,32 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
code = pb.ErrorCode_HeroMaxLv
return
}
curExp += addExp // 先把经验加上
for {
if maxLv <= _hero.Lv && curExp >= _data.Heroexp[0].N { // 设置最大经验和等级
// 超过的经验值
leftExp := curExp - _data.Heroexp[0].N
this.module.Debugf("经验溢出%d", leftExp)
if leftExp >= minAddExp {
code = pb.ErrorCode_HeroAddMaxExp
return
}
curLv = maxLv
curExp = _data.Heroexp[0].N
break
}
if _data.Heroexp[0].N > curExp { // 经验不够升级则不能执行升级操作
break
} else { // 升级操作
curExp -= _data.Heroexp[0].N
curLv += 1 // 经验够了 那么等级+1
_data = this.module.configure.GetHeroLv(curLv)
if _data == nil { // 等级加失败了 回到原来的等级
curLv -= 1
break
}
}
}
} else {
code = pb.ErrorCode_HeroNoExist
return
@ -113,7 +145,7 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
N: costGold,
}
res = append(res, _d)
code = this.module.CheckConsumeRes(session.GetUserId(), res, true)
code = this.module.CheckConsumeRes(session, res, true)
if code != pb.ErrorCode_Success {
return
}
@ -122,13 +154,13 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
code = this.module.AddCardExp(session.GetUserId(), req.HeroObjID, addExp) // 加经验
if code != pb.ErrorCode_Success {
// 升级失败资源回退
code = this.module.DispenseRes(session.GetUserId(), res, true)
code = this.module.DispenseRes(session, res, true)
return
}
// 删除经验卡
for k, v := range req.ExpCards {
err1 := this.module.modelHero.consumeOneHeroCard(session.GetUserId(), k, v)
err1 := this.module.modelHero.consumeHeroCard(session.GetUserId(), k, v)
if err1 != nil {
code = pb.ErrorCode_HeroNoEnough
this.module.Errorf("delete err failed err:%T!", err1)
@ -136,11 +168,13 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
}
}
err1 := this.module.modelHero.PushHeroProperty(session, _hero.Id) // 推送属性变化
session.SendMsg(string(this.module.GetType()), "delhero", &pb.HeroDelHeroPush{Heros: req.ExpCards}) // 推送删除的英雄
err1 := this.module.modelHero.PushHeroProperty(session, _hero.Id) // 推送属性变化
if err1 != nil {
this.module.Errorf("PushHeroProperty err!")
}
_hero.Lv = curLv
_hero.Exp = curExp
session.SendMsg(string(this.module.GetType()), StrengthenUplv, &pb.HeroStrengthenUplvResp{Hero: _hero})
return
}

View File

@ -9,17 +9,19 @@ import (
)
const (
new_hero = "game_newhero.json" //英雄
hero_stargrow = "game_herostargrow.json" //英雄品质系数
hero_levelgrow = "game_herolevelgrow.json" //英雄成长系数
hero_starup = "game_herostarup.json" // 升星
hero_levelup = "game_herolevelup.json" //英雄等级基础属性
hero_exp = "game_heroexp.json" // 升级
hero_skillup = "game_heroskilllevel.json" // 英雄技能升级
game_skillatk = "game_skillatk.json" // 英雄技能
hero_resonance = "game_heroresonance.json" // 英雄共鸣
hero_comatn = "game_comatn.json" // 英雄共鸣重置
hero_awaken = "game_heroawaken.json" // 英雄觉醒
new_hero = "game_newhero.json" //英雄
hero_stargrow = "game_herostargrow.json" //英雄品质系数
hero_levelgrow = "game_herolevelgrow.json" //英雄成长系数
hero_starup = "game_herostarup.json" // 升星
hero_levelup = "game_herolevelup.json" //英雄等级基础属性
hero_exp = "game_heroexp.json" // 升级
hero_skillup = "game_heroskilllevel.json" // 英雄技能升级
game_skillatk = "game_skillatk.json" // 英雄技能
hero_resonance = "game_heroresonance.json" // 英雄共鸣
hero_comatn = "game_comatn.json" // 英雄共鸣重置
hero_awaken = "game_heroawaken.json" // 英雄觉醒
hero_drawcard = "game_drawcard.json" // 抽卡
hero_drawupdraw = "game_drawupdraw.json" // 抽卡概率调整
)
///配置管理组件
@ -32,17 +34,19 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
err = this.MCompConfigure.Init(service, module, comp, options)
err = this.LoadMultiConfigure(map[string]interface{}{
new_hero: cfg.NewGame_newHero,
hero_stargrow: cfg.NewGame_heroStargrow,
hero_levelgrow: cfg.NewGame_heroLevelgrow,
hero_starup: cfg.NewGame_heroStarup,
hero_levelup: cfg.NewGame_heroLevelup,
hero_exp: cfg.NewGame_heroExp,
hero_skillup: cfg.NewGame_heroSkillLevel,
game_skillatk: cfg.NewGame_skillAtk,
hero_resonance: cfg.NewGame_heroResonance,
hero_comatn: cfg.NewGame_comAtn,
hero_awaken: cfg.NewGame_heroAwaken,
new_hero: cfg.NewGame_newHero,
hero_stargrow: cfg.NewGame_heroStargrow,
hero_levelgrow: cfg.NewGame_heroLevelgrow,
hero_starup: cfg.NewGame_heroStarup,
hero_levelup: cfg.NewGame_heroLevelup,
hero_exp: cfg.NewGame_heroExp,
hero_skillup: cfg.NewGame_heroSkillLevel,
game_skillatk: cfg.NewGame_skillAtk,
hero_resonance: cfg.NewGame_heroResonance,
hero_comatn: cfg.NewGame_comAtn,
hero_awaken: cfg.NewGame_heroAwaken,
hero_drawcard: cfg.NewGame_drawCard,
hero_drawupdraw: cfg.NewGame_drawUpdraw,
})
return
@ -345,3 +349,37 @@ func (this *configureComp) GetHeroAwakenConfig() (configure *cfg.Game_heroAwaken
return
}
func (this *configureComp) GetHeroDrawConfig() (configure *cfg.Game_drawCard, err error) {
var (
v interface{}
ok bool
)
if v, err = this.GetConfigure(hero_stargrow); err == nil {
if configure, ok = v.(*cfg.Game_drawCard); !ok {
err = fmt.Errorf("%T no is *cfg.Game_drawCard", v)
return
}
} else {
err = fmt.Errorf("%T no is *cfg.Game_drawCard", v)
}
return
}
func (this *configureComp) GetDrawUpDrawConfig() (configure *cfg.Game_drawUpdraw, err error) {
var (
v interface{}
ok bool
)
if v, err = this.GetConfigure(hero_stargrow); err == nil {
if configure, ok = v.(*cfg.Game_drawUpdraw); !ok {
err = fmt.Errorf("%T no is *cfg.Game_drawUpdraw", v)
return
}
} else {
err = fmt.Errorf("%T no is *cfg.Game_drawUpdraw", v)
}
return
}

View File

@ -1,6 +1,7 @@
package hero
import (
"errors"
"fmt"
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
@ -85,37 +86,68 @@ func (this *ModelHero) initHeroSkill(hero *pb.DBHero) []*pb.SkillData {
}
//创建一个指定的英雄
func (this *ModelHero) createOneHero(uid string, heroCfgId int32, bPush bool) (err error) {
hero := this.initHero(uid, heroCfgId)
func (this *ModelHero) createOneHero(uid string, heroCfgId int32) (hero *pb.DBHero, err error) {
hero = this.initHero(uid, heroCfgId)
if hero != nil {
if err = this.moduleHero.modelHero.AddList(uid, hero.Id, hero); err != nil {
this.moduleHero.Errorf("%v", err)
return
}
}
// 创建英雄成功 向客户端推送数据
if bPush {
if session, ok := this.moduleHero.GetUserSession(uid); ok {
session.SendMsg(string(this.moduleHero.GetType()), "addhero", &pb.AddNewHeroPush{Hero: hero})
err = session.Push()
return
}
//初始化可叠加的英雄
func (this *ModelHero) initHeroOverlying(uid string, heroCfgId, count int32) (hero *pb.DBHero, err error) {
hero = this.initHero(uid, heroCfgId)
if hero != nil {
hero.SameCount += count
if err = this.moduleHero.modelHero.AddList(uid, hero.Id, hero); err != nil {
this.moduleHero.Errorf("%v", err)
return
}
}
return
}
return nil
//叠加英雄 count叠加数量
func (this *ModelHero) createHeroOverlying(uid string, heroCfgId, count int32) (hero *pb.DBHero, err error) {
heroes := this.moduleHero.modelHero.getHeroList(uid)
if len(heroes) == 0 {
return this.initHeroOverlying(uid, heroCfgId, count)
} else {
var isExist bool
for _, h := range heroes {
if h.HeroID == heroCfgId &&
h.IsOverlying {
isExist = true
h.SameCount += count
data := map[string]interface{}{
"sameCount": h.SameCount, //叠加数
}
if err := this.modifyHeroData(uid, h.Id, data); err != nil {
return nil, err
}
}
}
if !isExist {
return this.initHeroOverlying(uid, heroCfgId, count)
}
}
return
}
//创建多个指定的英雄 heroCfgIds可填入多个英雄ID
func (this *ModelHero) createMultiHero(uid string, bPush bool, heroCfgIds ...int32) error {
func (this *ModelHero) createMultiHero(uid string, heroCfgIds ...int32) error {
heroes := this.moduleHero.modelHero.getHeroList(uid)
if len(heroes) == 0 {
for _, v := range heroCfgIds {
if err := this.createOneHero(uid, v, bPush); err != nil {
if _, err := this.createOneHero(uid, v); err != nil {
return err
}
}
} else {
findHero := func(heroId int32) (*pb.DBHero, bool) {
for _, h := range heroes {
if h.HeroID == heroId {
@ -126,15 +158,23 @@ func (this *ModelHero) createMultiHero(uid string, bPush bool, heroCfgIds ...int
}
for _, v := range heroCfgIds {
if h, ok := findHero(v); ok {
h.SameCount++
data := map[string]interface{}{
"sameCount": h.SameCount, //叠加数
}
if err := this.modifyHeroData(uid, h.Id, data); err != nil {
return err
//允许叠加
if h.IsOverlying {
h.SameCount++
data := map[string]interface{}{
"sameCount": h.SameCount, //叠加数
}
if err := this.modifyHeroData(uid, h.Id, data); err != nil {
return err
}
} else {
if _, err := this.createOneHero(uid, v); err != nil {
return err
}
}
} else {
if err := this.createOneHero(uid, v, bPush); err != nil {
if _, err := this.createOneHero(uid, v); err != nil {
return err
}
}
@ -154,14 +194,32 @@ func (this *ModelHero) getOneHero(uid, heroId string) *pb.DBHero {
return hero
}
//消耗一张英雄卡
func (this *ModelHero) consumeOneHeroCard(uid, heroId string, count int32) (err error) {
for i := 0; i < int(count); i++ {
//消耗英雄卡
func (this *ModelHero) consumeHeroCard(uid, heroId string, count int32) (err error) {
if count == 0 {
return
}
hero := this.getOneHero(uid, heroId)
if hero == nil {
return errors.New("hero no exist")
}
if hero.SameCount < count {
return errors.New("hero card no enough")
}
if hero.SameCount-count == 0 {
if err := this.moduleHero.modelHero.DelListlds(uid, heroId); err != nil {
this.moduleHero.Errorf("%v", err)
break
}
} else {
update := map[string]interface{}{
"sameCount": hero.SameCount - count,
}
err = this.modifyHeroData(uid, heroId, update)
}
this.moduleHero.Debugf("删除一张卡牌uid:%s,卡牌ID:%s", uid, heroId)
return
}
@ -185,6 +243,9 @@ func (this *ModelHero) getHeroList(uid string) []*pb.DBHero {
//更新装备
func (this *ModelHero) setEquipment(uid, heroId string, equipIds []string) error {
if len(equipIds) == 0 {
return nil
}
update := map[string]interface{}{
"equipID": equipIds,
}
@ -301,14 +362,15 @@ func (this *ModelHero) PushHeroProperty(session comm.IUserSession, heroId string
this.moduleHero.Errorf("PushHeroProperty err:%v", err)
return
}
return session.SendMsg("push", "property", &pb.HeroProperty{Property: m})
return session.SendMsg("hero", "property", &pb.HeroPropertyPush{Property: m})
}
// 英雄升星
func (this *ModelHero) HeroStarUp(session comm.IUserSession, hero *pb.DBHero) (code pb.ErrorCode) {
_heroMap := map[string]interface{}{
"star": hero.Star,
"star": hero.Star + 1,
"isOverlying": false,
}
// 保存数据
err1 := this.modifyHeroData(session.GetUserId(), hero.Id, _heroMap)

View File

@ -39,8 +39,13 @@ func (this *Hero) OnInstallComp() {
}
//创建新英雄
func (this *Hero) CreateHero(uid string, bPush bool, heroCfgId ...int32) error {
return this.modelHero.createMultiHero(uid, bPush, heroCfgId...)
func (this *Hero) CreateHeroes(uid string, heroCfgId ...int32) error {
return this.modelHero.createMultiHero(uid, heroCfgId...)
}
//创建叠加英雄
func (this *Hero) CreateRepeatHero(uid string, heroCfgId, num int32) (*pb.DBHero, error) {
return this.modelHero.createHeroOverlying(uid, heroCfgId, num)
}
//获取英雄
@ -155,8 +160,9 @@ func (this *Hero) AddCardExp(uid string, heroId string, exp int32) (code pb.Erro
}
update := map[string]interface{}{
"lv": curLv,
"exp": curExp,
"lv": curLv,
"exp": curExp,
"isOverlying": false,
}
if err := this.modelHero.modifyHeroData(uid, heroId, update); err != nil {
@ -172,7 +178,7 @@ func (this *Hero) AddCardExp(uid string, heroId string, exp int32) (code pb.Erro
// 删除指定卡牌
func (this *Hero) DelCard(udi string, cardid string, amount int32) (code pb.ErrorCode) {
err := this.modelHero.consumeOneHeroCard(udi, cardid, amount)
err := this.modelHero.consumeHeroCard(udi, cardid, amount)
if err != nil {
return pb.ErrorCode_DBError
}

View File

@ -62,14 +62,14 @@ func (this *Items) QueryItemsAmount(source *comm.ModuleCallSource, uId string, i
}
///添加单个物品到背包 (可以加物品和减物品)
func (this *Items) AddItem(source *comm.ModuleCallSource, uId string, itemid, addnum int32, bPush bool) (code pb.ErrorCode) {
func (this *Items) AddItem(source *comm.ModuleCallSource, session comm.IUserSession, itemid, addnum int32, bPush bool) (code pb.ErrorCode) {
var (
err error
change []*pb.DB_UserItemData
)
defer this.Debugf("给用户添加物品 uId:%s itemid:%d addnum:%d issucc:%v", uId, itemid, addnum, err == nil)
if change, err = this.modelItems.AddItemToUserPack(uId, itemid, addnum); err != nil {
this.Errorf("给用户添加物品 uId:%s itemid:%d addnum:%d err:%v", uId, itemid, addnum, err)
defer this.Debugf("给用户添加物品 uId:%s itemid:%d addnum:%d issucc:%v", session.GetUserId(), itemid, addnum, err == nil)
if change, err = this.modelItems.Pack_AddItemToUserPack(session.GetUserId(), itemid, addnum); err != nil {
this.Errorf("给用户添加物品 uId:%s itemid:%d addnum:%d err:%v", session.GetUserId(), itemid, addnum, err)
if err == ItemNotEnoughError {
code = pb.ErrorCode_ItemsNoEnough
} else if err == PackGridNumUpper {
@ -80,22 +80,22 @@ func (this *Items) AddItem(source *comm.ModuleCallSource, uId string, itemid, ad
return
}
if bPush {
this.itemsChangePush(uId, change) //推送道具背包变化
this.itemsChangePush(session, change) //推送道具背包变化
}
return
}
///添加多个物品到背包 (可以加物品和减物品)
func (this *Items) AddItems(source *comm.ModuleCallSource, uId string, items map[int32]int32, bPush bool) (code pb.ErrorCode) {
func (this *Items) AddItems(source *comm.ModuleCallSource, session comm.IUserSession, items map[int32]int32, bPush bool) (code pb.ErrorCode) {
var (
err error
change []*pb.DB_UserItemData
)
defer this.Debugf("给用户添加物品 uId:%s items:%d items:%v", uId, items, err == nil)
if change, err = this.modelItems.AddItemsToUserPack(uId, items); err != nil {
this.Errorf("给用户添加物品 uId:%s items:%d err:%v", uId, items, err)
defer this.Debugf("给用户添加物品 uId:%s items:%d items:%v", session.GetUserId(), items, err == nil)
if change, err = this.modelItems.Pack_AddItemsToUserPack(session.GetUserId(), items); err != nil {
this.Errorf("给用户添加物品 uId:%s items:%d err:%v", session.GetUserId(), items, err)
if err == ItemNotEnoughError {
code = pb.ErrorCode_ItemsNoEnough
} else if err == PackGridNumUpper {
@ -106,17 +106,15 @@ func (this *Items) AddItems(source *comm.ModuleCallSource, uId string, items map
return
}
if len(change) > 0 && bPush {
this.itemsChangePush(uId, change) //推送道具背包变化
this.itemsChangePush(session, change) //推送道具背包变化
}
return
}
//Evens--------------------------------------------------------------------------------------------------------------------------------
//推送道具变化消息
func (this *Items) itemsChangePush(uid string, items []*pb.DB_UserItemData) (err error) {
if session, ok := this.GetUserSession(uid); ok {
session.SendMsg(string(this.GetType()), "change", &pb.ItemsChangePush{Grids: items})
err = session.Push()
}
func (this *Items) itemsChangePush(session comm.IUserSession, items []*pb.DB_UserItemData) (err error) {
session.SendMsg(string(this.GetType()), "change", &pb.ItemsChangePush{Grids: items})
return
}

View File

@ -90,10 +90,10 @@ func Test_Modules(t *testing.T) {
}
func Test_Modules_AddItems(t *testing.T) {
code := module.AddItems(&comm.ModuleCallSource{
Module: "Test",
FuncName: "Test_Modules_AddItems",
Describe: "测试模块接口",
}, "0_62c259916d8cf3e4e06311a8", map[int32]int32{10001: 1000}, true)
log.Debugf("Test_Modules_AddItems code:%v", code)
// code := module.AddItems(&comm.ModuleCallSource{
// Module: "Test",
// FuncName: "Test_Modules_AddItems",
// Describe: "测试模块接口",
// }, "0_62c259916d8cf3e4e06311a8", map[int32]int32{10001: 1000}, true)
// log.Debugf("Test_Modules_AddItems code:%v", code)
}

View File

@ -46,7 +46,7 @@ func (this *apiComp) GetUserMailAttachment(session comm.IUserSession, req *pb.Ma
}
res = append(res, d)
}
code = this.module.api.module.CheckConsumeRes(session.GetUserId(), res, true) // 领取附件
code = this.module.api.module.CheckConsumeRes(session, res, true) // 领取附件
if code == pb.ErrorCode_Success {
// 修改状态
this.module.modelMail.Mail_UpdateMailAttachmentState(req.ObjID)

View File

@ -64,7 +64,7 @@ func (this *Mail) CreateNewMail(uId string, mail *pb.DBMailData) bool {
// 获得新邮件 推送给玩家
func (this *Mail) AddNewMailPush(uid string, mail *pb.DBMailData) (err error) {
if session, ok := this.GetUserSession(uid); ok {
session.SendMsg(string(this.GetType()), "newmail", &pb.MailGetNewMailPush{Mail: mail})
session.SendMsg(string(this.GetType()), "getnewmail", &pb.MailGetNewMailPush{Mail: mail})
err = session.Push()
}
return

View File

@ -1,4 +1,4 @@
package story
package mainline
import (
"go_dreamfactory/lego/core"
@ -6,20 +6,20 @@ import (
)
const (
StoryGetListResp = "getlist"
StoryChallengeResp = "challenge"
MainlineGetListResp = "getlist"
MainlineChallengeResp = "challenge"
)
type apiComp struct {
modules.MCompGate
service core.IService
module *Story
module *Mainline
}
//组件初始化接口
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.(*Story)
this.module = module.(*Mainline)
this.service = service
return
}

View File

@ -1,4 +1,4 @@
package story
package mainline
import (
"go_dreamfactory/comm"
@ -11,8 +11,8 @@ import (
)
//参数校验
func (this *apiComp) ChallengeCheck(session comm.IUserSession, req *pb.StoryChallengeReq) (code pb.ErrorCode) {
if req.ChapterId == 0 || req.StoryId == 0 {
func (this *apiComp) ChallengeCheck(session comm.IUserSession, req *pb.MainlineChallengeReq) (code pb.ErrorCode) {
if req.ChapterId == 0 || req.MainlineId == 0 {
code = pb.ErrorCode_ReqParameterError
return
}
@ -20,17 +20,17 @@ func (this *apiComp) ChallengeCheck(session comm.IUserSession, req *pb.StoryChal
}
///挑战主线关卡
func (this *apiComp) Challenge(session comm.IUserSession, req *pb.StoryChallengeReq) (code pb.ErrorCode, data proto.Message) {
func (this *apiComp) Challenge(session comm.IUserSession, req *pb.MainlineChallengeReq) (code pb.ErrorCode, data proto.Message) {
var (
curChapter *pb.DBStory // 当前章节信息
bBranch bool // 当前挑战关卡是不是分支
curChapter *pb.DBMainline // 当前章节信息
bBranch bool // 当前挑战关卡是不是分支
)
bBranch = false
code = this.ChallengeCheck(session, req)
if code != pb.ErrorCode_Success {
return // 参数校验失败直接返回
}
list, err := this.module.modelStory.getStoryList(session.GetUserId())
list, err := this.module.modelMainline.getMainlineList(session.GetUserId())
if err != nil && err != redis.RedisNil {
code = pb.ErrorCode_DBError
return
@ -43,13 +43,13 @@ func (this *apiComp) Challenge(session comm.IUserSession, req *pb.StoryChallenge
}
// 先校验是不是分支
chaptConfig := this.module.configure.GetStoryChapter(int32(req.ChapterId)) // 根据配置文件找
chaptConfig := this.module.configure.GetMainlineChapter(int32(req.ChapterId)) // 根据配置文件找
if chaptConfig == nil {
code = pb.ErrorCode_ConfigNoFound
return
}
if curChapter == nil {
if len(chaptConfig.Fubendata) <= 0 {
if len(chaptConfig.Episode) <= 0 {
code = pb.ErrorCode_ConfigNoFound
return
}
@ -57,51 +57,51 @@ func (this *apiComp) Challenge(session comm.IUserSession, req *pb.StoryChallenge
code = pb.ErrorCode_ReqParameterError
return
}
_data := &pb.DBStory{}
_data := &pb.DBMainline{}
_data.Id = primitive.NewObjectID().Hex()
_data.ChapterId = int32(req.ChapterId)
_mData := make(map[string]interface{}, 0)
_data.Uid = session.GetUserId()
_mData[_data.Id] = _data
this.module.modelStory.addNewChapter(session.GetUserId(), _mData)
this.module.modelMainline.addNewChapter(session.GetUserId(), _mData)
curChapter = _data
//curChapter.StoryId = chaptConfig.Fubendata[0] // 第一次挑战
//curChapter.MainlineId = chaptConfig.Fubendata[0] // 第一次挑战
}
// 根据难度找对应的配置文件
if chaptConfig.Intensity == "1" { // 这里按临时配置读取 后面会修改
con := this.module.configure.GetStoryEasyChapter(int32(req.StoryId)) // 根据配置文件找
con := this.module.configure.GetMainlineEasyChapter(int32(req.MainlineId)) // 根据配置文件找
if con == nil {
code = pb.ErrorCode_ConfigNoFound
return
}
if con.Area == 2 { //分支
if con.Route == 2 { //分支
bBranch = true
// 只需要校验小关ID 是不是大于当前ID就可以
if curChapter.StoryId < int32(req.StoryId) { //必须大于前置关卡才可以挑战
code = pb.ErrorCode_StoryIDFailed
if curChapter.MainlineId < int32(req.MainlineId) { //必须大于前置关卡才可以挑战
code = pb.ErrorCode_MainlineIDFailed
return
}
}
}
// TODO 调用战斗逻辑
// 挑战成功
curChapter.StoryId += 1 // 临时数据 后面配置表完善查找
curChapter.MainlineId += 1 // 临时数据 后面配置表完善查找
if bBranch {
curChapter.BranchID = append(curChapter.BranchID, int32(req.ChapterId)) // 记录分支关卡
}
if curChapter.ChapterId == int32(req.ChapterId) && curChapter.StoryId == int32(req.StoryId) {
if curChapter.ChapterId == int32(req.ChapterId) && curChapter.MainlineId == int32(req.MainlineId) {
update := map[string]interface{}{
"storyId": req.StoryId,
"ChapterId": req.ChapterId,
"branchID": curChapter.BranchID,
"mainlineId": req.MainlineId,
"ChapterId": req.ChapterId,
"branchID": curChapter.BranchID,
}
err = this.module.modelStory.modifyStoryData(session.GetUserId(), curChapter.Id, update)
err = this.module.modelMainline.modifyMainlineData(session.GetUserId(), curChapter.Id, update)
} else {
code = pb.ErrorCode_ReqParameterError
return
}
// 发奖 (奖励数据还没配置,后续补充)
session.SendMsg(string(this.module.GetType()), StoryChallengeResp, &pb.StoryChallengeResp{Data: curChapter})
session.SendMsg(string(this.module.GetType()), MainlineChallengeResp, &pb.MainlineChallengeResp{Data: curChapter})
return
}

View File

@ -1,4 +1,4 @@
package story
package mainline
import (
"go_dreamfactory/comm"
@ -8,27 +8,27 @@ import (
)
//参数校验
func (this *apiComp) GetListCheck(session comm.IUserSession, req *pb.StoryGetListReq) (code pb.ErrorCode) {
func (this *apiComp) GetListCheck(session comm.IUserSession, req *pb.MainlineGetListReq) (code pb.ErrorCode) {
return
}
///获取主线关卡信息
func (this *apiComp) GetList(session comm.IUserSession, req *pb.StoryGetListReq) (code pb.ErrorCode, data proto.Message) {
rsp := &pb.StoryGetListResp{}
func (this *apiComp) GetList(session comm.IUserSession, req *pb.MainlineGetListReq) (code pb.ErrorCode, data proto.Message) {
rsp := &pb.MainlineGetListResp{}
code = this.GetListCheck(session, req)
if code != pb.ErrorCode_Success {
return // 参数校验失败直接返回
}
list, err := this.module.modelStory.getStoryList(session.GetUserId())
list, err := this.module.modelMainline.getMainlineList(session.GetUserId())
if err != nil {
code = pb.ErrorCode_DBError
return
}
rsp.Data = list
session.SendMsg(string(this.module.GetType()), StoryGetListResp, &pb.StoryGetListResp{Data: rsp.Data})
session.SendMsg(string(this.module.GetType()), MainlineGetListResp, &pb.MainlineGetListResp{Data: rsp.Data})
return
}

View File

@ -1,4 +1,4 @@
package story
package mainline
import (
"go_dreamfactory/lego/core"
@ -9,10 +9,10 @@ import (
)
const (
game_storychapter = "game_storychapter.json"
game_storyeasy = "game_storyeasy.json"
game_storyhard = "game_storyhard.json"
game_storypurgatory = "game_storypurgatory.json"
game_mainlinechapter = "game_mainlinechapter.json"
game_mainlineeasy = "game_mainlineeasy.json"
game_mainlinehard = "game_mainlinehard.json"
game_mainlinepurgatory = "game_mainlinepurgatory.json"
)
///配置管理基础组件
@ -24,10 +24,10 @@ type configureComp struct {
func (this *configureComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
err = this.ModuleCompBase.Init(service, module, comp, options)
err = this.LoadMultiConfigure(map[string]interface{}{
game_storychapter: cfg.NewGame_storyChapter,
game_storyeasy: cfg.NewGame_storyEasy,
game_storyhard: cfg.NewGame_storyHard,
game_storypurgatory: cfg.NewGame_storyPurgatory,
game_mainlinechapter: cfg.NewGame_mainlineChapter,
game_mainlineeasy: cfg.NewGame_mainlineEasy,
game_mainlinehard: cfg.NewGame_mainlineHard,
game_mainlinepurgatory: cfg.NewGame_mainlinePurgatory,
})
return
@ -50,17 +50,17 @@ func (this *configureComp) GetConfigure(name string) (v interface{}, err error)
return configure.GetConfigure(name)
}
func (this *configureComp) GetStoryChapter(id int32) (data *cfg.Game_storyChapterData) {
if v, err := this.GetConfigure(game_storychapter); err != nil {
func (this *configureComp) GetMainlineChapter(id int32) (data *cfg.Game_mainlineChapterData) {
if v, err := this.GetConfigure(game_mainlinechapter); err != nil {
log.Errorf("get global conf err:%v", err)
return
} else {
var (
configure *cfg.Game_storyChapter
configure *cfg.Game_mainlineChapter
ok bool
)
if configure, ok = v.(*cfg.Game_storyChapter); !ok {
log.Errorf("%T no is *cfg.Game_storyChapterData", v)
if configure, ok = v.(*cfg.Game_mainlineChapter); !ok {
log.Errorf("%T no is *cfg.Game_mainlineChapterData", v)
return
}
@ -72,17 +72,17 @@ func (this *configureComp) GetStoryChapter(id int32) (data *cfg.Game_storyChapte
}
// 获取简单的关卡配置信息
func (this *configureComp) GetStoryEasyChapter(id int32) (data *cfg.Game_storyEasyData) {
if v, err := this.GetConfigure(game_storyeasy); err != nil {
func (this *configureComp) GetMainlineEasyChapter(id int32) (data *cfg.Game_mainlineEasyData) {
if v, err := this.GetConfigure(game_mainlineeasy); err != nil {
log.Errorf("get global conf err:%v", err)
return
} else {
var (
configure *cfg.Game_storyEasy
configure *cfg.Game_mainlineEasy
ok bool
)
if configure, ok = v.(*cfg.Game_storyEasy); !ok {
log.Errorf("%T no is *cfg.Game_storyEasyData", v)
if configure, ok = v.(*cfg.Game_mainlineEasy); !ok {
log.Errorf("%T no is *cfg.Game_mainlineEasyData", v)
return
}
@ -94,17 +94,17 @@ func (this *configureComp) GetStoryEasyChapter(id int32) (data *cfg.Game_storyEa
}
// 获取炼狱级别难度的关卡配置
func (this *configureComp) GetStoryPurgatoryChapter(id int32) (data *cfg.Game_storyPurgatoryData) {
if v, err := this.GetConfigure(game_storypurgatory); err != nil {
func (this *configureComp) GetMainlinePurgatoryChapter(id int32) (data *cfg.Game_mainlinePurgatoryData) {
if v, err := this.GetConfigure(game_mainlinepurgatory); err != nil {
log.Errorf("get global conf err:%v", err)
return
} else {
var (
configure *cfg.Game_storyPurgatory
configure *cfg.Game_mainlinePurgatory
ok bool
)
if configure, ok = v.(*cfg.Game_storyPurgatory); !ok {
log.Errorf("%T no is *cfg.Game_storyPurgatoryData", v)
if configure, ok = v.(*cfg.Game_mainlinePurgatory); !ok {
log.Errorf("%T no is *cfg.Game_mainlinePurgatoryData", v)
return
}
@ -116,17 +116,17 @@ func (this *configureComp) GetStoryPurgatoryChapter(id int32) (data *cfg.Game_st
}
// 获取困难的关卡配置
func (this *configureComp) GetStoryHardChapter(id int32) (data *cfg.Game_storyHardData) {
if v, err := this.GetConfigure(game_storyhard); err != nil {
func (this *configureComp) GetMainlineHardChapter(id int32) (data *cfg.Game_mainlineHardData) {
if v, err := this.GetConfigure(game_mainlinehard); err != nil {
log.Errorf("get global conf err:%v", err)
return
} else {
var (
configure *cfg.Game_storyHard
configure *cfg.Game_mainlineHard
ok bool
)
if configure, ok = v.(*cfg.Game_storyHard); !ok {
log.Errorf("%T no is *cfg.Game_storyHardData", v)
if configure, ok = v.(*cfg.Game_mainlineHard); !ok {
log.Errorf("%T no is *cfg.Game_mainlineHardData", v)
return
}

View File

@ -0,0 +1,45 @@
package mainline
import (
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
)
const ( //Redis
TableMainline core.SqlTable = "mainline"
)
type ModelMainline struct {
modules.MCompModel
module *Mainline
}
func (this *ModelMainline) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
err = this.MCompModel.Init(service, module, comp, options)
this.module = module.(*Mainline)
this.TableName = string(TableMainline)
return
}
// 获取章节信息
func (this *ModelMainline) getMainlineList(uid string) (storys []*pb.DBMainline, err error) {
storys = make([]*pb.DBMainline, 0)
err = this.GetList(uid, &storys)
return
}
// 修改章节信息
func (this *ModelMainline) modifyMainlineData(uid string, objid string, data map[string]interface{}) error {
return this.module.modelMainline.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
}
return nil
}

104
modules/mainline/module.go Normal file
View File

@ -0,0 +1,104 @@
package mainline
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
"sort"
)
type Mainline struct {
modules.ModuleBase
modelMainline *ModelMainline
api *apiComp
configure *configureComp
}
func NewModule() core.IModule {
return &Mainline{}
}
func (this *Mainline) GetType() core.M_Modules {
return comm.ModuleMainline
}
func (this *Mainline) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) {
err = this.ModuleBase.Init(service, module, options)
return
}
func (this *Mainline) OnInstallComp() {
this.ModuleBase.OnInstallComp()
this.api = this.RegisterComp(new(apiComp)).(*apiComp)
this.modelMainline = this.RegisterComp(new(ModelMainline)).(*ModelMainline)
this.configure = this.RegisterComp(new(configureComp)).(*configureComp)
}
// 接口信息 给其他模块调用 用来修改主线关卡信息
func (this *Mainline) ModifyMainlineData(uid string, objId string, data map[string]interface{}) (code pb.ErrorCode) {
err := this.modelMainline.modifyMainlineData(uid, objId, data)
if err != nil {
code = pb.ErrorCode_DBError
}
return
}
// 校验是否能挑战该关卡
func (this *Mainline) CheckChallengeChapter(stroyId int32, uid string, zhangjieID int32) (code pb.ErrorCode) {
var (
curChapter *pb.DBMainline
)
_szData, err := this.modelMainline.getMainlineList(uid)
if err != nil {
code = pb.ErrorCode_DBError
return
}
sort.SliceStable(_szData, func(i, j int) bool { // 排序
return _szData[i].ChapterId > _szData[j].ChapterId
})
// 取出最后一条数据
curChapter = _szData[len(_szData)-1]
if curChapter == nil {
code = pb.ErrorCode_MainlineNotFindChapter // 没有找到主线关卡信息
return
}
// 获取关卡难度用来取配置文件
switch curChapter.Intensity {
case 1:
configData := this.configure.GetMainlineEasyChapter(curChapter.MainlineId)
if configData != nil { // 校验章节
if configData.Chapter != zhangjieID {
code = pb.ErrorCode_ConfigNoFound
return
}
// 如果这一关是路线二的话
if configData.Route == 2 && curChapter.ChapterId > stroyId { // 当前的关卡ID 大于路线2的ID 即可
return
}
// 判断下一关是不是当前传入的值
if configData.Previoustage != stroyId {
code = pb.ErrorCode_MainlineIDFailed
return
}
}
break
case 2:
configData := this.configure.GetMainlineHardChapter(curChapter.MainlineId)
if configData != nil { // 校验章节
if configData.Chapter != zhangjieID {
code = pb.ErrorCode_ConfigNoFound
return
}
// 判断下一关是不是当前传入的值
if configData.Previoustage != stroyId {
code = pb.ErrorCode_MainlineIDFailed
return
}
}
break
}
return
}

View File

@ -144,7 +144,7 @@ func (this *ModuleBase) SendMsgToUsers(mainType, subType string, msg proto.Messa
}
//校验消耗资源
func (this *ModuleBase) CheckConsumeRes(uid string, res []*cfg.Game_atn, bPush bool) (code pb.ErrorCode) {
func (this *ModuleBase) CheckConsumeRes(session comm.IUserSession, res []*cfg.Game_atn, bPush bool) (code pb.ErrorCode) {
var (
err error
resID int
@ -159,7 +159,7 @@ func (this *ModuleBase) CheckConsumeRes(uid string, res []*cfg.Game_atn, bPush b
//校验消费资源是否充足
for _, v := range res {
if v.A == comm.AttrType { //用户属性资源
if amount = this.ModuleUser.QueryAttributeValue(uid, v.T); amount < v.N {
if amount = this.ModuleUser.QueryAttributeValue(session.GetUserId(), v.T); amount < v.N {
code = pb.ErrorCode_ResNoEnough
this.Errorf("道具不足:A:%s,T:%s,N:%d", v.A, v.T, v.N)
return
@ -169,7 +169,7 @@ func (this *ModuleBase) CheckConsumeRes(uid string, res []*cfg.Game_atn, bPush b
code = pb.ErrorCode_ConfigurationException
return
}
if amount = int32(this.ModuleItems.QueryItemAmount(source, uid, int32(resID))); amount < v.N {
if amount = int32(this.ModuleItems.QueryItemAmount(source, session.GetSessionId(), int32(resID))); amount < v.N {
code = pb.ErrorCode_ResNoEnough
this.Errorf("道具不足:A:%s,T:%s,N:%d", v.A, v.T, v.N)
return
@ -200,10 +200,10 @@ func (this *ModuleBase) CheckConsumeRes(uid string, res []*cfg.Game_atn, bPush b
for _, v := range res {
if v.A == comm.AttrType { //用户属性资源
this.ModuleUser.AddAttributeValue(uid, v.T, -1*v.N, bPush)
this.ModuleUser.AddAttributeValue(session, v.T, -1*v.N, bPush)
} else if v.A == comm.ItemType { //道具资源
resID, _ = strconv.Atoi(v.T)
this.ModuleItems.AddItem(source, uid, int32(resID), -1*v.N, bPush)
this.ModuleItems.AddItem(source, session, int32(resID), -1*v.N, bPush)
}
// else if v.A == comm.HeroType { //卡片资源
// resID, _ = strconv.Atoi(v.T)
@ -219,7 +219,7 @@ func (this *ModuleBase) CheckConsumeRes(uid string, res []*cfg.Game_atn, bPush b
}
//发放资源
func (this *ModuleBase) DispenseRes(uid string, res []*cfg.Game_atn, bPush bool) (code pb.ErrorCode) {
func (this *ModuleBase) DispenseRes(session comm.IUserSession, res []*cfg.Game_atn, bPush bool) (code pb.ErrorCode) {
var (
resID int
)
@ -229,22 +229,33 @@ func (this *ModuleBase) DispenseRes(uid string, res []*cfg.Game_atn, bPush bool)
Describe: "发放资源",
}
for _, v := range res {
this.Debugf("发放资源 DispenseRes:A = %s, T:%s, N:%d", v.A, v.T, v.N)
if v.A == comm.AttrType { //用户属性资源
code = this.ModuleUser.AddAttributeValue(uid, v.T, v.N, bPush)
code = this.ModuleUser.AddAttributeValue(session, v.T, v.N, bPush)
} else if v.A == comm.ItemType { //道具资源
resID = cast.ToInt(v.T)
// resID, _ = strconv.Atoi(v.T)
code = this.ModuleItems.AddItem(source, uid, int32(resID), v.N, bPush)
code = this.ModuleItems.AddItem(source, session, int32(resID), v.N, bPush)
} else if v.A == comm.HeroType { //卡片资源
resID, _ = strconv.Atoi(v.T)
err := this.ModuleHero.CreateHero(uid, bPush, int32(resID))
hero, err := this.ModuleHero.CreateRepeatHero(session.GetUserId(), int32(resID), v.N)
if err != nil {
code = pb.ErrorCode_HeroMaxCount
}
// 创建英雄成功 向客户端推送数据
session.SendMsg("hero", "addnewhero", &pb.HeroAddNewHeroPush{Hero: hero, Count: v.N})
// if bPush {
// if session, ok := this.GetUserSession(uid); ok {
// session.SendMsg("hero", "addnewhero", &pb.HeroAddNewHeroPush{Hero: hero, Count: v.N})
// err = session.Push()
// }
// }
} else if v.A == comm.EquipmentType {
resID, _ = strconv.Atoi(v.T)
code = this.ModuleEquipment.AddNewEquipments(source, uid, map[int32]uint32{int32(resID): uint32(v.N)}, bPush)
code = this.ModuleEquipment.AddNewEquipments(source, session, map[int32]uint32{int32(resID): uint32(v.N)}, bPush)
}
}
return

View File

@ -55,10 +55,10 @@ func (this *apiComp) Buy(session comm.IUserSession, req *pb.ShopBuyReq) (code pb
}
}
if code = this.module.CheckConsumeRes(session.GetUserId(), conf.Need, true); code != pb.ErrorCode_Success {
if code = this.module.CheckConsumeRes(session, conf.Need, true); code != pb.ErrorCode_Success {
return
}
if code = this.module.DispenseRes(session.GetUserId(), conf.Iteminfo, true); code != pb.ErrorCode_Success {
if code = this.module.DispenseRes(session, conf.Iteminfo, true); code != pb.ErrorCode_Success {
return
}
shopitem.BuyNum++

View File

@ -94,7 +94,7 @@ func (this *apiComp) Getlist(session comm.IUserSession, req *pb.ShopGetListReq)
}
if req.IsManualRefresh && shopconf.Rtype == 1 { //可以手动刷新
if code = this.module.CheckConsumeRes(session.GetUserId(), shopconf.Rneed, true); code != pb.ErrorCode_Success {
if code = this.module.CheckConsumeRes(session, shopconf.Rneed, true); code != pb.ErrorCode_Success {
return
}
var _items []*cfg.Game_shopitemData

View File

@ -1,45 +0,0 @@
package story
import (
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
)
const ( //Redis
TableStory core.SqlTable = "story"
)
type ModelStory struct {
modules.MCompModel
module *Story
}
func (this *ModelStory) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
err = this.MCompModel.Init(service, module, comp, options)
this.module = module.(*Story)
this.TableName = string(TableStory)
return
}
// 获取章节信息
func (this *ModelStory) getStoryList(uid string) (storys []*pb.DBStory, err error) {
storys = make([]*pb.DBStory, 0)
err = this.GetList(uid, &storys)
return
}
// 修改章节信息
func (this *ModelStory) modifyStoryData(uid string, objid string, data map[string]interface{}) error {
return this.module.modelStory.ChangeList(uid, objid, data)
}
// 增加新的章节数据
func (this *ModelStory) addNewChapter(uId string, data map[string]interface{}) (err error) {
if err = this.AddLists(uId, data); err != nil {
this.module.Errorf("err:%v", err)
return
}
return nil
}

View File

@ -1,104 +0,0 @@
package story
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
"sort"
)
type Story struct {
modules.ModuleBase
modelStory *ModelStory
api *apiComp
configure *configureComp
}
func NewModule() core.IModule {
return &Story{}
}
func (this *Story) GetType() core.M_Modules {
return comm.ModuleStory
}
func (this *Story) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) {
err = this.ModuleBase.Init(service, module, options)
return
}
func (this *Story) OnInstallComp() {
this.ModuleBase.OnInstallComp()
this.api = this.RegisterComp(new(apiComp)).(*apiComp)
this.modelStory = this.RegisterComp(new(ModelStory)).(*ModelStory)
this.configure = this.RegisterComp(new(configureComp)).(*configureComp)
}
// 接口信息 给其他模块调用 用来修改主线关卡信息
func (this *Story) ModifyStoryData(uid string, objId string, data map[string]interface{}) (code pb.ErrorCode) {
err := this.modelStory.modifyStoryData(uid, objId, data)
if err != nil {
code = pb.ErrorCode_DBError
}
return
}
// 校验是否能挑战该关卡
func (this *Story) CheckChallengeChapter(stroyId int32, uid string, zhangjieID int32) (code pb.ErrorCode) {
var (
curChapter *pb.DBStory
)
_szData, err := this.modelStory.getStoryList(uid)
if err != nil {
code = pb.ErrorCode_DBError
return
}
sort.SliceStable(_szData, func(i, j int) bool { // 排序
return _szData[i].ChapterId > _szData[j].ChapterId
})
// 取出最后一条数据
curChapter = _szData[len(_szData)-1]
if curChapter == nil {
code = pb.ErrorCode_StoryNotFindChapter // 没有找到主线关卡信息
return
}
// 获取关卡难度用来取配置文件
switch curChapter.Intensity {
case 1:
configData := this.configure.GetStoryEasyChapter(curChapter.StoryId)
if configData != nil { // 校验章节
if configData.Zhangshu != zhangjieID {
code = pb.ErrorCode_ConfigNoFound
return
}
// 如果这一关是路线二的话
if configData.Area == 2 && curChapter.ChapterId > stroyId { // 当前的关卡ID 大于路线2的ID 即可
return
}
// 判断下一关是不是当前传入的值
if configData.Nextid != stroyId {
code = pb.ErrorCode_StoryIDFailed
return
}
}
break
case 2:
configData := this.configure.GetStoryHardChapter(curChapter.StoryId)
if configData != nil { // 校验章节
if configData.Zhangshu != zhangjieID {
code = pb.ErrorCode_ConfigNoFound
return
}
// 判断下一关是不是当前传入的值
if configData.Nextid != stroyId {
code = pb.ErrorCode_StoryIDFailed
return
}
}
break
}
return
}

View File

@ -10,6 +10,7 @@ const (
TaskSubTypeReceive = "receive" //领取
TaskSubTypeActiveList = "activelist" //活跃度列表
TaskSubTypeActiveReceive = "activereceive" //活跃度领取
TaskSubTypeStrategy = "strategy" //卡牌攻略
)
type apiComp struct {

View File

@ -31,6 +31,7 @@ func (this *apiComp) ActiveList(session comm.IUserSession, req *pb.TaskActiveLis
utils.TraceFunc(session.GetUserId(), string(this.moduleTask.GetType()), TaskSubTypeActiveList, req, resp)
}()
resp.Active = this.moduleTask.modelTask.countActive(session.GetUserId(), comm.TaskTag(req.TaskTag))
//遍历活跃度奖励表
resp.List = this.moduleTask.modelTaskActive.getUserActiveList(session.GetUserId(), comm.TaskTag(req.TaskTag))

View File

@ -50,6 +50,6 @@ func (this *apiComp) ActiveReceive(session comm.IUserSession, req *pb.TaskActive
}
//派发奖励
code = this.moduleTask.DispenseRes(session.GetUserId(), conf.Reword, true)
code = this.moduleTask.DispenseRes(session, conf.Reword, true)
return
}

View File

@ -24,21 +24,33 @@ func (this *apiComp) Receive(session comm.IUserSession, req *pb.TaskReceiveReq)
resp := &pb.TaskReceiveResp{}
defer func() {
err := session.SendMsg(string(this.moduleTask.GetType()), TaskSubTypeList, resp)
err := session.SendMsg(string(this.moduleTask.GetType()), TaskSubTypeReceive, resp)
if err != nil {
code = pb.ErrorCode_SystemError
}
utils.TraceFunc(session.GetUserId(), string(this.moduleTask.GetType()), TaskSubTypeList, req, resp)
utils.TraceFunc(session.GetUserId(), string(this.moduleTask.GetType()), TaskSubTypeReceive, req, resp)
}()
userTask := this.moduleTask.modelTask.getUserTask(session.GetUserId(), comm.TaskTag(req.TaskTag), req.Id)
if userTask != nil {
//判断是否完成
if userTask.Status == 0 {
code = pb.ErrorCode_TaskHandle
return
}
//判断任务是否领取
if userTask.Received == 1 {
code = pb.ErrorCode_TaskReceived
return
}
conf, err := this.moduleTask.configure.getTaskById(userTask.TaskId)
if err != nil {
log.Errorf("get task config err:%v", err)
return
}
//奖励
if code = this.moduleTask.CheckConsumeRes(session.GetUserId(), conf.Reword, true); code != pb.ErrorCode_Success {
if code = this.moduleTask.CheckConsumeRes(session, conf.Reword, true); code != pb.ErrorCode_Success {
return
}

View File

@ -0,0 +1,39 @@
package task
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"google.golang.org/protobuf/proto"
)
//卡牌攻略
func (this *apiComp) StrategyCheck(session comm.IUserSession, req *pb.TaskDoStrategyReq) (code pb.ErrorCode) {
if req.HeroCfgId == 0 {
code = pb.ErrorCode_ReqParameterError
}
return
}
//进入卡牌攻略
func (this *apiComp) Strategy(session comm.IUserSession, req *pb.TaskDoStrategyReq) (code pb.ErrorCode, data proto.Message) {
if code = this.StrategyCheck(session, req); code != pb.ErrorCode_Success {
return
}
resp := &pb.TaskDoStrategyResp{}
taskIds, err := this.moduleTask.modelTask.inStrategy(session.GetUserId(), req.HeroCfgId)
if err != nil {
code = pb.ErrorCode_SystemError
return
}
resp.TaskIds = taskIds
err = session.SendMsg(string(this.moduleTask.GetType()), TaskSubTypeStrategy, resp)
if err != nil {
code = pb.ErrorCode_SystemError
}
return
}

View File

@ -130,7 +130,7 @@ func (this *configureComp) getTaskByTag(taskTag int32) (data []*cfg.Game_taskRou
return
}
//获取活跃度奖励
//获取活跃度奖励list
func (this *configureComp) getTaskActiveByTag(taskTag int32) (data []*cfg.Game_activeRewardData, err error) {
conf, err := this.getActiveRewardCfg()
if err != nil {
@ -148,6 +148,7 @@ func (this *configureComp) getTaskActiveByTag(taskTag int32) (data []*cfg.Game_a
return
}
// 获取活跃度配置map
func (this *configureComp) getTaskActiveById(id int32) (data *cfg.Game_activeRewardData) {
conf, err := this.getActiveRewardCfg()
if err != nil {

View File

@ -70,7 +70,10 @@ func (this *ModelTaskActive) getUserActive(uid, id string, taskTag comm.TaskTag)
return nil
}
func (this *ModelTaskActive) updateReceive(uid, id string, taskTag comm.TaskTag, data map[string]interface{}) error {
func (this *ModelTaskActive) updateReceive(uid, id string, taskTag comm.TaskTag, data map[string]interface{}) (err error) {
if len(data) == 0 {
return
}
return this.moduleTask.modelTaskActive.ChangeList(swapKey(uid, taskTag), id, data)
}

View File

@ -43,10 +43,6 @@ func (this *ModelTask) getTaskList(uid string, taskTag comm.TaskTag) (list []*pb
//初始化任务
func (this *ModelTask) initTaskByTag(uid string, taskTag comm.TaskTag) error {
taskList := this.getTaskList(uid, taskTag)
if len(taskList) > 0 {
return fmt.Errorf("clear data before init task")
}
if data, err := this.moduleTask.configure.getTaskByTag(int32(taskTag)); err == nil {
for _, cnf := range data {
objId := primitive.NewObjectID().Hex()
@ -133,7 +129,7 @@ func (this *ModelTask) taskHandle(uid string, taskType comm.TaskType, taskParam
if taskParam.First != conf.ConditionCondition {
continue
}
//检查进度,完成了执行处理器
//检查进度,执行处理器
if v, ok := this.checkTaskProgress(uid, conf); ok {
if err := this.finishHandle(v, comm.TaskTag(conf.IdTag), conf); err != nil {
return err
@ -176,3 +172,41 @@ func (this *ModelTask) clearTask(uid string, taskTag comm.TaskTag) error {
}
return nil
}
//进入卡牌攻略
func (this *ModelTask) inStrategy(uid string, heroCfgId int32) (taskIds []int32, err error) {
//检查此英雄攻略是否完成
taskList := this.getTaskList(uid, comm.TASK_STRATEGY)
allFinished := true
for _, v := range taskList {
conf, err := this.moduleTask.configure.getTaskById(v.TaskId)
if err != nil {
this.moduleTask.Errorf("get task[%v] config err %v", v.TaskId, err)
return nil, err
}
if conf != nil {
if conf.ConditionCondition == heroCfgId && v.Status != 1 {
allFinished = false
break
}
}
}
if !allFinished {
//重置状态
for _, v := range taskList {
if v.Status != 0 {
update := map[string]interface{}{
"status": 0,
}
if err = this.modifyUserTask(uid, comm.TASK_STRATEGY, v.Id, update); err != nil {
this.moduleTask.Errorf("doStrategy err %v", err)
break
}
}
taskIds = append(taskIds, v.TaskId)
}
}
return
}

View File

@ -1,6 +1,7 @@
package task
import (
"fmt"
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/log"
@ -55,6 +56,7 @@ func (this *ModuleTask) InitTaskAll(uid string) {
this.InitTask(uid, comm.TASK_DAILY)
this.InitTask(uid, comm.TASK_WEEKLY)
this.InitTask(uid, comm.TASK_ACHIEVE)
this.InitTask(uid, comm.TASK_STRATEGY)
this.modelTaskActive.initActiveRewardByTag(uid, comm.TASK_DAILY)
this.modelTaskActive.initActiveRewardByTag(uid, comm.TASK_WEEKLY)
@ -82,3 +84,13 @@ func (this *ModuleTask) SendToTask(uid string, taskType comm.TaskType, taskPram
}
return
}
//创建玩家攻略任务
func (this *ModuleTask) CreateTaskForStrategy(uid string, heroCfgId int32) {
//
ids := make(map[string]string)
ids, _ = this.modelTask.Redis.HGetAllToMapString(fmt.Sprintf("task:%v_%v", uid, comm.TASK_STRATEGY))
fmt.Println(ids)
//
}

View File

@ -69,7 +69,7 @@ func (this *apiComp) Create(session comm.IUserSession, req *pb.UserCreateReq) (c
//初始化英雄卡
if val := this.module.configure.GetGlobalConf("init_hero"); val != "" {
defaultHero := utils.TrInt32(val)
err = this.hero.CreateHero(session.GetUserId(), true, defaultHero...)
err = this.hero.CreateHeroes(session.GetUserId(), defaultHero...)
if err != nil {
code = pb.ErrorCode_HeroInitCreat
return

View File

@ -90,14 +90,12 @@ func (this *apiComp) Login(session comm.IUserSession, req *pb.UserLoginReq) (cod
return
}
//不是新账号
if !isNewUser {
//set user other info
update := map[string]interface{}{
"logintime": time.Now().Unix(),
"lastloginip": session.GetIP(),
}
//缓存user
user.Logintime = time.Now().Unix()
user.Lastloginip = session.GetIP()
update := utils.StructToMap(user)
err = this.module.modelUser.Change(user.Uid, update)
if err != nil {
code = pb.ErrorCode_DBError

View File

@ -32,7 +32,7 @@ func (this *apiComp) AddRes(session comm.IUserSession, req *pb.UserAddResReq) (c
N: req.Res.N,
}
res = append(res, atn)
code = this.module.DispenseRes(session.GetUserId(), res, true)
code = this.module.DispenseRes(session, res, true)
if code == pb.ErrorCode_Success {
rsp := &pb.UserAddResResp{
Res: req.Res,

View File

@ -74,13 +74,13 @@ func (this *User) QueryAttributeValue(uid string, attr string) (value int32) {
}
//用户资源
func (this *User) AddAttributeValue(uid string, attr string, add int32, bPush bool) (code pb.ErrorCode) {
func (this *User) AddAttributeValue(session comm.IUserSession, attr string, add int32, bPush bool) (code pb.ErrorCode) {
if add == 0 {
log.Errorf("attr no changed,uid: %s attr: %s add: %d", uid, attr, add)
log.Errorf("attr no changed,uid: %s attr: %s add: %d", session.GetUserId(), attr, add)
code = pb.ErrorCode_ReqParameterError
return
}
user := this.GetUser(uid)
user := this.GetUser(session.GetUserId())
if user == nil {
code = pb.ErrorCode_UserSessionNobeing
return
@ -129,28 +129,26 @@ func (this *User) AddAttributeValue(uid string, attr string, add int32, bPush bo
if len(update) == 0 {
return
}
if err := this.modelUser.updateUserAttr(uid, update); err != nil {
if err := this.modelUser.updateUserAttr(session.GetUserId(), update); err != nil {
log.Errorf("AddAttributeValue err:%v", err)
code = pb.ErrorCode_DBError
}
data := &pb.UserResChangePush{}
var _cache = &pb.CacheUser{}
err := this.modelUser.MCompModel.Get(uid, _cache)
err := this.modelUser.MCompModel.Get(session.GetUserId(), _cache)
if err != nil {
this.SendMsgToUser(string(this.GetType()), "addres", data, _cache)
this.SendMsgToUser(string(this.GetType()), "reschange", data, _cache)
}
if bPush {
this.UserChangePush(uid, _change) // 推送玩家数据变化
this.UserChangePush(session, _change) // 推送玩家数据变化
}
return
}
//推送玩家账号信息变化消息
func (this *User) UserChangePush(uid string, resChange *pb.UserResChangePush) (err error) {
if session, ok := this.ModuleBase.GetUserSession(uid); ok {
session.SendMsg(string(this.GetType()), "userchange", resChange)
err = session.Push()
}
func (this *User) UserChangePush(session comm.IUserSession, resChange *pb.UserResChangePush) (err error) {
session.SendMsg(string(this.GetType()), "reschange", resChange)
return
}

2
pb.bat
View File

@ -16,7 +16,7 @@ protoc --proto_path=%SRC% --go_out=%TAR% --go_opt=paths=import %SRC%\mail\*.pro
protoc --proto_path=%SRC% --go_out=%TAR% --go_opt=paths=import %SRC%\equipment\*.proto
protoc --proto_path=%SRC% --go_out=%TAR% --go_opt=paths=import %SRC%\hero\*.proto
protoc --proto_path=%SRC% --go_out=%TAR% --go_opt=paths=import %SRC%\shop\*.proto
protoc --proto_path=%SRC% --go_out=%TAR% --go_opt=paths=import %SRC%\story\*.proto
protoc --proto_path=%SRC% --go_out=%TAR% --go_opt=paths=import %SRC%\mainline\*.proto
protoc --proto_path=%SRC% --go_out=%TAR% --go_opt=paths=import %SRC%\task\*.proto
protoc --proto_path=%SRC% --go_out=%TAR% --go_opt=paths=import %SRC%\chat\*.proto
pause

View File

@ -88,20 +88,25 @@ const (
ErrorCode_HeroStarErr ErrorCode = 1316 // 不满足升星条件
ErrorCode_HeroTypeErr ErrorCode = 1317 // 升级英雄类型不对
ErrorCode_HeroExpTypeErr ErrorCode = 1318 // 技能升级卡类型不对
ErrorCode_HeroAddMaxExp ErrorCode = 1319 // 升级经验卡溢出 检查传入的数量
ErrorCode_HeroStarLvErr ErrorCode = 1320 // 升星等级不够
ErrorCode_HeroMaxStarLv ErrorCode = 1321 // 达到最大升星等级
// equipment
ErrorCode_EquipmentOnFoundEquipment ErrorCode = 1400 // 未找到武器
ErrorCode_EquipmentLvlimitReached ErrorCode = 1401 // 武器等级已达上限
// mainStory
ErrorCode_StoryNotFindChapter ErrorCode = 1500 // 没有找到主线关卡信息
ErrorCode_StoryIDFailed ErrorCode = 1501 // 关卡ID 错误
// mainMainline
ErrorCode_MainlineNotFindChapter ErrorCode = 1500 // 没有找到主线关卡信息
ErrorCode_MainlineIDFailed ErrorCode = 1501 // 关卡ID 错误
// task
ErrorCode_TaskInit ErrorCode = 1600 //初始化失败
ErrorCode_TaskReset ErrorCode = 1601 //重置任务失败
ErrorCode_TaskHandle ErrorCode = 1602 //任务处理失败
ErrorCode_TaskReceived ErrorCode = 1603 //已领取
ErrorCode_TaskActiveInit ErrorCode = 1606 //初始化活跃度失败
ErrorCode_TaskActiveNofound ErrorCode = 1604 //未找到用户活跃度配置
ErrorCode_TaskActiveNoenough ErrorCode = 1605 //活跃值未达标
ErrorCode_TaskActiveInit ErrorCode = 1604 //初始化活跃度失败
ErrorCode_TaskActiveNofound ErrorCode = 1605 //未找到用户活跃度配置
ErrorCode_TaskActiveNoenough ErrorCode = 1606 //活跃值未达标
ErrorCode_TaskNoFinished ErrorCode = 1607 //任务未完成
ErrorCode_TaskFinished ErrorCode = 1608 //已完成
)
// Enum value maps for ErrorCode.
@ -168,17 +173,22 @@ var (
1316: "HeroStarErr",
1317: "HeroTypeErr",
1318: "HeroExpTypeErr",
1319: "HeroAddMaxExp",
1320: "HeroStarLvErr",
1321: "HeroMaxStarLv",
1400: "EquipmentOnFoundEquipment",
1401: "EquipmentLvlimitReached",
1500: "StoryNotFindChapter",
1501: "StoryIDFailed",
1500: "MainlineNotFindChapter",
1501: "MainlineIDFailed",
1600: "TaskInit",
1601: "TaskReset",
1602: "TaskHandle",
1603: "TaskReceived",
1606: "TaskActiveInit",
1604: "TaskActiveNofound",
1605: "TaskActiveNoenough",
1604: "TaskActiveInit",
1605: "TaskActiveNofound",
1606: "TaskActiveNoenough",
1607: "TaskNoFinished",
1608: "TaskFinished",
}
ErrorCode_value = map[string]int32{
"Success": 0,
@ -242,17 +252,22 @@ var (
"HeroStarErr": 1316,
"HeroTypeErr": 1317,
"HeroExpTypeErr": 1318,
"HeroAddMaxExp": 1319,
"HeroStarLvErr": 1320,
"HeroMaxStarLv": 1321,
"EquipmentOnFoundEquipment": 1400,
"EquipmentLvlimitReached": 1401,
"StoryNotFindChapter": 1500,
"StoryIDFailed": 1501,
"MainlineNotFindChapter": 1500,
"MainlineIDFailed": 1501,
"TaskInit": 1600,
"TaskReset": 1601,
"TaskHandle": 1602,
"TaskReceived": 1603,
"TaskActiveInit": 1606,
"TaskActiveNofound": 1604,
"TaskActiveNoenough": 1605,
"TaskActiveInit": 1604,
"TaskActiveNofound": 1605,
"TaskActiveNoenough": 1606,
"TaskNoFinished": 1607,
"TaskFinished": 1608,
}
)
@ -287,7 +302,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, 0xd6, 0x0b, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12,
0x6f, 0x2a, 0xc0, 0x0c, 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,
@ -365,23 +380,30 @@ var file_errorcode_proto_rawDesc = []byte{
0x48, 0x65, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x45, 0x72, 0x72, 0x10, 0xa4, 0x0a, 0x12, 0x10,
0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x45, 0x72, 0x72, 0x10, 0xa5, 0x0a,
0x12, 0x13, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x78, 0x70, 0x54, 0x79, 0x70, 0x65, 0x45,
0x72, 0x72, 0x10, 0xa6, 0x0a, 0x12, 0x1e, 0x0a, 0x19, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65,
0x6e, 0x74, 0x4f, 0x6e, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65,
0x6e, 0x74, 0x10, 0xf8, 0x0a, 0x12, 0x1c, 0x0a, 0x17, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65,
0x6e, 0x74, 0x4c, 0x76, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64,
0x10, 0xf9, 0x0a, 0x12, 0x18, 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x4e, 0x6f, 0x74, 0x46,
0x69, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x10, 0xdc, 0x0b, 0x12, 0x12, 0x0a,
0x0d, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x44, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xdd,
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, 0xc6, 0x0c, 0x12, 0x16, 0x0a, 0x11, 0x54, 0x61, 0x73,
0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e, 0x6f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xc4,
0x0c, 0x12, 0x17, 0x0a, 0x12, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4e,
0x6f, 0x65, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xc5, 0x0c, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b,
0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x72, 0x72, 0x10, 0xa6, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x64, 0x64,
0x4d, 0x61, 0x78, 0x45, 0x78, 0x70, 0x10, 0xa7, 0x0a, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x65, 0x72,
0x6f, 0x53, 0x74, 0x61, 0x72, 0x4c, 0x76, 0x45, 0x72, 0x72, 0x10, 0xa8, 0x0a, 0x12, 0x12, 0x0a,
0x0d, 0x48, 0x65, 0x72, 0x6f, 0x4d, 0x61, 0x78, 0x53, 0x74, 0x61, 0x72, 0x4c, 0x76, 0x10, 0xa9,
0x0a, 0x12, 0x1e, 0x0a, 0x19, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x6e,
0x46, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0xf8,
0x0a, 0x12, 0x1c, 0x0a, 0x17, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x76,
0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, 0x10, 0xf9, 0x0a, 0x12,
0x1b, 0x0a, 0x16, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x69,
0x6e, 0x64, 0x43, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x10, 0xdc, 0x0b, 0x12, 0x15, 0x0a, 0x10,
0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x44, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64,
0x10, 0xdd, 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, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x33,
}
var (

View File

@ -91,19 +91,18 @@ type DBHero struct {
NormalSkill []*SkillData `protobuf:"bytes,9,rep,name=normalSkill,proto3" json:"normalSkill" bson:"normalSkill"` //普通技能
Property map[string]int32 `protobuf:"bytes,10,rep,name=property,proto3" json:"property" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 属性相关
AddProperty map[string]int32 `protobuf:"bytes,11,rep,name=addProperty,proto3" json:"addProperty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3" bson:"addProperty"` //附加属性相关
Formation int32 `protobuf:"varint,12,opt,name=formation,proto3" json:"formation"` // 阵型类型
CardType int32 `protobuf:"varint,13,opt,name=cardType,proto3" json:"cardType" bson:"cardType"` //卡片类型(升星卡、经验卡、技能升级卡)
CurSkin int32 `protobuf:"varint,14,opt,name=curSkin,proto3" json:"curSkin" bson:"curSkin"` //当前装备的皮肤ID
Skins []int32 `protobuf:"varint,15,rep,packed,name=skins,proto3" json:"skins"` // 所有皮肤ID
Block bool `protobuf:"varint,16,opt,name=block,proto3" json:"block"` // 锁定
EquipID []string `protobuf:"bytes,17,rep,name=equipID,proto3" json:"equipID" bson:"equipID"` //装备 objID
ResonateNum int32 `protobuf:"varint,18,opt,name=resonateNum,proto3" json:"resonateNum" bson:"resonateNum"` //共鸣次数
DistributionResonate int32 `protobuf:"varint,19,opt,name=distributionResonate,proto3" json:"distributionResonate" bson:"distributionResonate"` //分配的共鸣能量
Energy map[int32]int32 `protobuf:"bytes,20,rep,name=energy,proto3" json:"energy" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // @go_tags(`bson:"energy"`)能量分配到哪里[1,0]
SameCount int32 `protobuf:"varint,21,opt,name=sameCount,proto3" json:"sameCount" bson:"sameCount"` // 卡片叠加数量
SuiteId int32 `protobuf:"varint,22,opt,name=suiteId,proto3" json:"suiteId" bson:"suiteId"` // 套装Id
SuiteExtId int32 `protobuf:"varint,23,opt,name=suiteExtId,proto3" json:"suiteExtId"` // go_tags(`bson:"suiteExtId"`) 扩展套装Id
IsOverlying bool `protobuf:"varint,24,opt,name=isOverlying,proto3" json:"isOverlying"` // go_tags(`bson:"isOverlying"`) 是否允许叠加 默认true
CardType int32 `protobuf:"varint,12,opt,name=cardType,proto3" json:"cardType" bson:"cardType"` //卡片类型(升星卡、经验卡、技能升级卡)
CurSkin int32 `protobuf:"varint,13,opt,name=curSkin,proto3" json:"curSkin" bson:"curSkin"` //当前装备的皮肤ID
Skins []int32 `protobuf:"varint,14,rep,packed,name=skins,proto3" json:"skins"` // 所有皮肤ID
Block bool `protobuf:"varint,15,opt,name=block,proto3" json:"block"` // 锁定
EquipID []string `protobuf:"bytes,16,rep,name=equipID,proto3" json:"equipID" bson:"equipID"` //装备 objID
ResonateNum int32 `protobuf:"varint,17,opt,name=resonateNum,proto3" json:"resonateNum" bson:"resonateNum"` //共鸣次数
DistributionResonate int32 `protobuf:"varint,18,opt,name=distributionResonate,proto3" json:"distributionResonate" bson:"distributionResonate"` //分配的共鸣能量
Energy map[int32]int32 `protobuf:"bytes,19,rep,name=energy,proto3" json:"energy" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // @go_tags(`bson:"energy"`)能量分配到哪里[1,0]
SameCount int32 `protobuf:"varint,20,opt,name=sameCount,proto3" json:"sameCount" bson:"sameCount"` // 卡片叠加数量
SuiteId int32 `protobuf:"varint,21,opt,name=suiteId,proto3" json:"suiteId" bson:"suiteId"` // 套装Id
SuiteExtId int32 `protobuf:"varint,22,opt,name=suiteExtId,proto3" json:"suiteExtId"` // go_tags(`bson:"suiteExtId"`) 扩展套装Id
IsOverlying bool `protobuf:"varint,23,opt,name=isOverlying,proto3" json:"isOverlying"` // go_tags(`bson:"isOverlying"`) 是否允许叠加 默认true
}
func (x *DBHero) Reset() {
@ -215,13 +214,6 @@ func (x *DBHero) GetAddProperty() map[string]int32 {
return nil
}
func (x *DBHero) GetFormation() int32 {
if x != nil {
return x.Formation
}
return 0
}
func (x *DBHero) GetCardType() int32 {
if x != nil {
return x.CardType
@ -314,7 +306,7 @@ var file_hero_hero_db_proto_rawDesc = []byte{
0x61, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01,
0x28, 0x05, 0x52, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x73,
0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x6b,
0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x22, 0xa6, 0x07, 0x0a, 0x06, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f,
0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x22, 0x88, 0x07, 0x0a, 0x06, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f,
0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75,
0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01,
@ -336,44 +328,42 @@ var file_hero_hero_db_proto_rawDesc = []byte{
0x74, 0x79, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72,
0x6f, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74,
0x72, 0x79, 0x52, 0x0b, 0x61, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12,
0x1c, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01,
0x28, 0x05, 0x52, 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a,
0x08, 0x63, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52,
0x08, 0x63, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72,
0x53, 0x6b, 0x69, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x75, 0x72, 0x53,
0x6b, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6b, 0x69, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x03,
0x28, 0x05, 0x52, 0x05, 0x73, 0x6b, 0x69, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6c, 0x6f,
0x63, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12,
0x18, 0x0a, 0x07, 0x65, 0x71, 0x75, 0x69, 0x70, 0x49, 0x44, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09,
0x52, 0x07, 0x65, 0x71, 0x75, 0x69, 0x70, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x73,
0x6f, 0x6e, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b,
0x72, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x32, 0x0a, 0x14, 0x64,
0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x6e,
0x61, 0x74, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x64, 0x69, 0x73, 0x74, 0x72,
0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x12,
0x2b, 0x0a, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x13, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x2e, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x45,
0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x1c, 0x0a, 0x09,
0x73, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52,
0x09, 0x73, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75,
0x69, 0x74, 0x65, 0x49, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x75, 0x69,
0x74, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x69, 0x74, 0x65, 0x45, 0x78, 0x74,
0x49, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x75, 0x69, 0x74, 0x65, 0x45,
0x78, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x79,
0x69, 0x6e, 0x67, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x4f, 0x76, 0x65,
0x72, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72,
0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72,
0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 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,
0x1a, 0x0a, 0x08, 0x63, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28,
0x05, 0x52, 0x08, 0x63, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63,
0x75, 0x72, 0x53, 0x6b, 0x69, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x75,
0x72, 0x53, 0x6b, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6b, 0x69, 0x6e, 0x73, 0x18, 0x0e,
0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x73, 0x6b, 0x69, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x62,
0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63,
0x6b, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x71, 0x75, 0x69, 0x70, 0x49, 0x44, 0x18, 0x10, 0x20, 0x03,
0x28, 0x09, 0x52, 0x07, 0x65, 0x71, 0x75, 0x69, 0x70, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x72,
0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05,
0x52, 0x0b, 0x72, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x32, 0x0a,
0x14, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73,
0x6f, 0x6e, 0x61, 0x74, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x64, 0x69, 0x73,
0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74,
0x65, 0x12, 0x2b, 0x0a, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x13, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x13, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x2e, 0x45, 0x6e, 0x65, 0x72, 0x67,
0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x1c,
0x0a, 0x09, 0x73, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28,
0x05, 0x52, 0x09, 0x73, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07,
0x73, 0x75, 0x69, 0x74, 0x65, 0x49, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73,
0x75, 0x69, 0x74, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x69, 0x74, 0x65, 0x45,
0x78, 0x74, 0x49, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x75, 0x69, 0x74,
0x65, 0x45, 0x78, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x4f, 0x76, 0x65, 0x72,
0x6c, 0x79, 0x69, 0x6e, 0x67, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x4f,
0x76, 0x65, 0x72, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70,
0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x70,
0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 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 (

View File

@ -1156,7 +1156,7 @@ func (x *HeroChoukaResp) GetHeroes() []*DBHero {
}
//英雄属性推送
type HeroProperty struct {
type HeroPropertyPush struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
@ -1166,8 +1166,8 @@ type HeroProperty struct {
AddProperty map[string]int32 `protobuf:"bytes,3,rep,name=addProperty,proto3" json:"addProperty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //附加属性
}
func (x *HeroProperty) Reset() {
*x = HeroProperty{}
func (x *HeroPropertyPush) Reset() {
*x = HeroPropertyPush{}
if protoimpl.UnsafeEnabled {
mi := &file_hero_hero_msg_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@ -1175,13 +1175,13 @@ func (x *HeroProperty) Reset() {
}
}
func (x *HeroProperty) String() string {
func (x *HeroPropertyPush) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*HeroProperty) ProtoMessage() {}
func (*HeroPropertyPush) ProtoMessage() {}
func (x *HeroProperty) ProtoReflect() protoreflect.Message {
func (x *HeroPropertyPush) ProtoReflect() protoreflect.Message {
mi := &file_hero_hero_msg_proto_msgTypes[22]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@ -1193,26 +1193,26 @@ func (x *HeroProperty) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
// Deprecated: Use HeroProperty.ProtoReflect.Descriptor instead.
func (*HeroProperty) Descriptor() ([]byte, []int) {
// Deprecated: Use HeroPropertyPush.ProtoReflect.Descriptor instead.
func (*HeroPropertyPush) Descriptor() ([]byte, []int) {
return file_hero_hero_msg_proto_rawDescGZIP(), []int{22}
}
func (x *HeroProperty) GetHeroId() string {
func (x *HeroPropertyPush) GetHeroId() string {
if x != nil {
return x.HeroId
}
return ""
}
func (x *HeroProperty) GetProperty() map[string]int32 {
func (x *HeroPropertyPush) GetProperty() map[string]int32 {
if x != nil {
return x.Property
}
return nil
}
func (x *HeroProperty) GetAddProperty() map[string]int32 {
func (x *HeroPropertyPush) GetAddProperty() map[string]int32 {
if x != nil {
return x.AddProperty
}
@ -1316,16 +1316,17 @@ func (x *HeroLockResp) GetHero() *DBHero {
}
// 增加新英雄推送
type AddNewHeroPush struct {
type HeroAddNewHeroPush struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Hero *DBHero `protobuf:"bytes,1,opt,name=hero,proto3" json:"hero"` // 英雄对象
Hero *DBHero `protobuf:"bytes,1,opt,name=hero,proto3" json:"hero"` // 英雄对象
Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count"` //数量
}
func (x *AddNewHeroPush) Reset() {
*x = AddNewHeroPush{}
func (x *HeroAddNewHeroPush) Reset() {
*x = HeroAddNewHeroPush{}
if protoimpl.UnsafeEnabled {
mi := &file_hero_hero_msg_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@ -1333,13 +1334,13 @@ func (x *AddNewHeroPush) Reset() {
}
}
func (x *AddNewHeroPush) String() string {
func (x *HeroAddNewHeroPush) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AddNewHeroPush) ProtoMessage() {}
func (*HeroAddNewHeroPush) ProtoMessage() {}
func (x *AddNewHeroPush) ProtoReflect() protoreflect.Message {
func (x *HeroAddNewHeroPush) ProtoReflect() protoreflect.Message {
mi := &file_hero_hero_msg_proto_msgTypes[25]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@ -1351,18 +1352,286 @@ func (x *AddNewHeroPush) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
// Deprecated: Use AddNewHeroPush.ProtoReflect.Descriptor instead.
func (*AddNewHeroPush) Descriptor() ([]byte, []int) {
// Deprecated: Use HeroAddNewHeroPush.ProtoReflect.Descriptor instead.
func (*HeroAddNewHeroPush) Descriptor() ([]byte, []int) {
return file_hero_hero_msg_proto_rawDescGZIP(), []int{25}
}
func (x *AddNewHeroPush) GetHero() *DBHero {
func (x *HeroAddNewHeroPush) GetHero() *DBHero {
if x != nil {
return x.Hero
}
return nil
}
func (x *HeroAddNewHeroPush) GetCount() int32 {
if x != nil {
return x.Count
}
return 0
}
// 测试用(获取指定星级等级的英雄)
type HeroGetSpecifiedReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
HeroCoinfigID int32 `protobuf:"varint,1,opt,name=heroCoinfigID,proto3" json:"heroCoinfigID"` // 英雄配置ID
Amount int32 `protobuf:"varint,2,opt,name=Amount,proto3" json:"Amount"` // 数量
Star int32 `protobuf:"varint,3,opt,name=star,proto3" json:"star"` // 星级
Lv int32 `protobuf:"varint,4,opt,name=lv,proto3" json:"lv"` // 等级
}
func (x *HeroGetSpecifiedReq) Reset() {
*x = HeroGetSpecifiedReq{}
if protoimpl.UnsafeEnabled {
mi := &file_hero_hero_msg_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *HeroGetSpecifiedReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*HeroGetSpecifiedReq) ProtoMessage() {}
func (x *HeroGetSpecifiedReq) ProtoReflect() protoreflect.Message {
mi := &file_hero_hero_msg_proto_msgTypes[26]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use HeroGetSpecifiedReq.ProtoReflect.Descriptor instead.
func (*HeroGetSpecifiedReq) Descriptor() ([]byte, []int) {
return file_hero_hero_msg_proto_rawDescGZIP(), []int{26}
}
func (x *HeroGetSpecifiedReq) GetHeroCoinfigID() int32 {
if x != nil {
return x.HeroCoinfigID
}
return 0
}
func (x *HeroGetSpecifiedReq) GetAmount() int32 {
if x != nil {
return x.Amount
}
return 0
}
func (x *HeroGetSpecifiedReq) GetStar() int32 {
if x != nil {
return x.Star
}
return 0
}
func (x *HeroGetSpecifiedReq) GetLv() int32 {
if x != nil {
return x.Lv
}
return 0
}
type HeroGetSpecifiedResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Hero *DBHero `protobuf:"bytes,1,opt,name=hero,proto3" json:"hero"` // 英雄对象
}
func (x *HeroGetSpecifiedResp) Reset() {
*x = HeroGetSpecifiedResp{}
if protoimpl.UnsafeEnabled {
mi := &file_hero_hero_msg_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *HeroGetSpecifiedResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*HeroGetSpecifiedResp) ProtoMessage() {}
func (x *HeroGetSpecifiedResp) ProtoReflect() protoreflect.Message {
mi := &file_hero_hero_msg_proto_msgTypes[27]
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 HeroGetSpecifiedResp.ProtoReflect.Descriptor instead.
func (*HeroGetSpecifiedResp) Descriptor() ([]byte, []int) {
return file_hero_hero_msg_proto_rawDescGZIP(), []int{27}
}
func (x *HeroGetSpecifiedResp) GetHero() *DBHero {
if x != nil {
return x.Hero
}
return nil
}
type HeroDelHeroPush struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Heros map[string]int32 `protobuf:"bytes,1,rep,name=heros,proto3" json:"heros" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}
func (x *HeroDelHeroPush) Reset() {
*x = HeroDelHeroPush{}
if protoimpl.UnsafeEnabled {
mi := &file_hero_hero_msg_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *HeroDelHeroPush) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*HeroDelHeroPush) ProtoMessage() {}
func (x *HeroDelHeroPush) ProtoReflect() protoreflect.Message {
mi := &file_hero_hero_msg_proto_msgTypes[28]
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 HeroDelHeroPush.ProtoReflect.Descriptor instead.
func (*HeroDelHeroPush) Descriptor() ([]byte, []int) {
return file_hero_hero_msg_proto_rawDescGZIP(), []int{28}
}
func (x *HeroDelHeroPush) GetHeros() map[string]int32 {
if x != nil {
return x.Heros
}
return nil
}
// 抽卡
type HeroDrawCardReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
DrawCount int32 `protobuf:"varint,1,opt,name=drawCount,proto3" json:"drawCount"` // 抽卡次数, 只能是单抽和十抽
}
func (x *HeroDrawCardReq) Reset() {
*x = HeroDrawCardReq{}
if protoimpl.UnsafeEnabled {
mi := &file_hero_hero_msg_proto_msgTypes[29]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *HeroDrawCardReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*HeroDrawCardReq) ProtoMessage() {}
func (x *HeroDrawCardReq) ProtoReflect() protoreflect.Message {
mi := &file_hero_hero_msg_proto_msgTypes[29]
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 HeroDrawCardReq.ProtoReflect.Descriptor instead.
func (*HeroDrawCardReq) Descriptor() ([]byte, []int) {
return file_hero_hero_msg_proto_rawDescGZIP(), []int{29}
}
func (x *HeroDrawCardReq) GetDrawCount() int32 {
if x != nil {
return x.DrawCount
}
return 0
}
type HeroDrawCardResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Heroes []int32 `protobuf:"varint,1,rep,packed,name=heroes,proto3" json:"heroes"` // 返回英雄的configID
}
func (x *HeroDrawCardResp) Reset() {
*x = HeroDrawCardResp{}
if protoimpl.UnsafeEnabled {
mi := &file_hero_hero_msg_proto_msgTypes[30]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *HeroDrawCardResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*HeroDrawCardResp) ProtoMessage() {}
func (x *HeroDrawCardResp) ProtoReflect() protoreflect.Message {
mi := &file_hero_hero_msg_proto_msgTypes[30]
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 HeroDrawCardResp.ProtoReflect.Descriptor instead.
func (*HeroDrawCardResp) Descriptor() ([]byte, []int) {
return file_hero_hero_msg_proto_rawDescGZIP(), []int{30}
}
func (x *HeroDrawCardResp) GetHeroes() []int32 {
if x != nil {
return x.Heroes
}
return nil
}
var File_hero_hero_msg_proto protoreflect.FileDescriptor
var file_hero_hero_msg_proto_rawDesc = []byte{
@ -1465,34 +1734,61 @@ var file_hero_hero_msg_proto_rawDesc = []byte{
0x6f, 0x49, 0x64, 0x73, 0x22, 0x31, 0x0a, 0x0e, 0x48, 0x65, 0x72, 0x6f, 0x43, 0x68, 0x6f, 0x75,
0x6b, 0x61, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1f, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x65, 0x73,
0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52,
0x06, 0x68, 0x65, 0x72, 0x6f, 0x65, 0x73, 0x22, 0x9e, 0x02, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f,
0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f,
0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x64,
0x12, 0x37, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x02, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
0x79, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x40, 0x0a, 0x0b, 0x61, 0x64, 0x64,
0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e,
0x2e, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x2e, 0x41, 0x64,
0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b,
0x61, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x1a, 0x3b, 0x0a, 0x0d, 0x50,
0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x50,
0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x25, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f,
0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x22,
0x2b, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12,
0x1b, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e,
0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x22, 0x2d, 0x0a, 0x0e,
0x06, 0x68, 0x65, 0x72, 0x6f, 0x65, 0x73, 0x22, 0xaa, 0x02, 0x0a, 0x10, 0x48, 0x65, 0x72, 0x6f,
0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x50, 0x75, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06,
0x68, 0x65, 0x72, 0x6f, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65,
0x72, 0x6f, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x72, 0x6f,
0x70, 0x65, 0x72, 0x74, 0x79, 0x50, 0x75, 0x73, 0x68, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72,
0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
0x79, 0x12, 0x44, 0x0a, 0x0b, 0x61, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x72, 0x6f,
0x70, 0x65, 0x72, 0x74, 0x79, 0x50, 0x75, 0x73, 0x68, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f,
0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x64, 0x64, 0x50,
0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x65,
0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65,
0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x3a, 0x02, 0x38, 0x01, 0x22, 0x25, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x4c, 0x6f, 0x63, 0x6b,
0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x69, 0x64, 0x22, 0x2b, 0x0a, 0x0c, 0x48,
0x65, 0x72, 0x6f, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x68,
0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44, 0x42, 0x48, 0x65,
0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x22, 0x47, 0x0a, 0x12, 0x48, 0x65, 0x72, 0x6f,
0x41, 0x64, 0x64, 0x4e, 0x65, 0x77, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x75, 0x73, 0x68, 0x12, 0x1b,
0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x44,
0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x42, 0x06, 0x5a, 0x04, 0x2e,
0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x63,
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e,
0x74, 0x22, 0x77, 0x0a, 0x13, 0x48, 0x65, 0x72, 0x6f, 0x47, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63,
0x69, 0x66, 0x69, 0x65, 0x64, 0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x65, 0x72, 0x6f,
0x43, 0x6f, 0x69, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
0x0d, 0x68, 0x65, 0x72, 0x6f, 0x43, 0x6f, 0x69, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x44, 0x12, 0x16,
0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x61, 0x72, 0x18, 0x03,
0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x74, 0x61, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76,
0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x22, 0x33, 0x0a, 0x14, 0x48, 0x65,
0x72, 0x6f, 0x47, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x52, 0x65,
0x73, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x07, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x22,
0x7e, 0x0a, 0x0f, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x65, 0x6c, 0x48, 0x65, 0x72, 0x6f, 0x50, 0x75,
0x73, 0x68, 0x12, 0x31, 0x0a, 0x05, 0x68, 0x65, 0x72, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x1b, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x65, 0x6c, 0x48, 0x65, 0x72, 0x6f, 0x50,
0x75, 0x73, 0x68, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05,
0x68, 0x65, 0x72, 0x6f, 0x73, 0x1a, 0x38, 0x0a, 0x0a, 0x48, 0x65, 0x72, 0x6f, 0x73, 0x45, 0x6e,
0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22,
0x2f, 0x0a, 0x0f, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x72, 0x61, 0x77, 0x43, 0x61, 0x72, 0x64, 0x52,
0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x72, 0x61, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18,
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x64, 0x72, 0x61, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74,
0x22, 0x2a, 0x0a, 0x10, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x72, 0x61, 0x77, 0x43, 0x61, 0x72, 0x64,
0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x65, 0x73, 0x18, 0x01,
0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x65, 0x73, 0x42, 0x06, 0x5a, 0x04,
0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@ -1507,7 +1803,7 @@ func file_hero_hero_msg_proto_rawDescGZIP() []byte {
return file_hero_hero_msg_proto_rawDescData
}
var file_hero_hero_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 29)
var file_hero_hero_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 35)
var file_hero_hero_msg_proto_goTypes = []interface{}{
(*HeroInfoReq)(nil), // 0: HeroInfoReq
(*HeroInfoResp)(nil), // 1: HeroInfoResp
@ -1531,39 +1827,47 @@ var file_hero_hero_msg_proto_goTypes = []interface{}{
(*HeroAwakenResp)(nil), // 19: HeroAwakenResp
(*HeroChoukaReq)(nil), // 20: HeroChoukaReq
(*HeroChoukaResp)(nil), // 21: HeroChoukaResp
(*HeroProperty)(nil), // 22: HeroProperty
(*HeroPropertyPush)(nil), // 22: HeroPropertyPush
(*HeroLockReq)(nil), // 23: HeroLockReq
(*HeroLockResp)(nil), // 24: HeroLockResp
(*AddNewHeroPush)(nil), // 25: AddNewHeroPush
nil, // 26: HeroStrengthenUplvReq.ExpCardsEntry
nil, // 27: HeroProperty.PropertyEntry
nil, // 28: HeroProperty.AddPropertyEntry
(*DBHero)(nil), // 29: DBHero
(*HeroAddNewHeroPush)(nil), // 25: HeroAddNewHeroPush
(*HeroGetSpecifiedReq)(nil), // 26: HeroGetSpecifiedReq
(*HeroGetSpecifiedResp)(nil), // 27: HeroGetSpecifiedResp
(*HeroDelHeroPush)(nil), // 28: HeroDelHeroPush
(*HeroDrawCardReq)(nil), // 29: HeroDrawCardReq
(*HeroDrawCardResp)(nil), // 30: HeroDrawCardResp
nil, // 31: HeroStrengthenUplvReq.ExpCardsEntry
nil, // 32: HeroPropertyPush.PropertyEntry
nil, // 33: HeroPropertyPush.AddPropertyEntry
nil, // 34: HeroDelHeroPush.HerosEntry
(*DBHero)(nil), // 35: DBHero
}
var file_hero_hero_msg_proto_depIdxs = []int32{
29, // 0: HeroInfoResp.base:type_name -> DBHero
29, // 1: HeroListResp.list:type_name -> DBHero
26, // 2: HeroStrengthenUplvReq.expCards:type_name -> HeroStrengthenUplvReq.ExpCardsEntry
29, // 3: HeroStrengthenUplvResp.hero:type_name -> DBHero
35, // 0: HeroInfoResp.base:type_name -> DBHero
35, // 1: HeroListResp.list:type_name -> DBHero
31, // 2: HeroStrengthenUplvReq.expCards:type_name -> HeroStrengthenUplvReq.ExpCardsEntry
35, // 3: HeroStrengthenUplvResp.hero:type_name -> DBHero
7, // 4: HeroStrengthenUpStarReq.hero:type_name -> CostCardData
7, // 5: HeroStrengthenUpStarReq.heroRace:type_name -> CostCardData
29, // 6: HeroStrengthenUpStarResp.hero:type_name -> DBHero
29, // 7: HeroStrengthenUpSkillResp.hero:type_name -> DBHero
29, // 8: HeroResonanceResp.hero:type_name -> DBHero
29, // 9: HeroResonanceResp.upStarCard:type_name -> DBHero
29, // 10: HeroResonanceResetResp.hero:type_name -> DBHero
29, // 11: HeroResonanceUseEnergyResp.hero:type_name -> DBHero
29, // 12: HeroAwakenResp.hero:type_name -> DBHero
29, // 13: HeroChoukaResp.heroes:type_name -> DBHero
27, // 14: HeroProperty.property:type_name -> HeroProperty.PropertyEntry
28, // 15: HeroProperty.addProperty:type_name -> HeroProperty.AddPropertyEntry
29, // 16: HeroLockResp.hero:type_name -> DBHero
29, // 17: AddNewHeroPush.hero:type_name -> DBHero
18, // [18:18] is the sub-list for method output_type
18, // [18:18] is the sub-list for method input_type
18, // [18:18] is the sub-list for extension type_name
18, // [18:18] is the sub-list for extension extendee
0, // [0:18] is the sub-list for field type_name
35, // 6: HeroStrengthenUpStarResp.hero:type_name -> DBHero
35, // 7: HeroStrengthenUpSkillResp.hero:type_name -> DBHero
35, // 8: HeroResonanceResp.hero:type_name -> DBHero
35, // 9: HeroResonanceResp.upStarCard:type_name -> DBHero
35, // 10: HeroResonanceResetResp.hero:type_name -> DBHero
35, // 11: HeroResonanceUseEnergyResp.hero:type_name -> DBHero
35, // 12: HeroAwakenResp.hero:type_name -> DBHero
35, // 13: HeroChoukaResp.heroes:type_name -> DBHero
32, // 14: HeroPropertyPush.property:type_name -> HeroPropertyPush.PropertyEntry
33, // 15: HeroPropertyPush.addProperty:type_name -> HeroPropertyPush.AddPropertyEntry
35, // 16: HeroLockResp.hero:type_name -> DBHero
35, // 17: HeroAddNewHeroPush.hero:type_name -> DBHero
35, // 18: HeroGetSpecifiedResp.hero:type_name -> DBHero
34, // 19: HeroDelHeroPush.heros:type_name -> HeroDelHeroPush.HerosEntry
20, // [20:20] is the sub-list for method output_type
20, // [20:20] is the sub-list for method input_type
20, // [20:20] is the sub-list for extension type_name
20, // [20:20] is the sub-list for extension extendee
0, // [0:20] is the sub-list for field type_name
}
func init() { file_hero_hero_msg_proto_init() }
@ -1838,7 +2142,7 @@ func file_hero_hero_msg_proto_init() {
}
}
file_hero_hero_msg_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*HeroProperty); i {
switch v := v.(*HeroPropertyPush); i {
case 0:
return &v.state
case 1:
@ -1874,7 +2178,67 @@ func file_hero_hero_msg_proto_init() {
}
}
file_hero_hero_msg_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AddNewHeroPush); i {
switch v := v.(*HeroAddNewHeroPush); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_hero_hero_msg_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*HeroGetSpecifiedReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_hero_hero_msg_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*HeroGetSpecifiedResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_hero_hero_msg_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*HeroDelHeroPush); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_hero_hero_msg_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*HeroDrawCardReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_hero_hero_msg_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*HeroDrawCardResp); i {
case 0:
return &v.state
case 1:
@ -1892,7 +2256,7 @@ func file_hero_hero_msg_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_hero_hero_msg_proto_rawDesc,
NumEnums: 0,
NumMessages: 29,
NumMessages: 35,
NumExtensions: 0,
NumServices: 0,
},

219
pb/mainline_db.pb.go Normal file
View File

@ -0,0 +1,219 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.0
// protoc v3.20.0
// source: mainline/mainline_db.proto
package pb
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type DBMainline struct {
state protoimpl.MessageState
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
ChapterId int32 `protobuf:"varint,3,opt,name=chapterId,proto3" json:"chapterId" bson:"chapterId"` //章节ID
MainlineId int32 `protobuf:"varint,4,opt,name=mainlineId,proto3" json:"mainlineId" bson:"mainlineId"` //主线关卡ID
Intensity int32 `protobuf:"varint,5,opt,name=intensity,proto3" json:"intensity" bson:"intensity"` //难度类型
AwaredID int32 `protobuf:"varint,6,opt,name=awaredID,proto3" json:"awaredID" bson:"awaredID"` //领奖ID
Progress int32 `protobuf:"varint,7,opt,name=progress,proto3" json:"progress" bson:"progress"` // 通关进度(打了多少主关卡)
TotalBox int32 `protobuf:"varint,8,opt,name=totalBox,proto3" json:"totalBox" bson:"totalBox"` // 总关卡数量
BranchID []int32 `protobuf:"varint,9,rep,packed,name=branchID,proto3" json:"branchID" bson:"branchID"` // 记录分支通关的情况
}
func (x *DBMainline) Reset() {
*x = DBMainline{}
if protoimpl.UnsafeEnabled {
mi := &file_mainline_mainline_db_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DBMainline) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DBMainline) ProtoMessage() {}
func (x *DBMainline) ProtoReflect() protoreflect.Message {
mi := &file_mainline_mainline_db_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DBMainline.ProtoReflect.Descriptor instead.
func (*DBMainline) Descriptor() ([]byte, []int) {
return file_mainline_mainline_db_proto_rawDescGZIP(), []int{0}
}
func (x *DBMainline) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *DBMainline) GetUid() string {
if x != nil {
return x.Uid
}
return ""
}
func (x *DBMainline) GetChapterId() int32 {
if x != nil {
return x.ChapterId
}
return 0
}
func (x *DBMainline) GetMainlineId() int32 {
if x != nil {
return x.MainlineId
}
return 0
}
func (x *DBMainline) GetIntensity() int32 {
if x != nil {
return x.Intensity
}
return 0
}
func (x *DBMainline) GetAwaredID() int32 {
if x != nil {
return x.AwaredID
}
return 0
}
func (x *DBMainline) GetProgress() int32 {
if x != nil {
return x.Progress
}
return 0
}
func (x *DBMainline) GetTotalBox() int32 {
if x != nil {
return x.TotalBox
}
return 0
}
func (x *DBMainline) GetBranchID() []int32 {
if x != nil {
return x.BranchID
}
return nil
}
var File_mainline_mainline_db_proto protoreflect.FileDescriptor
var file_mainline_mainline_db_proto_rawDesc = []byte{
0x0a, 0x1a, 0x6d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x6c,
0x69, 0x6e, 0x65, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xfa, 0x01, 0x0a,
0x0a, 0x44, 0x42, 0x4d, 0x61, 0x69, 0x6e, 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, 0x1c, 0x0a,
0x09, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
0x52, 0x09, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6d,
0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52,
0x0a, 0x6d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x69,
0x6e, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09,
0x69, 0x6e, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x77, 0x61,
0x72, 0x65, 0x64, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x77, 0x61,
0x72, 0x65, 0x64, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73,
0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73,
0x73, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x6f, 0x78, 0x18, 0x08, 0x20,
0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x6f, 0x78, 0x12, 0x1a, 0x0a,
0x08, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x49, 0x44, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x52,
0x08, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x49, 0x44, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70,
0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_mainline_mainline_db_proto_rawDescOnce sync.Once
file_mainline_mainline_db_proto_rawDescData = file_mainline_mainline_db_proto_rawDesc
)
func file_mainline_mainline_db_proto_rawDescGZIP() []byte {
file_mainline_mainline_db_proto_rawDescOnce.Do(func() {
file_mainline_mainline_db_proto_rawDescData = protoimpl.X.CompressGZIP(file_mainline_mainline_db_proto_rawDescData)
})
return file_mainline_mainline_db_proto_rawDescData
}
var file_mainline_mainline_db_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_mainline_mainline_db_proto_goTypes = []interface{}{
(*DBMainline)(nil), // 0: DBMainline
}
var file_mainline_mainline_db_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_mainline_mainline_db_proto_init() }
func file_mainline_mainline_db_proto_init() {
if File_mainline_mainline_db_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_mainline_mainline_db_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DBMainline); 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{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_mainline_mainline_db_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_mainline_mainline_db_proto_goTypes,
DependencyIndexes: file_mainline_mainline_db_proto_depIdxs,
MessageInfos: file_mainline_mainline_db_proto_msgTypes,
}.Build()
File_mainline_mainline_db_proto = out.File
file_mainline_mainline_db_proto_rawDesc = nil
file_mainline_mainline_db_proto_goTypes = nil
file_mainline_mainline_db_proto_depIdxs = nil
}

479
pb/mainline_msg.pb.go Normal file
View File

@ -0,0 +1,479 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.0
// protoc v3.20.0
// source: mainline/mainline_msg.proto
package pb
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// 查询关卡进度
type MainlineGetListReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *MainlineGetListReq) Reset() {
*x = MainlineGetListReq{}
if protoimpl.UnsafeEnabled {
mi := &file_mainline_mainline_msg_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MainlineGetListReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MainlineGetListReq) ProtoMessage() {}
func (x *MainlineGetListReq) ProtoReflect() protoreflect.Message {
mi := &file_mainline_mainline_msg_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MainlineGetListReq.ProtoReflect.Descriptor instead.
func (*MainlineGetListReq) Descriptor() ([]byte, []int) {
return file_mainline_mainline_msg_proto_rawDescGZIP(), []int{0}
}
// 返回进度信息
type MainlineGetListResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Data []*DBMainline `protobuf:"bytes,1,rep,name=data,proto3" json:"data"`
}
func (x *MainlineGetListResp) Reset() {
*x = MainlineGetListResp{}
if protoimpl.UnsafeEnabled {
mi := &file_mainline_mainline_msg_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MainlineGetListResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MainlineGetListResp) ProtoMessage() {}
func (x *MainlineGetListResp) ProtoReflect() protoreflect.Message {
mi := &file_mainline_mainline_msg_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MainlineGetListResp.ProtoReflect.Descriptor instead.
func (*MainlineGetListResp) Descriptor() ([]byte, []int) {
return file_mainline_mainline_msg_proto_rawDescGZIP(), []int{1}
}
func (x *MainlineGetListResp) GetData() []*DBMainline {
if x != nil {
return x.Data
}
return nil
}
// 领取关卡宝箱
type MainlineGetRewrdReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ChapterId uint32 `protobuf:"varint,1,opt,name=chapterId,proto3" json:"chapterId"` // 章节ID
BoxId uint32 `protobuf:"varint,2,opt,name=boxId,proto3" json:"boxId"` // 宝箱ID
}
func (x *MainlineGetRewrdReq) Reset() {
*x = MainlineGetRewrdReq{}
if protoimpl.UnsafeEnabled {
mi := &file_mainline_mainline_msg_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MainlineGetRewrdReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MainlineGetRewrdReq) ProtoMessage() {}
func (x *MainlineGetRewrdReq) ProtoReflect() protoreflect.Message {
mi := &file_mainline_mainline_msg_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MainlineGetRewrdReq.ProtoReflect.Descriptor instead.
func (*MainlineGetRewrdReq) Descriptor() ([]byte, []int) {
return file_mainline_mainline_msg_proto_rawDescGZIP(), []int{2}
}
func (x *MainlineGetRewrdReq) GetChapterId() uint32 {
if x != nil {
return x.ChapterId
}
return 0
}
func (x *MainlineGetRewrdReq) GetBoxId() uint32 {
if x != nil {
return x.BoxId
}
return 0
}
type MainlineGetRewrdResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Data *DBMainline `protobuf:"bytes,1,opt,name=data,proto3" json:"data"` //当前章节信息
}
func (x *MainlineGetRewrdResp) Reset() {
*x = MainlineGetRewrdResp{}
if protoimpl.UnsafeEnabled {
mi := &file_mainline_mainline_msg_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MainlineGetRewrdResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MainlineGetRewrdResp) ProtoMessage() {}
func (x *MainlineGetRewrdResp) ProtoReflect() protoreflect.Message {
mi := &file_mainline_mainline_msg_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MainlineGetRewrdResp.ProtoReflect.Descriptor instead.
func (*MainlineGetRewrdResp) Descriptor() ([]byte, []int) {
return file_mainline_mainline_msg_proto_rawDescGZIP(), []int{3}
}
func (x *MainlineGetRewrdResp) GetData() *DBMainline {
if x != nil {
return x.Data
}
return nil
}
// 挑战关卡
type MainlineChallengeReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ChapterId uint32 `protobuf:"varint,1,opt,name=chapterId,proto3" json:"chapterId"` // 章节ID
MainlineId uint32 `protobuf:"varint,2,opt,name=mainlineId,proto3" json:"mainlineId"` // 小关ID
}
func (x *MainlineChallengeReq) Reset() {
*x = MainlineChallengeReq{}
if protoimpl.UnsafeEnabled {
mi := &file_mainline_mainline_msg_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MainlineChallengeReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MainlineChallengeReq) ProtoMessage() {}
func (x *MainlineChallengeReq) ProtoReflect() protoreflect.Message {
mi := &file_mainline_mainline_msg_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MainlineChallengeReq.ProtoReflect.Descriptor instead.
func (*MainlineChallengeReq) Descriptor() ([]byte, []int) {
return file_mainline_mainline_msg_proto_rawDescGZIP(), []int{4}
}
func (x *MainlineChallengeReq) GetChapterId() uint32 {
if x != nil {
return x.ChapterId
}
return 0
}
func (x *MainlineChallengeReq) GetMainlineId() uint32 {
if x != nil {
return x.MainlineId
}
return 0
}
type MainlineChallengeResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Data *DBMainline `protobuf:"bytes,1,opt,name=data,proto3" json:"data"` //当前章节信息
}
func (x *MainlineChallengeResp) Reset() {
*x = MainlineChallengeResp{}
if protoimpl.UnsafeEnabled {
mi := &file_mainline_mainline_msg_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MainlineChallengeResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MainlineChallengeResp) ProtoMessage() {}
func (x *MainlineChallengeResp) ProtoReflect() protoreflect.Message {
mi := &file_mainline_mainline_msg_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MainlineChallengeResp.ProtoReflect.Descriptor instead.
func (*MainlineChallengeResp) Descriptor() ([]byte, []int) {
return file_mainline_mainline_msg_proto_rawDescGZIP(), []int{5}
}
func (x *MainlineChallengeResp) GetData() *DBMainline {
if x != nil {
return x.Data
}
return nil
}
var File_mainline_mainline_msg_proto protoreflect.FileDescriptor
var file_mainline_mainline_msg_proto_rawDesc = []byte{
0x0a, 0x1b, 0x6d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x6c,
0x69, 0x6e, 0x65, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x6d,
0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2f, 0x6d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65,
0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x14, 0x0a, 0x12, 0x4d, 0x61, 0x69,
0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22,
0x36, 0x0a, 0x13, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x4c, 0x69,
0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x44, 0x42, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e,
0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x49, 0x0a, 0x13, 0x4d, 0x61, 0x69, 0x6e, 0x6c,
0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x52, 0x65, 0x77, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1c,
0x0a, 0x09, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05,
0x62, 0x6f, 0x78, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x62, 0x6f, 0x78,
0x49, 0x64, 0x22, 0x37, 0x0a, 0x14, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x47, 0x65,
0x74, 0x52, 0x65, 0x77, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1f, 0x0a, 0x04, 0x64, 0x61,
0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x44, 0x42, 0x4d, 0x61, 0x69,
0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x54, 0x0a, 0x14, 0x4d,
0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65,
0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x49, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x49,
0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49,
0x64, 0x22, 0x38, 0x0a, 0x15, 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61,
0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1f, 0x0a, 0x04, 0x64, 0x61,
0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x44, 0x42, 0x4d, 0x61, 0x69,
0x6e, 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,
}
var (
file_mainline_mainline_msg_proto_rawDescOnce sync.Once
file_mainline_mainline_msg_proto_rawDescData = file_mainline_mainline_msg_proto_rawDesc
)
func file_mainline_mainline_msg_proto_rawDescGZIP() []byte {
file_mainline_mainline_msg_proto_rawDescOnce.Do(func() {
file_mainline_mainline_msg_proto_rawDescData = protoimpl.X.CompressGZIP(file_mainline_mainline_msg_proto_rawDescData)
})
return file_mainline_mainline_msg_proto_rawDescData
}
var file_mainline_mainline_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
var file_mainline_mainline_msg_proto_goTypes = []interface{}{
(*MainlineGetListReq)(nil), // 0: MainlineGetListReq
(*MainlineGetListResp)(nil), // 1: MainlineGetListResp
(*MainlineGetRewrdReq)(nil), // 2: MainlineGetRewrdReq
(*MainlineGetRewrdResp)(nil), // 3: MainlineGetRewrdResp
(*MainlineChallengeReq)(nil), // 4: MainlineChallengeReq
(*MainlineChallengeResp)(nil), // 5: MainlineChallengeResp
(*DBMainline)(nil), // 6: DBMainline
}
var file_mainline_mainline_msg_proto_depIdxs = []int32{
6, // 0: MainlineGetListResp.data:type_name -> DBMainline
6, // 1: MainlineGetRewrdResp.data:type_name -> DBMainline
6, // 2: MainlineChallengeResp.data:type_name -> DBMainline
3, // [3:3] is the sub-list for method output_type
3, // [3:3] is the sub-list for method input_type
3, // [3:3] is the sub-list for extension type_name
3, // [3:3] is the sub-list for extension extendee
0, // [0:3] is the sub-list for field type_name
}
func init() { file_mainline_mainline_msg_proto_init() }
func file_mainline_mainline_msg_proto_init() {
if File_mainline_mainline_msg_proto != nil {
return
}
file_mainline_mainline_db_proto_init()
if !protoimpl.UnsafeEnabled {
file_mainline_mainline_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MainlineGetListReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mainline_mainline_msg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MainlineGetListResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mainline_mainline_msg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MainlineGetRewrdReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mainline_mainline_msg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MainlineGetRewrdResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mainline_mainline_msg_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MainlineChallengeReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_mainline_mainline_msg_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MainlineChallengeResp); 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{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_mainline_mainline_msg_proto_rawDesc,
NumEnums: 0,
NumMessages: 6,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_mainline_mainline_msg_proto_goTypes,
DependencyIndexes: file_mainline_mainline_msg_proto_depIdxs,
MessageInfos: file_mainline_mainline_msg_proto_msgTypes,
}.Build()
File_mainline_mainline_msg_proto = out.File
file_mainline_mainline_msg_proto_rawDesc = nil
file_mainline_mainline_msg_proto_goTypes = nil
file_mainline_mainline_msg_proto_depIdxs = nil
}

View File

@ -71,20 +71,25 @@ enum ErrorCode {
HeroStarErr = 1316; //
HeroTypeErr = 1317; //
HeroExpTypeErr = 1318; //
HeroAddMaxExp = 1319; //
HeroStarLvErr = 1320; //
HeroMaxStarLv = 1321; //
// equipment
EquipmentOnFoundEquipment = 1400; //
EquipmentLvlimitReached = 1401; //
// mainStory
StoryNotFindChapter = 1500; // 线
StoryIDFailed = 1501; // ID
// mainMainline
MainlineNotFindChapter = 1500; // 线
MainlineIDFailed = 1501; // ID
// task
TaskInit = 1600; //
TaskReset = 1601; //
TaskHandle = 1602; //
TaskReceived = 1603; //
TaskActiveInit = 1606; //
TaskActiveNofound = 1604; //
TaskActiveNoenough = 1605; //
TaskActiveInit = 1604; //
TaskActiveNofound = 1605; //
TaskActiveNoenough = 1606; //
TaskNoFinished = 1607; //
TaskFinished = 1608; //
}

View File

@ -17,21 +17,17 @@ message DBHero {
int32 captainSkill = 8; //@go_tags(`bson:"captainSkill"`)
repeated SkillData normalSkill = 9; //@go_tags(`bson:"normalSkill"`)
map<string, int32> property = 10; //
map<string, int32> addProperty =
11; //@go_tags(`bson:"addProperty"`)
int32 formation = 12; //
int32 cardType =
13; //@go_tags(`bson:"cardType"`) ()
int32 curSkin = 14; //@go_tags(`bson:"curSkin"`) ID
repeated int32 skins = 15; // ID
bool block = 16; //
repeated string equipID = 17; //@go_tags(`bson:"equipID"`) objID
int32 resonateNum = 18; //@go_tags(`bson:"resonateNum"`)
int32 distributionResonate =
19; //@go_tags(`bson:"distributionResonate"`)
map<int32, int32> energy = 20; // @go_tags(`bson:"energy"`)[1,0]
int32 sameCount = 21; // @go_tags(`bson:"sameCount"`)
int32 suiteId = 22; //@go_tags(`bson:"suiteId"`) Id
int32 suiteExtId = 23; // go_tags(`bson:"suiteExtId"`) Id
bool isOverlying = 24; // go_tags(`bson:"isOverlying"`) true
map<string, int32> addProperty = 11; //@go_tags(`bson:"addProperty"`)
int32 cardType = 12; //@go_tags(`bson:"cardType"`) ()
int32 curSkin = 13; //@go_tags(`bson:"curSkin"`) ID
repeated int32 skins = 14; // ID
bool block = 15; //
repeated string equipID = 16; //@go_tags(`bson:"equipID"`) objID
int32 resonateNum = 17; //@go_tags(`bson:"resonateNum"`)
int32 distributionResonate = 18; //@go_tags(`bson:"distributionResonate"`)
map<int32, int32> energy = 19; // @go_tags(`bson:"energy"`)[1,0]
int32 sameCount = 20; // @go_tags(`bson:"sameCount"`)
int32 suiteId = 21; //@go_tags(`bson:"suiteId"`) Id
int32 suiteExtId = 22; // go_tags(`bson:"suiteExtId"`) Id
bool isOverlying = 23; // go_tags(`bson:"isOverlying"`) true
}

View File

@ -62,7 +62,7 @@ message HeroStrengthenUpSkillResp {
//
message HeroResonanceReq {
string heroObjID = 1; // ID
string heroObjID = 1; // ID
repeated string costObjID = 2; //
}
@ -109,23 +109,47 @@ message HeroChoukaReq { repeated int32 heroIds = 1; }
message HeroChoukaResp { repeated DBHero heroes = 1; }
//
message HeroProperty {
message HeroPropertyPush {
string heroId = 1; //ID
map<string, int32> property = 2; //
map<string, int32> addProperty = 3; //
}
//
message HeroLockReq{
string heroid = 1;
}
message HeroLockReq { string heroid = 1; }
//
message HeroLockResp{
DBHero hero = 1; //
message HeroLockResp {
DBHero hero = 1; //
}
//
message AddNewHeroPush{
DBHero hero = 1; //
message HeroAddNewHeroPush {
DBHero hero = 1; //
int32 count = 2; //
}
//
message HeroGetSpecifiedReq {
int32 heroCoinfigID = 1; // ID
int32 Amount = 2; //
int32 star = 3; //
int32 lv = 4; //
}
message HeroGetSpecifiedResp {
DBHero hero = 1; //
}
message HeroDelHeroPush {
map<string,int32> heros = 1;
}
//
message HeroDrawCardReq {
int32 drawCount = 1; // ,
}
message HeroDrawCardResp {
repeated int32 heroes = 1; // configID
}

View File

@ -1,11 +1,11 @@
syntax = "proto3";
option go_package = ".;pb";
message DBStory {
message DBMainline {
string id = 1; //@go_tags(`bson:"_id"`) ID
string uid = 2; //@go_tags(`bson:"uid"`) ID
int32 chapterId = 3; //@go_tags(`bson:"chapterId"`) ID
int32 storyId = 4; //@go_tags(`bson:"storyId"`) 线ID
int32 mainlineId = 4; //@go_tags(`bson:"mainlineId"`) 线ID
int32 intensity = 5; //@go_tags(`bson:"intensity"`)
int32 awaredID = 6; //@go_tags(`bson:"awaredID"`) ID
int32 progress = 7; // @go_tags(`bson:"progress"`) ()

View File

@ -0,0 +1,32 @@
syntax = "proto3";
option go_package = ".;pb";
import "mainline/mainline_db.proto";
//
message MainlineGetListReq {
}
//
message MainlineGetListResp {
repeated DBMainline data = 1;
}
//
message MainlineGetRewrdReq {
uint32 chapterId = 1; // ID
uint32 boxId = 2; // ID
}
message MainlineGetRewrdResp {
DBMainline data = 1; //
}
//
message MainlineChallengeReq {
uint32 chapterId = 1; // ID
uint32 mainlineId = 2; // ID
}
message MainlineChallengeResp {
DBMainline data = 1; //
}

View File

@ -1,32 +0,0 @@
syntax = "proto3";
option go_package = ".;pb";
import "story/story_db.proto";
//
message StoryGetListReq {
}
//
message StoryGetListResp {
repeated DBStory data = 1;
}
//
message StoryGetRewrdReq {
uint32 chapterId = 1; // ID
uint32 boxId = 2; // ID
}
message StoryGetRewrdResp {
DBStory data = 1; //
}
//
message StoryChallengeReq {
uint32 chapterId = 1; // ID
uint32 storyId = 2; // ID
}
message StoryChallengeResp {
DBStory data = 1; //
}

View File

@ -21,7 +21,10 @@ message TaskListResp { repeated DBTask list = 1; }
//
message TaskActiveListReq { int32 taskTag = 1; }
message TaskActiveListResp { repeated DBTaskActive list = 1; }
message TaskActiveListResp {
repeated DBTaskActive list = 1; //
int32 active = 2; //
}
//
message TaskActiveReceiveReq {
@ -31,4 +34,13 @@ message TaskActiveReceiveReq {
message TaskActiveReceiveResp {
int32 taskTag = 1;
string id = 2;
}
//
message TaskDoStrategyReq {
int32 heroCfgId = 1; //ID
}
message TaskDoStrategyResp {
repeated int32 taskIds = 1; //ID
}

13
pb/proto/userrecord.proto Normal file
View File

@ -0,0 +1,13 @@
syntax = "proto3";
option go_package = ".;pb";
//
message DBUserRecord {
string id = 1; // id
string uid = 2; // id
int32 type = 3; //
int32 parame = 4; //
int32 value = 5; //
int64 ctime = 6; //
}

View File

@ -1,218 +0,0 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.0
// protoc v3.20.0
// source: story/story_db.proto
package pb
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type DBStory struct {
state protoimpl.MessageState
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
ChapterId int32 `protobuf:"varint,3,opt,name=chapterId,proto3" json:"chapterId" bson:"chapterId"` //章节ID
StoryId int32 `protobuf:"varint,4,opt,name=storyId,proto3" json:"storyId" bson:"storyId"` //主线关卡ID
Intensity int32 `protobuf:"varint,5,opt,name=intensity,proto3" json:"intensity" bson:"intensity"` //难度类型
AwaredID int32 `protobuf:"varint,6,opt,name=awaredID,proto3" json:"awaredID" bson:"awaredID"` //领奖ID
Progress int32 `protobuf:"varint,7,opt,name=progress,proto3" json:"progress" bson:"progress"` // 通关进度(打了多少主关卡)
TotalBox int32 `protobuf:"varint,8,opt,name=totalBox,proto3" json:"totalBox" bson:"totalBox"` // 总关卡数量
BranchID []int32 `protobuf:"varint,9,rep,packed,name=branchID,proto3" json:"branchID" bson:"branchID"` // 记录分支通关的情况
}
func (x *DBStory) Reset() {
*x = DBStory{}
if protoimpl.UnsafeEnabled {
mi := &file_story_story_db_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DBStory) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DBStory) ProtoMessage() {}
func (x *DBStory) ProtoReflect() protoreflect.Message {
mi := &file_story_story_db_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DBStory.ProtoReflect.Descriptor instead.
func (*DBStory) Descriptor() ([]byte, []int) {
return file_story_story_db_proto_rawDescGZIP(), []int{0}
}
func (x *DBStory) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *DBStory) GetUid() string {
if x != nil {
return x.Uid
}
return ""
}
func (x *DBStory) GetChapterId() int32 {
if x != nil {
return x.ChapterId
}
return 0
}
func (x *DBStory) GetStoryId() int32 {
if x != nil {
return x.StoryId
}
return 0
}
func (x *DBStory) GetIntensity() int32 {
if x != nil {
return x.Intensity
}
return 0
}
func (x *DBStory) GetAwaredID() int32 {
if x != nil {
return x.AwaredID
}
return 0
}
func (x *DBStory) GetProgress() int32 {
if x != nil {
return x.Progress
}
return 0
}
func (x *DBStory) GetTotalBox() int32 {
if x != nil {
return x.TotalBox
}
return 0
}
func (x *DBStory) GetBranchID() []int32 {
if x != nil {
return x.BranchID
}
return nil
}
var File_story_story_db_proto protoreflect.FileDescriptor
var file_story_story_db_proto_rawDesc = []byte{
0x0a, 0x14, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x64, 0x62,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf1, 0x01, 0x0a, 0x07, 0x44, 0x42, 0x53, 0x74, 0x6f,
0x72, 0x79, 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, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x49,
0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72,
0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x18, 0x04, 0x20,
0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09,
0x69, 0x6e, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52,
0x09, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x77,
0x61, 0x72, 0x65, 0x64, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x77,
0x61, 0x72, 0x65, 0x64, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65,
0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65,
0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x6f, 0x78, 0x18, 0x08,
0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x6f, 0x78, 0x12, 0x1a,
0x0a, 0x08, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x49, 0x44, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05,
0x52, 0x08, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x49, 0x44, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b,
0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_story_story_db_proto_rawDescOnce sync.Once
file_story_story_db_proto_rawDescData = file_story_story_db_proto_rawDesc
)
func file_story_story_db_proto_rawDescGZIP() []byte {
file_story_story_db_proto_rawDescOnce.Do(func() {
file_story_story_db_proto_rawDescData = protoimpl.X.CompressGZIP(file_story_story_db_proto_rawDescData)
})
return file_story_story_db_proto_rawDescData
}
var file_story_story_db_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_story_story_db_proto_goTypes = []interface{}{
(*DBStory)(nil), // 0: DBStory
}
var file_story_story_db_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_story_story_db_proto_init() }
func file_story_story_db_proto_init() {
if File_story_story_db_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_story_story_db_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DBStory); 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{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_story_story_db_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_story_story_db_proto_goTypes,
DependencyIndexes: file_story_story_db_proto_depIdxs,
MessageInfos: file_story_story_db_proto_msgTypes,
}.Build()
File_story_story_db_proto = out.File
file_story_story_db_proto_rawDesc = nil
file_story_story_db_proto_goTypes = nil
file_story_story_db_proto_depIdxs = nil
}

View File

@ -1,476 +0,0 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.0
// protoc v3.20.0
// source: story/story_msg.proto
package pb
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// 查询关卡进度
type StoryGetListReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *StoryGetListReq) Reset() {
*x = StoryGetListReq{}
if protoimpl.UnsafeEnabled {
mi := &file_story_story_msg_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StoryGetListReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StoryGetListReq) ProtoMessage() {}
func (x *StoryGetListReq) ProtoReflect() protoreflect.Message {
mi := &file_story_story_msg_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StoryGetListReq.ProtoReflect.Descriptor instead.
func (*StoryGetListReq) Descriptor() ([]byte, []int) {
return file_story_story_msg_proto_rawDescGZIP(), []int{0}
}
// 返回进度信息
type StoryGetListResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Data []*DBStory `protobuf:"bytes,1,rep,name=data,proto3" json:"data"`
}
func (x *StoryGetListResp) Reset() {
*x = StoryGetListResp{}
if protoimpl.UnsafeEnabled {
mi := &file_story_story_msg_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StoryGetListResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StoryGetListResp) ProtoMessage() {}
func (x *StoryGetListResp) ProtoReflect() protoreflect.Message {
mi := &file_story_story_msg_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StoryGetListResp.ProtoReflect.Descriptor instead.
func (*StoryGetListResp) Descriptor() ([]byte, []int) {
return file_story_story_msg_proto_rawDescGZIP(), []int{1}
}
func (x *StoryGetListResp) GetData() []*DBStory {
if x != nil {
return x.Data
}
return nil
}
// 领取关卡宝箱
type StoryGetRewrdReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ChapterId uint32 `protobuf:"varint,1,opt,name=chapterId,proto3" json:"chapterId"` // 章节ID
BoxId uint32 `protobuf:"varint,2,opt,name=boxId,proto3" json:"boxId"` // 宝箱ID
}
func (x *StoryGetRewrdReq) Reset() {
*x = StoryGetRewrdReq{}
if protoimpl.UnsafeEnabled {
mi := &file_story_story_msg_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StoryGetRewrdReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StoryGetRewrdReq) ProtoMessage() {}
func (x *StoryGetRewrdReq) ProtoReflect() protoreflect.Message {
mi := &file_story_story_msg_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StoryGetRewrdReq.ProtoReflect.Descriptor instead.
func (*StoryGetRewrdReq) Descriptor() ([]byte, []int) {
return file_story_story_msg_proto_rawDescGZIP(), []int{2}
}
func (x *StoryGetRewrdReq) GetChapterId() uint32 {
if x != nil {
return x.ChapterId
}
return 0
}
func (x *StoryGetRewrdReq) GetBoxId() uint32 {
if x != nil {
return x.BoxId
}
return 0
}
type StoryGetRewrdResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Data *DBStory `protobuf:"bytes,1,opt,name=data,proto3" json:"data"` //当前章节信息
}
func (x *StoryGetRewrdResp) Reset() {
*x = StoryGetRewrdResp{}
if protoimpl.UnsafeEnabled {
mi := &file_story_story_msg_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StoryGetRewrdResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StoryGetRewrdResp) ProtoMessage() {}
func (x *StoryGetRewrdResp) ProtoReflect() protoreflect.Message {
mi := &file_story_story_msg_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StoryGetRewrdResp.ProtoReflect.Descriptor instead.
func (*StoryGetRewrdResp) Descriptor() ([]byte, []int) {
return file_story_story_msg_proto_rawDescGZIP(), []int{3}
}
func (x *StoryGetRewrdResp) GetData() *DBStory {
if x != nil {
return x.Data
}
return nil
}
// 挑战关卡
type StoryChallengeReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ChapterId uint32 `protobuf:"varint,1,opt,name=chapterId,proto3" json:"chapterId"` // 章节ID
StoryId uint32 `protobuf:"varint,2,opt,name=storyId,proto3" json:"storyId"` // 小关ID
}
func (x *StoryChallengeReq) Reset() {
*x = StoryChallengeReq{}
if protoimpl.UnsafeEnabled {
mi := &file_story_story_msg_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StoryChallengeReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StoryChallengeReq) ProtoMessage() {}
func (x *StoryChallengeReq) ProtoReflect() protoreflect.Message {
mi := &file_story_story_msg_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StoryChallengeReq.ProtoReflect.Descriptor instead.
func (*StoryChallengeReq) Descriptor() ([]byte, []int) {
return file_story_story_msg_proto_rawDescGZIP(), []int{4}
}
func (x *StoryChallengeReq) GetChapterId() uint32 {
if x != nil {
return x.ChapterId
}
return 0
}
func (x *StoryChallengeReq) GetStoryId() uint32 {
if x != nil {
return x.StoryId
}
return 0
}
type StoryChallengeResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Data *DBStory `protobuf:"bytes,1,opt,name=data,proto3" json:"data"` //当前章节信息
}
func (x *StoryChallengeResp) Reset() {
*x = StoryChallengeResp{}
if protoimpl.UnsafeEnabled {
mi := &file_story_story_msg_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StoryChallengeResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StoryChallengeResp) ProtoMessage() {}
func (x *StoryChallengeResp) ProtoReflect() protoreflect.Message {
mi := &file_story_story_msg_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StoryChallengeResp.ProtoReflect.Descriptor instead.
func (*StoryChallengeResp) Descriptor() ([]byte, []int) {
return file_story_story_msg_proto_rawDescGZIP(), []int{5}
}
func (x *StoryChallengeResp) GetData() *DBStory {
if x != nil {
return x.Data
}
return nil
}
var File_story_story_msg_proto protoreflect.FileDescriptor
var file_story_story_msg_proto_rawDesc = []byte{
0x0a, 0x15, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x6d, 0x73,
0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x73,
0x74, 0x6f, 0x72, 0x79, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x11, 0x0a,
0x0f, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71,
0x22, 0x30, 0x0a, 0x10, 0x53, 0x74, 0x6f, 0x72, 0x79, 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, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61,
0x74, 0x61, 0x22, 0x46, 0x0a, 0x10, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x47, 0x65, 0x74, 0x52, 0x65,
0x77, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65,
0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, 0x70, 0x74,
0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0d, 0x52, 0x05, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x22, 0x31, 0x0a, 0x11, 0x53, 0x74,
0x6f, 0x72, 0x79, 0x47, 0x65, 0x74, 0x52, 0x65, 0x77, 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, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4b, 0x0a,
0x11, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52,
0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x49, 0x64,
0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0d, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x22, 0x32, 0x0a, 0x12, 0x53, 0x74,
0x6f, 0x72, 0x79, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70,
0x12, 0x1c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08,
0x2e, 0x44, 0x42, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x06,
0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_story_story_msg_proto_rawDescOnce sync.Once
file_story_story_msg_proto_rawDescData = file_story_story_msg_proto_rawDesc
)
func file_story_story_msg_proto_rawDescGZIP() []byte {
file_story_story_msg_proto_rawDescOnce.Do(func() {
file_story_story_msg_proto_rawDescData = protoimpl.X.CompressGZIP(file_story_story_msg_proto_rawDescData)
})
return file_story_story_msg_proto_rawDescData
}
var file_story_story_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
var file_story_story_msg_proto_goTypes = []interface{}{
(*StoryGetListReq)(nil), // 0: StoryGetListReq
(*StoryGetListResp)(nil), // 1: StoryGetListResp
(*StoryGetRewrdReq)(nil), // 2: StoryGetRewrdReq
(*StoryGetRewrdResp)(nil), // 3: StoryGetRewrdResp
(*StoryChallengeReq)(nil), // 4: StoryChallengeReq
(*StoryChallengeResp)(nil), // 5: StoryChallengeResp
(*DBStory)(nil), // 6: DBStory
}
var file_story_story_msg_proto_depIdxs = []int32{
6, // 0: StoryGetListResp.data:type_name -> DBStory
6, // 1: StoryGetRewrdResp.data:type_name -> DBStory
6, // 2: StoryChallengeResp.data:type_name -> DBStory
3, // [3:3] is the sub-list for method output_type
3, // [3:3] is the sub-list for method input_type
3, // [3:3] is the sub-list for extension type_name
3, // [3:3] is the sub-list for extension extendee
0, // [0:3] is the sub-list for field type_name
}
func init() { file_story_story_msg_proto_init() }
func file_story_story_msg_proto_init() {
if File_story_story_msg_proto != nil {
return
}
file_story_story_db_proto_init()
if !protoimpl.UnsafeEnabled {
file_story_story_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StoryGetListReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_story_story_msg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StoryGetListResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_story_story_msg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StoryGetRewrdReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_story_story_msg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StoryGetRewrdResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_story_story_msg_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StoryChallengeReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_story_story_msg_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StoryChallengeResp); 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{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_story_story_msg_proto_rawDesc,
NumEnums: 0,
NumMessages: 6,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_story_story_msg_proto_goTypes,
DependencyIndexes: file_story_story_msg_proto_depIdxs,
MessageInfos: file_story_story_msg_proto_msgTypes,
}.Build()
File_story_story_msg_proto = out.File
file_story_story_msg_proto_rawDesc = nil
file_story_story_msg_proto_goTypes = nil
file_story_story_msg_proto_depIdxs = nil
}

View File

@ -271,7 +271,8 @@ type TaskActiveListResp struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
List []*DBTaskActive `protobuf:"bytes,1,rep,name=list,proto3" json:"list"`
List []*DBTaskActive `protobuf:"bytes,1,rep,name=list,proto3" json:"list"` //活跃度列表
Active int32 `protobuf:"varint,2,opt,name=active,proto3" json:"active"` //活跃度值
}
func (x *TaskActiveListResp) Reset() {
@ -313,6 +314,13 @@ func (x *TaskActiveListResp) GetList() []*DBTaskActive {
return nil
}
func (x *TaskActiveListResp) GetActive() int32 {
if x != nil {
return x.Active
}
return 0
}
//活跃度领取
type TaskActiveReceiveReq struct {
state protoimpl.MessageState
@ -424,6 +432,101 @@ func (x *TaskActiveReceiveResp) GetId() string {
return ""
}
//攻略
type TaskDoStrategyReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
HeroCfgId int32 `protobuf:"varint,1,opt,name=heroCfgId,proto3" json:"heroCfgId"` //英雄ID
}
func (x *TaskDoStrategyReq) Reset() {
*x = TaskDoStrategyReq{}
if protoimpl.UnsafeEnabled {
mi := &file_task_task_msg_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TaskDoStrategyReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TaskDoStrategyReq) ProtoMessage() {}
func (x *TaskDoStrategyReq) ProtoReflect() protoreflect.Message {
mi := &file_task_task_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 TaskDoStrategyReq.ProtoReflect.Descriptor instead.
func (*TaskDoStrategyReq) Descriptor() ([]byte, []int) {
return file_task_task_msg_proto_rawDescGZIP(), []int{8}
}
func (x *TaskDoStrategyReq) GetHeroCfgId() int32 {
if x != nil {
return x.HeroCfgId
}
return 0
}
type TaskDoStrategyResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
TaskIds []int32 `protobuf:"varint,1,rep,packed,name=taskIds,proto3" json:"taskIds"` //任务ID
}
func (x *TaskDoStrategyResp) Reset() {
*x = TaskDoStrategyResp{}
if protoimpl.UnsafeEnabled {
mi := &file_task_task_msg_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TaskDoStrategyResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TaskDoStrategyResp) ProtoMessage() {}
func (x *TaskDoStrategyResp) ProtoReflect() protoreflect.Message {
mi := &file_task_task_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 TaskDoStrategyResp.ProtoReflect.Descriptor instead.
func (*TaskDoStrategyResp) Descriptor() ([]byte, []int) {
return file_task_task_msg_proto_rawDescGZIP(), []int{9}
}
func (x *TaskDoStrategyResp) GetTaskIds() []int32 {
if x != nil {
return x.TaskIds
}
return nil
}
var File_task_task_msg_proto protoreflect.FileDescriptor
var file_task_task_msg_proto_rawDesc = []byte{
@ -444,20 +547,27 @@ var file_task_task_msg_proto_rawDesc = []byte{
0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x2d, 0x0a, 0x11, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63,
0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x74,
0x61, 0x73, 0x6b, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x61,
0x73, 0x6b, 0x54, 0x61, 0x67, 0x22, 0x37, 0x0a, 0x12, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74,
0x73, 0x6b, 0x54, 0x61, 0x67, 0x22, 0x4f, 0x0a, 0x12, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74,
0x69, 0x76, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x21, 0x0a, 0x04, 0x6c,
0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x44, 0x42, 0x54, 0x61,
0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x40,
0x0a, 0x14, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x63, 0x65,
0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x61,
0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x61, 0x67,
0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
0x22, 0x41, 0x0a, 0x15, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65,
0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x73,
0x6b, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x61, 0x73, 0x6b,
0x54, 0x61, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x02, 0x69, 0x64, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x33,
0x73, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x16,
0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x40, 0x0a, 0x14, 0x54, 0x61, 0x73, 0x6b, 0x41, 0x63,
0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18,
0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
0x07, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x61, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x41, 0x0a, 0x15, 0x54, 0x61, 0x73, 0x6b,
0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73,
0x70, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01,
0x28, 0x05, 0x52, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x61, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69,
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x31, 0x0a, 0x11, 0x54,
0x61, 0x73, 0x6b, 0x44, 0x6f, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x65, 0x71,
0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x43, 0x66, 0x67, 0x49, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x05, 0x52, 0x09, 0x68, 0x65, 0x72, 0x6f, 0x43, 0x66, 0x67, 0x49, 0x64, 0x22, 0x2e,
0x0a, 0x12, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x6f, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79,
0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x18,
0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73, 0x42, 0x06,
0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@ -472,7 +582,7 @@ func file_task_task_msg_proto_rawDescGZIP() []byte {
return file_task_task_msg_proto_rawDescData
}
var file_task_task_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
var file_task_task_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
var file_task_task_msg_proto_goTypes = []interface{}{
(*TaskReceiveReq)(nil), // 0: TaskReceiveReq
(*TaskReceiveResp)(nil), // 1: TaskReceiveResp
@ -482,17 +592,19 @@ var file_task_task_msg_proto_goTypes = []interface{}{
(*TaskActiveListResp)(nil), // 5: TaskActiveListResp
(*TaskActiveReceiveReq)(nil), // 6: TaskActiveReceiveReq
(*TaskActiveReceiveResp)(nil), // 7: TaskActiveReceiveResp
(*DBTask)(nil), // 8: DBTask
(*DBTaskActive)(nil), // 9: DBTaskActive
(*TaskDoStrategyReq)(nil), // 8: TaskDoStrategyReq
(*TaskDoStrategyResp)(nil), // 9: TaskDoStrategyResp
(*DBTask)(nil), // 10: DBTask
(*DBTaskActive)(nil), // 11: DBTaskActive
}
var file_task_task_msg_proto_depIdxs = []int32{
8, // 0: TaskListResp.list:type_name -> DBTask
9, // 1: TaskActiveListResp.list:type_name -> DBTaskActive
2, // [2:2] is the sub-list for method output_type
2, // [2:2] is the sub-list for method input_type
2, // [2:2] is the sub-list for extension type_name
2, // [2:2] is the sub-list for extension extendee
0, // [0:2] is the sub-list for field type_name
10, // 0: TaskListResp.list:type_name -> DBTask
11, // 1: TaskActiveListResp.list:type_name -> DBTaskActive
2, // [2:2] is the sub-list for method output_type
2, // [2:2] is the sub-list for method input_type
2, // [2:2] is the sub-list for extension type_name
2, // [2:2] is the sub-list for extension extendee
0, // [0:2] is the sub-list for field type_name
}
func init() { file_task_task_msg_proto_init() }
@ -598,6 +710,30 @@ func file_task_task_msg_proto_init() {
return nil
}
}
file_task_task_msg_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TaskDoStrategyReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_task_task_msg_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TaskDoStrategyResp); 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{
@ -605,7 +741,7 @@ func file_task_task_msg_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_task_task_msg_proto_rawDesc,
NumEnums: 0,
NumMessages: 8,
NumMessages: 10,
NumExtensions: 0,
NumServices: 0,
},

188
pb/userrecord.pb.go Normal file
View File

@ -0,0 +1,188 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.0
// protoc v3.20.0
// source: userrecord.proto
package pb
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
//用户扩展数据
type DBUserRecord struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` // 主键id
Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid"` // 用户id
Type int32 `protobuf:"varint,3,opt,name=type,proto3" json:"type"` // 数据类型
Parame int32 `protobuf:"varint,4,opt,name=parame,proto3" json:"parame"` // 参数
Value int32 `protobuf:"varint,5,opt,name=value,proto3" json:"value"` // 值
Ctime int64 `protobuf:"varint,6,opt,name=ctime,proto3" json:"ctime"` // 创建时间
}
func (x *DBUserRecord) Reset() {
*x = DBUserRecord{}
if protoimpl.UnsafeEnabled {
mi := &file_userrecord_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DBUserRecord) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DBUserRecord) ProtoMessage() {}
func (x *DBUserRecord) ProtoReflect() protoreflect.Message {
mi := &file_userrecord_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DBUserRecord.ProtoReflect.Descriptor instead.
func (*DBUserRecord) Descriptor() ([]byte, []int) {
return file_userrecord_proto_rawDescGZIP(), []int{0}
}
func (x *DBUserRecord) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *DBUserRecord) GetUid() string {
if x != nil {
return x.Uid
}
return ""
}
func (x *DBUserRecord) GetType() int32 {
if x != nil {
return x.Type
}
return 0
}
func (x *DBUserRecord) GetParame() int32 {
if x != nil {
return x.Parame
}
return 0
}
func (x *DBUserRecord) GetValue() int32 {
if x != nil {
return x.Value
}
return 0
}
func (x *DBUserRecord) GetCtime() int64 {
if x != nil {
return x.Ctime
}
return 0
}
var File_userrecord_proto protoreflect.FileDescriptor
var file_userrecord_proto_rawDesc = []byte{
0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x22, 0x88, 0x01, 0x0a, 0x0c, 0x44, 0x42, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63,
0x6f, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20,
0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72,
0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d,
0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05,
0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65,
0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x06, 0x5a,
0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_userrecord_proto_rawDescOnce sync.Once
file_userrecord_proto_rawDescData = file_userrecord_proto_rawDesc
)
func file_userrecord_proto_rawDescGZIP() []byte {
file_userrecord_proto_rawDescOnce.Do(func() {
file_userrecord_proto_rawDescData = protoimpl.X.CompressGZIP(file_userrecord_proto_rawDescData)
})
return file_userrecord_proto_rawDescData
}
var file_userrecord_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_userrecord_proto_goTypes = []interface{}{
(*DBUserRecord)(nil), // 0: DBUserRecord
}
var file_userrecord_proto_depIdxs = []int32{
0, // [0:0] is the sub-list for method output_type
0, // [0:0] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_userrecord_proto_init() }
func file_userrecord_proto_init() {
if File_userrecord_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_userrecord_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DBUserRecord); 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{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_userrecord_proto_rawDesc,
NumEnums: 0,
NumMessages: 1,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_userrecord_proto_goTypes,
DependencyIndexes: file_userrecord_proto_depIdxs,
MessageInfos: file_userrecord_proto_msgTypes,
}.Build()
File_userrecord_proto = out.File
file_userrecord_proto_rawDesc = nil
file_userrecord_proto_goTypes = nil
file_userrecord_proto_depIdxs = nil
}

View File

@ -8,9 +8,9 @@ import (
"go_dreamfactory/modules/hero"
"go_dreamfactory/modules/items"
"go_dreamfactory/modules/mail"
"go_dreamfactory/modules/mainline"
"go_dreamfactory/modules/notify"
"go_dreamfactory/modules/shop"
"go_dreamfactory/modules/story"
"go_dreamfactory/modules/task"
"go_dreamfactory/modules/user"
"go_dreamfactory/services"
@ -49,7 +49,7 @@ func main() {
hero.NewModule(),
equipment.NewModule(),
task.NewModule(),
story.NewModule(),
mainline.NewModule(),
shop.NewModule(),
notify.NewModule(),
)

View File

@ -40,18 +40,19 @@ type Tables struct {
heroResonance *Game_heroResonance
comAtn *Game_comAtn
heroAwaken *Game_heroAwaken
heroMethod *Game_heroMethod
shop *Game_shop
shopitem *Game_shopitem
taskRound *Game_taskRound
activeReward *Game_activeReward
storyChapter *Game_storyChapter
storyEasy *Game_storyEasy
storyHard *Game_storyHard
storyPurgatory *Game_storyPurgatory
serverList *Game_serverList
com *Game_com
newSkill *Game_newSkill
model *Game_model
mainlineChapter *Game_mainlineChapter
mainlineEasy *Game_mainlineEasy
mainlineHard *Game_mainlineHard
mainlinePurgatory *Game_mainlinePurgatory
}
func NewTables(loader JsonLoader) (*Tables, error) {
@ -227,6 +228,12 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.heroAwaken, err = NewGame_heroAwaken(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_heromethod") ; err != nil {
return nil, err
}
if tables.heroMethod, err = NewGame_heroMethod(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_shop") ; err != nil {
return nil, err
}
@ -251,30 +258,6 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.activeReward, err = NewGame_activeReward(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_storychapter") ; err != nil {
return nil, err
}
if tables.storyChapter, err = NewGame_storyChapter(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_storyeasy") ; err != nil {
return nil, err
}
if tables.storyEasy, err = NewGame_storyEasy(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_storyhard") ; err != nil {
return nil, err
}
if tables.storyHard, err = NewGame_storyHard(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_storypurgatory") ; err != nil {
return nil, err
}
if tables.storyPurgatory, err = NewGame_storyPurgatory(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_serverlist") ; err != nil {
return nil, err
}
@ -299,5 +282,29 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.model, err = NewGame_model(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_mainlinechapter") ; err != nil {
return nil, err
}
if tables.mainlineChapter, err = NewGame_mainlineChapter(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_mainlineeasy") ; err != nil {
return nil, err
}
if tables.mainlineEasy, err = NewGame_mainlineEasy(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_mainlinehard") ; err != nil {
return nil, err
}
if tables.mainlineHard, err = NewGame_mainlineHard(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_mainlinepurgatory") ; err != nil {
return nil, err
}
if tables.mainlinePurgatory, err = NewGame_mainlinePurgatory(buf) ; err != nil {
return nil, err
}
return tables, nil
}

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

View File

@ -0,0 +1,31 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
import "errors"
type Game_drawCardData struct {
Key int32
Id int32
TypeId int32
Weight int32
}
func (Game_drawCardData) GetTypeId() int {
return -179684166
}
func NewGame_drawCardData(_buf map[string]interface{}) (_v *Game_drawCardData, err error) {
_v = &Game_drawCardData{}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["key"].(float64); !_ok_ { err = errors.New("key error"); return }; _v.Key = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["type_id"].(float64); !_ok_ { err = errors.New("type_id error"); return }; _v.TypeId = 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_) }
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 Game_drawUpdraw struct {
_dataMap map[int32]*Game_drawUpdrawData
_dataList []*Game_drawUpdrawData
}
func NewGame_drawUpdraw(_buf []map[string]interface{}) (*Game_drawUpdraw, error) {
_dataList := make([]*Game_drawUpdrawData, 0, len(_buf))
dataMap := make(map[int32]*Game_drawUpdrawData)
for _, _ele_ := range _buf {
if _v, err2 := NewGame_drawUpdrawData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Key] = _v
}
}
return &Game_drawUpdraw{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *Game_drawUpdraw) GetDataMap() map[int32]*Game_drawUpdrawData {
return table._dataMap
}
func (table *Game_drawUpdraw) GetDataList() []*Game_drawUpdrawData {
return table._dataList
}
func (table *Game_drawUpdraw) Get(key int32) *Game_drawUpdrawData {
return table._dataMap[key]
}

View File

@ -0,0 +1,33 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
import "errors"
type Game_drawUpdrawData struct {
Key int32
Time int32
Duration int32
UpHero int32
UpWeight int32
}
func (Game_drawUpdrawData) GetTypeId() int {
return 297664649
}
func NewGame_drawUpdrawData(_buf map[string]interface{}) (_v *Game_drawUpdrawData, err error) {
_v = &Game_drawUpdrawData{}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["key"].(float64); !_ok_ { err = errors.New("key error"); return }; _v.Key = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["time"].(float64); !_ok_ { err = errors.New("time error"); return }; _v.Time = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["duration"].(float64); !_ok_ { err = errors.New("duration error"); return }; _v.Duration = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["up_hero"].(float64); !_ok_ { err = errors.New("up_hero error"); return }; _v.UpHero = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["up_weight"].(float64); !_ok_ { err = errors.New("up_weight error"); return }; _v.UpWeight = int32(_tempNum_) }
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 Game_heroMethod struct {
_dataMap map[int32]*Game_heroMethodData
_dataList []*Game_heroMethodData
}
func NewGame_heroMethod(_buf []map[string]interface{}) (*Game_heroMethod, error) {
_dataList := make([]*Game_heroMethodData, 0, len(_buf))
dataMap := make(map[int32]*Game_heroMethodData)
for _, _ele_ := range _buf {
if _v, err2 := NewGame_heroMethodData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Hid] = _v
}
}
return &Game_heroMethod{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *Game_heroMethod) GetDataMap() map[int32]*Game_heroMethodData {
return table._dataMap
}
func (table *Game_heroMethod) GetDataList() []*Game_heroMethodData {
return table._dataList
}
func (table *Game_heroMethod) Get(key int32) *Game_heroMethodData {
return table._dataMap[key]
}

Some files were not shown because too many files have changed in this diff Show More