Commit 2c8d1dfe5d519324c207279cc81a3b4e47448a6b
1 parent
bd535b08
奖励逻辑
Showing
1 changed file
with
9 additions
and
6 deletions
Show diff stats
src/actions/RoleAction.lua
| ... | ... | @@ -359,11 +359,11 @@ function _M.openTimeBoxRpc(agent, data) |
| 359 | 359 | if boxL[slot].gem or boxL[slot].time <= skynet.timex() then return end |
| 360 | 360 | local itemData = csvdb["itemCsv"][boxL[slot].id] |
| 361 | 361 | local randomData = csvdb["item_randomCsv"][tonumber(itemData.use_effect)] |
| 362 | - local costCount = randomData[gemId .. "_gem_num"] | |
| 363 | - if not costCount then return end | |
| 362 | + local num = randomData[gemId .. "_gem_num"] | |
| 363 | + if not num then return end | |
| 364 | 364 | |
| 365 | - if not role:checkItemEnough({[gemId] = costCount}) then return end | |
| 366 | - role:costItems({[gemId] = costCount}) | |
| 365 | + if not role:checkItemEnough({[gemId] = 1}) then return end | |
| 366 | + role:costItems({[gemId] = 1}) | |
| 367 | 367 | boxL[slot].gem = gemId |
| 368 | 368 | elseif oper == 3 then -- 领取 |
| 369 | 369 | local quick = msg.quick |
| ... | ... | @@ -381,15 +381,18 @@ function _M.openTimeBoxRpc(agent, data) |
| 381 | 381 | reward = randomData.gift:toNumMap() -- 固定奖励 |
| 382 | 382 | -- 随机奖励 |
| 383 | 383 | local randomGift = randomData.random_gift |
| 384 | + local randomNum = randomData.random_num | |
| 384 | 385 | if boxL[slot].gem then |
| 386 | + randomNum = randomData[boxL[slot].gem .. "_gem_num"] | |
| 385 | 387 | randomGift = randomData[boxL[slot].gem .. "_gem_gift"] |
| 386 | 388 | end |
| 387 | - if randomData.random_num > 0 and randomGift and randomGift ~= "" then | |
| 389 | + | |
| 390 | + if randomNum > 0 and randomGift and randomGift ~= "" then | |
| 388 | 391 | local pool = {} |
| 389 | 392 | for _, temp in ipairs(randomGift:toArray()) do |
| 390 | 393 | table.insert(pool, temp:toArray(true, "=")) |
| 391 | 394 | end |
| 392 | - local needCount = math.min(#pool, randomData.random_num) | |
| 395 | + local needCount = math.min(#pool, randomNum) | |
| 393 | 396 | for j = 1, needCount do |
| 394 | 397 | local idx = math.randWeight(pool, 3) |
| 395 | 398 | reward[pool[idx][1]] = (reward[pool[idx][1]] or 0) + pool[idx][2] | ... | ... |