Commit 190e14152f99bb754b251f25e9dc7eace017de5f
1 parent
ffa0e259
英雄帖活动初始化
Showing
7 changed files
with
87 additions
and
4 deletions
Show diff stats
src/ProtocolCode.lua
src/actions/ActivityAction.lua
... | ... | @@ -221,4 +221,39 @@ function _M.actPaySignRpc(agent, data) |
221 | 221 | return true |
222 | 222 | end |
223 | 223 | |
224 | +function _M.actCalendaActRpc(agent, data) | |
225 | + local role = agent.role | |
226 | + local msg = MsgPack.unpack(data) | |
227 | + local taskId = msg.id | |
228 | + local calTask = role:getProperty("CalTask") | |
229 | + local record = calTask["r"] or {} | |
230 | + local flag = record[taskId] or 0 | |
231 | + if flag == 1 then return 1 end | |
232 | + local open, actId = role.activity:isOpen("CalendaTask") | |
233 | + local actData = csvdb["activity_ctrlCsv"][actId] | |
234 | + if not open then return 2 end | |
235 | + if not actData then return 3 end | |
236 | + | |
237 | + local taskCfg = csvdb["activity_taskCsv"][taskId] | |
238 | + if not taskCfg then return 4 end | |
239 | + if taskCfg.key ~= actData.condition then return 5 end | |
240 | + | |
241 | + if (calTask[taskId] or 0) < taskCfg.condition1 then return 6 end | |
242 | + | |
243 | + record[taskId] = 1 | |
244 | + calTask["r"] = record | |
245 | + | |
246 | + role:updateProperty({field = "CalTask", value = calTask}) | |
247 | + | |
248 | + local reward, change = role:award(taskCfg.reward, {log = {desc = "CalendaTask"}}) | |
249 | + | |
250 | + role:log("activity", { | |
251 | + activity_id = taskId, -- 活动ID(或活动指定任务的ID) | |
252 | + activity_type = role.activity.ActivityType.CalendaTask, -- 活动类型,见活动类型枚举表 | |
253 | + activity_reward = reward, -- 活动奖励,json格式记录,{'itemid1':123,'itemid2':456,………...} | |
254 | + }) | |
255 | + | |
256 | + SendPacket(actionCodes.Activity_actCalendaTaskRpc, MsgPack.pack(role:packReward(reward, change))) | |
257 | +end | |
258 | + | |
224 | 259 | return _M |
225 | 260 | \ No newline at end of file | ... | ... |
src/actions/HangAction.lua
... | ... | @@ -354,7 +354,7 @@ function _M.getRewardRpc(agent , data) |
354 | 354 | hangInfo.itemTime = nowTime |
355 | 355 | role:updateProperty({field = "hangBag", value = items}) |
356 | 356 | role:updateProperty({field = "hangInfo", value = hangInfo}) |
357 | - role:checkTaskEnter("HangGet") | |
357 | + role:checkTaskEnter("HangGet", {reward = reward}) | |
358 | 358 | if reward[ItemId.Gold] then |
359 | 359 | role:checkTaskEnter("HangGetGold", {count = reward[ItemId.Gold]}) |
360 | 360 | end | ... | ... |
src/actions/HeroAction.lua
... | ... | @@ -60,6 +60,8 @@ function _M.levelUpRpc( agent, data ) |
60 | 60 | hero:mylog({desc = "levelUp", int1 = hero:getProperty("level")}) |
61 | 61 | |
62 | 62 | role:checkTaskEnter("HeroLevelUp", {level = hero:getProperty("level")}) |
63 | + | |
64 | + role:checkTaskEnter("HeroLvlCollect", {}) | |
63 | 65 | SendPacket(actionCodes.Hero_levelUpRpc, '') |
64 | 66 | return true |
65 | 67 | end |
... | ... | @@ -128,6 +130,8 @@ function _M.wakeRpc(agent, data) |
128 | 130 | }) |
129 | 131 | |
130 | 132 | SendPacket(actionCodes.Hero_wakeRpc, '') |
133 | + | |
134 | + role:checkTaskEnter("HeroStarCollect", {}) | |
131 | 135 | return true |
132 | 136 | end |
133 | 137 | |
... | ... | @@ -595,6 +599,8 @@ function _M.referRunesRpc(agent, data) |
595 | 599 | }) |
596 | 600 | end |
597 | 601 | end |
602 | + | |
603 | + role:checkTaskEnter("RuneQualityCollect", {}) | |
598 | 604 | |
599 | 605 | SendPacket(actionCodes.Hero_referRunesRpc, "") |
600 | 606 | return true | ... | ... |
src/models/Activity.lua
... | ... | @@ -362,6 +362,37 @@ activityFunc[Activity.ActivityType.PayBack] = { |
362 | 362 | -- end, |
363 | 363 | } |
364 | 364 | |
365 | +-- 英雄帖 | |
366 | +activityFunc[Activity.ActivityType.CalendaTask] = { | |
367 | + ["init"] = function(self, actType, isCrossDay, notify) | |
368 | + local calTask = self.owner:getProperty("CalTask") | |
369 | + calTask = {} | |
370 | + local role = self.owner | |
371 | + local buildL = role.dinerData:getProperty("buildL") | |
372 | + local curLevel = buildL:getv(1, 1) | |
373 | + role:checkTaskEnter("DinerLevelUp", {level = curLevel}) | |
374 | + | |
375 | + role:checkTaskEnter("HeroLvlCollect", {}) | |
376 | + role:checkTaskEnter("HeroQualityCollect", {}) | |
377 | + | |
378 | + local curPopular = role.dinerData:getProperty("popular") | |
379 | + role:checkTaskEnter("DinerPopular", {count = curPopular}) | |
380 | + | |
381 | + local rLevel = role:getProperty("level") | |
382 | + role:checkTaskEnter("RoleLevelUp", {level = rLevel}) | |
383 | + | |
384 | + local towerInfo = role:getProperty("towerInfo") | |
385 | + role:checkTaskEnter("TowerPass", {level = towerInfo.l}) | |
386 | + --"PvpWin" | |
387 | + role:checkTaskEnter("HangPass", {}) | |
388 | + role:checkTaskEnter("HeroStarCollect", {}) | |
389 | + role:checkTaskEnter("RuneQualityCollect", {}) | |
390 | + | |
391 | + end, | |
392 | + -- ["close"] = function(self, actType, notify) | |
393 | + -- end, | |
394 | +} | |
395 | + | |
365 | 396 | function Activity:initActivity(actId, isCrossDay, notify) |
366 | 397 | local actData = csvdb["activity_ctrlCsv"][actId] |
367 | 398 | if not actData then return end | ... | ... |
src/models/RolePlugin.lua
... | ... | @@ -451,6 +451,7 @@ function RolePlugin.bind(Role) |
451 | 451 | newHero:saveBattleValue() |
452 | 452 | self.heros[heroId] = newHero |
453 | 453 | self:checkTaskEnter("AddHero", {heroType = heroType, wakeL = newHero:getProperty("wakeL"), camp = unitData.camp, job = unitData.job}, params.notNotify) |
454 | + self:checkTaskEnter("HeroQualityCollect", {}) | |
454 | 455 | if not params.notNotify then |
455 | 456 | local heroResponse = {} |
456 | 457 | table.insert(heroResponse, newHero:data()) | ... | ... |
src/models/RoleTask.lua
... | ... | @@ -253,7 +253,7 @@ local CalendaTaskListener = { |
253 | 253 | [TaskType.RoleLevelUp]= {{12, 2, f("level")}}, |
254 | 254 | [TaskType.TowerPass]= {{13, 2, f("level")}}, |
255 | 255 | [TaskType.HeroTalent]= {{14, 1}}, |
256 | - [TaskType.HangPass]= {{15, 2, f("id")}}, | |
256 | + [TaskType.HangPass]= {{15, 3}}, | |
257 | 257 | [TaskType.HeroStarCollect]= {{16, 3}}, |
258 | 258 | [TaskType.FoodSell]= {{17, 1, f("count")}}, |
259 | 259 | [TaskType.HangGet]= {{18, 3, f("reward")}}, |
... | ... | @@ -586,7 +586,8 @@ function RoleTask.bind(Role) |
586 | 586 | end |
587 | 587 | |
588 | 588 | function Role:checkCalendaTask(notNotify, mainType, subType, param1, param2) |
589 | - print("check calenda taskl", mainType, subType, param1, param2) | |
589 | + --print("check calenda taskl", mainType, subType, param1, param2) | |
590 | + if not self.activity then return end | |
590 | 591 | local open, actId = self.activity:isOpen("CalendaTask") |
591 | 592 | local actData = csvdb["activity_ctrlCsv"][actId] |
592 | 593 | if not actData then return end |
... | ... | @@ -672,6 +673,14 @@ function RoleTask.bind(Role) |
672 | 673 | if cfg.condition2 <= (param2 or 0) then |
673 | 674 | calTask[id] = (calTask[id] or 0) + param2 |
674 | 675 | end |
676 | + elseif cfg.type == 15 then -- 通关关卡 | |
677 | + if (calTask[id] or 0) == 0 then | |
678 | + local hangPass = self:getProperty("hangPass") | |
679 | + local diff = math.floor(cfg.condition2 / 10000) | |
680 | + if (hangPass[diff] or 0) >= cfg.condition1 then | |
681 | + calTask[id] = 1 | |
682 | + end | |
683 | + end | |
675 | 684 | end |
676 | 685 | end |
677 | 686 | end |
... | ... | @@ -679,7 +688,7 @@ function RoleTask.bind(Role) |
679 | 688 | end |
680 | 689 | end |
681 | 690 | self:updateProperty({field = "calTask", value = calTask, notNotify = notNotify}) |
682 | - dump(calTask) | |
691 | + --dump(calTask) | |
683 | 692 | end |
684 | 693 | |
685 | 694 | end | ... | ... |
-
mentioned in commit 52f8c5f05d0a531232a7dd7887becd2a77986aa1
-
mentioned in commit 52f8c5f05d0a531232a7dd7887becd2a77986aa1
-
mentioned in commit ba6d85edc65900830c7e168102d70671881b5808
-
mentioned in commit ba6d85edc65900830c7e168102d70671881b5808