From 05a51354792204c531c8e64e8ead4302195ffe8a Mon Sep 17 00:00:00 2001 From: liwei1dao Date: Fri, 3 Mar 2023 15:46:58 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=AD=A6=E9=A6=86?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/json/game_pandamasjx.json | 54 ++- bin/json/game_pandamasmryl.json | 72 ++++ bin/json/game_pandamasmz.json | 10 +- bin/json/game_pandamastj.json | 599 +++++++++++++++++++++++++------- modules/practice/api_accept.go | 99 ++++-- modules/practice/api_loot.go | 1 + modules/practice/api_qiecuo.go | 52 ++- modules/practice/api_refuse.go | 46 ++- modules/practice/api_upgrade.go | 6 +- modules/practice/modelQiecuo.go | 96 ++--- modules/practice/module.go | 115 ++++-- pb/errorcode.pb.go | 20 +- pb/practice_db.pb.go | 222 +++++++++++- pb/worldtask_msg.pb.go | 164 ++++++++- 14 files changed, 1245 insertions(+), 311 deletions(-) diff --git a/bin/json/game_pandamasjx.json b/bin/json/game_pandamasjx.json index 82e2dc66e..699262ce0 100644 --- a/bin/json/game_pandamasjx.json +++ b/bin/json/game_pandamasjx.json @@ -1,6 +1,7 @@ [ { "id": "10001", + "race": 1, "type": 1, "name": "shirenyu", "color": 3, @@ -22,6 +23,7 @@ }, { "id": "10002", + "race": 2, "type": 1, "name": "shanshan", "color": 3, @@ -43,6 +45,7 @@ }, { "id": "10003", + "race": 3, "type": 1, "name": "shexiansheng", "color": 4, @@ -64,6 +67,7 @@ }, { "id": "10004", + "race": 4, "type": 1, "name": "jinhou", "color": 4, @@ -96,6 +100,7 @@ }, { "id": "10005", + "race": 1, "type": 1, "name": "hedashi", "color": 4, @@ -108,7 +113,7 @@ "key": "wuguanhedashi", "text": "提升可挂机的时间{0}秒" }, - "duration": 1000, + "duration": 1, "exp": 0, "probability": 0, "ants": [], @@ -117,6 +122,7 @@ }, { "id": "10006", + "race": 2, "type": 1, "name": "hanjiaohu", "color": 4, @@ -129,7 +135,7 @@ "key": "wuguanhanjiaohu", "text": "提升可挂机的时间{0}秒" }, - "duration": 1200, + "duration": 1, "exp": 0, "probability": 0, "ants": [], @@ -138,6 +144,7 @@ }, { "id": "10007", + "race": 3, "type": 1, "name": "gai", "color": 5, @@ -150,7 +157,7 @@ "key": "wuguangai", "text": "提升可挂机的时间{0}秒" }, - "duration": 1500, + "duration": 1, "exp": 0, "probability": 0, "ants": [], @@ -159,6 +166,7 @@ }, { "id": "10008", + "race": 4, "type": 1, "name": "xikapu", "color": 5, @@ -171,7 +179,7 @@ "key": "wuguanxikapu", "text": "提升可挂机的时间{0}秒,提升每分钟的经验值获取{0}%" }, - "duration": 1000, + "duration": 1, "exp": 10, "probability": 0, "ants": [], @@ -180,6 +188,7 @@ }, { "id": "10009", + "race": 1, "type": 1, "name": "mao", "color": 5, @@ -212,6 +221,7 @@ }, { "id": "10010", + "race": 2, "type": 1, "name": "shifu", "color": 5, @@ -244,6 +254,7 @@ }, { "id": "10011", + "race": 1, "type": 1, "name": "abao", "color": 5, @@ -276,6 +287,7 @@ }, { "id": "10012", + "race": 2, "type": 1, "name": "wuguidashi", "color": 5, @@ -308,6 +320,7 @@ }, { "id": "20001", + "race": 0, "type": 2, "name": "shisuo", "color": 3, @@ -340,6 +353,7 @@ }, { "id": "20002", + "race": 0, "type": 2, "name": "kongzu", "color": 3, @@ -361,6 +375,7 @@ }, { "id": "20003", + "race": 0, "type": 2, "name": "mupajia", "color": 3, @@ -382,6 +397,7 @@ }, { "id": "20004", + "race": 0, "type": 2, "name": "budaoweng", "color": 3, @@ -403,6 +419,7 @@ }, { "id": "20005", + "race": 0, "type": 2, "name": "bangchui", "color": 4, @@ -415,7 +432,7 @@ "key": "wuguanbangchui", "text": "提升可挂机的时间{0}秒" }, - "duration": 1000, + "duration": 1, "exp": 0, "probability": 0, "ants": [], @@ -424,6 +441,7 @@ }, { "id": "20006", + "race": 0, "type": 2, "name": "tongling", "color": 4, @@ -436,7 +454,7 @@ "key": "wuguantongling", "text": "提升可挂机的时间{0}秒" }, - "duration": 1200, + "duration": 1, "exp": 0, "probability": 0, "ants": [], @@ -445,6 +463,7 @@ }, { "id": "20007", + "race": 0, "type": 2, "name": "diaohuan", "color": 4, @@ -457,7 +476,7 @@ "key": "wuguandiaohuan", "text": "提升可挂机的时间{0}秒" }, - "duration": 1500, + "duration": 1, "exp": 0, "probability": 0, "ants": [], @@ -466,6 +485,7 @@ }, { "id": "20008", + "race": 0, "type": 2, "name": "tuoluo", "color": 4, @@ -478,7 +498,7 @@ "key": "wuguantuoluo", "text": "提升可挂机的时间{0}秒,提升每分钟的经验值获取{0}%" }, - "duration": 1000, + "duration": 1, "exp": 0, "probability": 0, "ants": [], @@ -487,6 +507,7 @@ }, { "id": "20009", + "race": 0, "type": 2, "name": "dazhuanlun", "color": 4, @@ -519,6 +540,7 @@ }, { "id": "20010", + "race": 0, "type": 2, "name": "mutoupai", "color": 4, @@ -551,6 +573,7 @@ }, { "id": "20011", + "race": 0, "type": 2, "name": "shuangjiegun", "color": 4, @@ -583,6 +606,7 @@ }, { "id": "20012", + "race": 0, "type": 2, "name": "liangongdai", "color": 4, @@ -615,6 +639,7 @@ }, { "id": "20013", + "race": 0, "type": 2, "name": "qicaihuagun", "color": 4, @@ -647,6 +672,7 @@ }, { "id": "20014", + "race": 0, "type": 2, "name": "liuxingfeibiao", "color": 4, @@ -659,7 +685,7 @@ "key": "wuguanliuxingfeibiao", "text": "提升可挂机的时间{0}秒" }, - "duration": 1000, + "duration": 1, "exp": 0, "probability": 0, "ants": [], @@ -668,6 +694,7 @@ }, { "id": "20015", + "race": 0, "type": 2, "name": "mingxiangluo", "color": 5, @@ -680,7 +707,7 @@ "key": "wuguanmingxiangluo", "text": "提升可挂机的时间{0}秒" }, - "duration": 1200, + "duration": 1, "exp": 0, "probability": 0, "ants": [], @@ -689,6 +716,7 @@ }, { "id": "20016", + "race": 0, "type": 2, "name": "caitiaolong", "color": 5, @@ -701,7 +729,7 @@ "key": "wuguancaitiaolong", "text": "提升可挂机的时间{0}秒,提升每分钟的经验值获取{0}%" }, - "duration": 1500, + "duration": 1, "exp": 10, "probability": 0, "ants": [], @@ -710,6 +738,7 @@ }, { "id": "20017", + "race": 0, "type": 2, "name": "kongquemaosan", "color": 5, @@ -740,6 +769,7 @@ }, { "id": "20018", + "race": 0, "type": 2, "name": "pinghengmu", "color": 5, @@ -770,6 +800,7 @@ }, { "id": "20019", + "race": 0, "type": 2, "name": "tiehuan", "color": 5, @@ -800,6 +831,7 @@ }, { "id": "20020", + "race": 0, "type": 2, "name": "taijiqiu", "color": 5, diff --git a/bin/json/game_pandamasmryl.json b/bin/json/game_pandamasmryl.json index 71bcfe066..7f7a300a4 100644 --- a/bin/json/game_pandamasmryl.json +++ b/bin/json/game_pandamasmryl.json @@ -5,6 +5,12 @@ "key": "wuguandongzuo_101", "text": "开合跳" }, + "icon": "", + "des": { + "key": "wuguandongzuo_", + "text": "开合跳" + }, + "p": 200, "buff_group": 1000001 }, { @@ -13,6 +19,12 @@ "key": "wuguandongzuo_102", "text": "手臂环绕" }, + "icon": "", + "des": { + "key": "wuguandongzuo_", + "text": "手臂环绕" + }, + "p": 200, "buff_group": 1000001 }, { @@ -21,6 +33,12 @@ "key": "wuguandongzuo_103", "text": "肩部拉伸" }, + "icon": "", + "des": { + "key": "wuguandongzuo_", + "text": "肩部拉伸" + }, + "p": 200, "buff_group": 1000001 }, { @@ -29,6 +47,12 @@ "key": "wuguandongzuo_104", "text": "波比" }, + "icon": "", + "des": { + "key": "wuguandongzuo_", + "text": "波比" + }, + "p": 200, "buff_group": 1000001 }, { @@ -37,6 +61,12 @@ "key": "wuguandongzuo_105", "text": "交错俯卧撑" }, + "icon": "", + "des": { + "key": "wuguandongzuo_", + "text": "交错俯卧撑" + }, + "p": 200, "buff_group": 1000001 }, { @@ -45,6 +75,12 @@ "key": "wuguandongzuo_106", "text": "钻石俯卧撑" }, + "icon": "", + "des": { + "key": "wuguandongzuo_", + "text": "钻石俯卧撑" + }, + "p": 200, "buff_group": 1000001 }, { @@ -53,6 +89,12 @@ "key": "wuguandongzuo_107", "text": "掌上压后转身" }, + "icon": "", + "des": { + "key": "wuguandongzuo_", + "text": "掌上压后转身" + }, + "p": 200, "buff_group": 1000001 }, { @@ -61,6 +103,12 @@ "key": "wuguandongzuo_108", "text": "眼镜蛇式拉伸" }, + "icon": "", + "des": { + "key": "wuguandongzuo_", + "text": "眼镜蛇式拉伸" + }, + "p": 200, "buff_group": 1000001 }, { @@ -69,6 +117,12 @@ "key": "wuguandongzuo_109", "text": "胸部拉伸" }, + "icon": "", + "des": { + "key": "wuguandongzuo_", + "text": "胸部拉伸" + }, + "p": 200, "buff_group": 1000001 }, { @@ -77,6 +131,12 @@ "key": "wuguandongzuo_110", "text": "原地跑" }, + "icon": "", + "des": { + "key": "wuguandongzuo_", + "text": "原地跑" + }, + "p": 200, "buff_group": 1000001 }, { @@ -85,6 +145,12 @@ "key": "wuguandongzuo_111", "text": "深蹲" }, + "icon": "", + "des": { + "key": "wuguandongzuo_", + "text": "深蹲" + }, + "p": 200, "buff_group": 1000001 }, { @@ -93,6 +159,12 @@ "key": "wuguandongzuo_112", "text": "仰卧起坐" }, + "icon": "", + "des": { + "key": "wuguandongzuo_", + "text": "仰卧起坐" + }, + "p": 200, "buff_group": 1000001 } ] \ No newline at end of file diff --git a/bin/json/game_pandamasmz.json b/bin/json/game_pandamasmz.json index 084ca2a3e..140b169f7 100644 --- a/bin/json/game_pandamasmz.json +++ b/bin/json/game_pandamasmz.json @@ -28,7 +28,7 @@ } ], "min_exp": 10, - "placement_duration": 14400, + "placement_duration": 2, "prop_position": 0, "photo_guide_unlocking": [] }, @@ -61,7 +61,7 @@ } ], "min_exp": 15, - "placement_duration": 18000, + "placement_duration": 2, "prop_position": 1, "photo_guide_unlocking": [] }, @@ -94,7 +94,7 @@ } ], "min_exp": 20, - "placement_duration": 21600, + "placement_duration": 2, "prop_position": 1, "photo_guide_unlocking": [] }, @@ -127,7 +127,7 @@ } ], "min_exp": 25, - "placement_duration": 25200, + "placement_duration": 2, "prop_position": 1, "photo_guide_unlocking": [] }, @@ -144,7 +144,7 @@ }, "up_lv_consume": [], "min_exp": 30, - "placement_duration": 28800, + "placement_duration": 2, "prop_position": 1, "photo_guide_unlocking": [] } diff --git a/bin/json/game_pandamastj.json b/bin/json/game_pandamastj.json index fd178b2f3..bb7f71be3 100644 --- a/bin/json/game_pandamastj.json +++ b/bin/json/game_pandamastj.json @@ -1,274 +1,631 @@ [ { - "id": "10110", + "id": "100001", "tab_id": 1, "name_text": { - "key": "1", - "text": "神龙卷轴残卷一" + "key": "wuguan_1", + "text": "Lv1木桩" }, "effect_text": { - "key": "1", - "text": "神龙卷轴残卷一" + "key": "wuguan_1", + "text": "道具效果描述" }, "content_text": { - "key": "1", - "text": "神龙卷轴来历描述" + "key": "wuguan_1", + "text": "图鉴信息描述" }, "atlas_score": 30 }, { - "id": "10111", + "id": "100002", "tab_id": 1, "name_text": { - "key": "2", - "text": "神龙卷轴残卷二" + "key": "wuguan_1", + "text": "Lv2木桩" }, "effect_text": { - "key": "2", - "text": "神龙卷轴残卷二" + "key": "wuguan_1", + "text": "道具效果描述" }, "content_text": { - "key": "2", - "text": "神龙卷轴来历描述" + "key": "wuguan_1", + "text": "图鉴信息描述" }, "atlas_score": 45 }, { - "id": "10112", + "id": "100003", "tab_id": 1, "name_text": { - "key": "3", - "text": "神龙卷轴残卷三" + "key": "wuguan_1", + "text": "Lv3木桩" }, "effect_text": { - "key": "3", - "text": "神龙卷轴残卷三" + "key": "wuguan_1", + "text": "道具效果描述" }, "content_text": { - "key": "3", - "text": "神龙卷轴来历描述" + "key": "wuguan_1", + "text": "图鉴信息描述" }, "atlas_score": 60 }, { - "id": "10113", + "id": "100004", "tab_id": 1, "name_text": { - "key": "4", - "text": "神龙卷轴残卷四" + "key": "wuguan_1", + "text": "Lv4木桩" }, "effect_text": { - "key": "4", - "text": "神龙卷轴残卷四" + "key": "wuguan_1", + "text": "道具效果描述" }, "content_text": { - "key": "4", - "text": "神龙卷轴来历描述" + "key": "wuguan_1", + "text": "图鉴信息描述" }, "atlas_score": 75 }, { - "id": "10210", - "tab_id": 2, + "id": "100005", + "tab_id": 1, "name_text": { - "key": "5", - "text": "魔法大师卷一" + "key": "wuguan_1", + "text": "Lv5木桩" }, "effect_text": { - "key": "5", - "text": "魔法大师卷一" + "key": "wuguan_1", + "text": "道具效果描述" }, "content_text": { - "key": "5", - "text": "魔法大师来历描述" + "key": "wuguan_1", + "text": "图鉴信息描述" }, "atlas_score": 90 }, { - "id": "10211", + "id": "10001", "tab_id": 2, "name_text": { - "key": "6", - "text": "魔法大师卷二" + "key": "wuguan_2", + "text": "食人鱼" }, "effect_text": { - "key": "6", - "text": "魔法大师卷二" + "key": "wuguan_2", + "text": "道具效果描述" }, "content_text": { - "key": "6", - "text": "魔法大师来历描述" + "key": "wuguan_2", + "text": "图鉴信息描述" }, "atlas_score": 105 }, { - "id": "10212", + "id": "10002", "tab_id": 2, "name_text": { - "key": "7", - "text": "魔法大师卷三" + "key": "wuguan_2", + "text": "闪闪" }, "effect_text": { - "key": "7", - "text": "魔法大师卷三" + "key": "wuguan_2", + "text": "道具效果描述" }, "content_text": { - "key": "7", - "text": "魔法大师来历描述" + "key": "wuguan_2", + "text": "图鉴信息描述" }, "atlas_score": 120 }, { - "id": "10213", + "id": "10003", "tab_id": 2, "name_text": { - "key": "8", - "text": "魔法大师卷四" + "key": "wuguan_2", + "text": "蛇先生" }, "effect_text": { - "key": "8", - "text": "魔法大师卷四" + "key": "wuguan_2", + "text": "道具效果描述" }, "content_text": { - "key": "8", - "text": "魔法大师来历描述" + "key": "wuguan_2", + "text": "图鉴信息描述" }, "atlas_score": 135 }, { - "id": "10310", - "tab_id": 3, + "id": "10004", + "tab_id": 2, "name_text": { - "key": "1", - "text": "神龙卷轴残卷一" + "key": "wuguan_2", + "text": "金猴" }, "effect_text": { - "key": "1", - "text": "神龙卷轴残卷一" + "key": "wuguan_2", + "text": "道具效果描述" }, "content_text": { - "key": "1", - "text": "神龙卷轴来历描述" + "key": "wuguan_2", + "text": "图鉴信息描述" }, "atlas_score": 150 }, { - "id": "10311", - "tab_id": 3, + "id": "10005", + "tab_id": 2, "name_text": { - "key": "2", - "text": "神龙卷轴残卷二" + "key": "wuguan_2", + "text": "鹤大师" }, "effect_text": { - "key": "2", - "text": "神龙卷轴残卷二" + "key": "wuguan_2", + "text": "道具效果描述" }, "content_text": { - "key": "2", - "text": "神龙卷轴来历描述" + "key": "wuguan_2", + "text": "图鉴信息描述" }, "atlas_score": 165 }, { - "id": "10312", - "tab_id": 3, + "id": "10006", + "tab_id": 2, "name_text": { - "key": "3", - "text": "神龙卷轴残卷三" + "key": "wuguan_2", + "text": "悍娇虎" }, "effect_text": { - "key": "3", - "text": "神龙卷轴残卷三" + "key": "wuguan_2", + "text": "道具效果描述" }, "content_text": { - "key": "3", - "text": "神龙卷轴来历描述" + "key": "wuguan_2", + "text": "图鉴信息描述" }, "atlas_score": 180 }, { - "id": "10313", - "tab_id": 3, + "id": "10007", + "tab_id": 2, "name_text": { - "key": "4", - "text": "神龙卷轴残卷四" + "key": "wuguan_2", + "text": "盖" }, "effect_text": { - "key": "4", - "text": "神龙卷轴残卷四" + "key": "wuguan_2", + "text": "道具效果描述" }, "content_text": { - "key": "4", - "text": "神龙卷轴来历描述" + "key": "wuguan_2", + "text": "图鉴信息描述" }, "atlas_score": 195 }, { - "id": "10013", - "tab_id": 4, + "id": "10008", + "tab_id": 2, "name_text": { - "key": "5", - "text": "魔法大师卷一" + "key": "wuguan_2", + "text": "希卡普" }, "effect_text": { - "key": "5", - "text": "魔法大师卷一" + "key": "wuguan_2", + "text": "道具效果描述" }, "content_text": { - "key": "5", - "text": "魔法大师来历描述" + "key": "wuguan_2", + "text": "图鉴信息描述" }, "atlas_score": 210 }, { - "id": "10014", - "tab_id": 4, + "id": "10009", + "tab_id": 2, "name_text": { - "key": "6", - "text": "魔法大师卷二" + "key": "wuguan_2", + "text": "穿靴猫" }, "effect_text": { - "key": "6", - "text": "魔法大师卷二" + "key": "wuguan_2", + "text": "道具效果描述" }, "content_text": { - "key": "6", - "text": "魔法大师来历描述" + "key": "wuguan_2", + "text": "图鉴信息描述" }, "atlas_score": 225 }, { - "id": "10015", - "tab_id": 4, + "id": "10010", + "tab_id": 2, "name_text": { - "key": "7", - "text": "魔法大师卷三" + "key": "wuguan_2", + "text": "师父" }, "effect_text": { - "key": "7", - "text": "魔法大师卷三" + "key": "wuguan_2", + "text": "道具效果描述" }, "content_text": { - "key": "7", - "text": "魔法大师来历描述" + "key": "wuguan_2", + "text": "图鉴信息描述" }, "atlas_score": 240 }, { - "id": "10016", - "tab_id": 4, + "id": "10011", + "tab_id": 2, "name_text": { - "key": "8", - "text": "魔法大师卷四" + "key": "wuguan_2", + "text": "阿宝" }, "effect_text": { - "key": "8", - "text": "魔法大师卷四" + "key": "wuguan_2", + "text": "道具效果描述" }, "content_text": { - "key": "8", - "text": "魔法大师来历描述" + "key": "wuguan_2", + "text": "图鉴信息描述" }, "atlas_score": 255 + }, + { + "id": "10012", + "tab_id": 2, + "name_text": { + "key": "wuguan_2", + "text": "乌龟大师" + }, + "effect_text": { + "key": "wuguan_2", + "text": "道具效果描述" + }, + "content_text": { + "key": "wuguan_2", + "text": "图鉴信息描述" + }, + "atlas_score": 270 + }, + { + "id": "20001", + "tab_id": 3, + "name_text": { + "key": "wuguan_3", + "text": "石锁" + }, + "effect_text": { + "key": "wuguan_3", + "text": "道具效果描述" + }, + "content_text": { + "key": "wuguan_3", + "text": "图鉴信息描述" + }, + "atlas_score": 285 + }, + { + "id": "20002", + "tab_id": 3, + "name_text": { + "key": "wuguan_3", + "text": "双头空竹" + }, + "effect_text": { + "key": "wuguan_3", + "text": "道具效果描述" + }, + "content_text": { + "key": "wuguan_3", + "text": "图鉴信息描述" + }, + "atlas_score": 300 + }, + { + "id": "20003", + "tab_id": 3, + "name_text": { + "key": "wuguan_3", + "text": "木爬架" + }, + "effect_text": { + "key": "wuguan_3", + "text": "道具效果描述" + }, + "content_text": { + "key": "wuguan_3", + "text": "图鉴信息描述" + }, + "atlas_score": 315 + }, + { + "id": "20004", + "tab_id": 3, + "name_text": { + "key": "wuguan_3", + "text": "不倒翁" + }, + "effect_text": { + "key": "wuguan_3", + "text": "道具效果描述" + }, + "content_text": { + "key": "wuguan_3", + "text": "图鉴信息描述" + }, + "atlas_score": 330 + }, + { + "id": "20005", + "tab_id": 3, + "name_text": { + "key": "wuguan_3", + "text": "棒槌" + }, + "effect_text": { + "key": "wuguan_3", + "text": "道具效果描述" + }, + "content_text": { + "key": "wuguan_3", + "text": "图鉴信息描述" + }, + "atlas_score": 345 + }, + { + "id": "20006", + "tab_id": 3, + "name_text": { + "key": "wuguan_3", + "text": "铜铃" + }, + "effect_text": { + "key": "wuguan_3", + "text": "道具效果描述" + }, + "content_text": { + "key": "wuguan_3", + "text": "图鉴信息描述" + }, + "atlas_score": 360 + }, + { + "id": "20007", + "tab_id": 3, + "name_text": { + "key": "wuguan_3", + "text": "尖刺吊环" + }, + "effect_text": { + "key": "wuguan_3", + "text": "道具效果描述" + }, + "content_text": { + "key": "wuguan_3", + "text": "图鉴信息描述" + }, + "atlas_score": 375 + }, + { + "id": "20008", + "tab_id": 3, + "name_text": { + "key": "wuguan_3", + "text": "陀螺" + }, + "effect_text": { + "key": "wuguan_3", + "text": "道具效果描述" + }, + "content_text": { + "key": "wuguan_3", + "text": "图鉴信息描述" + }, + "atlas_score": 390 + }, + { + "id": "20009", + "tab_id": 3, + "name_text": { + "key": "wuguan_3", + "text": "大转轮" + }, + "effect_text": { + "key": "wuguan_3", + "text": "道具效果描述" + }, + "content_text": { + "key": "wuguan_3", + "text": "图鉴信息描述" + }, + "atlas_score": 405 + }, + { + "id": "20010", + "tab_id": 3, + "name_text": { + "key": "wuguan_3", + "text": "木头牌" + }, + "effect_text": { + "key": "wuguan_3", + "text": "道具效果描述" + }, + "content_text": { + "key": "wuguan_3", + "text": "图鉴信息描述" + }, + "atlas_score": 420 + }, + { + "id": "20011", + "tab_id": 3, + "name_text": { + "key": "wuguan_3", + "text": "双节棍" + }, + "effect_text": { + "key": "wuguan_3", + "text": "道具效果描述" + }, + "content_text": { + "key": "wuguan_3", + "text": "图鉴信息描述" + }, + "atlas_score": 435 + }, + { + "id": "20012", + "tab_id": 3, + "name_text": { + "key": "wuguan_3", + "text": "练功带" + }, + "effect_text": { + "key": "wuguan_3", + "text": "道具效果描述" + }, + "content_text": { + "key": "wuguan_3", + "text": "图鉴信息描述" + }, + "atlas_score": 450 + }, + { + "id": "20013", + "tab_id": 3, + "name_text": { + "key": "wuguan_3", + "text": "七彩花棍" + }, + "effect_text": { + "key": "wuguan_3", + "text": "道具效果描述" + }, + "content_text": { + "key": "wuguan_3", + "text": "图鉴信息描述" + }, + "atlas_score": 465 + }, + { + "id": "20014", + "tab_id": 3, + "name_text": { + "key": "wuguan_3", + "text": "流星飞镖" + }, + "effect_text": { + "key": "wuguan_3", + "text": "道具效果描述" + }, + "content_text": { + "key": "wuguan_3", + "text": "图鉴信息描述" + }, + "atlas_score": 480 + }, + { + "id": "20015", + "tab_id": 3, + "name_text": { + "key": "wuguan_3", + "text": "冥想锣" + }, + "effect_text": { + "key": "wuguan_3", + "text": "道具效果描述" + }, + "content_text": { + "key": "wuguan_3", + "text": "图鉴信息描述" + }, + "atlas_score": 495 + }, + { + "id": "20016", + "tab_id": 3, + "name_text": { + "key": "wuguan_3", + "text": "彩条龙" + }, + "effect_text": { + "key": "wuguan_3", + "text": "道具效果描述" + }, + "content_text": { + "key": "wuguan_3", + "text": "图鉴信息描述" + }, + "atlas_score": 510 + }, + { + "id": "20017", + "tab_id": 3, + "name_text": { + "key": "wuguan_3", + "text": "孔雀毛扇" + }, + "effect_text": { + "key": "wuguan_3", + "text": "道具效果描述" + }, + "content_text": { + "key": "wuguan_3", + "text": "图鉴信息描述" + }, + "atlas_score": 525 + }, + { + "id": "20018", + "tab_id": 3, + "name_text": { + "key": "wuguan_3", + "text": "平衡木" + }, + "effect_text": { + "key": "wuguan_3", + "text": "道具效果描述" + }, + "content_text": { + "key": "wuguan_3", + "text": "图鉴信息描述" + }, + "atlas_score": 540 + }, + { + "id": "20019", + "tab_id": 3, + "name_text": { + "key": "wuguan_3", + "text": "铁环" + }, + "effect_text": { + "key": "wuguan_3", + "text": "道具效果描述" + }, + "content_text": { + "key": "wuguan_3", + "text": "图鉴信息描述" + }, + "atlas_score": 555 + }, + { + "id": "20020", + "tab_id": 3, + "name_text": { + "key": "wuguan_3", + "text": "太极球" + }, + "effect_text": { + "key": "wuguan_3", + "text": "道具效果描述" + }, + "content_text": { + "key": "wuguan_3", + "text": "图鉴信息描述" + }, + "atlas_score": 570 } ] \ No newline at end of file diff --git a/modules/practice/api_accept.go b/modules/practice/api_accept.go index 773e52ae8..d500798ab 100644 --- a/modules/practice/api_accept.go +++ b/modules/practice/api_accept.go @@ -5,6 +5,7 @@ import ( "go_dreamfactory/lego/sys/log" "go_dreamfactory/pb" "go_dreamfactory/sys/configure" + "time" "google.golang.org/protobuf/proto" ) @@ -22,49 +23,74 @@ func (this *apiComp) Accept(session comm.IUserSession, req *pb.PracticeAcceptReq if code = this.AcceptCheck(session, req); code != pb.ErrorCode_Success { return } + var ( + err error + redRecord *pb.DBPracticeQiecuoRecord + blueRecord *pb.DBPracticeQiecuoRecord + keep bool + ) //校验切磋请求是否超时 - if qr := this.module.modelQiecuo.getQiecuo(req.Uid); qr != nil { - now := configure.Now().Unix() - if now-qr.Timestamp > 10 { //大于10s 切磋超时 - code = pb.ErrorCode_FriendQiecuoTimeout - this.module.Debug("切磋接受超时", log.Field{Key: "uid", Value: session.GetUserId()}) - return + if redRecord, err = this.module.modelQiecuo.queryQiecuo(req.Uid); err != nil { + code = pb.ErrorCode_DBError + return + } + if blueRecord, err = this.module.modelQiecuo.queryQiecuo(session.GetUserId()); err != nil { + code = pb.ErrorCode_DBError + return + } + if redRecord.Status == 1 { //已经在战斗中了 + code = pb.ErrorCode_PracticeQiecuoing + return + } + keep = false + for _, v := range redRecord.Targets { + if v.Uid == session.GetUserId() { + if configure.Now().Sub(time.Unix(v.Timestamp, 0)).Seconds() > 10 { + code = pb.ErrorCode_PracticeInviteTimeOut + return + } + keep = true } - } else { - code = pb.ErrorCode_FriendQiecuoNoRequest + } + if !keep { + code = pb.ErrorCode_ReqParameterError return } - if imodule, err := this.module.service.GetModule(comm.ModulePvp); err == nil { - if ipvp, ok := imodule.(comm.IPvp); ok { - //发起者 red - red := this.module.ModuleUser.GetUser(req.Uid) - if red == nil { - code = pb.ErrorCode_UserNofound - this.module.Error("未找到红方信息", log.Field{Key: "uid", Value: req.Uid}) - return - } - blue := this.module.ModuleUser.GetUser(session.GetUserId()) - if blue == nil { - code = pb.ErrorCode_UserNofound - this.module.Error("未找到蓝方信息", log.Field{Key: "uid", Value: session.GetUserId()}) - return - } - matchId, c := ipvp.CreatePvp( - &pb.PvpUserInfo{Uid: red.Uid, Name: red.Name, Avatar: red.Avatar, Lv: red.Lv}, - &pb.PvpUserInfo{Uid: blue.Uid, Name: blue.Name, Avatar: blue.Avatar, Lv: blue.Lv}, - pb.PvpType_friends, - ) - if c != pb.ErrorCode_Success { - this.module.Debug("createPvp code:", log.Field{Key: "code", Value: c}) - return - } - - //更新状态 - this.module.modelQiecuo.updateQiecuoRecord(req.Uid, session.GetUserId(), matchId) - } + //发起者 red + red := this.module.ModuleUser.GetUser(req.Uid) + if red == nil { + code = pb.ErrorCode_UserNofound + this.module.Error("未找到红方信息", log.Field{Key: "uid", Value: req.Uid}) + return } + blue := this.module.ModuleUser.GetUser(session.GetUserId()) + if blue == nil { + code = pb.ErrorCode_UserNofound + this.module.Error("未找到蓝方信息", log.Field{Key: "uid", Value: session.GetUserId()}) + return + } + if redRecord.Battid, code = this.module.pvp.CreatePvp( + &pb.PvpUserInfo{Uid: red.Uid, Name: red.Name, Avatar: red.Avatar, Lv: red.Lv}, + &pb.PvpUserInfo{Uid: blue.Uid, Name: blue.Name, Avatar: blue.Avatar, Lv: blue.Lv}, + pb.PvpType_friends, + ); code != pb.ErrorCode_Success { + this.module.Error("CreatePvp", log.Field{Key: "code", Value: code}) + return + } + redRecord.Status = 1 + redRecord.Member = []string{session.GetUserId(), req.Uid} + blueRecord.Status = 1 + blueRecord.Member = []string{session.GetUserId(), req.Uid} + this.module.modelQiecuo.Change(session.GetUserId(), map[string]interface{}{ + "status": 1, + "member": redRecord.Member, + }) + this.module.modelQiecuo.Change(req.Uid, map[string]interface{}{ + "status": 1, + "member": redRecord.Member, + }) if err := session.SendMsg(string(this.module.GetType()), "accept", &pb.FriendAcceptResp{ IsSucc: true, @@ -78,3 +104,4 @@ func (this *apiComp) Accept(session comm.IUserSession, req *pb.PracticeAcceptReq return } + diff --git a/modules/practice/api_loot.go b/modules/practice/api_loot.go index 934f7a92d..9cf33ca39 100644 --- a/modules/practice/api_loot.go +++ b/modules/practice/api_loot.go @@ -71,6 +71,7 @@ func (this *apiComp) Loot(session comm.IUserSession, req *pb.PracticeLootReq) (c extra += pconfigure.Duration froom.Pillarf.Prop = req.Prop } + froom.Pillarf.Uid = session.GetUserId() froom.Pillarf.Hero = req.Hero froom.Pillarf.Start = configure.Now().Unix() froom.Pillarf.End = configure.Now().Add(time.Minute * (time.Duration(pillarconfigure.PlacementDuration + extra))).Unix() diff --git a/modules/practice/api_qiecuo.go b/modules/practice/api_qiecuo.go index a336522bb..ea99ac421 100644 --- a/modules/practice/api_qiecuo.go +++ b/modules/practice/api_qiecuo.go @@ -1,9 +1,10 @@ package practice import ( - "errors" "go_dreamfactory/comm" "go_dreamfactory/pb" + "go_dreamfactory/sys/configure" + "time" "google.golang.org/protobuf/proto" ) @@ -20,6 +21,12 @@ func (this *apiComp) Qiecuo(session comm.IUserSession, req *pb.PracticeQiecuoReq if code = this.QiecuoCheck(session, req); code != pb.ErrorCode_Success { return } + var ( + err error + result *pb.DBPracticeQiecuoRecord + fresult *pb.DBPracticeQiecuoRecord + keep bool + ) //目标是否在线 if !this.module.ModuleUser.IsOnline(req.Fid) { @@ -28,22 +35,45 @@ func (this *apiComp) Qiecuo(session comm.IUserSession, req *pb.PracticeQiecuoReq } //切磋请求处理 - if err := this.module.modelQiecuo.qiecuoReq(session.GetUserId(), req.Fid); err != nil { - var customErr = new(comm.CustomError) - if errors.As(err, &customErr) { - code = customErr.Code - } else { - code = pb.ErrorCode_DBError - } + if result, err = this.module.modelQiecuo.queryQiecuo(session.GetUserId()); err != nil { + code = pb.ErrorCode_DBError return } + if fresult, err = this.module.modelQiecuo.queryQiecuo(req.Fid); err != nil { + code = pb.ErrorCode_DBError + return + } + if result.Status == 1 || fresult.Status == 1 { //已经在战斗中了 + code = pb.ErrorCode_PracticeQiecuoing + return + } + keep = false + for _, v := range result.Targets { + if v.Uid == req.Fid { + keep = true + if configure.Now().Sub(time.Unix(v.Timestamp, 0)).Seconds() > 10 { + v.Timestamp = configure.Now().Unix() + } else { + code = pb.ErrorCode_PracticeSent + return + } + } + } + if !keep { + result.Targets = append(result.Targets, &pb.DBPracticeQiecuoInvite{ + Uid: req.Fid, + Timestamp: configure.Now().Unix(), + }) + } + this.module.modelQiecuo.Change(session.GetUserId(), map[string]interface{}{ + "targets": result.Targets, + }) - if err := session.SendMsg(string(this.module.GetType()), "qiecuo", &pb.PracticeQiecuoResp{ - Fid: req.Fid, - }); err != nil { + if err = session.SendMsg(string(this.module.GetType()), "qiecuo", &pb.PracticeQiecuoResp{Fid: req.Fid}); err != nil { code = pb.ErrorCode_SystemError return } + this.module.SendMsgToUser(string(this.module.GetType()), "qiecuonotify", &pb.PracticeQiecuonotifyPush{Uid: session.GetUserId(), NotifyType: 1}, req.Fid) diff --git a/modules/practice/api_refuse.go b/modules/practice/api_refuse.go index 9a6a7a647..da425f251 100644 --- a/modules/practice/api_refuse.go +++ b/modules/practice/api_refuse.go @@ -12,13 +12,54 @@ func (this *apiComp) RefuseCheck(session comm.IUserSession, req *pb.PracticeRefu return } +//拒绝切磋 func (this *apiComp) Refuse(session comm.IUserSession, req *pb.PracticeRefuseReq) (code pb.ErrorCode, data proto.Message) { if code = this.RefuseCheck(session, req); code != pb.ErrorCode_Success { return } + var ( + err error + result *pb.DBPracticeQiecuoRecord + keep bool + room *pb.DBPracticeRoom + ) - //清楚切磋请求记录 - this.module.modelQiecuo.DelByUId(req.Uid) + //切磋请求处理 + if result, err = this.module.modelQiecuo.queryQiecuo(req.Uid); err != nil { + code = pb.ErrorCode_DBError + return + } + keep = false + for i, v := range result.Targets { + if v.Uid == session.GetUserId() { + result.Targets = append(result.Targets[0:i], result.Targets[i+1:]...) + keep = true + } + } + + if !keep { + code = pb.ErrorCode_ReqParameterError + return + } + + this.module.modelQiecuo.Change(session.GetUserId(), map[string]interface{}{ + "targets": result.Targets, + }) + + if room, err = this.module.modelPandata.queryUserMartialhall(req.Uid); err != nil { + code = pb.ErrorCode_DBError + return + } + + for i, v := range room.Statuers { + if v.Uid == session.GetUserId() { //移除雕像 + room.Statuers = append(room.Statuers[0:i], room.Statuers[i+1:]...) + this.module.modelPandata.Change(req.Uid, map[string]interface{}{ + "statuers": room.Statuers, + }) + break + } + } if err := session.SendMsg(string(this.module.GetType()), "refuse", &pb.PracticeRefuseResp{ IsSucc: true, @@ -26,6 +67,7 @@ func (this *apiComp) Refuse(session comm.IUserSession, req *pb.PracticeRefuseReq code = pb.ErrorCode_SystemError return } + this.module.SendMsgToUser(string(this.module.GetType()), "qiecuonotify", &pb.PracticeQiecuonotifyPush{Uid: session.GetUserId(), NotifyType: 3}, req.Uid) return diff --git a/modules/practice/api_upgrade.go b/modules/practice/api_upgrade.go index 132c505b0..ab9ce6862 100644 --- a/modules/practice/api_upgrade.go +++ b/modules/practice/api_upgrade.go @@ -57,6 +57,9 @@ func (this *apiComp) Upgrade(session comm.IUserSession, req *pb.PracticeUpgradeR return } pillar.Lv++ + if room.Pillarf.Lv < pillar.Lv { + room.Pillarf.Lv = pillar.Lv + } switch pillar.Lv { case 2: this.module.atlas.CheckActivatePandaAtlasCollect(session.GetUserId(), "1002") @@ -72,7 +75,8 @@ func (this *apiComp) Upgrade(session comm.IUserSession, req *pb.PracticeUpgradeR break } this.module.modelPandata.Change(session.GetUserId(), map[string]interface{}{ - filed: pillar, + filed: pillar, + "pillarf": room.Pillarf, }) session.SendMsg(string(this.module.GetType()), "upgrade", &pb.PracticeUpgradeResp{Index: req.Index, Lv: pillar.Lv}) return diff --git a/modules/practice/modelQiecuo.go b/modules/practice/modelQiecuo.go index 7ddefba23..b2148eb04 100644 --- a/modules/practice/modelQiecuo.go +++ b/modules/practice/modelQiecuo.go @@ -3,11 +3,11 @@ package practice import ( "go_dreamfactory/comm" "go_dreamfactory/lego/core" - "go_dreamfactory/lego/sys/log" + "go_dreamfactory/lego/sys/mgo" "go_dreamfactory/modules" "go_dreamfactory/pb" - "go_dreamfactory/sys/configure" + "go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/x/bsonx" ) @@ -29,68 +29,46 @@ func (this *modelQiecuo) Init(service core.IService, module core.IModule, comp c return } -func (this *modelQiecuo) getQiecuo(uid string) *pb.QiecuoRecord { - record := &pb.QiecuoRecord{} - if err := this.Get(uid, record); err != nil { - this.module.Errorln(err) - return nil - } - return record -} - // 切磋请求处理 -func (this *modelQiecuo) qiecuoReq(uid, targetUid string) error { - qr := this.getQiecuo(uid) - if qr == nil { - //创建切磋记录 - qr = &pb.QiecuoRecord{ - Uid: uid, - TargetId: targetUid, - Timestamp: configure.Now().Unix(), - Status: 1, //已发起 +func (this *modelQiecuo) queryQiecuo(uid string) (result *pb.DBPracticeQiecuoRecord, err error) { + result = &pb.DBPracticeQiecuoRecord{} + if err = this.Get(uid, result); err != nil && err != mgo.MongodbNil { + this.module.Errorln(err) + } + if err == mgo.MongodbNil { + result = &pb.DBPracticeQiecuoRecord{ + Id: primitive.NewObjectID().Hex(), + Uid: uid, + Targets: make([]*pb.DBPracticeQiecuoInvite, 0), } - if err := this.Add(uid, qr); err != nil { + if err = this.Add(uid, result); err != nil { this.module.Errorln(err) - return err - } - } else { - //如果目标未接受且在超时时间内,不允许再次发送 - now := configure.Now().Unix() - if qr.Status == 1 && now-qr.Timestamp < 10 { - return comm.NewCustomError(pb.ErrorCode_FriendQiecuoRequested) - } else if qr.Status == 2 || qr.MatchId != "" { - return comm.NewCustomError(pb.ErrorCode_FriendQiecuoing) - } else { - update := map[string]interface{}{ - "targetId": targetUid, - "timestamp": configure.Now().Unix(), - } - if err := this.Change(uid, update); err != nil { - return err - } + return } } - - return nil + err = nil + return } - -// 更新切磋记录 -func (this *modelQiecuo) updateQiecuoRecord(uid, targetUid, matchId string) error { - qr := this.getQiecuo(uid) - if qr != nil { - update := map[string]interface{}{ - "matchId": matchId, - "status": 2, //已接受 - "timestamp": configure.Now().Unix(), - } - if err := this.Change(uid, update); err != nil { - this.module.Errorln(err) - return err - } - this.module.Debug("更新切磋", - log.Field{Key: "uid", Value: uid}, - log.Field{Key: "matchId", Value: matchId}) +func (this *modelQiecuo) endQiecuo(uid string) (result *pb.DBPracticeQiecuoRecord, err error) { + result = &pb.DBPracticeQiecuoRecord{} + if err = this.Get(uid, result); err != nil { + this.module.Errorln(err) } - - return nil + this.Change(uid, map[string]interface{}{ + "status": 0, + "battid": "", + "targets": []*pb.DBPracticeQiecuoInvite{}, + "member": []string{}, + }) + for _, v := range result.Member { + if v != uid { + this.Change(v, map[string]interface{}{ + "status": 0, + "battid": "", + "targets": []*pb.DBPracticeQiecuoInvite{}, + "member": []string{}, + }) + } + } + return } diff --git a/modules/practice/module.go b/modules/practice/module.go index 5b2390e7b..f0a99be2e 100644 --- a/modules/practice/module.go +++ b/modules/practice/module.go @@ -5,10 +5,15 @@ import ( "go_dreamfactory/lego/base" "go_dreamfactory/lego/core" "go_dreamfactory/lego/sys/log" + "go_dreamfactory/lego/sys/mgo" "go_dreamfactory/modules" "go_dreamfactory/pb" "go_dreamfactory/sys/configure" cfg "go_dreamfactory/sys/configure/structs" + "go_dreamfactory/sys/db" + "time" + + "go.mongodb.org/mongo-driver/bson/primitive" ) /* @@ -24,7 +29,7 @@ func NewModule() core.IModule { type Practice struct { modules.ModuleBase service base.IRPCXService - friend comm.IFriend + pvp comm.IPvp mail comm.Imail atlas comm.IPandaAtlas api *apiComp @@ -47,10 +52,10 @@ func (this *Practice) Init(service core.IService, module core.IModule, options c func (this *Practice) Start() (err error) { err = this.ModuleBase.Start() var module core.IModule - if module, err = this.service.GetModule(comm.ModuleFriend); err != nil { + if module, err = this.service.GetModule(comm.ModulePvp); err != nil { return } - this.friend = module.(comm.IFriend) + this.pvp = module.(comm.IPvp) if module, err = this.service.GetModule(comm.ModuleMail); err != nil { return } @@ -71,25 +76,70 @@ func (this *Practice) OnInstallComp() { this.modelQiecuo = this.RegisterComp(new(modelQiecuo)).(*modelQiecuo) } +//添加武馆资源 func (this *Practice) AddItems(session comm.IUserSession, items map[string]int32, bPush bool) (code pb.ErrorCode) { var ( err error room *pb.DBPracticeRoom id []string ) - if room, err = this.modelPandata.queryUserMartialhall(session.GetUserId()); err != nil { - code = pb.ErrorCode_DBError - return + if this.IsCross() { + if room, err = this.modelPandata.queryUserMartialhall(session.GetUserId()); err != nil { + code = pb.ErrorCode_DBError + return + } + id = make([]string, 0) + for k, _ := range items { + room.Knapsack[k] = 0 + id = append(id, k) + this.atlas.CheckActivatePandaAtlasCollect(session.GetUserId(), k) + } + this.modelPandata.Change(session.GetUserId(), map[string]interface{}{ + "knapsack": room.Knapsack, + }) + } else { + room := &pb.DBPracticeRoom{} + conn, _ := db.Cross() + model := db.NewDBModel(comm.TablePandata, time.Hour, conn) + if err = model.Get(session.GetUserId(), room); err != nil && err != mgo.MongodbNil { + this.Errorln(err) + } + if err == mgo.MongodbNil { + room = &pb.DBPracticeRoom{ + Id: primitive.NewObjectID().Hex(), + Uid: session.GetUserId(), + Full: make(map[int32]int32), + Knapsack: make(map[string]int32), + Gymaction: 0, + Gymrefresh: 0, + Pillar1: &pb.DBPracticePillar{Index: 1, Isunlock: true, Lv: 1}, + Pillar2: &pb.DBPracticePillar{Index: 2, Lv: 1}, + Pillar3: &pb.DBPracticePillar{Index: 3, Lv: 1}, + Pillarf: &pb.DBPracticePillar{Index: 4, Lv: 1}, + Statuers: make([]*pb.DBPracticeStatuer, 0), + } + id = make([]string, 0) + for k, _ := range items { + room.Knapsack[k] = 0 + id = append(id, k) + this.atlas.CheckActivatePandaAtlasCollect(session.GetUserId(), k) + } + if err = model.Add(session.GetUserId(), room); err != nil { + this.Errorln(err) + return + } + } else { + id = make([]string, 0) + for k, _ := range items { + room.Knapsack[k] = 0 + id = append(id, k) + this.atlas.CheckActivatePandaAtlasCollect(session.GetUserId(), k) + } + model.Change(session.GetUserId(), map[string]interface{}{ + "knapsack": room.Knapsack, + }) + } } - id = make([]string, 0) - for k, _ := range items { - room.Knapsack[k] = 0 - id = append(id, k) - this.atlas.CheckActivatePandaAtlasCollect(session.GetUserId(), k) - } - this.modelPandata.Change(session.GetUserId(), map[string]interface{}{ - "knapsack": room.Knapsack, - }) session.SendMsg(string(this.GetType()), "jxitem", &pb.PracticeJXItemPush{Id: id}) return } @@ -116,8 +166,12 @@ func (this *Practice) TaskComplete(session comm.IUserSession, taskid int32) { if !room.Pillar1.Isunlock { room.Pillar1.Isunlock = true } + if !room.Pillarf.Isunlock { + room.Pillarf.Isunlock = true + } this.modelPandata.Change(session.GetUserId(), map[string]interface{}{ "pillar1": room.Pillar1, + "pillarf": room.Pillarf, }) this.atlas.CheckActivatePandaAtlasCollect(session.GetUserId(), "1001") break @@ -125,8 +179,12 @@ func (this *Practice) TaskComplete(session comm.IUserSession, taskid int32) { if !room.Pillar2.Isunlock { room.Pillar2.Isunlock = true } + if !room.Pillarf.Isunlock { + room.Pillarf.Isunlock = true + } this.modelPandata.Change(session.GetUserId(), map[string]interface{}{ "pillar2": room.Pillar2, + "pillarf": room.Pillarf, }) this.atlas.CheckActivatePandaAtlasCollect(session.GetUserId(), "1001") break @@ -134,8 +192,12 @@ func (this *Practice) TaskComplete(session comm.IUserSession, taskid int32) { if !room.Pillar3.Isunlock { room.Pillar3.Isunlock = true } + if !room.Pillarf.Isunlock { + room.Pillarf.Isunlock = true + } this.modelPandata.Change(session.GetUserId(), map[string]interface{}{ "pillar3": room.Pillar3, + "pillarf": room.Pillarf, }) this.atlas.CheckActivatePandaAtlasCollect(session.GetUserId(), "1001") break @@ -145,6 +207,12 @@ func (this *Practice) TaskComplete(session comm.IUserSession, taskid int32) { } func (this *Practice) ChallengeResults(bid, red, bule string, winSide int32) { + this.Debug("ChallengeResults", + log.Field{Key: "bid", Value: bid}, + log.Field{Key: "red", Value: red}, + log.Field{Key: "bule", Value: bule}, + log.Field{Key: "winSide", Value: winSide}, + ) var ( redroom *pb.DBPracticeRoom reduser *pb.DBUser @@ -154,21 +222,8 @@ func (this *Practice) ChallengeResults(bid, red, bule string, winSide int32) { err error ) - qr := this.modelQiecuo.getQiecuo(red) - if qr != nil && qr.MatchId == bid { - this.Debug("清理切磋记录", - log.Field{Key: "redUid", Value: red}, - log.Field{Key: "matchId", Value: bid}) - //更新时间戳 - update := map[string]interface{}{ - "endTime": configure.Now().Unix(), - } - if err = this.modelQiecuo.Change(red, update); err != nil { - this.Errorln(err) - return - } - return - + if _, err = this.modelQiecuo.endQiecuo(red); err != nil { + this.Errorln(err) } if winSide == 0 { diff --git a/pb/errorcode.pb.go b/pb/errorcode.pb.go index e4c0add70..d93196451 100644 --- a/pb/errorcode.pb.go +++ b/pb/errorcode.pb.go @@ -342,6 +342,10 @@ const ( ErrorCode_DispatchTicketNoEnough ErrorCode = 4203 //门票不足 ErrorCode_DispatchHeroAssigned ErrorCode = 4204 //英雄已派遣 ErrorCode_DispatchTaskExpired ErrorCode = 4205 //任务已过期 + //practice + ErrorCode_PracticeQiecuoing ErrorCode = 4301 //武馆切磋中 + ErrorCode_PracticeSent ErrorCode = 4302 //邀请已发送 10秒内请勿重复邀请 + ErrorCode_PracticeInviteTimeOut ErrorCode = 4303 //邀请超时 ) // Enum value maps for ErrorCode. @@ -633,6 +637,9 @@ var ( 4203: "DispatchTicketNoEnough", 4204: "DispatchHeroAssigned", 4205: "DispatchTaskExpired", + 4301: "PracticeQiecuoing", + 4302: "PracticeSent", + 4303: "PracticeInviteTimeOut", } ErrorCode_value = map[string]int32{ "Success": 0, @@ -921,6 +928,9 @@ var ( "DispatchTicketNoEnough": 4203, "DispatchHeroAssigned": 4204, "DispatchTaskExpired": 4205, + "PracticeQiecuoing": 4301, + "PracticeSent": 4302, + "PracticeInviteTimeOut": 4303, } ) @@ -955,7 +965,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, 0x8d, 0x34, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x6f, 0x2a, 0xd4, 0x34, 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, @@ -1372,8 +1382,12 @@ var file_errorcode_proto_rawDesc = []byte{ 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x10, 0xec, 0x20, 0x12, 0x18, 0x0a, 0x13, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x10, 0xed, - 0x20, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x20, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x51, 0x69, 0x65, + 0x63, 0x75, 0x6f, 0x69, 0x6e, 0x67, 0x10, 0xcd, 0x21, 0x12, 0x11, 0x0a, 0x0c, 0x50, 0x72, 0x61, + 0x63, 0x74, 0x69, 0x63, 0x65, 0x53, 0x65, 0x6e, 0x74, 0x10, 0xce, 0x21, 0x12, 0x1a, 0x0a, 0x15, + 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x4f, 0x75, 0x74, 0x10, 0xcf, 0x21, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pb/practice_db.pb.go b/pb/practice_db.pb.go index f0ae8a56b..74c133c84 100644 --- a/pb/practice_db.pb.go +++ b/pb/practice_db.pb.go @@ -274,7 +274,7 @@ type DBPracticeRoom struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"` //id + 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"` //用户id Gymaction int32 `protobuf:"varint,3,opt,name=gymaction,proto3" json:"gymaction"` //健身房动作 Gymrefresh int32 `protobuf:"varint,4,opt,name=gymrefresh,proto3" json:"gymrefresh"` //健身房刷新次数 @@ -404,6 +404,149 @@ func (x *DBPracticeRoom) GetStatuers() []*DBPracticeStatuer { return nil } +type DBPracticeQiecuoInvite struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"` + Timestamp int64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp"` +} + +func (x *DBPracticeQiecuoInvite) Reset() { + *x = DBPracticeQiecuoInvite{} + if protoimpl.UnsafeEnabled { + mi := &file_practice_practice_db_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DBPracticeQiecuoInvite) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DBPracticeQiecuoInvite) ProtoMessage() {} + +func (x *DBPracticeQiecuoInvite) ProtoReflect() protoreflect.Message { + mi := &file_practice_practice_db_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 DBPracticeQiecuoInvite.ProtoReflect.Descriptor instead. +func (*DBPracticeQiecuoInvite) Descriptor() ([]byte, []int) { + return file_practice_practice_db_proto_rawDescGZIP(), []int{4} +} + +func (x *DBPracticeQiecuoInvite) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *DBPracticeQiecuoInvite) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +//切磋请求记录 +type DBPracticeQiecuoRecord 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"` //发起人id + Targets []*DBPracticeQiecuoInvite `protobuf:"bytes,3,rep,name=targets,proto3" json:"targets"` + Status int32 `protobuf:"varint,4,opt,name=status,proto3" json:"status"` //0邀请中 1战斗中 + Battid string `protobuf:"bytes,5,opt,name=battid,proto3" json:"battid"` + Member []string `protobuf:"bytes,6,rep,name=member,proto3" json:"member"` //接受方id +} + +func (x *DBPracticeQiecuoRecord) Reset() { + *x = DBPracticeQiecuoRecord{} + if protoimpl.UnsafeEnabled { + mi := &file_practice_practice_db_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DBPracticeQiecuoRecord) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DBPracticeQiecuoRecord) ProtoMessage() {} + +func (x *DBPracticeQiecuoRecord) ProtoReflect() protoreflect.Message { + mi := &file_practice_practice_db_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 DBPracticeQiecuoRecord.ProtoReflect.Descriptor instead. +func (*DBPracticeQiecuoRecord) Descriptor() ([]byte, []int) { + return file_practice_practice_db_proto_rawDescGZIP(), []int{5} +} + +func (x *DBPracticeQiecuoRecord) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *DBPracticeQiecuoRecord) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *DBPracticeQiecuoRecord) GetTargets() []*DBPracticeQiecuoInvite { + if x != nil { + return x.Targets + } + return nil +} + +func (x *DBPracticeQiecuoRecord) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *DBPracticeQiecuoRecord) GetBattid() string { + if x != nil { + return x.Battid + } + return "" +} + +func (x *DBPracticeQiecuoRecord) GetMember() []string { + if x != nil { + return x.Member + } + return nil +} + var File_practice_practice_db_proto protoreflect.FileDescriptor var file_practice_practice_db_proto_rawDesc = []byte{ @@ -471,8 +614,24 @@ var file_practice_practice_db_proto_rawDesc = []byte{ 0x6e, 0x61, 0x70, 0x73, 0x61, 0x63, 0x6b, 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, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x48, 0x0a, 0x16, 0x44, 0x42, 0x50, 0x72, + 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x22, 0xb5, 0x01, 0x0a, 0x16, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, + 0x65, 0x51, 0x69, 0x65, 0x63, 0x75, 0x6f, 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, + 0x31, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x44, 0x42, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x51, 0x69, 0x65, + 0x63, 0x75, 0x6f, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x61, + 0x74, 0x74, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x61, 0x74, 0x74, + 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, + 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -487,28 +646,31 @@ func file_practice_practice_db_proto_rawDescGZIP() []byte { return file_practice_practice_db_proto_rawDescData } -var file_practice_practice_db_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_practice_practice_db_proto_msgTypes = make([]protoimpl.MessageInfo, 8) var file_practice_practice_db_proto_goTypes = []interface{}{ - (*DBPracticePillar)(nil), // 0: DBPracticePillar - (*DBPracticeTeacher)(nil), // 1: DBPracticeTeacher - (*DBPracticeStatuer)(nil), // 2: DBPracticeStatuer - (*DBPracticeRoom)(nil), // 3: DBPracticeRoom - nil, // 4: DBPracticeRoom.FullEntry - nil, // 5: DBPracticeRoom.KnapsackEntry + (*DBPracticePillar)(nil), // 0: DBPracticePillar + (*DBPracticeTeacher)(nil), // 1: DBPracticeTeacher + (*DBPracticeStatuer)(nil), // 2: DBPracticeStatuer + (*DBPracticeRoom)(nil), // 3: DBPracticeRoom + (*DBPracticeQiecuoInvite)(nil), // 4: DBPracticeQiecuoInvite + (*DBPracticeQiecuoRecord)(nil), // 5: DBPracticeQiecuoRecord + nil, // 6: DBPracticeRoom.FullEntry + nil, // 7: DBPracticeRoom.KnapsackEntry } var file_practice_practice_db_proto_depIdxs = []int32{ - 4, // 0: DBPracticeRoom.full:type_name -> DBPracticeRoom.FullEntry - 5, // 1: DBPracticeRoom.knapsack:type_name -> DBPracticeRoom.KnapsackEntry + 6, // 0: DBPracticeRoom.full:type_name -> DBPracticeRoom.FullEntry + 7, // 1: DBPracticeRoom.knapsack:type_name -> DBPracticeRoom.KnapsackEntry 0, // 2: DBPracticeRoom.pillar1:type_name -> DBPracticePillar 0, // 3: DBPracticeRoom.pillar2:type_name -> DBPracticePillar 0, // 4: DBPracticeRoom.pillar3:type_name -> DBPracticePillar 0, // 5: DBPracticeRoom.pillarf:type_name -> DBPracticePillar 2, // 6: DBPracticeRoom.statuers:type_name -> DBPracticeStatuer - 7, // [7:7] is the sub-list for method output_type - 7, // [7:7] is the sub-list for method input_type - 7, // [7:7] is the sub-list for extension type_name - 7, // [7:7] is the sub-list for extension extendee - 0, // [0:7] is the sub-list for field type_name + 4, // 7: DBPracticeQiecuoRecord.targets:type_name -> DBPracticeQiecuoInvite + 8, // [8:8] is the sub-list for method output_type + 8, // [8:8] is the sub-list for method input_type + 8, // [8:8] is the sub-list for extension type_name + 8, // [8:8] is the sub-list for extension extendee + 0, // [0:8] is the sub-list for field type_name } func init() { file_practice_practice_db_proto_init() } @@ -565,6 +727,30 @@ func file_practice_practice_db_proto_init() { return nil } } + file_practice_practice_db_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DBPracticeQiecuoInvite); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_practice_practice_db_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DBPracticeQiecuoRecord); 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{ @@ -572,7 +758,7 @@ func file_practice_practice_db_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_practice_practice_db_proto_rawDesc, NumEnums: 0, - NumMessages: 6, + NumMessages: 8, NumExtensions: 0, NumServices: 0, }, diff --git a/pb/worldtask_msg.pb.go b/pb/worldtask_msg.pb.go index 26541ec2f..5e42c8e30 100644 --- a/pb/worldtask_msg.pb.go +++ b/pb/worldtask_msg.pb.go @@ -559,6 +559,109 @@ func (x *WorldtaskFinishIdsPush) GetTaskList() []*Worldtask { return nil } +// 前置任务是否完成 +type WorldtaskPreReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupId int32 `protobuf:"varint,1,opt,name=groupId,proto3" json:"groupId"` //分组ID + TaskId int32 `protobuf:"varint,2,opt,name=taskId,proto3" json:"taskId"` //任务ID +} + +func (x *WorldtaskPreReq) Reset() { + *x = WorldtaskPreReq{} + if protoimpl.UnsafeEnabled { + mi := &file_worldtask_worldtask_msg_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorldtaskPreReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorldtaskPreReq) ProtoMessage() {} + +func (x *WorldtaskPreReq) ProtoReflect() protoreflect.Message { + mi := &file_worldtask_worldtask_msg_proto_msgTypes[10] + 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 WorldtaskPreReq.ProtoReflect.Descriptor instead. +func (*WorldtaskPreReq) Descriptor() ([]byte, []int) { + return file_worldtask_worldtask_msg_proto_rawDescGZIP(), []int{10} +} + +func (x *WorldtaskPreReq) GetGroupId() int32 { + if x != nil { + return x.GroupId + } + return 0 +} + +func (x *WorldtaskPreReq) GetTaskId() int32 { + if x != nil { + return x.TaskId + } + return 0 +} + +type WorldtaskPreResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsSucc bool `protobuf:"varint,1,opt,name=isSucc,proto3" json:"isSucc"` // 前置是否完成 +} + +func (x *WorldtaskPreResp) Reset() { + *x = WorldtaskPreResp{} + if protoimpl.UnsafeEnabled { + mi := &file_worldtask_worldtask_msg_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorldtaskPreResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorldtaskPreResp) ProtoMessage() {} + +func (x *WorldtaskPreResp) ProtoReflect() protoreflect.Message { + mi := &file_worldtask_worldtask_msg_proto_msgTypes[11] + 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 WorldtaskPreResp.ProtoReflect.Descriptor instead. +func (*WorldtaskPreResp) Descriptor() ([]byte, []int) { + return file_worldtask_worldtask_msg_proto_rawDescGZIP(), []int{11} +} + +func (x *WorldtaskPreResp) GetIsSucc() bool { + if x != nil { + return x.IsSucc + } + return false +} + var File_worldtask_worldtask_msg_proto protoreflect.FileDescriptor var file_worldtask_worldtask_msg_proto_rawDesc = []byte{ @@ -616,8 +719,15 @@ var file_worldtask_worldtask_msg_proto_rawDesc = []byte{ 0x6e, 0x69, 0x73, 0x68, 0x49, 0x64, 0x73, 0x50, 0x75, 0x73, 0x68, 0x12, 0x26, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x4c, - 0x69, 0x73, 0x74, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x69, 0x73, 0x74, 0x22, 0x43, 0x0a, 0x0f, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x74, 0x61, 0x73, 0x6b, + 0x50, 0x72, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, + 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x2a, 0x0a, 0x10, 0x57, 0x6f, 0x72, 0x6c, + 0x64, 0x74, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, + 0x69, 0x73, 0x53, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, + 0x53, 0x75, 0x63, 0x63, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -632,7 +742,7 @@ func file_worldtask_worldtask_msg_proto_rawDescGZIP() []byte { return file_worldtask_worldtask_msg_proto_rawDescData } -var file_worldtask_worldtask_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_worldtask_worldtask_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 12) var file_worldtask_worldtask_msg_proto_goTypes = []interface{}{ (*WorldtaskMineReq)(nil), // 0: WorldtaskMineReq (*WorldtaskMineResp)(nil), // 1: WorldtaskMineResp @@ -644,18 +754,20 @@ var file_worldtask_worldtask_msg_proto_goTypes = []interface{}{ (*WorldtaskBattleFinishReq)(nil), // 7: WorldtaskBattleFinishReq (*WorldtaskBattleFinishResp)(nil), // 8: WorldtaskBattleFinishResp (*WorldtaskFinishIdsPush)(nil), // 9: WorldtaskFinishIdsPush - (*DBWorldtask)(nil), // 10: DBWorldtask - (*BattleFormation)(nil), // 11: BattleFormation - (*BattleInfo)(nil), // 12: BattleInfo - (*BattleReport)(nil), // 13: BattleReport - (*Worldtask)(nil), // 14: Worldtask + (*WorldtaskPreReq)(nil), // 10: WorldtaskPreReq + (*WorldtaskPreResp)(nil), // 11: WorldtaskPreResp + (*DBWorldtask)(nil), // 12: DBWorldtask + (*BattleFormation)(nil), // 13: BattleFormation + (*BattleInfo)(nil), // 14: BattleInfo + (*BattleReport)(nil), // 15: BattleReport + (*Worldtask)(nil), // 16: Worldtask } var file_worldtask_worldtask_msg_proto_depIdxs = []int32{ - 10, // 0: WorldtaskMineResp.task:type_name -> DBWorldtask - 11, // 1: WorldtaskBattleStartReq.battle:type_name -> BattleFormation - 12, // 2: WorldtaskBattleStartResp.info:type_name -> BattleInfo - 13, // 3: WorldtaskBattleFinishReq.report:type_name -> BattleReport - 14, // 4: WorldtaskFinishIdsPush.taskList:type_name -> Worldtask + 12, // 0: WorldtaskMineResp.task:type_name -> DBWorldtask + 13, // 1: WorldtaskBattleStartReq.battle:type_name -> BattleFormation + 14, // 2: WorldtaskBattleStartResp.info:type_name -> BattleInfo + 15, // 3: WorldtaskBattleFinishReq.report:type_name -> BattleReport + 16, // 4: WorldtaskFinishIdsPush.taskList:type_name -> Worldtask 5, // [5:5] is the sub-list for method output_type 5, // [5:5] is the sub-list for method input_type 5, // [5:5] is the sub-list for extension type_name @@ -791,6 +903,30 @@ func file_worldtask_worldtask_msg_proto_init() { return nil } } + file_worldtask_worldtask_msg_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorldtaskPreReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldtask_worldtask_msg_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorldtaskPreResp); 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{ @@ -798,7 +934,7 @@ func file_worldtask_worldtask_msg_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_worldtask_worldtask_msg_proto_rawDesc, NumEnums: 0, - NumMessages: 10, + NumMessages: 12, NumExtensions: 0, NumServices: 0, }, From 92799f1f6689fdb49a16388e44a2055394bc8972 Mon Sep 17 00:00:00 2001 From: liwei1dao Date: Fri, 3 Mar 2023 15:48:52 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=A5=BD=E5=8F=8B?= =?UTF-8?q?=E6=9C=A8=E6=A1=A9=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/practice/api_loot.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/practice/api_loot.go b/modules/practice/api_loot.go index d50c92884..3551ec48c 100644 --- a/modules/practice/api_loot.go +++ b/modules/practice/api_loot.go @@ -42,7 +42,7 @@ func (this *apiComp) Loot(session comm.IUserSession, req *pb.PracticeLootReq) (c code = pb.ErrorCode_ConfigNoFound return } - if code = this.module.ModuleHero.KungFuHero(session, req.Hero, true, ""); code != pb.ErrorCode_Success { + if code = this.module.ModuleHero.KungFuHero(session, req.Hero, true, req.Friend); code != pb.ErrorCode_Success { return } if req.Teacher != "" {