From d4749c286b7917a91eeaab6b9a26ab2e32a0f78e Mon Sep 17 00:00:00 2001 From: zqj <582132116@qq.com> Date: Thu, 20 Jan 2022 14:55:56 +0800 Subject: [PATCH] fix: 额外宝藏 修改协议号 --- src/ProtocolCode.lua | 4 ++-- src/actions/HangAction.lua | 38 ++++++++++++++++++++++++++++++++++++++ src/actions/RoleAction.lua | 36 ------------------------------------ 3 files changed, 40 insertions(+), 38 deletions(-) diff --git a/src/ProtocolCode.lua b/src/ProtocolCode.lua index e4df501..1596f94 100644 --- a/src/ProtocolCode.lua +++ b/src/ProtocolCode.lua @@ -67,8 +67,6 @@ actionCodes = { Role_itemConvertDevilTicketRpc = 148, -- 兑换魔鬼训练营门票 Role_unRegisterRpc = 149, --注销账号 Role_searchAllRoleRpc = 150, --查询所有服的角色信息 - Role_takeTreasureRpc = 151, --抓取额外宝藏 - Role_treasureMapRpc = 152, --兑换宝藏图 Adv_startAdvRpc = 151, Adv_startHangRpc = 152, @@ -148,6 +146,8 @@ actionCodes = { Hang_workBattleInfoRpc = 268, Hang_getWorkRewardRpc = 269, Hang_unlockChapterRpc = 270, + Hang_takeTreasureRpc = 271, --抓取额外宝藏 + Hang_treasureMapRpc = 272, --兑换宝藏图 Diner_updateProperty = 300, Diner_addSellRpc = 301, diff --git a/src/actions/HangAction.lua b/src/actions/HangAction.lua index bb45436..7c97247 100644 --- a/src/actions/HangAction.lua +++ b/src/actions/HangAction.lua @@ -1196,4 +1196,42 @@ function _M.unlockChapterRpc(agent, data) return true end + +function _M.takeTreasureRpc(agent, data) + local role = agent.role + local extraCount = role.dailyData:getProperty("treasureExtraCount") --每日发现额外宝藏使用次数(累计),隔天清零 + local mapCount = role.dailyData:getProperty("treasureMapCount") + local baseExtra = role.dailyData:getProperty("treasureBaseExtra") + + if extraCount >= globalCsv.idle_treasure_extra_limie then return 1 end + if mapCount <= 0 then return 2 end + + baseExtra = baseExtra + globalCsv.idle_treasure_base_extra + + local tmpTreasure, treasureListExtra = role.dailyData:getTreasureExtra(baseExtra) + if not tmpTreasure then return 3 end + + role.dailyData:updateProperty({field = "treasureExtraCount", delta = 1}) + role.dailyData:updateProperty({field = "treasureBaseExtra", value = mapCount - 1}) + role.dailyData:updateProperty({field = "treasureBaseExtra", value = baseExtra}) + + SendPacket(actionCodes.Hang_takeTreasureRpc, MsgPack.pack({treasureListExtra = treasureListExtra, treasure = tmpTreasure})) + return true +end + +function _M.treasureMapRpc(agent,data) + local role = agent.role + local msg = MsgPack.unpack(data) + local count = msg.count or 1 + local cost ={[ItemId.Jade] = globalCsv.idle_treasure_buy * count} + if not role:checkItemEnough(cost) then return 1 end + if not role:costItems(cost, {log = {desc = "treasureMap", int1 = count}}) then return 2 end + role.dailyData:updateProperty({field = "treasureMapCount", delta = 1*count}) + + local treasureMapCount = role.dailyData:getProperty("treasureMapCount") + SendPacket(actionCodes.Hang_treasureMapRpc, MsgPack.pack({mapCount = treasureMapCount})) + return true +end + + return _M diff --git a/src/actions/RoleAction.lua b/src/actions/RoleAction.lua index c06c18a..c87e6aa 100644 --- a/src/actions/RoleAction.lua +++ b/src/actions/RoleAction.lua @@ -1909,40 +1909,4 @@ function _M.itemConvertDevilTicketRpc(agent, data) return true end -function _M.takeTreasureRpc(agent, data) - local role = agent.role - local extraCount = role.dailyData:getProperty("treasureExtraCount") --每日发现额外宝藏使用次数(累计),隔天清零 - local mapCount = role.dailyData:getProperty("treasureMapCount") - local baseExtra = role.dailyData:getProperty("treasureBaseExtra") - - if extraCount >= globalCsv.idle_treasure_extra_limie then return 1 end - if mapCount <= 0 then return 2 end - - baseExtra = baseExtra + globalCsv.idle_treasure_base_extra - - local tmpTreasure, treasureListExtra = role.dailyData:getTreasureExtra(baseExtra) - if not tmpTreasure then return 3 end - - role.dailyData:updateProperty({field = "treasureExtraCount", delta = 1}) - role.dailyData:updateProperty({field = "treasureBaseExtra", value = mapCount - 1}) - role.dailyData:updateProperty({field = "treasureBaseExtra", value = baseExtra}) - - SendPacket(actionCodes.Role_takeTreasureRpc, MsgPack.pack({treasureListExtra = treasureListExtra, treasure = tmpTreasure})) - return true -end - -function _M.treasureMapRpc(agent,data) - local role = agent.role - local msg = MsgPack.unpack(data) - local count = msg.count or 1 - local cost ={[ItemId.Jade] = globalCsv.idle_treasure_buy * count} - if not role:checkItemEnough(cost) then return 1 end - if not role:costItems(cost, {log = {desc = "treasureMap", int1 = count}}) then return 2 end - role.dailyData:updateProperty({field = "treasureMapCount", delta = 1*count}) - - local treasureMapCount = role.dailyData:getProperty("treasureMapCount") - SendPacket(actionCodes.Role_treasureMapRpc, MsgPack.pack({mapCount = treasureMapCount})) - return true -end - return _M \ No newline at end of file -- libgit2 0.21.2