diff --git a/src/actions/ActivityAction.lua b/src/actions/ActivityAction.lua index 295ea6d..2f1cd23 100644 --- a/src/actions/ActivityAction.lua +++ b/src/actions/ActivityAction.lua @@ -222,11 +222,11 @@ function _M.actPaySignRpc(agent, data) return true end -function _M.actCalendaActRpc(agent, data) +function _M.actCalendaTaskRpc(agent, data) local role = agent.role local msg = MsgPack.unpack(data) local taskId = msg.id - local calTask = role:getProperty("CalTask") + local calTask = role:getProperty("calTask") or {} local record = calTask["r"] or {} local flag = record[taskId] or 0 if flag == 1 then return 1 end @@ -235,18 +235,20 @@ function _M.actCalendaActRpc(agent, data) if not open then return 2 end if not actData then return 3 end - local taskCfg = csvdb["activity_taskCsv"][taskId] - if not taskCfg then return 4 end - if taskCfg.key ~= actData.condition then return 5 end + local taskList = csvdb["activity_taskCsv"][actData.condition] + if not taskList then return 4 end + local taskCfg = taskList[taskId] + if not taskCfg then return 5 end + if taskCfg.key ~= actData.condition then return 6 end - if (calTask[taskId] or 0) < taskCfg.condition1 then return 6 end + if (calTask[taskId] or 0) < taskCfg.condition1 then return 7 end record[taskId] = 1 calTask["r"] = record - role:updateProperty({field = "CalTask", value = calTask}) + role:updateProperty({field = "calTask", value = calTask}) - local reward, change = role:award(taskCfg.reward, {log = {desc = "CalendaTask"}}) + local reward, change = role:award(taskCfg.reward, {log = {desc = "calendaTask"}}) role:log("activity", { activity_id = taskId, -- 活动ID(或活动指定任务的ID) @@ -255,6 +257,7 @@ function _M.actCalendaActRpc(agent, data) }) SendPacket(actionCodes.Activity_actCalendaTaskRpc, MsgPack.pack(role:packReward(reward, change))) + return true end return _M \ No newline at end of file diff --git a/src/csvdata b/src/csvdata index 9bb26cf..d54c7ca 160000 --- a/src/csvdata +++ b/src/csvdata @@ -1 +1 @@ -Subproject commit 9bb26cfdb11f81dbfe6abbc468b44ca9f814deb2 +Subproject commit d54c7ca07fd397022166b38b58b80a78f339f592 diff --git a/src/models/RoleLog.lua b/src/models/RoleLog.lua index 266542e..89298cc 100644 --- a/src/models/RoleLog.lua +++ b/src/models/RoleLog.lua @@ -81,6 +81,7 @@ local ItemReason = { birth = 1006, -- 出生奖励 actSign = 1007, -- 活动签到 actPaySign = 1008, -- 活动付费签到 + calendaTask = 1009, -- 英雄帖 -- 餐厅 greenHourse = 1101, -- 食材获得 diff --git a/src/models/RoleTask.lua b/src/models/RoleTask.lua index c17c15e..bc63d9b 100644 --- a/src/models/RoleTask.lua +++ b/src/models/RoleTask.lua @@ -604,7 +604,6 @@ function RoleTask.bind(Role) if k == cid then for id, cfg in pairs(taskList) do if cfg.type == mainType then - dump(cfg) if subType == 1 then -- 增加数值 calTask[id] = (calTask[id] or 0) + param1 elseif subType == 2 then -- 直接赋值 @@ -620,7 +619,7 @@ function RoleTask.bind(Role) end end end - if calTask[id] < count then + if (calTask[id] or 0) < count then calTask[id] = count end elseif cfg.type == 5 then -- 英雄等级收集进度 @@ -644,7 +643,6 @@ function RoleTask.bind(Role) calTask[id] = count end elseif cfg.type == 18 then -- 挂机累计收获id,y个 - dump(param1) for rid, v in pairs(param1) do if cfg.condition2 == rid then calTask[id] = (calTask[id] or 0) + v @@ -656,7 +654,7 @@ function RoleTask.bind(Role) local rcount = 0 for _,uid in pairs(hero:getRunes()) do if uid > 0 then - local runeData = self.owner.runeBag[uid] + local runeData = self.runeBag[uid] if runeData then local csvData = csvdb["runeCsv"][runeData:getProperty("type")][runeData:getProperty("id")] -- libgit2 0.21.2