Commit 0ed985c569c07c835bcd512b79403032a2f01e01
1 parent
c0017f72
先加上,后面再调试
Showing
1 changed file
with
19 additions
and
10 deletions
Show diff stats
src/actions/ActivityAction.lua
... | ... | @@ -1107,10 +1107,9 @@ end |
1107 | 1107 | function _M.newSignRpc(agent, data) |
1108 | 1108 | local role = agent.role |
1109 | 1109 | local msg = MsgPack.unpack(data) |
1110 | - local actid = msg.actid | |
1111 | - local index = msg.index | |
1112 | 1110 | |
1113 | - if not role.activity:isOpenById(actid, "NewSign") then return 1 end | |
1111 | + local open, actId = role.activity:isOpen("NewSign") | |
1112 | + if not open then return 1 end | |
1114 | 1113 | |
1115 | 1114 | local actData = role.activity:getActData("NewSign") |
1116 | 1115 | if (actData[0] or 0) < index then |
... | ... | @@ -1120,16 +1119,26 @@ function _M.newSignRpc(agent, data) |
1120 | 1119 | return 3 |
1121 | 1120 | end |
1122 | 1121 | |
1123 | - local actCfg = csvdb["activity_signInCsv"][actid] | |
1122 | + local actCfg = csvdb["activity_signInCsv"][actId] | |
1124 | 1123 | if not actCfg then return 4 end |
1125 | - actCfg = actCfg[index] | |
1126 | - if not actCfg then return 5 end | |
1127 | 1124 | |
1128 | - actData[index] = 1 | |
1129 | - role.activity:updateActData("NewSign", actData) | |
1125 | + local sumDay = actData[0] or 0 | |
1126 | + local award = {} | |
1127 | + for k, data in pairs(actCfg) do | |
1128 | + if not actData[data.id] and data.id <= sumDay then | |
1129 | + for id, value in pairs(data.reward:toNumMap()) do | |
1130 | + award[id] = (award[id] or 0) + value | |
1131 | + end | |
1132 | + actData[data.id] = 1 | |
1133 | + end | |
1134 | + end | |
1135 | + | |
1136 | + local reward, change | |
1137 | + if next(award) then | |
1138 | + role.activity:updateActData("NewSign", actData) | |
1139 | + reward, change = role:award(award, {log = {desc = "newSign", int1 = actId, int2 = sumDay}}) | |
1140 | + end | |
1130 | 1141 | |
1131 | - local award = actCfg.reward:toNumMap() | |
1132 | - local reward, change = role:award(award, {log = {desc = "newSign", int1 = actid, int2 = index}}) | |
1133 | 1142 | SendPacket(actionCodes.Activity_newSignRpc, MsgPack.pack(role:packReward(reward, change))) |
1134 | 1143 | return true |
1135 | 1144 | end | ... | ... |