Commit 452d614647f603c22834b7c3d2be9a0409619383
1 parent
ca232abd
fix diner task
Showing
4 changed files
with
23 additions
and
17 deletions
Show diff stats
src/GlobalVar.lua
... | ... | @@ -111,8 +111,8 @@ AdvScoreType = { |
111 | 111 | } |
112 | 112 | |
113 | 113 | DinerTask = { |
114 | - UseMaterial = 1, | |
115 | - AddDish = 2, | |
116 | - SellDish = 3, | |
117 | - DishWithGold = 4, | |
114 | + SellDish = 1, | |
115 | + DishWithGold = 2, | |
116 | + UseMaterial = 3, | |
117 | + AddDish = 4, | |
118 | 118 | } |
119 | 119 | \ No newline at end of file | ... | ... |
src/actions/DinerAction.lua
... | ... | @@ -53,8 +53,8 @@ function _M.addSellRpc( agent, data ) |
53 | 53 | role.dinerData:updateSell(slot) |
54 | 54 | |
55 | 55 | local dirty = false |
56 | - for type, value in pairs(cost) do | |
57 | - if role.dinerData:checkDinerTask(DinerTask.UseMaterial, value, type, nil, true) then | |
56 | + for id, value in pairs(cost) do | |
57 | + if role.dinerData:checkDinerTask(DinerTask.UseMaterial, value, id, nil, true) then | |
58 | 58 | dirty = true |
59 | 59 | end |
60 | 60 | end |
... | ... | @@ -345,16 +345,16 @@ function _M.updateTaskRpc( agent, data ) |
345 | 345 | orders[index].status = 0 |
346 | 346 | orders[index].lock = 0 |
347 | 347 | elseif cmd == 2 then |
348 | - if order.status ~= 2 then | |
348 | + if order.status ~= 1 then | |
349 | 349 | return 32 |
350 | 350 | end |
351 | - if order.n <= taskData.value then | |
351 | + if order.n < taskData.value then | |
352 | 352 | return 6 |
353 | 353 | end |
354 | 354 | for typ, count in pairs(taskData.reward:toNumMap()) do |
355 | 355 | role:addItem({itemId = typ, count = count}) |
356 | 356 | end |
357 | - orders[index] = nil | |
357 | + table.remove(orders,index) | |
358 | 358 | else |
359 | 359 | return 33 |
360 | 360 | end | ... | ... |
src/models/Diner.lua
... | ... | @@ -45,7 +45,7 @@ function Diner:refreshDailyData(notify) |
45 | 45 | end |
46 | 46 | |
47 | 47 | -- 特殊订单 |
48 | - local orders = {} | |
48 | + local orders = json.decode(self:getProperty("order")) | |
49 | 49 | -- 等级由订单板等级决定 |
50 | 50 | local taskLevel = self:getProperty("buildL"):getv(5, 1) |
51 | 51 | local taskData = csvdb["diner_questCsv"][taskLevel] |
... | ... | @@ -55,8 +55,14 @@ function Diner:refreshDailyData(notify) |
55 | 55 | for n = 1, 6 do |
56 | 56 | local index = math.randWeight(taskPool, "chance") |
57 | 57 | local data = taskPool[index] |
58 | - table.insert(orders, {lv = taskLevel, id = data.id, n = 0, lock = 0,status = 0}) | |
59 | - table.remove(taskPool, index) | |
58 | + local order = orders[n] | |
59 | + if order then | |
60 | + if order.lock == 0 then | |
61 | + orders[n] = {lv = taskLevel, id = data.id, n = 0, lock = 0,status = 0} | |
62 | + end | |
63 | + else | |
64 | + orders[n] = {lv = taskLevel, id = data.id, n = 0, lock = 0,status = 0} | |
65 | + end | |
60 | 66 | end |
61 | 67 | end |
62 | 68 | end |
... | ... | @@ -91,15 +97,15 @@ function Diner:notifyUpdateProperty(field, newValue, oldValue) |
91 | 97 | SendPacket(actionCodes.Diner_updateProperty, MsgPack.pack(datas)) |
92 | 98 | end |
93 | 99 | |
94 | -function Diner:checkDinerTask(type, count, param1, param2, notNotify) | |
100 | +function Diner:checkDinerTask(typ, count, param1, param2, notNotify) | |
95 | 101 | local orders = json.decode(self:getProperty("order")) |
96 | 102 | local dirty = false |
97 | - for _, order in ipairs(orders) do | |
103 | + for k, order in ipairs(orders) do | |
98 | 104 | local taskSet = csvdb["diner_questCsv"][order.lv] |
99 | 105 | if taskSet and taskSet[order.id] then |
100 | 106 | local data = taskSet[order.id] |
101 | - if data.type == type and data.condition1 == param1 and order.status == 1 then | |
102 | - data.n = data.n + count | |
107 | + if data.type == typ and data.condition1 == param1 and order.status == 1 then | |
108 | + orders[k].n = orders[k].n + count | |
103 | 109 | dirty = true |
104 | 110 | end |
105 | 111 | end | ... | ... |