Commit f4c12f1b5c7f1b6b3894fa899e1fee4173cc9e5f

Authored by liuzujun
2 parents 9729f4f0 1632e6ed

Merge branch 'cn/develop' of 120.26.43.151:wasteland/server into cn/develop

@@ -95,6 +95,7 @@ ItemType = { @@ -95,6 +95,7 @@ ItemType = {
95 CommonPaster = 18, -- 万能贴纸 95 CommonPaster = 18, -- 万能贴纸
96 BossTicket = 20, -- boss挑战门票 96 BossTicket = 20, -- boss挑战门票
97 Spark = 21, -- 火花 97 Spark = 21, -- 火花
  98 + Stick = 23, -- 贴纸
98 } 99 }
99 100
100 --在这个里面的会记录的是功能开放 对应类型open 而不是 ID 101 --在这个里面的会记录的是功能开放 对应类型open 而不是 ID
@@ -433,7 +434,7 @@ SystemBnousType = { @@ -433,7 +434,7 @@ SystemBnousType = {
433 UpSpeedNum = 15, -- 加速次数上限增加 15=1探索加速or 2齿轮加速or 3餐厅加速=增加次数 434 UpSpeedNum = 15, -- 加速次数上限增加 15=1探索加速or 2齿轮加速or 3餐厅加速=增加次数
434 ChangeBaseCount = 16, -- 每日奖励关卡挑战卡基础数量增加 435 ChangeBaseCount = 16, -- 每日奖励关卡挑战卡基础数量增加
435 ChangeBuyCount = 17, -- 每日奖励关卡挑战卡可购买次数增加, 436 ChangeBuyCount = 17, -- 每日奖励关卡挑战卡可购买次数增加,
436 - ExtraProp = 18, -- 每次探索加速额外获得道具 437 + ExtraProps= 18, -- 每次探索加速额外获得道具
437 AccountLevel = 19, -- 账号等级提升角色等级上限 438 AccountLevel = 19, -- 账号等级提升角色等级上限
438 } 439 }
439 440
src/ProtocolCode.lua
@@ -62,8 +62,8 @@ actionCodes = { @@ -62,8 +62,8 @@ actionCodes = {
62 Role_setFriendTeamRpc = 143, -- 设置好友切磋队伍 62 Role_setFriendTeamRpc = 143, -- 设置好友切磋队伍
63 Role_setBgRpc = 144, -- 设置看板娘 63 Role_setBgRpc = 144, -- 设置看板娘
64 Role_itemConvertSpecialRpc = 145, -- 兑换月卡/战令探索指令等 特殊道具 64 Role_itemConvertSpecialRpc = 145, -- 兑换月卡/战令探索指令等 特殊道具
65 - Role_worldLineRoulette = 146, --世界线抽轮盘  
66 - Role_worldLineReward = 147, -- 世界线一键领取奖励 65 + Role_worldLineRouletteRpc = 146, --世界线抽轮盘
  66 + Role_worldLineRewardRpc = 147, -- 世界线一键领取奖励
67 67
68 Adv_startAdvRpc = 151, 68 Adv_startAdvRpc = 151,
69 Adv_startHangRpc = 152, 69 Adv_startHangRpc = 152,
@@ -117,6 +117,7 @@ actionCodes = { @@ -117,6 +117,7 @@ actionCodes = {
117 Hero_setWishPoolRpc = 226, 117 Hero_setWishPoolRpc = 226,
118 Hero_changeSparkRpc = 227, 118 Hero_changeSparkRpc = 227,
119 Hero_saveGeniusTreeRpc = 228, 119 Hero_saveGeniusTreeRpc = 228,
  120 + Hero_stickersConvertRpc = 229, --兑换英雄贴纸
120 121
121 Hang_startRpc = 251, 122 Hang_startRpc = 251,
122 Hang_checkRpc = 252, 123 Hang_checkRpc = 252,
src/actions/ActivityAction.lua
@@ -327,12 +327,16 @@ function _M.actBattleCommandTaskRpc(agent, data) @@ -327,12 +327,16 @@ function _M.actBattleCommandTaskRpc(agent, data)
327 end 327 end
328 end 328 end
329 329
330 - local taskReward = {} 330 + local taskReward
331 if recordFlag then 331 if recordFlag then
  332 + -- recordFlag = true时,taskCfg.reward 只会有经验奖励
  333 + taskReward = {}
332 for k, v in pairs(taskCfg.reward:toNumMap()) do 334 for k, v in pairs(taskCfg.reward:toNumMap()) do
333 taskReward[k] = (taskReward[k] or 0) + v + taskCfg.battlepass_reward 335 taskReward[k] = (taskReward[k] or 0) + v + taskCfg.battlepass_reward
334 break 336 break
335 end 337 end
  338 + else
  339 + taskReward = taskCfg.reward
336 end 340 end
337 341
338 local reward, change = role:award(taskReward, {log = {desc = "battleCommandTask"}}) 342 local reward, change = role:award(taskReward, {log = {desc = "battleCommandTask"}})
src/actions/AdvAction.lua
@@ -506,14 +506,15 @@ function _M.buyAdvCountRpc(agent , data) @@ -506,14 +506,15 @@ function _M.buyAdvCountRpc(agent , data)
506 local msg = MsgPack.unpack(data) 506 local msg = MsgPack.unpack(data)
507 507
508 local count = msg.count --购买次数 508 local count = msg.count --购买次数
509 - local isEl = msg.isEl -- 是否是无尽模式 509 + local isEl = msg.isEl -- 是否是无尽模式 国服没有
510 local cost 510 local cost
511 if isEl then 511 if isEl then
512 if math.illegalNum(count, 1, globalCsv.adv_endless_daily_buy_count - role.dailyData:getProperty("advElBC")) then return end 512 if math.illegalNum(count, 1, globalCsv.adv_endless_daily_buy_count - role.dailyData:getProperty("advElBC")) then return end
513 cost = {[ItemId.Jade] = count * globalCsv.adv_endless_daily_buy_cost} 513 cost = {[ItemId.Jade] = count * globalCsv.adv_endless_daily_buy_cost}
514 else 514 else
515 - if math.illegalNum(count, 1, globalCsv.adv_daily_buy_count - role.dailyData:getProperty("advBC")) then return end  
516 - cost = {[ItemId.Jade] = count * globalCsv.adv_daily_buy_cost} 515 + --if math.illegalNum(count, 1, globalCsv.adv_daily_buy_count - role.dailyData:getProperty("advBC")) then return end
  516 + local advCount = (role.dailyData:getProperty("advBC") + count ) * globalCsv.adv_daily_buy_num
  517 + cost = {[ItemId.Jade] = table.findMinKeyByIndex(globalCsv.adv_buy_cost, advCount, globalCsv.adv_daily_buy_num)}
517 end 518 end
518 519
519 520
src/actions/HangAction.lua
@@ -128,12 +128,10 @@ local function checkReward(role, isTreasure, carbonId) @@ -128,12 +128,10 @@ local function checkReward(role, isTreasure, carbonId)
128 --挂机得到的宝藏加入到挂机奖励 128 --挂机得到的宝藏加入到挂机奖励
129 if isTreasure or false == true then 129 if isTreasure or false == true then
130 local treasureList= role.dailyData:checkTreasureList(carbonId or hangInfo.carbonId) or {} 130 local treasureList= role.dailyData:checkTreasureList(carbonId or hangInfo.carbonId) or {}
131 - if next(treasureList) then  
132 - for _, val in pairs(treasureList) do  
133 - local award = val.award:toNumMap()  
134 - for k,v in pairs(award) do  
135 - items[k] = (items[k] or 0) + v  
136 - end 131 + for _, val in pairs(treasureList) do
  132 + local award = val.award:toNumMap()
  133 + for k,v in pairs(award) do
  134 + items[k] = (items[k] or 0) + v
137 end 135 end
138 end 136 end
139 end 137 end
@@ -473,30 +471,17 @@ function _M.quickRpc(agent , data) @@ -473,30 +471,17 @@ function _M.quickRpc(agent , data)
473 local role = agent.role 471 local role = agent.role
474 472
475 local hangInfo = role:getProperty("hangInfo") 473 local hangInfo = role:getProperty("hangInfo")
476 - if not hangInfo.carbonId then return end 474 + if not hangInfo.carbonId then return 1 end
477 local carbonData = csvdb["idle_battleCsv"][hangInfo.carbonId] 475 local carbonData = csvdb["idle_battleCsv"][hangInfo.carbonId]
478 --local expCarbonData = csvdb["idle_battleCsv"][hangInfo.expCarbonId] 476 --local expCarbonData = csvdb["idle_battleCsv"][hangInfo.expCarbonId]
479 local expCarbonData = hangInfo.expData or {} 477 local expCarbonData = hangInfo.expData or {}
480 478
  479 + local change = globalCsv.idle_quickproduce_time / 3600
481 local curCount = role.dailyData:getProperty("hangQC") + 1 480 local curCount = role.dailyData:getProperty("hangQC") + 1
482 - local costs = globalCsv.idle_quickproduce_cost:toArray(true, "=")  
483 -  
484 - -- 增加今日探索加速次数  
485 - local maxIdx = #costs  
486 - local maxCount = maxIdx + role:getBnousUpSpeedNum(UpSpeedType.ExplorationUpSpeed)  
487 - if curCount > maxCount then return end 481 + local costCount = table.findMinKeyByIndex(globalCsv.idle_quickproduce_cost, curCount * change, change)
488 482
489 - if curCount > maxIdx then  
490 - for idx = maxIdx+1, curCount do  
491 - costs[idx] = costs[maxIdx]  
492 - end  
493 - end  
494 -  
495 - if not costs[curCount] then return end  
496 - if costs[curCount] > 0 then  
497 - if not role:checkItemEnough({[ItemId.Jade] = costs[curCount]}) then return end  
498 - role:costItems({[ItemId.Jade] = costs[curCount]}, {log = {desc = "quickHang", int1 = hangInfo.carbonId}})  
499 - end 483 + if not role:checkItemEnough({[ItemId.Jade] = costCount}) then return 2 end
  484 + role:costItems({[ItemId.Jade] = costCount}, {log = {desc = "quickHang", int1 = hangInfo.carbonId}})
500 485
501 role.dailyData:updateProperty({field = "hangQC", value = curCount}) 486 role.dailyData:updateProperty({field = "hangQC", value = curCount})
502 487
@@ -536,8 +521,8 @@ function _M.quickRpc(agent , data) @@ -536,8 +521,8 @@ function _M.quickRpc(agent , data)
536 end 521 end
537 end 522 end
538 523
539 - --等级 额外奖励  
540 - local levelReward = role:getExtraProp() 524 + --等级 每次探索加速额外获得道具
  525 + local levelReward = role:getBnousExtraProps()
541 for k, v in pairs(levelReward or {}) do 526 for k, v in pairs(levelReward or {}) do
542 reward[k] = (reward[k] or 0) + v 527 reward[k] = (reward[k] or 0) + v
543 end 528 end
@@ -586,13 +571,16 @@ function _M.buyBonusCountRpc(agent, data) @@ -586,13 +571,16 @@ function _M.buyBonusCountRpc(agent, data)
586 local bonusC = role.dailyData:getProperty("bonusC") 571 local bonusC = role.dailyData:getProperty("bonusC")
587 local extraCnt = role.storeData:getBonusExtraFightCount() 572 local extraCnt = role.storeData:getBonusExtraFightCount()
588 bonusC[btype] = bonusC[btype] or {c = 0, b = 0} 573 bonusC[btype] = bonusC[btype] or {c = 0, b = 0}
589 - local lastCount = (globalCsv.bonus_daily_buy_count + role:getBnousChangeBuyCount()) * coef + extraCnt - bonusC[btype]["b"]  
590 - if math.illegalNum(count, 1, lastCount) then return 1 end 574 + --local lastCount = (globalCsv.bonus_daily_buy_count + role:getBnousChangeBuyCount()) * coef + extraCnt - bonusC[btype]["b"]
  575 + --if math.illegalNum(count, 1, lastCount) then return 1 end
  576 +
  577 + local costCount = bonusC[btype]["b"] + count
  578 + local cost = table.findMinKeyByIndex(globalCsv.bonus_buy_cost, costCount, 1)
591 579
592 - if not role:checkItemEnough({[ItemId.Jade] = globalCsv.bonus_buy_cost * count}) then return 2 end 580 + if not role:checkItemEnough({[ItemId.Jade] = cost}) then return 2 end
593 581
594 - role:costItems({[ItemId.Jade] = globalCsv.bonus_buy_cost * count}, {log = {desc = "buyBonusCount", int1 = btype, int2 = count}})  
595 - bonusC[btype]["b"] = bonusC[btype]["b"] + count 582 + role:costItems({[ItemId.Jade] = cost}, {log = {desc = "buyBonusCount", int1 = btype, int2 = count}})
  583 + bonusC[btype]["b"] = costCount
596 bonusC[btype]["c"] = bonusC[btype]["c"] - count 584 bonusC[btype]["c"] = bonusC[btype]["c"] - count
597 585
598 role.dailyData:updateProperty({field = "bonusC", value = bonusC}) 586 role.dailyData:updateProperty({field = "bonusC", value = bonusC})
src/actions/HeroAction.lua
@@ -1389,4 +1389,27 @@ function _M.saveGeniusTreeRpc(agent, data) @@ -1389,4 +1389,27 @@ function _M.saveGeniusTreeRpc(agent, data)
1389 return true 1389 return true
1390 end 1390 end
1391 1391
  1392 +function _M.stickersConvertRpc(agent, data)
  1393 + local role = agent.role
  1394 + local msg = MsgPack.unpack(data)
  1395 + local itemId = msg.itemId
  1396 + local heroType = msg.heroType -- heroId-300 举例 [泡泡]= {[heroType] = 120, [heroId]= 420}
  1397 +
  1398 + local itemData = csvdb["itemCsv"][itemId]
  1399 + if not itemData then return 1 end
  1400 +
  1401 + local useEffect = itemData["use_effect"]:toNumMap()
  1402 + if not useEffect[heroType] then return 2 end
  1403 +
  1404 + if not role:isHaveHero(heroType) then return 3 end
  1405 +
  1406 + local cost = {[itemId] = 1}
  1407 + if not role:checkItemEnough(cost) then return 4 end
  1408 + role:costItems({[heroType] = cost}, {log = {desc = "heroStickers"}})
  1409 + local reward, change = role:award({[heroType] = 1}, {log = {desc = "heroStickers"}})
  1410 +
  1411 + SendPacket(actionCodes.Hero_stickersConvertRpc, MsgPack.pack(role:packReward(reward, change)))
  1412 + return true
  1413 +end
  1414 +
1392 return _M 1415 return _M
src/actions/RoleAction.lua
@@ -83,6 +83,9 @@ function _M.loginRpc( agent, data ) @@ -83,6 +83,9 @@ function _M.loginRpc( agent, data )
83 end 83 end
84 end 84 end
85 85
  86 + -- 设备记录
  87 + redisproxy:sadd(string_format("device:%d", roleId), msg.device)
  88 +
86 local now = skynet.timex() 89 local now = skynet.timex()
87 local role = agent.role 90 local role = agent.role
88 -- 2 91 -- 2
@@ -614,11 +617,11 @@ function _M.openItemRpc(agent, data) @@ -614,11 +617,11 @@ function _M.openItemRpc(agent, data)
614 local msg = MsgPack.unpack(data) 617 local msg = MsgPack.unpack(data)
615 local itemId = msg.itemId 618 local itemId = msg.itemId
616 local count = msg.count 619 local count = msg.count
617 - if math.illegalNum(count, 1, role:getItemCount(itemId)) then return end 620 + if math.illegalNum(count, 1, role:getItemCount(itemId)) then return 1 end
618 local itemData = csvdb["itemCsv"][itemId] 621 local itemData = csvdb["itemCsv"][itemId]
619 - if itemData.use_type ~= 2 then return end 622 + if itemData.use_type ~= 2 then return 2 end
620 local randomData = csvdb["item_randomCsv"][tonumber(itemData.use_effect)] 623 local randomData = csvdb["item_randomCsv"][tonumber(itemData.use_effect)]
621 - if not randomData or randomData.openTime > 0 then return end 624 + if not randomData or randomData.openTime > 0 then return 3 end
622 625
623 local reward = {} 626 local reward = {}
624 for _i = 1, count do 627 for _i = 1, count do
@@ -1552,9 +1555,11 @@ function _M.diamondConvertRpc(agent, data) @@ -1552,9 +1555,11 @@ function _M.diamondConvertRpc(agent, data)
1552 local allReward = {} 1555 local allReward = {}
1553 if remain > old then 1556 if remain > old then
1554 allReward[ItemId.Jade] = remain - old 1557 allReward[ItemId.Jade] = remain - old
  1558 + role:checkWorldChangePoints({[ItemWorldLine.CostJade]= quan * globalCsv.recruit_cost})
1555 elseif remain == old then 1559 elseif remain == old then
1556 else 1560 else
1557 role:costItems({[ItemId.Jade] = old - remain}, {log = {desc = "convert", short1=oper}}) 1561 role:costItems({[ItemId.Jade] = old - remain}, {log = {desc = "convert", short1=oper}})
  1562 + role:checkWorldChangePoints({[ItemWorldLine.CostJade]= quan * globalCsv.recruit_cost - (old - remain)})
1558 end 1563 end
1559 1564
1560 if quan > 0 then 1565 if quan > 0 then
@@ -1601,7 +1606,7 @@ function _M.useSelectItemRpc(agent, data) @@ -1601,7 +1606,7 @@ function _M.useSelectItemRpc(agent, data)
1601 local count = msg.count 1606 local count = msg.count
1602 if math.illegalNum(count, 1, role:getItemCount(itemId)) then return end 1607 if math.illegalNum(count, 1, role:getItemCount(itemId)) then return end
1603 local itemData = csvdb["itemCsv"][itemId] 1608 local itemData = csvdb["itemCsv"][itemId]
1604 - if not (itemData.type == ItemType.SelectItemBox or itemData.type == ItemType.CommonPaster) then return end 1609 + if not (itemData.type == ItemType.SelectItemBox or itemData.type == ItemType.CommonPaster or itemData.type == ItemType.Stick) then return end
1605 local itemMap = itemData.use_effect:toNumMap() 1610 local itemMap = itemData.use_effect:toNumMap()
1606 local reward, change = {} 1611 local reward, change = {}
1607 for k, v in pairs(itemMap) do 1612 for k, v in pairs(itemMap) do
@@ -1762,7 +1767,7 @@ function _M.itemConvertSpecialRpc(agent, data) @@ -1762,7 +1767,7 @@ function _M.itemConvertSpecialRpc(agent, data)
1762 return true 1767 return true
1763 end 1768 end
1764 1769
1765 -function _M.worldLineRoulette(agent, data) 1770 +function _M.worldLineRouletteRpc(agent, data)
1766 local role = agent.role 1771 local role = agent.role
1767 1772
1768 local worldChangePoints = role:getProperty("worldChangePoints") or {} 1773 local worldChangePoints = role:getProperty("worldChangePoints") or {}
@@ -1779,7 +1784,7 @@ function _M.worldLineRoulette(agent, data) @@ -1779,7 +1784,7 @@ function _M.worldLineRoulette(agent, data)
1779 for k, v in pairs(globalCsv.worldline_gift_magnification_1) do 1784 for k, v in pairs(globalCsv.worldline_gift_magnification_1) do
1780 worldline_gift_magnification_1[k] = {v} 1785 worldline_gift_magnification_1[k] = {v}
1781 end 1786 end
1782 - for k, v in pairs(globalCsv.worldline_gift_magnification_0) do 1787 + for k, v in pairs(globalCsv["worldline_gift_magnification_0.1"]) do
1783 worldline_gift_magnification_0[k] = {v} 1788 worldline_gift_magnification_0[k] = {v}
1784 end 1789 end
1785 1790
@@ -1791,21 +1796,21 @@ function _M.worldLineRoulette(agent, data) @@ -1791,21 +1796,21 @@ function _M.worldLineRoulette(agent, data)
1791 1796
1792 local points = math.floor((gift_base_10 + gift_base_1) * (gift_magnification_1 + gift_magnification_0)) 1797 local points = math.floor((gift_base_10 + gift_base_1) * (gift_magnification_1 + gift_magnification_0))
1793 worldChangePoints[ItemWorldLine.RouletteCount] = worldChangePoints[ItemWorldLine.RouletteCount] - 1 1798 worldChangePoints[ItemWorldLine.RouletteCount] = worldChangePoints[ItemWorldLine.RouletteCount] - 1
1794 - worldChangePoints[ItemWorldLine.Points] = worldChangePoints[ItemWorldLine.Points] + points 1799 + worldChangePoints[ItemWorldLine.Points] = (worldChangePoints[ItemWorldLine.Points] or 0) + points
1795 role:updateProperty({field = "worldChangePoints", value = worldChangePoints}) 1800 role:updateProperty({field = "worldChangePoints", value = worldChangePoints})
1796 1801
1797 - SendPacket(actionCodes.Role_worldLineRoulette, MsgPack.pack(worldChangePoints)) 1802 + SendPacket(actionCodes.Role_worldLineRouletteRpc, MsgPack.pack({base_10 = gift_base_10, base_1 = gift_base_1, magnification_1 = gift_magnification_1, magnification_0 = gift_magnification_0}))
1798 return true 1803 return true
1799 end 1804 end
1800 1805
1801 -function _M.worldLineReward(agent, data) 1806 +function _M.worldLineRewardRpc(agent, data)
1802 local role = agent.role 1807 local role = agent.role
1803 local worldLineReward = role:getProperty("worldLineReward") or {} 1808 local worldLineReward = role:getProperty("worldLineReward") or {}
1804 local worldChangePoints = role:getProperty("worldChangePoints") or {} 1809 local worldChangePoints = role:getProperty("worldChangePoints") or {}
1805 local points = worldChangePoints[ItemWorldLine.Points] or 0 1810 local points = worldChangePoints[ItemWorldLine.Points] or 0
1806 1811
1807 local reward, change = {} 1812 local reward, change = {}
1808 - for key, val in pairs(csvdb["worldline_rewardCsv"]) do 1813 + for key, val in pairs(csvdb["worldline_awardCsv"]) do
1809 if points >= key and not worldLineReward[key] then 1814 if points >= key and not worldLineReward[key] then
1810 for k, v in pairs(val.award:toNumMap()) do 1815 for k, v in pairs(val.award:toNumMap()) do
1811 reward[k] = (reward[k] or 0) + v 1816 reward[k] = (reward[k] or 0) + v
@@ -1819,7 +1824,7 @@ function _M.worldLineReward(agent, data) @@ -1819,7 +1824,7 @@ function _M.worldLineReward(agent, data)
1819 if next(reward) then 1824 if next(reward) then
1820 reward, change = role:award(reward, {log = {desc = "worldLine", int1 = role:getProperty("id")}}) 1825 reward, change = role:award(reward, {log = {desc = "worldLine", int1 = role:getProperty("id")}})
1821 end 1826 end
1822 - SendPacket(actionCodes.Role_worldLineReward, MsgPack.pack(role:packReward(reward, change))) 1827 + SendPacket(actionCodes.Role_worldLineRewardRpc, MsgPack.pack(role:packReward(reward, change)))
1823 return true 1828 return true
1824 end 1829 end
1825 1830
src/actions/StoreAction.lua
@@ -534,8 +534,16 @@ function _M.getExploreCommandRewardRpc(agent, data) @@ -534,8 +534,16 @@ function _M.getExploreCommandRewardRpc(agent, data)
534 return 3 534 return 3
535 end 535 end
536 536
537 - if not role:checkHangPass(config.level) then  
538 - return 4 537 + for k, level in pairs(config.level:toNumMap()) do
  538 + if k == 1 then
  539 + if not role:checkHangPass(level) then
  540 + return 4
  541 + end
  542 + elseif k == 2 then
  543 + if not role:checkAdvChapterPass(level) then
  544 + return 4
  545 + end
  546 + end
539 end 547 end
540 548
541 local gift = "" 549 local gift = ""
src/models/RoleLog.lua
@@ -146,6 +146,7 @@ local ItemReason = { @@ -146,6 +146,7 @@ local ItemReason = {
146 sparkLvlUp = 1214, -- 火花强化 146 sparkLvlUp = 1214, -- 火花强化
147 sparkQualityUp = 1215, -- 火花升华 147 sparkQualityUp = 1215, -- 火花升华
148 heroGenius = 1216, -- 英雄天赋点 148 heroGenius = 1216, -- 英雄天赋点
  149 + heroStickers = 1217, -- 英雄贴纸
149 150
150 -- pvp 151 -- pvp
151 pvpCHead = 1301, -- pvp 跨服竞技场头像 152 pvpCHead = 1301, -- pvp 跨服竞技场头像
src/models/RolePlugin.lua
@@ -3020,19 +3020,13 @@ function RolePlugin.bind(Role) @@ -3020,19 +3020,13 @@ function RolePlugin.bind(Role)
3020 return levelBnous[SystemBnousType.ChangeBuyCount] or 0 3020 return levelBnous[SystemBnousType.ChangeBuyCount] or 0
3021 end 3021 end
3022 3022
3023 - function Role:getExtraProp() 3023 + function Role:getBnousExtraProps()
3024 local levelBnous = self:getLevelBnous() 3024 local levelBnous = self:getLevelBnous()
3025 - local extraPropReward = levelBnous[SystemBnousType.ExtraProp] or {}  
3026 - local reward = {}  
3027 - for k, v in pairs(extraPropReward) do  
3028 - reward[k] = (reward[k] or 0) + v  
3029 - end  
3030 - return reward 3025 + return levelBnous[SystemBnousType.ExtraProps] or {}
3031 end 3026 end
3032 3027
3033 function Role:getAccountLevel() 3028 function Role:getAccountLevel()
3034 local levelBnous = self:getLevelBnous() 3029 local levelBnous = self:getLevelBnous()
3035 - dump(levelBnous)  
3036 return levelBnous[SystemBnousType.AccountLevel] or 0 3030 return levelBnous[SystemBnousType.AccountLevel] or 0
3037 end 3031 end
3038 3032
@@ -3307,7 +3301,7 @@ function RolePlugin.bind(Role) @@ -3307,7 +3301,7 @@ function RolePlugin.bind(Role)
3307 worldChangePoints[ItemWorldLine.CostDiamond] = worldChangePoints[ItemWorldLine.CostDiamond] - cost * globalCsv.worldline_count_currency 3301 worldChangePoints[ItemWorldLine.CostDiamond] = worldChangePoints[ItemWorldLine.CostDiamond] - cost * globalCsv.worldline_count_currency
3308 worldChangePoints[ItemWorldLine.Points] = (worldChangePoints[ItemWorldLine.Points] or 0) + cost 3302 worldChangePoints[ItemWorldLine.Points] = (worldChangePoints[ItemWorldLine.Points] or 0) + cost
3309 end 3303 end
3310 - self:setProperty("worldChangePoints", worldChangePoints) 3304 + self:updateProperty({field = "worldChangePoints", value = worldChangePoints})
3311 end 3305 end
3312 end 3306 end
3313 3307
src/shared/functions.lua
@@ -865,6 +865,15 @@ function table.array2Table(arr) @@ -865,6 +865,15 @@ function table.array2Table(arr)
865 return ret 865 return ret
866 end 866 end
867 867
  868 +function table.findMinKeyByIndex(t, index, change)
  869 + if not next(t or {}) then return nil end
  870 + if not t[index] then
  871 + index = index - change
  872 + return table.findMinKeyByIndex(t, index, change)
  873 + else
  874 + return t[index]
  875 + end
  876 +end
868 877
869 function table.rewardMerge(dest, src) 878 function table.rewardMerge(dest, src)
870 for k, v in pairs(src) do 879 for k, v in pairs(src) do