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 | ... | ... |