Commit 9b20dbfcce3bf997f0c0af2c2cb75f71585711d8

Authored by zhangqijia
2 parents 7c25211e ccac1eaa

Merge branch 'cn/develop' into cn/publish/zhaolu

Showing 2 changed files with 13 additions and 14 deletions   Show diff stats
src/actions/StoreAction.lua
@@ -366,7 +366,7 @@ function _M.shopBuyRpc(agent , data) @@ -366,7 +366,7 @@ function _M.shopBuyRpc(agent , data)
366 local id = msg.id 366 local id = msg.id
367 local count = msg.count or 1 367 local count = msg.count or 1
368 368
369 - local dataSet = csvdb["shop_normalCsv"][id] 369 + local dataSet = csvdb["shop_normalCsv"][id]
370 if not dataSet then return end 370 if not dataSet then return end
371 371
372 if dataSet.unlock ~= "" then 372 if dataSet.unlock ~= "" then
@@ -383,20 +383,13 @@ function _M.shopBuyRpc(agent , data) @@ -383,20 +383,13 @@ function _M.shopBuyRpc(agent , data)
383 if not role.activity:isOpenById(dataSet.activity_id, "ActShopGoods") then return 3 end 383 if not role.activity:isOpenById(dataSet.activity_id, "ActShopGoods") then return 3 end
384 end 384 end
385 385
386 - local buyRecord = role.storeData:getProperty("buyR")  
387 - if math.illegalNum(count, 1, (dataSet.limit == 0 and 10000 or dataSet.limit - (buyRecord[id] or 0))) then  
388 - skynet.error(string.format("shop buy over limit, user_id:%d, goods_id:%d", role:getProperty("id"), id))  
389 - return 6  
390 - end  
391 -  
392 - local cost  
393 - if dataSet.disount == 0 then 386 + local cost
  387 + if dataSet.disount == 0 then
394 cost = {[dataSet.icon] = math.ceil(dataSet.cost * count)} 388 cost = {[dataSet.icon] = math.ceil(dataSet.cost * count)}
395 else 389 else
396 cost = {[dataSet.icon] = math.ceil(dataSet.cost * count * ((dataSet.disount or 10) / 10))} 390 cost = {[dataSet.icon] = math.ceil(dataSet.cost * count * ((dataSet.disount or 10) / 10))}
397 end 391 end
398 392
399 -  
400 local desc = "unknowShop" 393 local desc = "unknowShop"
401 if dataSet.shop == 1 then -- 普通商店 394 if dataSet.shop == 1 then -- 普通商店
402 desc = "dailyShop" 395 desc = "dailyShop"
@@ -407,14 +400,20 @@ function _M.shopBuyRpc(agent , data) @@ -407,14 +400,20 @@ function _M.shopBuyRpc(agent , data)
407 end 400 end
408 401
409 if not role:checkItemEnough(cost) then return 4 end 402 if not role:checkItemEnough(cost) then return 4 end
  403 + if not role:costItems(cost, {log = {desc = desc, int1 = id, int2 = count, long1= dataSet.shop}}) then return 5 end
410 404
411 - local limitStr = "" 405 + local buyRecord = role.storeData:getProperty("buyR")
  406 + if math.illegalNum(count, 1, (dataSet.limit == 0 and 10000 or dataSet.limit - (buyRecord[id] or 0))) then
  407 + skynet.error(string.format("shop buy over limit, user_id:%d, goods_id:%d", role:getProperty("id"), id))
  408 + return 6
  409 + end
  410 +
  411 + local limitStr = ""
412 if dataSet.limit ~= 0 then 412 if dataSet.limit ~= 0 then
413 buyRecord[id] = (buyRecord[id] or 0) + count 413 buyRecord[id] = (buyRecord[id] or 0) + count
414 role.storeData:updateProperty({field = "buyR", value = buyRecord}) 414 role.storeData:updateProperty({field = "buyR", value = buyRecord})
415 - limitStr = string.format("%s/%s", buyRecord[id], dataSet.limit) 415 + limitStr = string.format("%s/%s", buyRecord[id], dataSet.limit)
416 end 416 end
417 - if not role:costItems(cost, {log = {desc = desc, int1 = id, int2 = count, long1= dataSet.shop}}) then return 5 end  
418 417
419 local gift = {} 418 local gift = {}
420 for _id, _count in pairs(dataSet.gift:toNumMap()) do 419 for _id, _count in pairs(dataSet.gift:toNumMap()) do
src/models/RolePlugin.lua
@@ -550,7 +550,7 @@ function RolePlugin.bind(Role) @@ -550,7 +550,7 @@ function RolePlugin.bind(Role)
550 if isnan(count) then 550 if isnan(count) then
551 return false 551 return false
552 end 552 end
553 - if count <= 0 then 553 + if count < 0 then
554 return false 554 return false
555 end 555 end
556 local isIos = self:getProperty("sid") == IOS_SID 556 local isIos = self:getProperty("sid") == IOS_SID