Commit 03a6166a38cb1b3d7b358f613258e96890832f82
1 parent
8019d0bb
餐厅优化
Showing
11 changed files
with
193 additions
and
78 deletions
Show diff stats
src/ProtocolCode.lua
| @@ -88,6 +88,8 @@ actionCodes = { | @@ -88,6 +88,8 @@ actionCodes = { | ||
| 88 | Diner_expediteSellRpc = 310, | 88 | Diner_expediteSellRpc = 310, |
| 89 | Diner_getGreenhouseRpc = 311, | 89 | Diner_getGreenhouseRpc = 311, |
| 90 | Diner_addWantFoodRpc = 312, | 90 | Diner_addWantFoodRpc = 312, |
| 91 | + Diner_initTaskRpc = 313, | ||
| 92 | + Diner_handleTaskRpc = 314, | ||
| 91 | 93 | ||
| 92 | Tower_roleFormatRpc = 350, | 94 | Tower_roleFormatRpc = 350, |
| 93 | Tower_startBattleRpc = 351, | 95 | Tower_startBattleRpc = 351, |
src/actions/CarAction.lua
| @@ -135,7 +135,9 @@ function _M.saleEquipRpc(agent, data ) | @@ -135,7 +135,9 @@ function _M.saleEquipRpc(agent, data ) | ||
| 135 | if math.illegalNum(count, 1, own) then return end | 135 | if math.illegalNum(count, 1, own) then return end |
| 136 | end | 136 | end |
| 137 | local reward = {} | 137 | local reward = {} |
| 138 | + local allCount = 0 | ||
| 138 | for id, count in pairs(backs) do | 139 | for id, count in pairs(backs) do |
| 140 | + allCount = allCount + count | ||
| 139 | local itemData = csvdb["itemCsv"][id] | 141 | local itemData = csvdb["itemCsv"][id] |
| 140 | local typ = math.floor((id-7000)/100) | 142 | local typ = math.floor((id-7000)/100) |
| 141 | local lv = (id-7000)%100 | 143 | local lv = (id-7000)%100 |
| @@ -146,6 +148,7 @@ function _M.saleEquipRpc(agent, data ) | @@ -146,6 +148,7 @@ function _M.saleEquipRpc(agent, data ) | ||
| 146 | reward[k] = (reward[k] or 0) + v * count | 148 | reward[k] = (reward[k] or 0) + v * count |
| 147 | end | 149 | end |
| 148 | end | 150 | end |
| 151 | + role:checkTaskEnter("SaleEquip", {count = allCount}) | ||
| 149 | reward = role:award(reward) | 152 | reward = role:award(reward) |
| 150 | SendPacket(actionCodes.Car_saleEquipRpc, MsgPack.pack({reward = reward})) | 153 | SendPacket(actionCodes.Car_saleEquipRpc, MsgPack.pack({reward = reward})) |
| 151 | return true | 154 | return true |
| @@ -158,7 +161,9 @@ function _M.saleRuneRpc(agent, data ) | @@ -158,7 +161,9 @@ function _M.saleRuneRpc(agent, data ) | ||
| 158 | if not backs then return end | 161 | if not backs then return end |
| 159 | 162 | ||
| 160 | local reward = {} | 163 | local reward = {} |
| 164 | + local count = 0 | ||
| 161 | for _, uid in pairs(backs) do | 165 | for _, uid in pairs(backs) do |
| 166 | + count = count + 1 | ||
| 162 | local rune = role.runeBag[uid] | 167 | local rune = role.runeBag[uid] |
| 163 | if not rune then return end | 168 | if not rune then return end |
| 164 | if rune:getProperty("refer") ~= 0 then return end | 169 | if rune:getProperty("refer") ~= 0 then return end |
| @@ -171,7 +176,7 @@ function _M.saleRuneRpc(agent, data ) | @@ -171,7 +176,7 @@ function _M.saleRuneRpc(agent, data ) | ||
| 171 | end | 176 | end |
| 172 | 177 | ||
| 173 | role:delRunes(backs) | 178 | role:delRunes(backs) |
| 174 | - | 179 | + role:checkTaskEnter("DecoRune", {count = count}) |
| 175 | reward = role:award(reward) | 180 | reward = role:award(reward) |
| 176 | 181 | ||
| 177 | SendPacket(actionCodes.Car_saleRuneRpc, MsgPack.pack({reward = reward})) | 182 | SendPacket(actionCodes.Car_saleRuneRpc, MsgPack.pack({reward = reward})) |
src/actions/DinerAction.lua
| @@ -9,70 +9,71 @@ local _M = {} | @@ -9,70 +9,71 @@ local _M = {} | ||
| 9 | function _M.addSellRpc( agent, data ) | 9 | function _M.addSellRpc( agent, data ) |
| 10 | local role = agent.role | 10 | local role = agent.role |
| 11 | local msg = MsgPack.unpack(data) | 11 | local msg = MsgPack.unpack(data) |
| 12 | - for _,sellData in pairs(msg) do | ||
| 13 | - local slot = sellData.slot | ||
| 14 | - local sells = json.decode(role.dinerData:getProperty("sells")) | ||
| 15 | - if sells[slot] and sells[slot].count and sells[slot].count ~= 0 then | ||
| 16 | - return 0 | ||
| 17 | - end | ||
| 18 | - if math.illegalNum(slot, 1, role.dinerData:getMaxSlots()) then | ||
| 19 | - return 1 | ||
| 20 | - end | ||
| 21 | - slot = tostring(slot) | 12 | + local sellData = msg |
| 22 | 13 | ||
| 23 | - local dish = sellData.dish | ||
| 24 | - local dishSet = csvdb["diner_dishCsv"][dish] | ||
| 25 | - if not dishSet then | ||
| 26 | - return 2 | ||
| 27 | - end | ||
| 28 | - local dishLevel = role.dinerData:getProperty("dishTree"):getv(dish, 0) | ||
| 29 | - if dishLevel == 0 then | ||
| 30 | - return 3 | ||
| 31 | - end | ||
| 32 | - local dishData = dishSet[dishLevel] | ||
| 33 | - if not dishData then | ||
| 34 | - return 4 | ||
| 35 | - end | 14 | + local slot = sellData.slot |
| 15 | + local sells = json.decode(role.dinerData:getProperty("sells")) | ||
| 16 | + if sells[slot] and sells[slot].count and sells[slot].count ~= 0 then | ||
| 17 | + return 0 | ||
| 18 | + end | ||
| 19 | + if math.illegalNum(slot, 1, role.dinerData:getMaxSlots()) then | ||
| 20 | + return 1 | ||
| 21 | + end | ||
| 22 | + slot = tostring(slot) | ||
| 36 | 23 | ||
| 37 | - local calSell = role.dinerData:updateSell(slot, true) or { | ||
| 38 | - deltaCount = 0, | ||
| 39 | - deltaTime = 0, | ||
| 40 | - lastCount = 0, | ||
| 41 | - } | ||
| 42 | - local count = sellData.count | ||
| 43 | - local maxDishCount = role.dinerData:getMaxDishs() | ||
| 44 | - if math.illegalNum(count + calSell.lastCount, 1, maxDishCount) then | ||
| 45 | - return 5 | ||
| 46 | - end | 24 | + local dish = sellData.dish |
| 25 | + local dishSet = csvdb["diner_dishCsv"][dish] | ||
| 26 | + if not dishSet then | ||
| 27 | + return 2 | ||
| 28 | + end | ||
| 29 | + local dishLevel = role.dinerData:getProperty("dishTree"):getv(dish, 0) | ||
| 30 | + if dishLevel == 0 then | ||
| 31 | + return 3 | ||
| 32 | + end | ||
| 33 | + local dishData = dishSet[dishLevel] | ||
| 34 | + if not dishData then | ||
| 35 | + return 4 | ||
| 36 | + end | ||
| 47 | 37 | ||
| 48 | - local cost = dishData.material:toNumMap() | ||
| 49 | - for k, n in pairs(cost) do | ||
| 50 | - cost[k] = n * count | ||
| 51 | - end | ||
| 52 | - if not role:checkItemEnough(cost) then | ||
| 53 | - return 6 | ||
| 54 | - end | 38 | + local calSell = role.dinerData:updateSell(slot, true) or { |
| 39 | + deltaCount = 0, | ||
| 40 | + deltaTime = 0, | ||
| 41 | + lastCount = 0, | ||
| 42 | + } | ||
| 43 | + local count = sellData.count | ||
| 44 | + local maxDishCount = role.dinerData:getMaxDishs() | ||
| 45 | + if math.illegalNum(count + calSell.lastCount, 1, maxDishCount) then | ||
| 46 | + return 5 | ||
| 47 | + end | ||
| 55 | 48 | ||
| 56 | - role:costItems(cost) | ||
| 57 | - role.dinerData:updateSell(slot) | 49 | + local cost = dishData.material:toNumMap() |
| 50 | + for k, n in pairs(cost) do | ||
| 51 | + cost[k] = n * count | ||
| 52 | + end | ||
| 53 | + if not role:checkItemEnough(cost) then | ||
| 54 | + return 6 | ||
| 55 | + end | ||
| 58 | 56 | ||
| 59 | - -- local dirty = false | ||
| 60 | - -- if dirty then | ||
| 61 | - -- role.dinerData:notifyUpdateProperty("order", role.dinerData:getProperty("order")) | ||
| 62 | - -- end | 57 | + role:costItems(cost) |
| 58 | + role.dinerData:updateSell(slot) | ||
| 63 | 59 | ||
| 64 | - sells = json.decode(role.dinerData:getProperty("sells")) | ||
| 65 | - if not sells[slot] then | ||
| 66 | - sells[slot] = { | ||
| 67 | - reward = "", | ||
| 68 | - } | ||
| 69 | - end | ||
| 70 | - sells[slot].dish = dish | ||
| 71 | - sells[slot].level = dishLevel | ||
| 72 | - sells[slot].count = count | ||
| 73 | - sells[slot].time = skynet.timex() - calSell.deltaTime | ||
| 74 | - role.dinerData:updateProperty({field = "sells", value = json.encode(sells)}) | 60 | + role:checkTaskEnter("MakeFood", {id = dish, count = count}) |
| 61 | + -- local dirty = false | ||
| 62 | + -- if dirty then | ||
| 63 | + -- role.dinerData:notifyUpdateProperty("order", role.dinerData:getProperty("order")) | ||
| 64 | + -- end | ||
| 65 | + | ||
| 66 | + sells = json.decode(role.dinerData:getProperty("sells")) | ||
| 67 | + if not sells[slot] then | ||
| 68 | + sells[slot] = { | ||
| 69 | + reward = "", | ||
| 70 | + } | ||
| 75 | end | 71 | end |
| 72 | + sells[slot].dish = dish | ||
| 73 | + sells[slot].level = dishLevel | ||
| 74 | + sells[slot].count = count | ||
| 75 | + sells[slot].time = skynet.timex() - calSell.deltaTime | ||
| 76 | + role.dinerData:updateProperty({field = "sells", value = json.encode(sells)}) | ||
| 76 | SendPacket(actionCodes.Diner_addSellRpc, "") | 77 | SendPacket(actionCodes.Diner_addSellRpc, "") |
| 77 | return true | 78 | return true |
| 78 | end | 79 | end |
| @@ -590,4 +591,94 @@ function _M.getGreenhouseRpc( agent, data ) | @@ -590,4 +591,94 @@ function _M.getGreenhouseRpc( agent, data ) | ||
| 590 | return true | 591 | return true |
| 591 | end | 592 | end |
| 592 | 593 | ||
| 594 | +local function refreshTaskRpc(role, task) | ||
| 595 | + local hadType = {} | ||
| 596 | + if task.id and csvdb["task_specialCsv"][task.id] then | ||
| 597 | + hadType[csvdb["task_specialCsv"][task.id].type] = 1 | ||
| 598 | + end | ||
| 599 | + local spTask = role:getProperty("spTask") | ||
| 600 | + local taskCount = 0 | ||
| 601 | + for id ,_ in pairs(spTask) do | ||
| 602 | + hadType[csvdb["task_specialCsv"][id].type] = 1 | ||
| 603 | + taskCount = taskCount + 1 | ||
| 604 | + end | ||
| 605 | + local pool = {} | ||
| 606 | + if taskCount < globalCsv.diner_get_task_count_max then | ||
| 607 | + local curLevel = role:getProperty("level") | ||
| 608 | + for id, data in pairs(csvdb["task_specialCsv"]) do | ||
| 609 | + if not hadType[data.type] then | ||
| 610 | + local level = data.level:toArray(true, "=") | ||
| 611 | + if curLevel >= level[1] and curLevel <= level[2] then | ||
| 612 | + table.insert(pool, id) | ||
| 613 | + end | ||
| 614 | + end | ||
| 615 | + end | ||
| 616 | + end | ||
| 617 | + if not next(pool) then --每次进都看看有没有任务可以领 | ||
| 618 | + task.id = nil | ||
| 619 | + task.et = 0 | ||
| 620 | + else | ||
| 621 | + local id = pool[math.randomInt(1, #pool)] | ||
| 622 | + task.id = id | ||
| 623 | + task.et = skynet.timex() + globalCsv.diner_get_task_time_max | ||
| 624 | + end | ||
| 625 | + return task | ||
| 626 | +end | ||
| 627 | + | ||
| 628 | +-- 进入餐厅界面调用 | ||
| 629 | +function _M.initTaskRpc(agent, data) | ||
| 630 | + local role = agent.role | ||
| 631 | + | ||
| 632 | + local task = role.dinerData:getProperty("task") | ||
| 633 | + | ||
| 634 | + local now = skynet.timex() | ||
| 635 | + | ||
| 636 | + if not task.et or task.et <= now then --刷新了 | ||
| 637 | + task = refreshTaskRpc(role, task) | ||
| 638 | + role.dinerData:updateProperty({field = "task", value = task}) | ||
| 639 | + end | ||
| 640 | + | ||
| 641 | + SendPacket(actionCodes.Diner_initTaskRpc, '') | ||
| 642 | + return true | ||
| 643 | +end | ||
| 644 | + | ||
| 645 | +-- 对任务进行处理调用 | ||
| 646 | +function _M.handleTaskRpc(agent, data) | ||
| 647 | + local role = agent.role | ||
| 648 | + local msg = MsgPack.unpack(data) | ||
| 649 | + local cmd = msg.cmd -- 1 领取任务 2 拒绝任务 | ||
| 650 | + | ||
| 651 | + local task = role.dinerData:getProperty("task") | ||
| 652 | + local now = skynet.timex() | ||
| 653 | + if cmd == 1 then | ||
| 654 | + if not task.id then return end | ||
| 655 | + if task.et > now then | ||
| 656 | + --领取任务 | ||
| 657 | + task.id = nil | ||
| 658 | + task.et = now + globalCsv.diner_get_task_time_max | ||
| 659 | + task.refuse = nil | ||
| 660 | + else | ||
| 661 | + return | ||
| 662 | + end | ||
| 663 | + elseif cmd == 2 then -- 拒绝任务(重新领取) | ||
| 664 | + if not task.id then return end | ||
| 665 | + if (task.refuse or 0) >= globalCsv.diner_get_task_refuse_max then | ||
| 666 | + -- 等待时间 | ||
| 667 | + task.refuse = nil | ||
| 668 | + task.id = nil | ||
| 669 | + task.et = now + globalCsv.diner_get_task_time_max | ||
| 670 | + else | ||
| 671 | + task.refuse = (task.refuse or 0) + 1 | ||
| 672 | + --刷新任务 | ||
| 673 | + task = refreshTaskRpc(role, task) | ||
| 674 | + end | ||
| 675 | + else | ||
| 676 | + return | ||
| 677 | + end | ||
| 678 | + role.dinerData:updateProperty({field = "task", value = task}) | ||
| 679 | + | ||
| 680 | + SendPacket(actionCodes.Diner_handleTaskRpc, '') | ||
| 681 | + return true | ||
| 682 | +end | ||
| 683 | + | ||
| 593 | return _M | 684 | return _M |
| 594 | \ No newline at end of file | 685 | \ No newline at end of file |
src/actions/GmAction.lua
| @@ -51,14 +51,14 @@ function _M.fb(role, pms) -- 直接通关 | @@ -51,14 +51,14 @@ function _M.fb(role, pms) -- 直接通关 | ||
| 51 | local carbonData = csvdb["idle_battleCsv"][carbonId] | 51 | local carbonData = csvdb["idle_battleCsv"][carbonId] |
| 52 | for _, pre in ipairs(carbonData.prepose:toArray(true, "=")) do | 52 | for _, pre in ipairs(carbonData.prepose:toArray(true, "=")) do |
| 53 | passCarbon[pre] = 1 | 53 | passCarbon[pre] = 1 |
| 54 | - role:checkTaskEnter(role.TaskType.HangPass, {id = pre}) | 54 | + role:checkTaskEnter("HangPass", {id = pre}) |
| 55 | addPre(pre) | 55 | addPre(pre) |
| 56 | end | 56 | end |
| 57 | end | 57 | end |
| 58 | passCarbon[carbonId] = 1 | 58 | passCarbon[carbonId] = 1 |
| 59 | addPre(carbonId) | 59 | addPre(carbonId) |
| 60 | role:updateProperty({field = "hangPass", value = passCarbon}) | 60 | role:updateProperty({field = "hangPass", value = passCarbon}) |
| 61 | - role:checkTaskEnter(role.TaskType.HangPass, {id = carbonId}) | 61 | + role:checkTaskEnter("HangPass", {id = carbonId}) |
| 62 | return "成功" | 62 | return "成功" |
| 63 | end | 63 | end |
| 64 | 64 | ||
| @@ -71,14 +71,14 @@ function _M.fbc(role, pms) -- 直接通关 | @@ -71,14 +71,14 @@ function _M.fbc(role, pms) -- 直接通关 | ||
| 71 | local carbonData = csvdb["idle_battleCsv"][carbonId] | 71 | local carbonData = csvdb["idle_battleCsv"][carbonId] |
| 72 | for _, pre in ipairs(carbonData.prepose:toArray(true, "=")) do | 72 | for _, pre in ipairs(carbonData.prepose:toArray(true, "=")) do |
| 73 | passCarbon[pre] = 1 | 73 | passCarbon[pre] = 1 |
| 74 | - role:checkTaskEnter(role.TaskType.HangPass, {id = pre}) | 74 | + role:checkTaskEnter("HangPass", {id = pre}) |
| 75 | addPre(pre) | 75 | addPre(pre) |
| 76 | end | 76 | end |
| 77 | end | 77 | end |
| 78 | addPre(carbonId) | 78 | addPre(carbonId) |
| 79 | role:updateProperty({field = "hangInfo", value = {}}) | 79 | role:updateProperty({field = "hangInfo", value = {}}) |
| 80 | role:updateProperty({field = "hangPass", value = passCarbon}) | 80 | role:updateProperty({field = "hangPass", value = passCarbon}) |
| 81 | - role:checkTaskEnter(role.TaskType.HangPass, {id = carbonId}) | 81 | + role:checkTaskEnter("HangPass", {id = carbonId}) |
| 82 | return "成功" | 82 | return "成功" |
| 83 | end | 83 | end |
| 84 | 84 | ||
| @@ -98,7 +98,7 @@ function _M.love(role, pms) | @@ -98,7 +98,7 @@ function _M.love(role, pms) | ||
| 98 | if role:getProperty("loveStatus"):getv(heroType, 0) < level then | 98 | if role:getProperty("loveStatus"):getv(heroType, 0) < level then |
| 99 | role:changeUpdates({{type = "loveStatus", field = heroType, value = level}}) -- 总的 | 99 | role:changeUpdates({{type = "loveStatus", field = heroType, value = level}}) -- 总的 |
| 100 | end | 100 | end |
| 101 | - role:checkTaskEnter(role.TaskType.LoveBreak, {heroType = heroType, loveL = level}) | 101 | + role:checkTaskEnter("LoveBreak", {heroType = heroType, loveL = level}) |
| 102 | end | 102 | end |
| 103 | end | 103 | end |
| 104 | return "成功" | 104 | return "成功" |
src/actions/HangAction.lua
| @@ -181,7 +181,7 @@ function _M.endBattleRpc(agent, data) | @@ -181,7 +181,7 @@ function _M.endBattleRpc(agent, data) | ||
| 181 | end | 181 | end |
| 182 | reward = role:award(reward) | 182 | reward = role:award(reward) |
| 183 | 183 | ||
| 184 | - role:checkTaskEnter(role.TaskType.HangPass, {id = carbonId}) | 184 | + role:checkTaskEnter("HangPass", {id = carbonId}) |
| 185 | end | 185 | end |
| 186 | hangInfo.key = nil | 186 | hangInfo.key = nil |
| 187 | role:updateProperty({field = "hangInfo", value = hangInfo}) | 187 | role:updateProperty({field = "hangInfo", value = hangInfo}) |
| @@ -228,6 +228,7 @@ function _M.getRewardRpc(agent , data) | @@ -228,6 +228,7 @@ function _M.getRewardRpc(agent , data) | ||
| 228 | hangInfo.itemTime = nowTime | 228 | hangInfo.itemTime = nowTime |
| 229 | role:updateProperty({field = "hangBag", value = items}) | 229 | role:updateProperty({field = "hangBag", value = items}) |
| 230 | role:updateProperty({field = "hangInfo", value = hangInfo}) | 230 | role:updateProperty({field = "hangInfo", value = hangInfo}) |
| 231 | + role:checkTaskEnter("HangGet") | ||
| 231 | 232 | ||
| 232 | SendPacket(actionCodes.Hang_getRewardRpc, MsgPack.pack({ | 233 | SendPacket(actionCodes.Hang_getRewardRpc, MsgPack.pack({ |
| 233 | reward = reward | 234 | reward = reward |
src/actions/HeroAction.lua
| @@ -87,7 +87,7 @@ function _M.wakeRpc(agent, data) | @@ -87,7 +87,7 @@ function _M.wakeRpc(agent, data) | ||
| 87 | end | 87 | end |
| 88 | hero:updateProperty({field = "wakeL", delta = 1}) | 88 | hero:updateProperty({field = "wakeL", delta = 1}) |
| 89 | 89 | ||
| 90 | - role:checkTaskEnter(role.TaskType.Wake, {heroType = typ, wakeL = hero:getProperty("wakeL")}) | 90 | + role:checkTaskEnter("Wake", {heroType = typ, wakeL = hero:getProperty("wakeL")}) |
| 91 | 91 | ||
| 92 | SendPacket(actionCodes.Hero_wakeRpc, '') | 92 | SendPacket(actionCodes.Hero_wakeRpc, '') |
| 93 | return true | 93 | return true |
| @@ -404,7 +404,7 @@ function _M.loveItemRpc(agent, data) | @@ -404,7 +404,7 @@ function _M.loveItemRpc(agent, data) | ||
| 404 | role:changeUpdates({{type = "loveStatus", field = curType, value = newLevel}}) -- 总的 | 404 | role:changeUpdates({{type = "loveStatus", field = curType, value = newLevel}}) -- 总的 |
| 405 | end | 405 | end |
| 406 | 406 | ||
| 407 | - role:checkTaskEnter(role.TaskType.LoveBreak, {heroType = curType, loveL = newLevel}) | 407 | + role:checkTaskEnter("LoveBreak", {heroType = curType, loveL = newLevel}) |
| 408 | 408 | ||
| 409 | else | 409 | else |
| 410 | local delta = globalCsv.unit_love_presentValue[msg.itemId] | 410 | local delta = globalCsv.unit_love_presentValue[msg.itemId] |
| @@ -458,7 +458,7 @@ function _M.loveTaskRpc(agent, data) | @@ -458,7 +458,7 @@ function _M.loveTaskRpc(agent, data) | ||
| 458 | role:changeUpdates({{type = "loveStatus", field = curType, value = newLevel}}) -- 总的 | 458 | role:changeUpdates({{type = "loveStatus", field = curType, value = newLevel}}) -- 总的 |
| 459 | end | 459 | end |
| 460 | 460 | ||
| 461 | - role:checkTaskEnter(role.TaskType.LoveBreak, {heroType = curType, loveL = newLevel}) | 461 | + role:checkTaskEnter("LoveBreak", {heroType = curType, loveL = newLevel}) |
| 462 | 462 | ||
| 463 | SendPacket(actionCodes.Hero_loveTaskRpc, "") | 463 | SendPacket(actionCodes.Hero_loveTaskRpc, "") |
| 464 | return true | 464 | return true |
src/adv/Adv.lua
| @@ -168,7 +168,7 @@ function Adv:over(success) | @@ -168,7 +168,7 @@ function Adv:over(success) | ||
| 168 | local reward | 168 | local reward |
| 169 | if success then | 169 | if success then |
| 170 | reward = self.owner:award(self.owner:getProperty("advItems"):toNumMap()) | 170 | reward = self.owner:award(self.owner:getProperty("advItems"):toNumMap()) |
| 171 | - self.owner:checkTaskEnter(self.owner.TaskType.AdvPass, {id = self.chapterId}) | 171 | + self.owner:checkTaskEnter("AdvPass", {id = self.chapterId}) |
| 172 | 172 | ||
| 173 | -- 冒险队等级升一下子 | 173 | -- 冒险队等级升一下子 |
| 174 | local advL = self.owner:getProperty("advL") | 174 | local advL = self.owner:getProperty("advL") |
src/models/Diner.lua
| @@ -13,6 +13,7 @@ Diner.schema = { | @@ -13,6 +13,7 @@ Diner.schema = { | ||
| 13 | popular = {"number",0}, -- 累计人气 | 13 | popular = {"number",0}, -- 累计人气 |
| 14 | expedite = {"number",1}, --每日加速次数 | 14 | expedite = {"number",1}, --每日加速次数 |
| 15 | gfood = {"table", {}}, -- 愿望食材 {{id = 123, st = 1232144},} | 15 | gfood = {"table", {}}, -- 愿望食材 {{id = 123, st = 1232144},} |
| 16 | + task = {"table", {}}, -- 任务刷新 {et = 消失时间 id = 任务id, refuse = 0} | ||
| 16 | } | 17 | } |
| 17 | 18 | ||
| 18 | function Diner:refreshDailyData(notify) | 19 | function Diner:refreshDailyData(notify) |
| @@ -242,7 +243,7 @@ function Diner:getMaxDishs() | @@ -242,7 +243,7 @@ function Diner:getMaxDishs() | ||
| 242 | end | 243 | end |
| 243 | 244 | ||
| 244 | function Diner:data() | 245 | function Diner:data() |
| 245 | - local properties = {"buildL", "order", "sells", "dishTree", "skillTree","popular","expedite","gfood"} | 246 | + local properties = {"buildL", "order", "sells", "dishTree", "skillTree","popular","expedite","gfood", "task"} |
| 246 | local data = self:getProperties(properties) | 247 | local data = self:getProperties(properties) |
| 247 | return data | 248 | return data |
| 248 | end | 249 | end |
src/models/Role.lua
| @@ -73,6 +73,8 @@ Role.schema = { | @@ -73,6 +73,8 @@ Role.schema = { | ||
| 73 | 73 | ||
| 74 | towerInfo = {"table", {c = globalCsv.tower_count_limit, l = 1}}, -- 当天爬塔消耗的次数 -- {t = time, c = count, l = layer, k = battleKey} | 74 | towerInfo = {"table", {c = globalCsv.tower_count_limit, l = 1}}, -- 当天爬塔消耗的次数 -- {t = time, c = count, l = layer, k = battleKey} |
| 75 | towerF = {"table", {}}, -- 爬塔阵容 | 75 | towerF = {"table", {}}, -- 爬塔阵容 |
| 76 | + | ||
| 77 | + spTask = {"table", {}} -- 特殊任务 -- {id = status} | ||
| 76 | } | 78 | } |
| 77 | 79 | ||
| 78 | 80 | ||
| @@ -208,6 +210,7 @@ function Role:data() | @@ -208,6 +210,7 @@ function Role:data() | ||
| 208 | boxL = self:getProperty("boxL"), | 210 | boxL = self:getProperty("boxL"), |
| 209 | towerInfo = self:getProperty("towerInfo"), | 211 | towerInfo = self:getProperty("towerInfo"), |
| 210 | towerF = self:getProperty("towerF"), | 212 | towerF = self:getProperty("towerF"), |
| 213 | + spTask = self:getProperty("spTask"), | ||
| 211 | 214 | ||
| 212 | } | 215 | } |
| 213 | end | 216 | end |
src/models/RolePlugin.lua
| @@ -86,6 +86,7 @@ function RolePlugin.bind(Role) | @@ -86,6 +86,7 @@ function RolePlugin.bind(Role) | ||
| 86 | local typ = math.floor((itemId-7000)/100) | 86 | local typ = math.floor((itemId-7000)/100) |
| 87 | local lv = (itemId-7000)%100 | 87 | local lv = (itemId-7000)%100 |
| 88 | self:addEquip(typ, lv, count ,pms) | 88 | self:addEquip(typ, lv, count ,pms) |
| 89 | + self:checkTaskEnter("AddEquip", {equipId = itemId}, pms.notNotify) | ||
| 89 | end, | 90 | end, |
| 90 | [ItemType.Rune] = function() | 91 | [ItemType.Rune] = function() |
| 91 | local typ = math.floor((itemId-2000)/100) | 92 | local typ = math.floor((itemId-2000)/100) |
| @@ -312,7 +313,7 @@ function RolePlugin.bind(Role) | @@ -312,7 +313,7 @@ function RolePlugin.bind(Role) | ||
| 312 | newHero.owner = self | 313 | newHero.owner = self |
| 313 | newHero:saveBattleValue() | 314 | newHero:saveBattleValue() |
| 314 | self.heros[heroId] = newHero | 315 | self.heros[heroId] = newHero |
| 315 | - self:checkTaskEnter(self.TaskType.AddHero, {heroType = heroType, wakeL = newHero:getProperty("wakeL")}, params.notNotify) | 316 | + self:checkTaskEnter("AddHero", {heroType = heroType, wakeL = newHero:getProperty("wakeL")}, params.notNotify) |
| 316 | if not params.notNotify then | 317 | if not params.notNotify then |
| 317 | local heroResponse = {} | 318 | local heroResponse = {} |
| 318 | table.insert(heroResponse, newHero:data()) | 319 | table.insert(heroResponse, newHero:data()) |
src/models/RoleTask.lua
| 1 | 1 | ||
| 2 | 2 | ||
| 3 | --- 增加 checkTaskEnter 内的参数 记得增增加注释 | 3 | +-- 增加 checkTaskEnter 内的参数 记得增加注释 |
| 4 | local TaskType = { | 4 | local TaskType = { |
| 5 | - HangPass = 1, -- id | ||
| 6 | - AdvPass = 2, -- id | ||
| 7 | - LoveBreak = 3, -- heroType loveL | ||
| 8 | - Wake = 4, -- heroType wakeL | ||
| 9 | - AddHero = 5, -- heroType wakeL | 5 | + HangPass = 1, -- 挂机通关 - id |
| 6 | + AdvPass = 2, -- 冒险通过关 - id | ||
| 7 | + LoveBreak = 3, -- 好感度进阶 - heroType loveL | ||
| 8 | + Wake = 4, -- 觉醒 - heroType wakeL | ||
| 9 | + AddHero = 5, -- 增加角色 - heroType wakeL | ||
| 10 | + AddEquip = 6, -- 获得装备 - equipId | ||
| 11 | + DecoRune = 7, -- 分解符文 - count | ||
| 12 | + SaleEquip = 8, -- 出售装备 - count | ||
| 13 | + MakeFood = 9, -- 制作料理 - id count | ||
| 14 | + HangGet = 10, -- 挂机收货 | ||
| 15 | + FoodMGet = 11, -- 食材获取 | ||
| 16 | + | ||
| 17 | + --todo | ||
| 18 | + PvpWin = 100, -- pvp胜利 | ||
| 10 | } | 19 | } |
| 11 | 20 | ||
| 12 | local function v(value) | 21 | local function v(value) |
| @@ -36,10 +45,12 @@ local RoleTask = {} | @@ -36,10 +45,12 @@ local RoleTask = {} | ||
| 36 | 45 | ||
| 37 | function RoleTask.bind(Role) | 46 | function RoleTask.bind(Role) |
| 38 | 47 | ||
| 39 | - Role.TaskType = TaskType | ||
| 40 | - | ||
| 41 | -- 任务相关入口 | 48 | -- 任务相关入口 |
| 42 | function Role:checkTaskEnter(taskType, params, notNotify) | 49 | function Role:checkTaskEnter(taskType, params, notNotify) |
| 50 | + params = params or {} | ||
| 51 | + if type(taskType) == "string" then | ||
| 52 | + taskType = TaskType[taskType] | ||
| 53 | + end | ||
| 43 | for _, listener in ipairs(TaskListeners) do | 54 | for _, listener in ipairs(TaskListeners) do |
| 44 | if listener and listener.listen and listener.listen[taskType] and listener["func"] then | 55 | if listener and listener.listen and listener.listen[taskType] and listener["func"] then |
| 45 | local pms = {} | 56 | local pms = {} |