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,10 +1242,9 @@ end | ||
1242 | function _M.newSignRpc(agent, data) | 1242 | function _M.newSignRpc(agent, data) |
1243 | local role = agent.role | 1243 | local role = agent.role |
1244 | local msg = MsgPack.unpack(data) | 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 | local actData = role.activity:getActData("NewSign") | 1249 | local actData = role.activity:getActData("NewSign") |
1251 | if (actData[0] or 0) < index then | 1250 | if (actData[0] or 0) < index then |
@@ -1255,16 +1254,26 @@ function _M.newSignRpc(agent, data) | @@ -1255,16 +1254,26 @@ function _M.newSignRpc(agent, data) | ||
1255 | return 3 | 1254 | return 3 |
1256 | end | 1255 | end |
1257 | 1256 | ||
1258 | - local actCfg = csvdb["activity_signInCsv"][actid] | 1257 | + local actCfg = csvdb["activity_signInCsv"][actId] |
1259 | if not actCfg then return 4 end | 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 | SendPacket(actionCodes.Activity_newSignRpc, MsgPack.pack(role:packReward(reward, change))) | 1277 | SendPacket(actionCodes.Activity_newSignRpc, MsgPack.pack(role:packReward(reward, change))) |
1269 | return true | 1278 | return true |
1270 | end | 1279 | end |