Commit cea66efddb9cc00a0c838ae73e90f64b9cd173e9

Authored by zhangqijia
1 parent 2660491b

fix: 等级效果的bug,

把等级效果字段levelBnous数据从增量获取改为全量获取
src/models/Daily.lua
... ... @@ -69,7 +69,7 @@ function Daily:refreshDailyData(notify)
69 69 elseif field == "id" then
70 70 -- skip
71 71 elseif field == "treasureBase" then
72   - dataMap[field] = globalCsv.idle_treasure_base
  72 + dataMap[field] = globalCsv.idle_treasure_base + self.owner:getBnousTreasureBaseMaximum()
73 73 elseif field == "treasureList" then
74 74 dataMap[field] = self:getTreasrueList()
75 75 elseif field == "pvpBought" then
... ...
src/models/Role.lua
... ... @@ -76,7 +76,6 @@ Role.schema = {
76 76 expireItem = {"table", {}}, --物品过期检查
77 77 funcOpen = {"table", {}}, --功能是否开放
78 78 funcLv = {"table", {}}, --功能等级
79   - levelBnous = {"table", {}}, --等级奖励
80 79 -- loveStatus = {"string", ""}, --统计角色的最高 好感度等级 类型相关 -- type=loveL type=loveL
81 80 crown = {"number", 0}, -- 看伴娘
82 81 silent = {"number", 0}, --禁言解禁时间
... ... @@ -355,7 +354,6 @@ function Role:data()
355 354 items = self:getProperty("items"):toNumMap(),
356 355 funcOpen = self:getProperty("funcOpen"),
357 356 funcLv = self:getProperty("funcLv"),
358   - levelBnous = self:getProperty("levelBnous"),
359 357 -- loveStatus = self:getProperty("loveStatus"):toNumMap(),
360 358 timeReset = self:getProperty("timeReset"),
361 359 diamond = self:getAllDiamond(),
... ...
src/models/RolePlugin.lua
... ... @@ -284,7 +284,6 @@ function RolePlugin.bind(Role)
284 284 newExp = newExp - csvdb["player_expCsv"][level].exp
285 285 level = level + 1
286 286 self:checkTaskEnter("RoleLevelUp", {level = level})
287   - self:getLevelBnous(level)
288 287 else
289 288 newExp = csvdb["player_expCsv"][level].exp - 1 -- 没有下一级了 经验溢出太多 扣除
290 289 end
... ... @@ -2760,27 +2759,30 @@ function RolePlugin.bind(Role)
2760 2759  
2761 2760 function Role:getBnousCrusade(value)
2762 2761 local towerBnous = self:getTowerBnousActive()
2763   - local levelValue = self:getDeltaValue(self:getProperty("levelBnous")[SystemBnousType.CrusadeTask], value)
  2762 + local levelBnous = self:getLevelBnous()
  2763 +
2764 2764 local towerValue = self:getDeltaValue(towerBnous[SystemBnousType.CrusadeTask], value)
  2765 + local levelValue = self:getDeltaValue(levelBnous[SystemBnousType.CrusadeTask], value)
2765 2766 return levelValue + towerValue
2766 2767 end
2767 2768  
2768 2769 function Role:getBnousDiner(type, value)
2769 2770 local towerBnous = self:getTowerBnousActive()
  2771 + local levelBnous = self:getLevelBnous()
2770 2772 type = type or 1
2771 2773 local result, levelReault
2772 2774 if type == 1 then
2773 2775 result = towerBnous[SystemBnousType.DinerGet]
2774   - levelReault = self:getProperty("levelBnous")[SystemBnousType.DinerGet]
  2776 + levelReault = levelBnous[SystemBnousType.DinerGet]
2775 2777 elseif type == 2 then
2776 2778 result = towerBnous[SystemBnousType.DinerLimit]
2777   - levelReault = self:getProperty("levelBnous")[SystemBnousType.DinerLimit]
  2779 + levelReault = levelBnous[SystemBnousType.DinerLimit]
2778 2780 elseif type == 3 then
2779 2781 result = towerBnous[SystemBnousType.DinerSell]
2780   - levelReault = self:getProperty("levelBnous")[SystemBnousType.DinerSell]
  2782 + levelReault = levelBnous[SystemBnousType.DinerSell]
2781 2783 elseif type == 4 then
2782 2784 result = towerBnous[SystemBnousType.DinerPrice]
2783   - levelReault = self:getProperty("levelBnous")[SystemBnousType.DinerPrice]
  2785 + levelReault = levelBnous[SystemBnousType.DinerPrice]
2784 2786 end
2785 2787 return self:getDeltaValue(result, value) + self:getDeltaValue(levelReault, value)
2786 2788 end
... ... @@ -2798,108 +2800,112 @@ function RolePlugin.bind(Role)
2798 2800 end
2799 2801 function Role:getBnousAdv()
2800 2802 local towerBnous = self:getTowerBnousActive()
2801   - local levelBnous = self:getProperty("levelBnous")[SystemBnousType.Adv] or {}
2802   - appendBnous(towerBnous[SystemBnousType.Adv], levelBnous)
  2803 + local levelBnous = self:getLevelBnous()
  2804 + local adv = levelBnous[SystemBnousType.Adv] or {}
  2805 + appendBnous(towerBnous[SystemBnousType.Adv], adv)
2803 2806 return towerBnous[SystemBnousType.Adv] or {}
2804 2807 end
2805 2808  
2806 2809 function Role:getBnousHangTime()
2807 2810 local towerBnous = self:getTowerBnousActive()
2808   - local levelBnous = self:getProperty("levelBnous") or {}
2809   - local tmptime = 0
2810   - if next(levelBnous) then
2811   - tmptime = levelBnous[SystemBnousType.HangTime] or 0
2812   - end
  2811 + local levelBnous = self:getLevelBnous()
  2812 + local tmptime = levelBnous[SystemBnousType.HangTime] or 0
2813 2813 return towerBnous[SystemBnousType.HangTime] or 0 + tmptime
2814 2814 end
2815 2815  
2816 2816 function Role:getBnousPvpTicket()
2817 2817 local towerBnous = self:getTowerBnousActive()
2818   - local levelBnous = self:getProperty("levelBnous")[SystemBnousType.PvpTicket] or {}
2819   - appendBnous(towerBnous[SystemBnousType.PvpTicket], levelBnous)
  2818 + local levelBnous = self:getLevelBnous()
  2819 + local pvpTicket = levelBnous[SystemBnousType.PvpTicket] or {}
  2820 + appendBnous(towerBnous[SystemBnousType.PvpTicket], pvpTicket)
2820 2821 return towerBnous[SystemBnousType.PvpTicket] or {}
2821 2822 end
2822 2823  
2823 2824 function Role:getBnousSweep()
2824 2825 local towerBnous = self:getTowerBnousActive()
2825   - local levelBnous = self:getProperty("levelBnous")[SystemBnousType.SweepReward] or {}
2826   - appendBnous(towerBnous[SystemBnousType.SweepReward], levelBnous)
  2826 + local levelBnous = self:getLevelBnous()
  2827 + local sweepReward = levelBnous[SystemBnousType.SweepReward] or {}
  2828 + appendBnous(towerBnous[SystemBnousType.SweepReward], sweepReward)
2827 2829 return towerBnous[SystemBnousType.SweepReward] or {}
2828 2830 end
2829 2831  
2830 2832 function Role:getBnousDismantlingMaximum()
2831   - return self:getProperty("levelBnous")[SystemBnousType.DismantlingMaximum] or 0
  2833 + local levelBnous = self:getLevelBnous()
  2834 + return levelBnous[SystemBnousType.DismantlingMaximum] or 0
2832 2835 end
2833 2836  
2834 2837 function Role:getBnousDismantlingImproved(value)
2835   - local result = self:getProperty("levelBnous")[SystemBnousType.DismantlingImproved] or {}
  2838 + local levelBnous = self:getLevelBnous()
  2839 + local result = levelBnous[SystemBnousType.DismantlingImproved] or {}
2836 2840 return self:getDeltaValue(result, value)
2837 2841 end
2838 2842  
2839 2843 function Role:getBnousDaily()
  2844 + local levelBnous = self:getLevelBnous()
  2845 + local dailyReward = levelBnous[SystemBnousType.DailyReward] or {}
2840 2846 local reward = {}
2841   - local levelBnous = self:getProperty("levelBnous")[SystemBnousType.DailyReward] or {}
2842   - for k, v in pairs(levelBnous) do
  2847 + for k, v in pairs(dailyReward) do
2843 2848 reward[k] = (reward[k] or 0) + v
2844 2849 end
2845 2850 return reward
2846 2851 end
2847 2852  
2848 2853 function Role:getBnousTreasureBaseMaximum()
2849   - local levelBnous = self:getProperty("levelBnous")[SystemBnousType.TreasureBaseMaximum] or 0
2850   - local treasureBase = self.dailyData:getProperty("treasureBase") + levelBnous
2851   - self.dailyData:updateProperty({field = "treasureBase", value = treasureBase})
  2854 + local levelBnous = self:getLevelBnous()
  2855 + return levelBnous[SystemBnousType.TreasureBaseMaximum] or 0
2852 2856 end
2853 2857  
2854 2858 --@upType 加速类型 1探索加速, 2齿轮加速, 3餐厅加速
2855 2859 function Role:getBnousUpSpeedNum(upType)
2856   - local levelBnous = self:getProperty("levelBnous")[SystemBnousType.UpSpeedNum] or {}
2857   - if next(levelBnous) then
2858   - return levelBnous[upType] or 0
2859   - end
2860   - return 0
  2860 + local levelBnous = self:getLevelBnous()
  2861 + local upSpeedNum = levelBnous[SystemBnousType.UpSpeedNum] or {}
  2862 + return upSpeedNum[upType] or 0
2861 2863 end
2862 2864  
2863 2865 function Role:getBnousChangeBaseCount()
2864   - return self:getProperty("levelBnous")[SystemBnousType.ChangeBaseCount] or 0
  2866 + local levelBnous = self:getLevelBnous()
  2867 + return levelBnous[SystemBnousType.ChangeBaseCount] or 0
2865 2868 end
2866 2869  
2867 2870 function Role:getBnousChangeBuyCount()
2868   - return self:getProperty("levelBnous")[SystemBnousType.ChangeBuyCount] or 0
2869   - end
2870   -
2871   - function Role:getLevelBnous(level)
2872   - local levelBnous = self:getProperty("levelBnous")
2873   - local additionData = csvdb["level_additionCsv"][level]
2874   - if additionData then
2875   - local effects = additionData.effect:toTableArraySec()
2876   - for _, effect in pairs(effects) do
2877   - local pm1, pm2, pm3, pm4 = tonumber(effect[1]), tonumber(effect[2]), tonumber(effect[3]), tonumber(effect[4])
2878   - if not levelBnous[pm1] then
2879   - levelBnous[pm1] = {}
2880   - end
2881   - if pm1 == SystemBnousType.TowerBuff then
2882   -
2883   - elseif pm1 == SystemBnousType.Adv then
2884   - if not levelBnous[pm1][pm4] then
2885   - levelBnous[pm1][pm4] = {}
  2871 + local levelBnous = self:getLevelBnous()
  2872 + return levelBnous[SystemBnousType.ChangeBuyCount] or 0
  2873 + end
  2874 +
  2875 + function Role:getLevelBnous()
  2876 + local levelBnous = {}
  2877 + local curLevel = self:getProperty("level")
  2878 + for level, additionData in pairs(csvdb["level_additionCsv"]) do
  2879 + if level > curLevel then return levelBnous end
  2880 + if additionData then
  2881 + local effects = additionData.effect:toTableArraySec()
  2882 + for _, effect in pairs(effects) do
  2883 + local pm1, pm2, pm3, pm4 = tonumber(effect[1]), tonumber(effect[2]), tonumber(effect[3]), tonumber(effect[4])
  2884 + if not levelBnous[pm1] then
  2885 + levelBnous[pm1] = {}
2886 2886 end
2887   - levelBnous[pm1][pm4][pm2] = (levelBnous[pm1][pm4][pm2] or 0) + pm3
2888   - elseif pm1 == SystemBnousType.HangTime or
2889   - pm1 == SystemBnousType.DismantlingMaximum or
2890   - pm1 == SystemBnousType.TreasureBaseMaximum or
2891   - pm1 == SystemBnousType.ChangeBaseCount or
2892   - pm1 == SystemBnousType.ChangeBuyCount then
2893   - if type(levelBnous[pm1]) == "table" then
2894   - levelBnous[pm1] = 0
  2887 + if pm1 == SystemBnousType.TowerBuff then
  2888 +
  2889 + elseif pm1 == SystemBnousType.Adv then
  2890 + if not levelBnous[pm1][pm4] then
  2891 + levelBnous[pm1][pm4] = {}
  2892 + end
  2893 + levelBnous[pm1][pm4][pm2] = (levelBnous[pm1][pm4][pm2] or 0) + pm3
  2894 + elseif pm1 == SystemBnousType.HangTime or
  2895 + pm1 == SystemBnousType.DismantlingMaximum or
  2896 + pm1 == SystemBnousType.TreasureBaseMaximum or
  2897 + pm1 == SystemBnousType.ChangeBaseCount or
  2898 + pm1 == SystemBnousType.ChangeBuyCount then
  2899 + if type(levelBnous[pm1]) == "table" then
  2900 + levelBnous[pm1] = 0
  2901 + end
  2902 + levelBnous[pm1] = levelBnous[pm1] + pm2
  2903 + else
  2904 + levelBnous[pm1][pm2] = (levelBnous[pm1][pm2] or 0) + pm3
2895 2905 end
2896   - levelBnous[pm1] = levelBnous[pm1] + pm2
2897   - else
2898   - levelBnous[pm1][pm2] = (levelBnous[pm1][pm2] or 0) + pm3
2899 2906 end
2900 2907 end
2901 2908 end
2902   - self:updateProperty({field = "levelBnous", value= levelBnous})
2903 2909 return levelBnous
2904 2910 end
2905 2911  
... ...