diff --git a/src/actions/ActivityAction.lua b/src/actions/ActivityAction.lua index 3fbbf72..1464f12 100644 --- a/src/actions/ActivityAction.lua +++ b/src/actions/ActivityAction.lua @@ -293,7 +293,12 @@ function _M.exchangeRpc(agent, data) curData[actid] = exchangeData role.activity:updateActData("Exchange", curData) - local reward, change = role:award(actCfg.award, {log = {desc = "actExchange", int1 = actid, int2 = id}}) + local award = actCfg.award:toNumMap() + for k,v in pairs(award) do + award[k] = v * count + end + + local reward, change = role:award(award, {log = {desc = "actExchange", int1 = actid, int2 = id}}) SendPacket(actionCodes.Activity_exchangeRpc, MsgPack.pack(role:packReward(reward, change))) @@ -386,7 +391,7 @@ function _M.hangDropRpc(agent, data) if type == 1 then local actId = arr[2] local carbonId = arr[3] - if not role.activity:isOpenById(actid, "ChallengeLevel") then return 3 end + if not role.activity:isOpenById(actId, "ChallengeLevel") then return 3 end local clInfo = role.activity:getActData("ChallengeLevel") or {} if not clInfo[carbonId] then break @@ -562,6 +567,14 @@ function _M.endBattleRpc(agent, data) local actData = role.activity:getActData("ChallengeLevel") or {} + -- 总输出 + local dmg = 0 + for k, v in pairs(msg.info.damage) do + if k % 100 == 2 then + dmg = dmg + v + end + end + local reward, change = {}, nil local battleInfo = actData[id] or {} @@ -617,6 +630,10 @@ function _M.endBattleRpc(agent, data) check[7] = function(_, cond) return msg.info.atime and msg.info.atime <= cond end + -- 8 总输出值 msg.info.atime + check[8] = function(_, cond) + return dmg >= cond + end curStar = 0 local sweepConds = battleCfg.sweep_condition:toTableArray(true) for i, cond in ipairs(sweepConds) do @@ -624,8 +641,11 @@ function _M.endBattleRpc(agent, data) curStar = curStar + (1 << (i - 1)) end end - else - curStar = 0 + else + curStar = 0 + if battleCfg.rank ~= 0 then + curStar = 1 + end end local oldStarNum = getStarCount(battleCfg, battleInfo["star"] or 0) local newStarNum = getStarCount(battleCfg, curStar) @@ -635,12 +655,6 @@ function _M.endBattleRpc(agent, data) if battleCfg.rank ~= 0 then -- 更新排行榜 最高伤害 - local dmg = 0 - for k, v in pairs(msg.info.damage) do - if k % 100 == 2 then - dmg = dmg + v - end - end battleInfo["top"] = math.max(battleInfo["top"] or 0, dmg) battleInfo["sum"] = (battleInfo["sum"] or 0) + dmg local rankVal = 0 @@ -659,7 +673,7 @@ function _M.endBattleRpc(agent, data) if oldStarNum == 0 or battleCfg.rank ~= 0 then reward = battleCfg.item_clear:toNumMap() end - if (oldStarNum < 3 and newStarNum == 3) or battleCfg.rank ~= 0 then + if (oldStarNum < 3 and newStarNum == 3) or (battleCfg.rank ~= 0 and newStarNum == 3) then local aw = battleCfg.perfect_reward:toNumMap() for k, v in pairs(aw) do reward[k] = (reward[k] or 0) + v diff --git a/src/csvdata b/src/csvdata index 2930f3e..3c3215a 160000 --- a/src/csvdata +++ b/src/csvdata @@ -1 +1 @@ -Subproject commit 2930f3efda2c82192c931929584fd2bc3f66e647 +Subproject commit 3c3215a04ace7ebcb57dbb405f2fda22dc551615 -- libgit2 0.21.2