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 = {} |