Commit ba33bcac0ff5664fe7f93872f144d517d93d8bba
1 parent
e6845afa
挂机章节解锁
Showing
4 changed files
with
39 additions
and
1 deletions
Show diff stats
src/ProtocolCode.lua
| @@ -122,6 +122,7 @@ actionCodes = { | @@ -122,6 +122,7 @@ actionCodes = { | ||
| 122 | Hang_bagFieldRpc = 263, | 122 | Hang_bagFieldRpc = 263, |
| 123 | Hang_chatLineRpc = 264, | 123 | Hang_chatLineRpc = 264, |
| 124 | Hang_selectTeamRpc = 265, | 124 | Hang_selectTeamRpc = 265, |
| 125 | + Hang_unlockChapterRpc = 270, | ||
| 125 | 126 | ||
| 126 | Diner_updateProperty = 300, | 127 | Diner_updateProperty = 300, |
| 127 | Diner_addSellRpc = 301, | 128 | Diner_addSellRpc = 301, |
src/actions/HangAction.lua
| @@ -138,6 +138,15 @@ function _M.startRpc( agent, data ) | @@ -138,6 +138,15 @@ function _M.startRpc( agent, data ) | ||
| 138 | if not role:checkHangPass(preCarbonId) then return 2 end | 138 | if not role:checkHangPass(preCarbonId) then return 2 end |
| 139 | end | 139 | end |
| 140 | 140 | ||
| 141 | + local carbonId = msg.carbonId -- 解锁章节id | ||
| 142 | + local condition = globalCsv.idle_chapter_unlock[carbonId] | ||
| 143 | + if condition then | ||
| 144 | + local unlockChapter = role:getProperty("unlockChap") | ||
| 145 | + if not unlockChapter[carbonId] then | ||
| 146 | + return 3 | ||
| 147 | + end | ||
| 148 | + end | ||
| 149 | + | ||
| 141 | if checkReward(role) then | 150 | if checkReward(role) then |
| 142 | role:updateProperty({field = "hangBag", value = role:getProperty("hangBag")}) | 151 | role:updateProperty({field = "hangBag", value = role:getProperty("hangBag")}) |
| 143 | end | 152 | end |
| @@ -847,4 +856,28 @@ function _M.selectTeamRpc(agent, data) | @@ -847,4 +856,28 @@ function _M.selectTeamRpc(agent, data) | ||
| 847 | return true | 856 | return true |
| 848 | end | 857 | end |
| 849 | 858 | ||
| 859 | +function _M.unlockChapterRpc(agent, data) | ||
| 860 | + local role = agent.role | ||
| 861 | + local msg = MsgPack.unpack(data) | ||
| 862 | + local carbonId = msg.carbonId -- 解锁章节id | ||
| 863 | + local condition = globalCsv.idle_chapter_unlock[carbonId] | ||
| 864 | + if not condition then return 1 end | ||
| 865 | + local conditionMap = condition:toArray(true, "=") | ||
| 866 | + local count, level = conditionMap[1],conditionMap[2] | ||
| 867 | + local cnt = 0 | ||
| 868 | + for _, hero in pairs(role.heros) do | ||
| 869 | + if hero:getProperty("level") >= level then | ||
| 870 | + cnt = cnt + 1 | ||
| 871 | + end | ||
| 872 | + end | ||
| 873 | + if cnt < count then return 2 end | ||
| 874 | + | ||
| 875 | + local unlockChapter = role:getProperty("unlockChap") | ||
| 876 | + unlockChapter[carbonId] = 1 | ||
| 877 | + role:updateProperty({field="unlockChap", value = unlockChapter}) | ||
| 878 | + | ||
| 879 | + SendPacket(actionCodes.Hang_unlockChapterRpc, '') | ||
| 880 | + return true | ||
| 881 | +end | ||
| 882 | + | ||
| 850 | return _M | 883 | return _M |
src/models/Role.lua
| @@ -199,6 +199,8 @@ Role.schema = { | @@ -199,6 +199,8 @@ Role.schema = { | ||
| 199 | returner = {"table", {}}, -- 回归者 {time = 12334233423, [1] = 1, [2] = 2, status = {[1] = 1}} | 199 | returner = {"table", {}}, -- 回归者 {time = 12334233423, [1] = 1, [2] = 2, status = {[1] = 1}} |
| 200 | 200 | ||
| 201 | roleIncre = {"table", {}}, -- 角色英雄,铭文,火花自增序列 {heroId = 1, runeId = 1, sparkId = 1} | 201 | roleIncre = {"table", {}}, -- 角色英雄,铭文,火花自增序列 {heroId = 1, runeId = 1, sparkId = 1} |
| 202 | + | ||
| 203 | + unlockChap = {"table", {}}, -- 解锁的章节 | ||
| 202 | } | 204 | } |
| 203 | 205 | ||
| 204 | 206 | ||
| @@ -432,6 +434,8 @@ function Role:data() | @@ -432,6 +434,8 @@ function Role:data() | ||
| 432 | 434 | ||
| 433 | seaport = self:getProperty("seaport"), | 435 | seaport = self:getProperty("seaport"), |
| 434 | returner = self:getProperty("returner"), | 436 | returner = self:getProperty("returner"), |
| 437 | + | ||
| 438 | + unlockChap = self:getProperty("unlockChap"), -- 解锁的章节 | ||
| 435 | } | 439 | } |
| 436 | end | 440 | end |
| 437 | 441 |