Commit 7f0106d7db9864b93f8fea63a74a5aee41498d64
Merge branch 'tr/develop' of 120.26.43.151:wasteland/server into tr/develop
Showing
1 changed file
with
19 additions
and
10 deletions
Show diff stats
src/actions/ActivityAction.lua
... | ... | @@ -1242,10 +1242,9 @@ end |
1242 | 1242 | function _M.newSignRpc(agent, data) |
1243 | 1243 | local role = agent.role |
1244 | 1244 | local msg = MsgPack.unpack(data) |
1245 | - local actid = msg.actid | |
1246 | - local index = msg.index | |
1247 | 1245 | |
1248 | - if not role.activity:isOpenById(actid, "NewSign") then return 1 end | |
1246 | + local open, actId = role.activity:isOpen("NewSign") | |
1247 | + if not open then return 1 end | |
1249 | 1248 | |
1250 | 1249 | local actData = role.activity:getActData("NewSign") |
1251 | 1250 | if (actData[0] or 0) < index then |
... | ... | @@ -1255,16 +1254,26 @@ function _M.newSignRpc(agent, data) |
1255 | 1254 | return 3 |
1256 | 1255 | end |
1257 | 1256 | |
1258 | - local actCfg = csvdb["activity_signInCsv"][actid] | |
1257 | + local actCfg = csvdb["activity_signInCsv"][actId] | |
1259 | 1258 | if not actCfg then return 4 end |
1260 | - actCfg = actCfg[index] | |
1261 | - if not actCfg then return 5 end | |
1262 | 1259 | |
1263 | - actData[index] = 1 | |
1264 | - role.activity:updateActData("NewSign", actData) | |
1260 | + local sumDay = actData[0] or 0 | |
1261 | + local award = {} | |
1262 | + for k, data in pairs(actCfg) do | |
1263 | + if not actData[data.id] and data.id <= sumDay then | |
1264 | + for id, value in pairs(data.reward:toNumMap()) do | |
1265 | + award[id] = (award[id] or 0) + value | |
1266 | + end | |
1267 | + actData[data.id] = 1 | |
1268 | + end | |
1269 | + end | |
1270 | + | |
1271 | + local reward, change | |
1272 | + if next(award) then | |
1273 | + role.activity:updateActData("NewSign", actData) | |
1274 | + reward, change = role:award(award, {log = {desc = "newSign", int1 = actId, int2 = sumDay}}) | |
1275 | + end | |
1265 | 1276 | |
1266 | - local award = actCfg.reward:toNumMap() | |
1267 | - local reward, change = role:award(award, {log = {desc = "newSign", int1 = actid, int2 = index}}) | |
1268 | 1277 | SendPacket(actionCodes.Activity_newSignRpc, MsgPack.pack(role:packReward(reward, change))) |
1269 | 1278 | return true |
1270 | 1279 | end | ... | ... |