Commit a5dc3b0e774b9c629baffad843c514acf77ff985

Authored by chenyueqi
1 parent c7381e80

回归活动初版

src/actions/ActivityAction.lua
@@ -1370,4 +1370,47 @@ function _M.advLevelRpc(agent, data) @@ -1370,4 +1370,47 @@ function _M.advLevelRpc(agent, data)
1370 return true 1370 return true
1371 end 1371 end
1372 1372
  1373 +function _M.returnerTaskRpc(agent, data)
  1374 + local role = agent.role
  1375 + local msg = MsgPack.unpack(data)
  1376 +
  1377 + local taskId = msg.id or 0
  1378 + if taskId == 0 then return 0 end
  1379 +
  1380 + local returner = role:getProperty("returner") or {}
  1381 + if not returner[taskId] then return 1 end
  1382 +
  1383 + local tday = specTime({hour = 4})
  1384 + local curAllDay = (tday - returner.time) / 86400 + 1
  1385 +
  1386 + local TaskCsv = csvdb["activity_taskCsv"][76] or {}
  1387 + local taskData = TaskCsv[taskId]
  1388 + if not taskData then return 2 end
  1389 + if curAllDay < taskData.day then return 2 end
  1390 +
  1391 + local status = returner.status or {}
  1392 + if status[taskId] then return 3 end
  1393 +
  1394 + local done = true
  1395 + for _, data in pairs(TaskCsv) do
  1396 + if not status[data.id] then
  1397 + done = false
  1398 + break
  1399 + end
  1400 + end
  1401 +
  1402 + status[taskId] = 1
  1403 + returner.status = status
  1404 +
  1405 + local reward, change = role:award(dayData.reward, {log = {desc = "returner", int1 = taskData.day, int2 = taskId}})
  1406 +
  1407 + if done then
  1408 + returner = {}
  1409 + end
  1410 +
  1411 + role:updateProperty({field = "returner", value = returner})
  1412 + SendPacket(actionCodes.Activity_returnerTaskRpc, MsgPack.pack(role:packReward(reward, change)))
  1413 + return true
  1414 +end
  1415 +
1373 return _M 1416 return _M
src/models/Role.lua
@@ -191,6 +191,8 @@ Role.schema = { @@ -191,6 +191,8 @@ Role.schema = {
191 radioTask = {"table", {}}, -- 电台任务 {id = {time=end_ts,heros=heros}} 表crusadeCsv 191 radioTask = {"table", {}}, -- 电台任务 {id = {time=end_ts,heros=heros}} 表crusadeCsv
192 192
193 seaport = {"table", {}}, -- 海岛贸易季 {time = 1234567890, donate = {}, collect = {[1] = {team = "1=2=3", time = 1234567890}}, shop = {}} 193 seaport = {"table", {}}, -- 海岛贸易季 {time = 1234567890, donate = {}, collect = {[1] = {team = "1=2=3", time = 1234567890}}, shop = {}}
  194 +
  195 + returner = {"table", {}}, -- 回归者 {time = 12334233423, [1] = 1, [2] = 2, status = {[1] = 1}}
194 } 196 }
195 197
196 198
@@ -423,6 +425,7 @@ function Role:data() @@ -423,6 +425,7 @@ function Role:data()
423 radioTask = self:getProperty("radioTask"), 425 radioTask = self:getProperty("radioTask"),
424 426
425 seaport = self:getProperty("seaport"), 427 seaport = self:getProperty("seaport"),
  428 + returner = self:getProperty("returner"),
426 } 429 }
427 end 430 end
428 431
src/models/RoleLog.lua
@@ -143,6 +143,8 @@ local ItemReason = { @@ -143,6 +143,8 @@ local ItemReason = {
143 seaportShop = 1401, -- 贸易港商店兑换 143 seaportShop = 1401, -- 贸易港商店兑换
144 seaportReward = 1402, -- 贸易港阶段奖励 144 seaportReward = 1402, -- 贸易港阶段奖励
145 seaportTask = 1403, -- 贸易港任务奖励 145 seaportTask = 1403, -- 贸易港任务奖励
  146 +
  147 + returner = 1410, -- 回归者奖励
146 } 148 }
147 149
148 150
src/models/RolePlugin.lua
@@ -1454,6 +1454,17 @@ function RolePlugin.bind(Role) @@ -1454,6 +1454,17 @@ function RolePlugin.bind(Role)
1454 end 1454 end
1455 end 1455 end
1456 1456
  1457 + -- 检查回归者
  1458 + function Role:checkReturner()
  1459 + local returner = self:getProperty("returner") or {}
  1460 + if next(returner) then return end
  1461 +
  1462 + local now = specTime({hour = 4})
  1463 + returner.time = now
  1464 +
  1465 + self:updateProperty({field = "returner", value = returner})
  1466 + end
  1467 +
1457 function Role:getSeaportServerProgress() 1468 function Role:getSeaportServerProgress()
1458 local result = {} 1469 local result = {}
1459 1470
src/models/RoleTask.lua
@@ -319,6 +319,11 @@ local BattleCommandTaskListener = { @@ -319,6 +319,11 @@ local BattleCommandTaskListener = {
319 listen = CalendaTaskListener["listen"] 319 listen = CalendaTaskListener["listen"]
320 } 320 }
321 321
  322 +local ReturnerTask = {
  323 + func = "checkReturnerTask",
  324 + listen = CalendaTaskListener["listen"]
  325 +}
  326 +
322 local TaskListeners = { 327 local TaskListeners = {
323 StoryListener, 328 StoryListener,
324 CommonListener, 329 CommonListener,
@@ -328,6 +333,7 @@ local TaskListeners = { @@ -328,6 +333,7 @@ local TaskListeners = {
328 StoreListener, 333 StoreListener,
329 CalendaTaskListener, 334 CalendaTaskListener,
330 BattleCommandTaskListener, 335 BattleCommandTaskListener,
  336 + ReturnerTask,
331 } 337 }
332 338
333 local RoleTask = {} 339 local RoleTask = {}
@@ -825,6 +831,15 @@ function RoleTask.bind(Role) @@ -825,6 +831,15 @@ function RoleTask.bind(Role)
825 self:checkActTask(notNotify, keyName, actData, mainType, subType, param1, param2) 831 self:checkActTask(notNotify, keyName, actData, mainType, subType, param1, param2)
826 end 832 end
827 833
  834 + function Role:checkReturnerTask(notNotify, mainType, subType, param1, param2)
  835 + -- print("check returner task", mainType, subType, param1, param2)
  836 + local returner = self:getProperty("returner") or {}
  837 + if not returner.time then return end
  838 + local actData = csvdb["activity_ctrlCsv"][76]
  839 + local keyName = "returner"
  840 + self:checkActTask(notNotify, keyName, actData, mainType, subType, param1, param2)
  841 + end
  842 +
828 end 843 end
829 844
830 return RoleTask 845 return RoleTask
src/models/RoleTimeReset.lua
@@ -28,6 +28,12 @@ ResetFunc[&quot;CrossDay&quot;] = function(self, notify, response, now) @@ -28,6 +28,12 @@ ResetFunc[&quot;CrossDay&quot;] = function(self, notify, response, now)
28 self.storeData:resetStoreReored(3) --商店跨月重置 time_reset表关联id 28 self.storeData:resetStoreReored(3) --商店跨月重置 time_reset表关联id
29 end 29 end
30 30
  31 + -- 检查回归者
  32 + -- if (now - ltime) >= 86400 * globalCsv.returner_time then
  33 + if true then
  34 + self:checkReturner()
  35 + end
  36 +
31 response.dTask = {} 37 response.dTask = {}
32 response.advSup = self:getProperty("advSup") 38 response.advSup = self:getProperty("advSup")
33 self:log("onLogin") 39 self:log("onLogin")