Commit a93ce9c0bf887ecb35493fcc2353cb58e6cbb365
1 parent
8c154e11
fix: 特殊道具兑换, 增加活动判断,活动过期则返回错误码
Showing
1 changed file
with
22 additions
and
12 deletions
Show diff stats
src/actions/RoleAction.lua
@@ -1716,31 +1716,41 @@ function _M.itemConvertSpecialRpc(agent, data) | @@ -1716,31 +1716,41 @@ function _M.itemConvertSpecialRpc(agent, data) | ||
1716 | local role = agent.role | 1716 | local role = agent.role |
1717 | local msg = MsgPack.unpack(data) | 1717 | local msg = MsgPack.unpack(data) |
1718 | local itemId = msg.item_id | 1718 | local itemId = msg.item_id |
1719 | - local count = msg.count or 1 | ||
1720 | - local exchangeId = msg.exchange_id | 1719 | + local exchangeId = tonumber(msg.exchange_id) |
1721 | 1720 | ||
1722 | local itemData = csvdb["itemCsv"][itemId] | 1721 | local itemData = csvdb["itemCsv"][itemId] |
1723 | if not itemData then return 1 end | 1722 | if not itemData then return 1 end |
1724 | 1723 | ||
1725 | - if not role:checkItemEnough({[itemId] = count}) then return 2 end | ||
1726 | - role:costItems({[itemId] = count}, {log = {desc = "itemConvertSpecial", int1 = itemId, int2 = itemData.type}}) | ||
1727 | - | ||
1728 | local rechargeData = csvdb["shop_rechargeCsv"][exchangeId] | 1724 | local rechargeData = csvdb["shop_rechargeCsv"][exchangeId] |
1729 | if not rechargeData then | 1725 | if not rechargeData then |
1730 | skynet.error("[recharge] recharge id not exist", exchangeId) | 1726 | skynet.error("[recharge] recharge id not exist", exchangeId) |
1731 | - return 3 | 1727 | + return 2 |
1732 | end | 1728 | end |
1733 | - local reward = {} | ||
1734 | - for i = 1, count do | ||
1735 | - local tmpreward, _ = role.storeData:onBuyCard(rechargeData.type, rechargeData.id , rechargeData.activity_id) | 1729 | + |
1730 | + if not role:checkItemEnough({[itemId] = 1}) then return 3 end | ||
1731 | + | ||
1732 | + local reward = {} | ||
1733 | + if rechargeData.type == CardType.ActBattleCommandCard then | ||
1734 | + if role.activity:isOpenById(rechargeData.activity_id, "ActShopGoods") then | ||
1735 | + local tmpreward, _ = role.storeData:onBuyCard(rechargeData.type, rechargeData.time, rechargeData.id, rechargeData.activity_id) | ||
1736 | + if tmpreward then | ||
1737 | + table.rewardMerge(reward, tmpreward) | ||
1738 | + end | ||
1739 | + else | ||
1740 | + skynet.error("not open id: ".. rechargeData.id .. "; actid: " .. rechargeData.activity_id) | ||
1741 | + SendPacket(actionCodes.Role_itemConvertSpecialRpc, MsgPack.pack({result = 4})) | ||
1742 | + return true | ||
1743 | + end | ||
1744 | + else | ||
1745 | + local tmpreward, _ = role.storeData:onBuyCard(rechargeData.type, rechargeData.time, rechargeData.id, rechargeData.activity_id) | ||
1736 | if tmpreward then | 1746 | if tmpreward then |
1737 | table.rewardMerge(reward, tmpreward) | 1747 | table.rewardMerge(reward, tmpreward) |
1738 | - else | ||
1739 | - return | ||
1740 | end | 1748 | end |
1741 | end | 1749 | end |
1742 | 1750 | ||
1743 | - SendPacket(actionCodes.Role_itemConvertMonthCardRpc, MsgPack.pack(role:packReward(reward))) | 1751 | + role:costItems({[itemId] = 1}, {log = {desc = "itemConvertSpecial", int1 = itemId, int2 = itemData.type}}) |
1752 | + | ||
1753 | + SendPacket(actionCodes.Role_itemConvertSpecialRpc, MsgPack.pack(role:packReward(reward))) | ||
1744 | return true | 1754 | return true |
1745 | end | 1755 | end |
1746 | 1756 |