From af6197fdd8d8d2af1d56b4c3287dd01791eeb7df Mon Sep 17 00:00:00 2001 From: zqj <582132116@qq.com> Date: Wed, 27 Oct 2021 15:59:42 +0800 Subject: [PATCH] feat: 兑换魔鬼训练营门票 --- src/ProtocolCode.lua | 1 + src/actions/RoleAction.lua | 20 ++++++++++++++++++++ src/models/RoleLog.lua | 1 + 3 files changed, 22 insertions(+), 0 deletions(-) diff --git a/src/ProtocolCode.lua b/src/ProtocolCode.lua index 92875fc..40b5061 100644 --- a/src/ProtocolCode.lua +++ b/src/ProtocolCode.lua @@ -64,6 +64,7 @@ actionCodes = { Role_itemConvertSpecialRpc = 145, -- 兑换月卡/战令探索指令等 特殊道具 Role_worldLineRouletteRpc = 146, --世界线抽轮盘 Role_worldLineRewardRpc = 147, -- 世界线一键领取奖励 + Role_itemConvertDevilTicketRpc = 148, -- 兑换魔鬼训练营门票 Adv_startAdvRpc = 151, Adv_startHangRpc = 152, diff --git a/src/actions/RoleAction.lua b/src/actions/RoleAction.lua index f49433c..a2a7572 100644 --- a/src/actions/RoleAction.lua +++ b/src/actions/RoleAction.lua @@ -1819,4 +1819,24 @@ function _M.worldLineRewardRpc(agent, data) return true end +function _M.itemConvertDevilTicketRpc(agent, data) + local role = agent.role + local msg = MsgPack.unpack(data) + local itemId = msg.itemId --道具id + local count = msg.count or 1 --兑换生成的数量 + local itemData = csvdb["itemCsv"][itemId] + if itemData.use_type ~= 11 then return 2 end + + local createCost = globalCsv.moguixunlianying_create_cost[itemId]:toArray(true, "=") + if not next(createCost) then return 3 end + + local cost = {[itemId] = createCost[1] * count} + if not role:checkItemEnough(cost) then return 4 end + role:costItems({cost}, {log = {desc = "itemConvertDevilTicket"}}) + local reward, change = role:award({[createCost[2]] = count}, {log = {desc = "itemConvertDevilTicket", int1 = itemId, int2 = cost[itemId]}}) + + SendPacket(actionCodes.Role_itemConvertDevilTicketRpc, MsgPack.pack(role:packReward(reward, change))) + return true +end + return _M \ No newline at end of file diff --git a/src/models/RoleLog.lua b/src/models/RoleLog.lua index 088b02e..b653287 100644 --- a/src/models/RoleLog.lua +++ b/src/models/RoleLog.lua @@ -73,6 +73,7 @@ local ItemReason = { regularWorldBossReward = 157, -- 常规世界boss regularWorldBossMilestone = 158, -- 常规世界boss伤害里程碑 regularWorldBossBattle = 159, -- 常规世界boss战斗奖励 + itemConvertDevilTicket = 160, -- 兑换魔鬼训练营门票 -- libgit2 0.21.2