Commit 1be743f30686a82821b5e448160fb8362489338b

Authored by liuzujun
1 parent 8ca1144f

扭蛋机调试

Showing 2 changed files with 22 additions and 18 deletions   Show diff stats
src/actions/ActivityAction.lua
... ... @@ -313,47 +313,46 @@ function _M.gachakonRpc(agent, data)
313 313 local actCfg = csvdb["activity_capsuleToysCsv"][actid]
314 314 if not actCfg then return 3 end
315 315  
316   - for k, v in pairs(cost) do
317   - cost[k] = v * count
318   - end
319   -
320   - if not role:checkItemEnough(cost) then return 4 end
321   -
322 316 local gachakonInfo = role.activity:getActData("Gachakon") or {}
323   - local tmpCfg = clone(actCfg)
324 317 local award = {}
325 318 local remain = 0
326   - local reset = false
327 319 for i = 1, count do
328   - local flag = 0
  320 + local tmpCfg = clone(actCfg)
  321 + remain = 0
  322 + print("-----------------, ", i)
329 323 for id, cfg in pairs(tmpCfg) do
330 324 local num = gachakonInfo[id] or 0
331   - cfg.amount = cfg.amount >= num and cfg.amount - num or 0
332   - cfg.weight = cfg.weight * cfg.amount
  325 + num = cfg.amount >= num and cfg.amount - num or 0
  326 + cfg.weight = cfg.weight * num
333 327 if cfg.weight > 0 then
334   - flag = 1
  328 + remain = remain + num
335 329 end
  330 + print("num ".. num, id, cfg.weight, cfg.amount)
336 331 end
337   - if flag == 0 then
338   - reset = true
  332 + if remain == 0 then
339 333 break
340 334 end
341 335 local id = math.randWeight(tmpCfg, "weight")
  336 + if not id then return 4 end
342 337 gachakonInfo[id] = (gachakonInfo[id] or 0) + 1
343 338 local curAward = tmpCfg[id].award:toNumMap()
344 339 for k, v in pairs(curAward) do
345 340 award[k] = (award[k] or 0) + v
346 341 end
347   - remain = remain + 1
348 342 end
349 343  
350   - if count > remain then return 5 end
  344 + for k, v in pairs(cost) do
  345 + cost[k] = v * count
  346 + end
  347 +
  348 + if not role:checkItemEnough(cost) then return 5 end
351 349  
352 350 role:costItems(cost, {log = {desc = "actGachakon", int1 = actid, int2 = count}})
353 351  
354 352 local reward, change = role:award(award, {log = {desc = "actGachakon", int1 = actid, int2 = count}})
355   - if reset then
  353 + if remain <= count then
356 354 gachakonInfo = {}
  355 + print("hahaha")
357 356 end
358 357 role.activity:updateActData("Gachakon", gachakonInfo)
359 358  
... ...
src/models/Activity.lua
... ... @@ -71,6 +71,11 @@ function Activity:data()
71 71 act12 = self:getProperty("act12"),
72 72 act13 = self:getProperty("act13"),
73 73 act14 = self:getProperty("act14"),
  74 +
  75 + act17 = self:getProperty("act17"),
  76 + act18 = self:getProperty("act18"),
  77 + act19 = self:getProperty("act19"),
  78 + act20 = self:getProperty("act20"),
74 79 }
75 80 end
76 81  
... ... @@ -607,7 +612,7 @@ function Activity:recycleActItem(actId)
607 612 if not actCfg then return end
608 613 local gift = {}
609 614 local costs = {}
610   - for _, arr in ipairs(role:getItemCount(actCfg.recycle):toTableArray(true)) do
  615 + for _, arr in ipairs(actCfg.recycle:toTableArray(true)) do
611 616 local fromId, toId, toNum = arr[1], arr[2], arr[3]
612 617 local itemCount = role:getItemCount(fromId)
613 618 if itemCount > 0 then
... ...