Commit b58b5b49bc6561f7678c2087fd1b26181e24ad70
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 | ... | ... |