Commit 0ed985c569c07c835bcd512b79403032a2f01e01

Authored by chenyueqi
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,10 +1107,9 @@ end
1107 function _M.newSignRpc(agent, data) 1107 function _M.newSignRpc(agent, data)
1108 local role = agent.role 1108 local role = agent.role
1109 local msg = MsgPack.unpack(data) 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 local actData = role.activity:getActData("NewSign") 1114 local actData = role.activity:getActData("NewSign")
1116 if (actData[0] or 0) < index then 1115 if (actData[0] or 0) < index then
@@ -1120,16 +1119,26 @@ function _M.newSignRpc(agent, data) @@ -1120,16 +1119,26 @@ function _M.newSignRpc(agent, data)
1120 return 3 1119 return 3
1121 end 1120 end
1122 1121
1123 - local actCfg = csvdb["activity_signInCsv"][actid] 1122 + local actCfg = csvdb["activity_signInCsv"][actId]
1124 if not actCfg then return 4 end 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 SendPacket(actionCodes.Activity_newSignRpc, MsgPack.pack(role:packReward(reward, change))) 1142 SendPacket(actionCodes.Activity_newSignRpc, MsgPack.pack(role:packReward(reward, change)))
1134 return true 1143 return true
1135 end 1144 end