Commit dbd0ca58e0d6ecdb07297c30730d0a1f4769fec4
1 parent
289a4927
car 营养剂制作
Showing
4 changed files
with
49 additions
and
5 deletions
Show diff stats
src/ProtocolCode.lua
@@ -69,6 +69,7 @@ actionCodes = { | @@ -69,6 +69,7 @@ actionCodes = { | ||
69 | Diner_refreshTaskRpc = 309, | 69 | Diner_refreshTaskRpc = 309, |
70 | Diner_expediteSellRpc = 310, | 70 | Diner_expediteSellRpc = 310, |
71 | Diner_getGreenhouseRpc = 311, | 71 | Diner_getGreenhouseRpc = 311, |
72 | + Diner_makePotionRpc = 312, | ||
72 | } | 73 | } |
73 | 74 | ||
74 | rpcResponseBegin = 10000 | 75 | rpcResponseBegin = 10000 |
src/actions/DinerAction.lua
@@ -297,7 +297,7 @@ function _M.talentUpRpc( agent, data ) | @@ -297,7 +297,7 @@ function _M.talentUpRpc( agent, data ) | ||
297 | return 6 | 297 | return 6 |
298 | end | 298 | end |
299 | 299 | ||
300 | - -- 正在贩卖不能升级 | 300 | + -- 正在贩卖不能升级料理天赋 |
301 | local sells = json.decode(role.dinerData:getProperty("sells")) | 301 | local sells = json.decode(role.dinerData:getProperty("sells")) |
302 | for slot, _ in pairs(sells) do | 302 | for slot, _ in pairs(sells) do |
303 | role.dinerData:updateSell(slot) | 303 | role.dinerData:updateSell(slot) |
@@ -309,9 +309,13 @@ function _M.talentUpRpc( agent, data ) | @@ -309,9 +309,13 @@ function _M.talentUpRpc( agent, data ) | ||
309 | end | 309 | end |
310 | end | 310 | end |
311 | 311 | ||
312 | + -- 正在冒险不能升级营养剂天赋 | ||
313 | + if talentData.effect:split2()[1] == 2 then | ||
314 | + if next(role.advTeam) then return 8 end | ||
315 | + end | ||
316 | + | ||
312 | role:costItems(cost) | 317 | role:costItems(cost) |
313 | role.dinerData:updateProperty({field = "dishTree", value = dishTree:setv(dish, dishLevel + 1)}) | 318 | role.dinerData:updateProperty({field = "dishTree", value = dishTree:setv(dish, dishLevel + 1)}) |
314 | - -- talentData.tree_point = "40=1" | ||
315 | local treePoint = talentData.tree_point:toNumMap() | 319 | local treePoint = talentData.tree_point:toNumMap() |
316 | if next(treePoint) then | 320 | if next(treePoint) then |
317 | role:award(treePoint) | 321 | role:award(treePoint) |
@@ -501,4 +505,40 @@ function _M.getGreenhouseRpc( agent, data ) | @@ -501,4 +505,40 @@ function _M.getGreenhouseRpc( agent, data ) | ||
501 | return true | 505 | return true |
502 | end | 506 | end |
503 | 507 | ||
508 | +function _M.makePotionRpc( agent, data ) | ||
509 | + local role = agent.role | ||
510 | + local msg = MsgPack.unpack(data) | ||
511 | + local potionId = msg.id | ||
512 | + local count = msg.count | ||
513 | + if count < 1 then return 0 end | ||
514 | + local potionBag = role:getProperty("potionBag") | ||
515 | + local potionLv = role.dinerData:getProperty("dishTree"):getv(potionId, 0) | ||
516 | + if potionLv < 1 then return 1 end | ||
517 | + | ||
518 | + local potionSet = csvdb["adv_potionCsv"][potionId] | ||
519 | + if not potionSet then return 2 end | ||
520 | + | ||
521 | + local potionData = potionSet[potionLv] | ||
522 | + if not potionData then return 3 end | ||
523 | + | ||
524 | + local own = potionBag[potionId] or 0 | ||
525 | + if own+count > potionData.limit then | ||
526 | + return 4 | ||
527 | + end | ||
528 | + | ||
529 | + local cost = potionData.material:toNumMap() | ||
530 | + for _, n in pairs(cost) do | ||
531 | + n = n * count | ||
532 | + end | ||
533 | + if not role:checkItemEnough(cost) then | ||
534 | + return 5 | ||
535 | + end | ||
536 | + | ||
537 | + role:costItems(cost) | ||
538 | + potionBag[potionId] = own + count | ||
539 | + role:updateProperty({field = "potionBag", value = potionBag}) | ||
540 | + SendPacket(actionCodes.Diner_makePotionRpc, MsgPack.pack({potionBag = potionBag})) | ||
541 | + return true | ||
542 | +end | ||
543 | + | ||
504 | return _M | 544 | return _M |
505 | \ No newline at end of file | 545 | \ No newline at end of file |
src/models/Role.lua
@@ -52,6 +52,7 @@ Role.schema = { | @@ -52,6 +52,7 @@ Role.schema = { | ||
52 | hangBag = {"table", {}}, -- 背包 | 52 | hangBag = {"table", {}}, -- 背包 |
53 | hangBagLimit = {"number", globalCsv.idle_field_origin}, --背包上限 | 53 | hangBagLimit = {"number", globalCsv.idle_field_origin}, --背包上限 |
54 | 54 | ||
55 | + potionBag = {"table", {}}, -- 营养剂背包 | ||
55 | } | 56 | } |
56 | 57 | ||
57 | 58 | ||
@@ -113,7 +114,7 @@ function Role:changeUpdates(params, notNotify) | @@ -113,7 +114,7 @@ function Role:changeUpdates(params, notNotify) | ||
113 | error("[ERROR:] need handler for changeUpdate, field : " .. fieldType) | 114 | error("[ERROR:] need handler for changeUpdate, field : " .. fieldType) |
114 | return | 115 | return |
115 | end | 116 | end |
116 | - --支持多深度单字段 | 117 | + --支持多深度单字段 |
117 | local curValue = self:getProperty(fieldType) | 118 | local curValue = self:getProperty(fieldType) |
118 | if type(info["field"]) == "table" then | 119 | if type(info["field"]) == "table" then |
119 | for _idx, _field in ipairs(info["field"]) do | 120 | for _idx, _field in ipairs(info["field"]) do |
@@ -155,7 +156,7 @@ function Role:data() | @@ -155,7 +156,7 @@ function Role:data() | ||
155 | loveStatus = self:getProperty("loveStatus"):toNumMap(), | 156 | loveStatus = self:getProperty("loveStatus"):toNumMap(), |
156 | diamond = self:getAllDiamond(), | 157 | diamond = self:getAllDiamond(), |
157 | bagLimit = self:getProperty("bagLimit"), | 158 | bagLimit = self:getProperty("bagLimit"), |
158 | - | 159 | + |
159 | advPass = self:getProperty("advPass"), | 160 | advPass = self:getProperty("advPass"), |
160 | advInfo = self:getProperty("advInfo"), | 161 | advInfo = self:getProperty("advInfo"), |
161 | advItems = self:getProperty("advItems"):toNumMap(), | 162 | advItems = self:getProperty("advItems"):toNumMap(), |
@@ -166,6 +167,8 @@ function Role:data() | @@ -166,6 +167,8 @@ function Role:data() | ||
166 | hangInfo = self:getProperty("hangInfo"), | 167 | hangInfo = self:getProperty("hangInfo"), |
167 | hangBag = self:getProperty("hangBag"), | 168 | hangBag = self:getProperty("hangBag"), |
168 | hangBagLimit = self:getProperty("hangBagLimit"), | 169 | hangBagLimit = self:getProperty("hangBagLimit"), |
170 | + | ||
171 | + potionBag = self:getProperty("potionBag"), | ||
169 | } | 172 | } |
170 | end | 173 | end |
171 | 174 |