Commit 090340b9bd10fe5272a3bb78bf655d430cea98a3

Authored by gaofengduan
1 parent 3a603a4b

fix 餐车

#人气不需要领取,直接增加
#reward 格式调整
Showing 2 changed files with 12 additions and 12 deletions   Show diff stats
src/actions/DinerAction.lua
... ... @@ -57,9 +57,8 @@ function _M.addSellRpc( agent, data )
57 57 sells[slot] = {
58 58 dish = dish,
59 59 level = dishLevel,
60   - reward = {},
61   - count = 0,
62 60 reward = "",
  61 + count = 0,
63 62 famous = 0,
64 63 }
65 64 end
... ... @@ -122,7 +121,7 @@ function _M.getSellRewardRpc( agent, data )
122 121 local sells = json.decode(role.dinerData:getProperty("sells"))
123 122 for slot,sell in pairs(sells) do
124 123 role.dinerData:updateSell(slot)
125   - for k,v in pairs(sell.reward) do
  124 + for k,v in pairs(sell.reward:toMap()) do
126 125 if reward[k] then
127 126 reward[k] = reward[k] + v
128 127 else
... ...
src/models/Diner.lua
... ... @@ -11,6 +11,7 @@ Diner.schema = {
11 11 hot = {"string", ""}, -- 今日热门
12 12 dishTree = {"string", "1=1 2=1 3=1"}, -- 料理天赋
13 13 skillTree = {"string", ""}, -- 支援天赋
  14 + popular = {"number",0}, -- 累计人气
14 15 }
15 16  
16 17 function Diner:refreshDailyData(notify)
... ... @@ -76,21 +77,21 @@ function Diner:notifyUpdateProperty(field, newValue, oldValue)
76 77 SendPacket(actionCodes.Diner_updateProperty, MsgPack.pack(datas))
77 78 end
78 79  
79   -local function calSellReward(sell, delta, dishData)
  80 +function Diner:calSellReward(sell, delta, dishData)
80 81 local reward = sell.reward or ""
81   - local famous = sell.famous or 0
  82 + local popular = 0
82 83 if delta <= 0 then
83   - return reward, famous
  84 + return reward, popular
84 85 end
85 86 for type, value in pairs(dishData.item_normal:toNumMap()) do
86 87 reward = reward:incrv(type, value * delta)
87 88 end
88   - famous = famous + dishData.famous_normal * delta
  89 + popular = popular + dishData.famous_normal * delta
89 90 if sell.hot > 0 then
90 91 for type, value in pairs(dishData.item_popular:toNumMap()) do
91 92 reward = reward:incrv(type, value * delta)
92 93 end
93   - famous = famous + dishData.famous_popular * delta
  94 + popular = popular + dishData.famous_popular * delta
94 95 end
95 96  
96 97 for buildType = 1, 6 do
... ... @@ -111,10 +112,10 @@ local function calSellReward(sell, delta, dishData)
111 112 end
112 113 end
113 114 if buildData and buildData.famous_up > 0 then
114   - famous = math.floor(famous * (100 + buildData.famous_up) / 100)
  115 + popular = math.floor(popular * (100 + buildData.famous_up) / 100)
115 116 end
116 117 end
117   - return reward, famous
  118 + return reward, popular
118 119 end
119 120  
120 121 function Diner:updateSell(slot, calOnly)
... ... @@ -138,14 +139,14 @@ function Diner:updateSell(slot, calOnly)
138 139 local lastCount = sell.count - deltaCount
139 140  
140 141 if not calOnly then
141   - local reward, famous = self:calSellReward(sell, deltaCount, dishData)
  142 + local reward, popular = self:calSellReward(sell, deltaCount, dishData)
142 143 sell.time = skynet.timex() - deltaTime
143 144 sell.count = lastCount
144 145 sell.level = self:getProperty("dishTree"):getv(sell.dish, 1)
145 146 sell.hot = self:getProperty("hot"):getv(sell.dish, 0)
146 147 sell.reward = reward
147   - sell.famous = famous
148 148 self:setProperty("sells", json.encode(sells))
  149 + self:incrProperty("popular",popular)
149 150 end
150 151 return {
151 152 deltaCount = deltaCount,
... ...