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 | ... | ... |