Commit b58b5b49bc6561f7678c2087fd1b26181e24ad70

Authored by zhouhaihai
1 parent b8eb016b

零件bug

Showing 2 changed files with 13 additions and 18 deletions   Show diff stats
src/models/HeroPlugin.lua
... ... @@ -154,7 +154,7 @@ function HeroPlugin.bind(Hero)
154 154 local rune = self.owner.runeBag[uid]
155 155 local buildData = csvdb["rune_buildCsv"][rune:getProperty("level")]
156 156 for k,v in pairs(rune:getProperty("attrs"):toNumMap()) do
157   - attrs.value[AttsEnumEx[k]] = attrs.value[AttsEnumEx[k]] + (v * (1 + buildData.effect/100))
  157 + attrs.value[AttsEnumEx[k]] = attrs.value[AttsEnumEx[k]] + (v / 10 * (1 + buildData.effect/100)) -- 零件的加成属性有特殊需求 填的是 10倍的值
158 158  
159 159 end
160 160 local csvData = csvdb["runeCsv"][rune:getProperty("type")][rune:getProperty("id")]
... ...
src/models/Rune.lua
... ... @@ -53,34 +53,29 @@ end
53 53 local function getRandomValue(types,values)
54 54 local typeMap = types:toNumMap()
55 55 local valueArry = values:toArray()
  56 +
56 57 if table.nums(typeMap) ~= #valueArry then return nil end
57   - local typ,value
58   - local typTab,weightSum = {},0
  58 + local typ, value
  59 + local typTab = {}
59 60 for t,w in pairs(typeMap) do
60   - weightSum = weightSum + w
61   - table.insert(typTab,{t=t,w=weightSum})
  61 + table.insert(typTab,{t=t,w=w})
62 62 end
63 63  
64   - local tk
65   - local tmp = math.random(1,weightSum)
66   - for k,v in ipairs(typTab) do
67   - if v.w >= tmp then
68   - typ = v.t
69   - tk = k
70   - break
71   - end
72   - end
  64 + local tk = math.randWeight(typTab, "w")
  65 + typ = typTab[tk]["t"]
73 66  
74 67 local range = valueArry[tk]:toArray(true,"=")
75   - value = math.random(range[1],range[2])
76   - return typ,value
  68 + value = math.randomInt(range[1],range[2])
  69 + return typ, value
77 70 end
78 71  
79 72 function Rune:generateAttrs()
80 73 local runeData = csvdb["runeCsv"][self:getProperty("type")][self:getProperty("id")]
81 74 local attrs = ""
82   - attrs = attrs:setv(getRandomValue(runeData.attr1,runeData.range1))
83   - attrs = attrs:setv(getRandomValue(runeData.attr2,runeData.range2))
  75 + local typ, value = getRandomValue(runeData.attr1,runeData.range1)
  76 + attrs = attrs:setv(typ, value)
  77 + local typ, value = getRandomValue(runeData.attr1,runeData.range1)
  78 + attrs = attrs:setv(typ, value)
84 79 self:setProperty("attrs",attrs)
85 80 end
86 81  
... ...