Commit 20651a9e0a6761eff937ccebf2bf2be0ee4816a0
1 parent
d99a4962
钻石兑换虹光玉消息
Showing
3 changed files
with
42 additions
and
1 deletions
Show diff stats
src/ProtocolCode.lua
src/actions/RoleAction.lua
| ... | ... | @@ -1395,6 +1395,46 @@ function _M.goldBuyRpc(agent, data) |
| 1395 | 1395 | return true |
| 1396 | 1396 | end |
| 1397 | 1397 | |
| 1398 | +function _M.diamondConvertRpc(agent, data) | |
| 1399 | + local role = agent.role | |
| 1400 | + local msg = MsgPack.unpack(data) | |
| 1401 | + | |
| 1402 | + local oper = msg.oper | |
| 1403 | + if oper ~= 1 and oper ~= 2 then return 0 end | |
| 1404 | + | |
| 1405 | + local cost = math.ceil(msg.cost or 0) | |
| 1406 | + if cost <= 0 then return 1 end | |
| 1407 | + if role:getAllDiamond() < cost then return 2 end | |
| 1408 | + | |
| 1409 | + local get = globalCsv.legal_tender_cost * cost | |
| 1410 | + role:costDiamond({count = cost, log = {desc = "convert", int1 = ItemType.Jade, int2 = get}}) | |
| 1411 | + local reward, change | |
| 1412 | + if oper == 1 then -- 钻石兑换成虹光玉 | |
| 1413 | + reward, change = role:award({[ItemId.Jade] = get}, {log = {desc = "convert"}}) | |
| 1414 | + elseif oper == 2 then -- 钻石兑换成虹光玉再兑换成招募券 | |
| 1415 | + local quan = math.floor(get/globalCsv.recruit_cost) | |
| 1416 | + reward[ItemType.Jade] = reward[ItemType.Jade] - quan * globalCsv.recruit_cost | |
| 1417 | + if reward[ItemType.Jade] == 0 then | |
| 1418 | + reward[ItemType.Jade] = nil | |
| 1419 | + end | |
| 1420 | + if quan > 0 then | |
| 1421 | + local tReward, tChange = role:award({[70] = quan}, {log = {desc = "convert"}}) | |
| 1422 | + for id, value in pairs(tReward) do | |
| 1423 | + reward[id] = reward[id] + value | |
| 1424 | + end | |
| 1425 | + if tChange then | |
| 1426 | + change = change or {} | |
| 1427 | + for id, value in pairs(tChange) do | |
| 1428 | + change[id] = change[id] + value | |
| 1429 | + end | |
| 1430 | + end | |
| 1431 | + end | |
| 1432 | + end | |
| 1433 | + | |
| 1434 | + SendPacket(actionCodes.Role_diamondConvertRpc, MsgPack.pack(role:packReward(reward, change))) | |
| 1435 | + return true | |
| 1436 | +end | |
| 1437 | + | |
| 1398 | 1438 | function _M.getDownloadCvRewardRpc(agent, data) |
| 1399 | 1439 | local role = agent.role |
| 1400 | 1440 | local flag = role:getProperty("downCvR") or 0 | ... | ... |
src/models/RoleLog.lua