Commit be4e8031d77ccd09b4d260a91761cfe65e55d9a9

Authored by zhouhaihai
1 parent ea40710f

活动 拾荒

src/actions/ActivityAction.lua
... ... @@ -135,11 +135,11 @@ end
135 135  
136 136 function _M.actSignRpc(agent, data)
137 137 local role = agent.role
138   - if not role.activity:isOpen("Sign") then return end
  138 + if not role.activity:isOpen("Sign") then return 1 end
139 139  
140 140 local curData = role.activity:getActData("Sign")
141 141 local reward = {}
142   - for day, csvData in ipairs(csvdb["new_signlnCsv"]) do
  142 + for day, csvData in ipairs(csvdb["new_signInCsv"]) do
143 143 if day <= (curData[0] or 0) then
144 144 if not curData[day] then
145 145 curData[day] = -1
... ... @@ -153,8 +153,8 @@ function _M.actSignRpc(agent, data)
153 153 end
154 154 end
155 155 if next(reward) then
156   - self.activity:updateActData("Sign", curData)
157   - reward = role:award(reward, {log = "actSign"})
  156 + role.activity:updateActData("Sign", curData)
  157 + reward = role:award(reward, {log = {desc = "actSign"}})
158 158 end
159 159 SendPacket(actionCodes.Activity_actSignRpc, MsgPack.pack(reward))
160 160 return true
... ...
src/actions/AdvAction.lua
... ... @@ -197,7 +197,7 @@ function _M.startHangRpc(agent, data)
197 197  
198 198 if AdvCommon.isEndless(chapterId) then return end -- 无尽没有代理
199 199  
200   - local advRelay = self.owner:getProperty("advRelay")
  200 + local advRelay = role:getProperty("advRelay")
201 201 if not next(advRelay[chapterId] or {}) then return end -- 没有开放
202 202  
203 203  
... ... @@ -212,7 +212,6 @@ function _M.startHangRpc(agent, data)
212 212 player[attrName] = (player[attrName] or 0) + hero[attrName]
213 213 end
214 214 player[attrName] = player[attrName] * (globalCsv.adv_battle_attr_ratio[attrName] or 1)
215   - player.growth[attrName] = player[attrName] * (globalCsv.adv_battle_attr_growth_ratio[attrName] or 1)
216 215 end
217 216  
218 217 local battleV = 1 * player["hp"]
... ... @@ -296,9 +295,12 @@ function _M.endHangRpc(agent, data)
296 295 -- 英雄加成
297 296 local idleUnit = chapterData.idleUnit:toNumMap()
298 297 local upUnit = 0
299   - for slot, heroId in pairs(info.format or {}) do
300   - if idleUnit[heroId] then
301   - upUnit = upUnit + idleUnit[heroId]
  298 + for slot, heroId in pairs((info.format or {}).heros or {}) do
  299 + local hero = role.heros[heroId]
  300 + if hero then
  301 + if idleUnit[hero:getProperty("type")] then
  302 + upUnit = upUnit + idleUnit[hero:getProperty("type")]
  303 + end
302 304 end
303 305 end
304 306 -- 中继加成
... ... @@ -308,6 +310,8 @@ function _M.endHangRpc(agent, data)
308 310 for _, campsite in ipairs(campsiteCsv) do
309 311 if campsite.floor <= advPass[chapterId] then
310 312 maxCampsite = campsite
  313 + else
  314 + break
311 315 end
312 316 end
313 317  
... ... @@ -315,7 +319,7 @@ function _M.endHangRpc(agent, data)
315 319  
316 320 local idleReward = chapterData.idleReward:toNumMap()
317 321 for itemId, count in pairs(idleReward) do
318   - idleReward[itemId] = count * (maxCampsite.idleValue + upUnit) / 100
  322 + idleReward[itemId] = math.floor(count * (maxCampsite.idleValue + upUnit) / 100)
319 323 end
320 324 reward = role:award(idleReward, {log = {desc = "advHang", int1 = chapterId}})
321 325 else
... ...
src/actions/RoleAction.lua
... ... @@ -122,8 +122,8 @@ function _M.loginRpc( agent, data )
122 122  
123 123 -- 跨天登陆事件
124 124 local resetMode = role:updateTimeReset(now)
125   - if not resetMode["CrossDay"] then -- 没有跨天
126   - self.activity:checkActivityStatus(now, false, false)
  125 + if not resetMode or not resetMode["CrossDay"] then -- 没有跨天
  126 + role.activity:checkActivityStatus(now, false, false)
127 127 end
128 128  
129 129 redisproxy:zadd(FRIEND_RECOMMEND, now, roleId)
... ...
src/adv/Adv.lua
... ... @@ -820,14 +820,13 @@ function Adv:over(success, rewardRatio, overType)
820 820 advAFGet = {},
821 821 advAFWear = {},
822 822 })
823   - self:backEnd(success, score, scoreInfo, reward, overType, scoreReward, chapterId)
824 823 self:pushBackEvent(AdvBackEventType.End, {
825 824 success = success,
826 825 score = score,
827 826 scoreInfo = scoreInfo,
828 827 reward = reward,
829 828 type = overType,
830   - scoreAward = scoreAward,
  829 + scoreAward = scoreReward,
831 830 chapterId = chapterId,
832 831 backAdvCount = backAdvCount,
833 832 })
... ...
src/models/Activity.lua
1 1 local Activity = class("Activity", require("shared.ModelBase"))
2   -
  2 +local string_format = string.format
3 3  
4 4 Activity.ActivityType = {
5 5 Sign = 1, -- 签到
... ... @@ -22,12 +22,13 @@ end
22 22  
23 23  
24 24 Activity.schema = {
25   - ctime = {"table", {}}, -- 最近检查某项活动的开始时间 {id = time}
  25 + actime = {"table", {}}, -- 最近检查某项活动的开始时间 {id = time}
26 26 act1 = {"table", {}}, -- {0 = day, 1= -1, 2 = -1} == 签到活动
27 27 }
28 28  
29 29 function Activity:data()
30 30 return {
  31 + actime = self:getProperty("actime"),
31 32 act1 = self:getProperty("act1"),
32 33 }
33 34 end
... ... @@ -111,30 +112,30 @@ end
111 112 -- 跨天刷新 --登录刷新
112 113 function Activity:checkActivityStatus(now, isCrossDay, notify)
113 114 self._isOpen = {}
114   - local ctime = self:getProperty("ctime")
  115 + local actime = self:getProperty("actime")
115 116 local change = false
116   - for actType, actData in paris(csvdb["activity_ctrlCsv"]) do
  117 + for actType, actData in pairs(csvdb["activity_ctrlCsv"]) do
117 118 local isOpen, startTime = self:isOpenRaw(actType, now)
118 119 self._isOpen[actType] = isOpen
119 120  
120 121 if isOpen then
121   - if ctime[actType] and ctime[actType] == startTime then -- 还是之前的状态 开放中
  122 + if actime[actType] and actime[actType] == startTime then -- 还是之前的状态 开放中
122 123 else -- 重置
123   - ctime[actType] = startTime
  124 + actime[actType] = startTime
124 125 self:closeActivity(actType, notify, true)
125 126 self:initActivity(actType, isCrossDay, notify)
126 127 change = true
127 128 end
128 129 else
129   - if ctime[actType] then
  130 + if actime[actType] then
130 131 self:closeActivity(actType, notify)
131   - ctime[actType] = nil
  132 + actime[actType] = nil
132 133 change = true
133 134 end
134 135 end
135 136 end
136 137 if change then
137   - self:setProperty("ctime", ctime)
  138 + self:updateProperty({field = "actime", value = actime, notNotify = not notify})
138 139 end
139 140 end
140 141  
... ... @@ -153,7 +154,7 @@ activityFunc[Activity.ActivityType.Sign] = {
153 154 ["crossDay"] = function(self, actType, notify)
154 155 local curData = self:getActData(actType)
155 156 curData[0] = (curData[0] or 0) + 1
156   - local actData = csvdb["new_signlnCsv"]
  157 + local actData = csvdb["new_signInCsv"]
157 158 if curData[0] > #actData then return end -- 满了就忽略了
158 159  
159 160 -- 没满更新一下
... ...