Commit 7730252333f715ea47a398576ec585b2ea0a5b3e

Authored by zhouhaihai
1 parent 7898054a

任务

@@ -120,6 +120,8 @@ AdvScoreType = { @@ -120,6 +120,8 @@ AdvScoreType = {
120 DinerTask = { 120 DinerTask = {
121 SellDish = 1, 121 SellDish = 1,
122 DishWithGold = 2, 122 DishWithGold = 2,
123 - UseMaterial = 3,  
124 - AddDish = 4, 123 + SellDishType = 3,
  124 + DishWithGoldType = 4,
  125 + SellDishRare = 5,
  126 + DishWithGoldRare = 6,
125 } 127 }
126 \ No newline at end of file 128 \ No newline at end of file
src/actions/DinerAction.lua
@@ -56,18 +56,10 @@ function _M.addSellRpc( agent, data ) @@ -56,18 +56,10 @@ function _M.addSellRpc( agent, data )
56 role:costItems(cost) 56 role:costItems(cost)
57 role.dinerData:updateSell(slot) 57 role.dinerData:updateSell(slot)
58 58
59 - local dirty = false  
60 - for id, value in pairs(cost) do  
61 - if role.dinerData:checkDinerTask(DinerTask.UseMaterial, value, id, nil, true) then  
62 - dirty = true  
63 - end  
64 - end  
65 - if role.dinerData:checkDinerTask(DinerTask.AddDish, count, dish, nil, true) then  
66 - dirty = true  
67 - end  
68 - if dirty then  
69 - role.dinerData:notifyUpdateProperty("order", role.dinerData:getProperty("order"))  
70 - end 59 + -- local dirty = false
  60 + -- if dirty then
  61 + -- role.dinerData:notifyUpdateProperty("order", role.dinerData:getProperty("order"))
  62 + -- end
71 63
72 sells = json.decode(role.dinerData:getProperty("sells")) 64 sells = json.decode(role.dinerData:getProperty("sells"))
73 if not sells[slot] then 65 if not sells[slot] then
@@ -141,11 +133,18 @@ function _M.getSellRewardRpc( agent, data ) @@ -141,11 +133,18 @@ function _M.getSellRewardRpc( agent, data )
141 for k,v in pairs(rewards) do 133 for k,v in pairs(rewards) do
142 reward = reward:incrv(k, v) 134 reward = reward:incrv(k, v)
143 end 135 end
144 - 136 +
145 if rewards[ItemId.Gold] and rewards[ItemId.Gold] > 0 then 137 if rewards[ItemId.Gold] and rewards[ItemId.Gold] > 0 then
146 if role.dinerData:checkDinerTask(DinerTask.DishWithGold, rewards[ItemId.Gold], sell.dish, nil, true) then 138 if role.dinerData:checkDinerTask(DinerTask.DishWithGold, rewards[ItemId.Gold], sell.dish, nil, true) then
147 dirty = true 139 dirty = true
148 end 140 end
  141 + if role.dinerData:checkDinerTask(DinerTask.DishWithGoldType, rewards[ItemId.Gold], math.ceil(sell.dish / 100), nil, true) then
  142 + dirty = true
  143 + end
  144 + local dishData = csvdb["diner_dishCsv"][sell.dish][sell.level]
  145 + if role.dinerData:checkDinerTask(DinerTask.DishWithGoldRare, rewards[ItemId.Gold], dishData.rarity, nil, true) then
  146 + dirty = true
  147 + end
149 end 148 end
150 sells[slot].reward = "" 149 sells[slot].reward = ""
151 end 150 end
@@ -198,6 +197,13 @@ function _M.expediteSellRpc( agent, data ) @@ -198,6 +197,13 @@ function _M.expediteSellRpc( agent, data )
198 if role.dinerData:checkDinerTask(DinerTask.DishWithGold, rewards[ItemId.Gold], sell.dish, nil, true) then 197 if role.dinerData:checkDinerTask(DinerTask.DishWithGold, rewards[ItemId.Gold], sell.dish, nil, true) then
199 dirty = true 198 dirty = true
200 end 199 end
  200 + if role.dinerData:checkDinerTask(DinerTask.DishWithGoldType, rewards[ItemId.Gold], math.ceil(sell.dish / 100), nil, true) then
  201 + dirty = true
  202 + end
  203 + local dishData = csvdb["diner_dishCsv"][sell.dish][sell.level]
  204 + if role.dinerData:checkDinerTask(DinerTask.DishWithGoldRare, rewards[ItemId.Gold], dishData.rarity, nil, true) then
  205 + dirty = true
  206 + end
201 end 207 end
202 end 208 end
203 end 209 end
src/models/Diner.lua
@@ -172,6 +172,8 @@ function Diner:updateSell(slot, calOnly) @@ -172,6 +172,8 @@ function Diner:updateSell(slot, calOnly)
172 self:setProperty("sells", json.encode(sells)) 172 self:setProperty("sells", json.encode(sells))
173 self:updateProperty({field = "popular", delta = popular}) 173 self:updateProperty({field = "popular", delta = popular})
174 self:checkDinerTask(DinerTask.SellDish, deltaCount, sell.dish) 174 self:checkDinerTask(DinerTask.SellDish, deltaCount, sell.dish)
  175 + self:checkDinerTask(DinerTask.SellDishType, deltaCount, math.ceil(sell.dish / 100))
  176 + self:checkDinerTask(DinerTask.SellDishRare, deltaCount, dishData.rarity)
175 end 177 end
176 return { 178 return {
177 deltaCount = deltaCount, 179 deltaCount = deltaCount,
@@ -203,6 +205,8 @@ function Diner:expediteSell(slot) @@ -203,6 +205,8 @@ function Diner:expediteSell(slot)
203 self:setProperty("sells", json.encode(sells)) 205 self:setProperty("sells", json.encode(sells))
204 self:updateProperty({field = "popular", delta = popular}) 206 self:updateProperty({field = "popular", delta = popular})
205 self:checkDinerTask(DinerTask.SellDish, expediteCount, sell.dish) 207 self:checkDinerTask(DinerTask.SellDish, expediteCount, sell.dish)
  208 + self:checkDinerTask(DinerTask.SellDishType, expediteCount, math.ceil(sell.dish / 100))
  209 + self:checkDinerTask(DinerTask.SellDishRare, expediteCount, dishData.rarity)
206 end 210 end
207 return { 211 return {
208 expediteCount = expediteCount, 212 expediteCount = expediteCount,