Commit be697585cc6fc1c138a4865ea1671e6593e2443c
1 parent
54379452
活动剧情解锁
Showing
6 changed files
with
50 additions
and
7 deletions
Show diff stats
src/ProtocolCode.lua
src/actions/ActivityAction.lua
... | ... | @@ -493,6 +493,8 @@ function _M.startBattleRpc(agent, data) |
493 | 493 | end |
494 | 494 | changeFlag = true |
495 | 495 | end |
496 | + -- 解锁活动剧情 | |
497 | + role:checkStoryStatus(false, 5, id) | |
496 | 498 | |
497 | 499 | if not count then |
498 | 500 | role.__actBattleCache = { |
... | ... | @@ -696,6 +698,11 @@ function _M.endBattleRpc(agent, data) |
696 | 698 | supports = support, |
697 | 699 | }) |
698 | 700 | |
701 | + -- 解锁活动剧情 | |
702 | + if newStarNum >= 3 then | |
703 | + role:checkStoryStatus(false, 5, id) | |
704 | + end | |
705 | + | |
699 | 706 | reward, change = role:award(reward, {log = {desc = "actBattle", int1 = actid, int2 = newStarNum}}) |
700 | 707 | |
701 | 708 | SendPacket(actionCodes.Activity_endBattleRpc, MsgPack.pack({ |
... | ... | @@ -758,4 +765,27 @@ function _M.battleMilestoneRpc(agent, data) |
758 | 765 | return true |
759 | 766 | end |
760 | 767 | |
768 | +function _M.bossRewardRpc(agent, data) | |
769 | + local role = agent.role | |
770 | + local msg = MsgPack.unpack(data) | |
771 | + local actid = msg.actid | |
772 | + local id = msg.id | |
773 | + local index = msg.index | |
774 | + | |
775 | + if not role.activity:isOpenById(actid, "ChallengeLevel") then return 1 end | |
776 | + | |
777 | + local actCfg = csvdb["activity_battleCsv"][actid] | |
778 | + if not actCfg then return 2 end | |
779 | + | |
780 | + local battleCfg = actCfg[id] | |
781 | + if not battleCfg then return 3 end | |
782 | + | |
783 | + if battleCfg.boss_reward_id == 0 then return 4 end | |
784 | + | |
785 | + --local award = mileCfg.reward:toNumMap() | |
786 | + --local reward, change = role:award(award, {log = {desc = "actMilestone", int1 = actid, int2 = index}}) | |
787 | + --SendPacket(actionCodes.Activity_battleMilestoneRpc, MsgPack.pack(role:packReward(reward, change))) | |
788 | + return true | |
789 | +end | |
790 | + | |
761 | 791 | return _M |
762 | 792 | \ No newline at end of file | ... | ... |
src/actions/RoleAction.lua
... | ... | @@ -724,11 +724,12 @@ function _M.unLockStoryBookRpc(agent, data) |
724 | 724 | local storyStatus = role:getProperty("storyB") |
725 | 725 | if storyStatus[storyId] and storyStatus[storyId].s then return end --不需要解锁 |
726 | 726 | |
727 | - local cost = storyBookData.lockItem:toNumMap() | |
728 | - if not cost or not next(cost) then return end | |
729 | - if not role:checkItemEnough(cost) then return end -- 消耗品不足 | |
730 | - | |
731 | - role:costItems(cost, {log = {desc = "unlockStory", int1 = storyId}}) | |
727 | + if storyBookData.lockItem ~= "free" then | |
728 | + local cost = storyBookData.lockItem:toNumMap() | |
729 | + if not cost or not next(cost) then return end | |
730 | + if not role:checkItemEnough(cost) then return end -- 消耗品不足 | |
731 | + role:costItems(cost, {log = {desc = "unlockStory", int1 = storyId}}) | |
732 | + end | |
732 | 733 | |
733 | 734 | -- 解锁 |
734 | 735 | storyStatus[storyId] = storyStatus[storyId] or {} | ... | ... |
src/models/Activity.lua
... | ... | @@ -168,7 +168,7 @@ function Activity:isOpenById(id, activityType) |
168 | 168 | activityType = checkActivityType(activityType) |
169 | 169 | local cfg = csvdb["activity_ctrlCsv"][id] |
170 | 170 | if not cfg then return false end |
171 | - if cfg.showType ~= activityType then return false end | |
171 | + if activityType ~= 0 and cfg.showType ~= activityType then return false end | |
172 | 172 | |
173 | 173 | return self._isOpen[id] |
174 | 174 | end | ... | ... |
src/models/RoleTask.lua
... | ... | @@ -358,11 +358,22 @@ function RoleTask.bind(Role) |
358 | 358 | return true |
359 | 359 | end |
360 | 360 | |
361 | + local function checkStoryStatusByActBattle(role, data, status, cond1) -- cond1 carbonId | |
362 | + local actid = data.sort | |
363 | + if not role.activity:isOpenById(actid) then return end | |
364 | + if cond1 and tonumber(data.unlockData) == cond1 then | |
365 | + status.s = 1 | |
366 | + return true | |
367 | + end | |
368 | + return | |
369 | + end | |
370 | + | |
361 | 371 | local checkstoryStatusFunc = { |
362 | 372 | [1] = checkStoryStatusByHang, |
363 | 373 | [2] = checkStoryStatusByLove, |
364 | 374 | [3] = checkStoryStatusByMultStar, |
365 | 375 | [4] = checkStoryStatusByAdv, |
376 | + [5] = checkStoryStatusByActBattle, | |
366 | 377 | } |
367 | 378 | |
368 | 379 | function Role:checkStoryStatus(notNotify, stype, cond1, cond2, cond3) | ... | ... |