Commit bab3066620f5d7fb835982fe3d857b467fed3498
1 parent
f99f48df
增加通用功能等级 字段
Showing
6 changed files
with
60 additions
and
9 deletions
Show diff stats
src/GlobalVar.lua
... | ... | @@ -46,12 +46,19 @@ ItemType = { |
46 | 46 | FuncOpen = 15, -- 管理功能开放 |
47 | 47 | } |
48 | 48 | |
49 | +--在这个里面的会记录的是功能开放 对应类型open 而不是 ID | |
49 | 50 | FuncOpenType = { |
50 | - AdvEndless = 5919, -- 无尽模式 | |
51 | - AdvRelay = 5920, -- 中继开放 | |
52 | - AdvArtifact = 5921, -- 神器开放 | |
51 | + AdvEndless = 2, -- 无尽模式 | |
52 | + AdvRelay = 3, -- 中继开放 | |
53 | + AdvArtifact = 4, -- 神器开放 | |
54 | + AdvWS = 6, -- 工坊解锁 | |
53 | 55 | } |
54 | 56 | |
57 | +TypeIsFunc = {} | |
58 | +for _, v in pairs(FuncOpenType) do | |
59 | + TypeIsFunc[v] = true | |
60 | +end | |
61 | + | |
55 | 62 | -- 物品起始id |
56 | 63 | ItemStartId = { |
57 | 64 | Hero = 300, -- 英雄 | ... | ... |
src/ProtocolCode.lua
src/actions/AdvAction.lua
... | ... | @@ -315,6 +315,33 @@ function _M.endBattleRpc(agent, data) |
315 | 315 | return true |
316 | 316 | end |
317 | 317 | |
318 | +function _M.workshopRpc(agent, data) | |
319 | + local role = agent.role | |
320 | + local msg = MsgPack.unpack(data) | |
321 | + | |
322 | + local id = msg.id | |
323 | + local count = msg.count or 1 | |
324 | + local mergeData = csvdb["adv_mergeCsv"][id] | |
325 | + if not mergeData then return 1 end | |
326 | + | |
327 | + if not role:isFuncOpen(FuncOpenType.AdvWS) or role:getFuncLv(FuncOpenType.AdvWS) < mergeData.unlock then return 2 end | |
328 | + | |
329 | + local advWs = role.dailyData:getProperty("advWs") | |
330 | + if math.illegalNum(count, 1, mergeData.limit - (advWs[id] or 0)) then return 3 end | |
331 | + | |
332 | + local cost = mergeData.formula:toNumMap() | |
333 | + for k, v in pairs(cost) do | |
334 | + cost[k] = v * count | |
335 | + end | |
336 | + if not role:checkItemEnough(cost) then return 4 end | |
337 | + | |
338 | + role:costItems(cost) | |
339 | + advWs[id] = (advWs[id] or 0) + count | |
340 | + role.dailyData:updateProperty({field = advWs, value = advWs}) | |
341 | + local reward = role:award({[id] = count}) | |
342 | + SendPacket(actionCodes.Adv_workshopRpc, MsgPack.pack({reward = reward})) | |
343 | + return true | |
344 | +end | |
318 | 345 | |
319 | 346 | |
320 | 347 | return _M |
321 | 348 | \ No newline at end of file | ... | ... |
src/models/Daily.lua
... | ... | @@ -12,6 +12,7 @@ Daily.schema = { |
12 | 12 | dinerQC = {"number", 0}, -- 贩卖加速次数 |
13 | 13 | advC = {"number", 0}, -- 冒险次数(消耗体力) |
14 | 14 | advBC = {"number", 0}, -- 冒险次数购买次数(冒险体力购买次数) |
15 | + advWs = {"table", {}}, -- 冒险队工坊 | |
15 | 16 | } |
16 | 17 | |
17 | 18 | function Daily:updateProperty(params) |
... | ... | @@ -48,6 +49,7 @@ function Daily:data() |
48 | 49 | dinerQC = self:getProperty("dinerQC"), |
49 | 50 | advC = self:getProperty("advC"), |
50 | 51 | advBC = self:getProperty("advBC"), |
52 | + advWs = self:getProperty("advWs"), | |
51 | 53 | } |
52 | 54 | end |
53 | 55 | ... | ... |
src/models/Role.lua
... | ... | @@ -37,6 +37,7 @@ Role.schema = { |
37 | 37 | exp = {"number", 0}, |
38 | 38 | items = {"string", ""}, |
39 | 39 | funcOpen = {"table", {}}, --功能是否开放 |
40 | + funcLv = {"table", {}}, --功能等级 | |
40 | 41 | loveStatus = {"string", ""}, --统计角色的最高 好感度等级 类型相关 -- type=loveL type=loveL |
41 | 42 | crown = {"number", 0}, -- 看伴娘 |
42 | 43 | |
... | ... | @@ -51,6 +52,8 @@ Role.schema = { |
51 | 52 | advTask = {"table", {}}, -- 冒险已领取任务完成状态 {id = status} --每层重置 |
52 | 53 | advMTask = {"table", {id = 1, status = 0, lock = true}}, -- 冒险主线任务 -- {id = id, status = status, lock = true} -- 当前主线id 当前主线状态 是否锁定状态 |
53 | 54 | advAchiev = {"table", {}}, -- 冒险成就 {chapterId = {achievId = status}} |
55 | + advL = {"number", 1}, -- 冒险队等级 | |
56 | + | |
54 | 57 | --挂机相关 |
55 | 58 | hangPass = {"table", {}}, -- 挂机通过的最大关卡 |
56 | 59 | hangTeam = {"table", {}}, -- 挂机队伍 |
... | ... | @@ -175,6 +178,7 @@ function Role:data() |
175 | 178 | exp = self:getProperty("exp"), |
176 | 179 | items = self:getProperty("items"):toNumMap(), |
177 | 180 | funcOpen = self:getProperty("funcOpen"), |
181 | + funcLv = self:getProperty("funcLv"), | |
178 | 182 | loveStatus = self:getProperty("loveStatus"):toNumMap(), |
179 | 183 | diamond = self:getAllDiamond(), |
180 | 184 | bagLimit = self:getProperty("bagLimit"), |
... | ... | @@ -186,6 +190,8 @@ function Role:data() |
186 | 190 | advHang = self:getProperty("advHang"), |
187 | 191 | advTask = self:getProperty("advTask"), |
188 | 192 | advMTask = self:getProperty("advMTask"), |
193 | + advAchiev = self:getProperty("advAchiev"), | |
194 | + advL = self:getProperty("advL"), | |
189 | 195 | |
190 | 196 | hangPass = self:getProperty("hangPass"), |
191 | 197 | hangTeam = self:getProperty("hangTeam"), | ... | ... |
src/models/RolePlugin.lua
... | ... | @@ -593,15 +593,23 @@ function RolePlugin.bind(Role) |
593 | 593 | return self:getProperty("funcOpen")[func] == 1 |
594 | 594 | end |
595 | 595 | |
596 | - function Role:funcOpen(func) | |
597 | - if csvdb["itemCsv"][func] and csvdb["itemCsv"][func].type == ItemType.FuncOpen then | |
598 | - self:changeUpdates({{type = "funcOpen", field = func, value = 1}}) | |
599 | - end | |
596 | + function Role:getFuncLv(func) | |
597 | + return self:getProperty("funcLv")[func] or 1 | |
600 | 598 | end |
601 | 599 | |
602 | - function Role:funcClose(func) | |
600 | + function Role:funcOpen(func) | |
603 | 601 | if csvdb["itemCsv"][func] and csvdb["itemCsv"][func].type == ItemType.FuncOpen then |
604 | - self:changeUpdates({{type = "funcOpen", field = func, value = nil}}) | |
602 | + local unlockData = csvdb["unlockCsv"][func] | |
603 | + if TypeIsFunc[unlockData.type] then | |
604 | + if unlockData.value1 == 0 or unlockData.value1 == 1 then | |
605 | + self:changeUpdates({{type = "funcOpen", field = unlockData.type, value = 1}}) | |
606 | + else | |
607 | + local oldV = self:getFuncLv(unlockData.type) | |
608 | + self:changeUpdates({{type = "funcLv", field = unlockData.type, value = oldV + 1}}) | |
609 | + end | |
610 | + else | |
611 | + self:changeUpdates({{type = "funcOpen", field = func, value = 1}}) | |
612 | + end | |
605 | 613 | end |
606 | 614 | end |
607 | 615 | ... | ... |