本帖最后由 a26956311 于 2023-4-13 00:38 编辑
Char.SetData(charIndex,CONST.CHAR_升级点,originPoint+n) 以UR英雄为例n=2,每次升级得6点, 升一级当然是4+2 但连续升级的时候+n,只会计算最后1等,例如從1等连升到6等,应该要得到30点,但这个算法只会得到4*5+2=22点
经过计算测试公式应该要改成
- local function moreBP(n)
- return function(charIndex)
- local vital = Char.GetData(charIndex,CONST.CHAR_体力)/100
- local str = Char.GetData(charIndex,CONST.CHAR_力量)/100
- local tgh = Char.GetData(charIndex,CONST.CHAR_强度)/100
- local quick = Char.GetData(charIndex,CONST.CHAR_速度)/100
- local magic = Char.GetData(charIndex,CONST.CHAR_魔法)/100
- local added =vital+str+tgh+quick+magic
- local lv = Char.GetData(charIndex,CONST.CHAR_等级)
- local default = 30
- local rare = Char.GetData(charIndex,CONST.对象_名色)
- local originPoint = Char.GetData(charIndex,CONST.CHAR_升级点)
- if (rare==6) then --UR
- local rarepoint=90
- Char.SetData(charIndex,CONST.CHAR_升级点,originPoint+ (lv-1)*n-n*(added+originPoint-default-rarepoint)/(n+4))
- elseif rare==4 then --SSR
- local rarepoint=60
- Char.SetData(charIndex,CONST.CHAR_升级点,originPoint+ (lv-1)*n-n*(added+originPoint-default-rarepoint)/(n+4))
- elseif rare==2 then --SR
- local rarepoint=30
- Char.SetData(charIndex,CONST.CHAR_升级点,originPoint+ (lv-1)*n-n*(added+originPoint-default-rarepoint)/(n+4))
- else --R
-
-
-
- Char.SetData(charIndex,CONST.CHAR_升级点,originPoint+ (lv-1)*n-n*(added+originPoint-default-0)/(n+4))
- end
-
- end
- end
复制代码
以UR英雄 等級1 初始30點 加成90
等级6等时已有点数为 初始30 加成90 预设4*5=20 加成2*5=10 总共150(30+120)点 到14等时已有点数为 初始30 加成90 预设4*13=52 加成2*13=26 总共198(30+168)点 公式originPoint+(lv-1)*n-n*(added+originPoint-default-rarepoint)/(n+4))代表當你升到某等級的時候,要扣掉自身已有點數,等於升級得到的點數
以UR英雄6等一次升到14等,應該要多48點 originPoint=是預設每次升等都會得到4點的計算=4*8=32
(lv-1)*n-n*(added+originPoint-default-rarepoint)/(n+4))為BP加成算法,扣掉6級時已有的點數,除每次升級會得到6點,可得已獲得多少加成點數 added+originPoint=已分配點數+未分配點數 (14-1)*2-2*(150+0-30-90)/(2+4)=(13*2)-2*(30/6)=26-10=16
6等一次升到14等會得到32(預設)+16(加成)=48
附上LUA档里面的R等英雄,有被调整测试,再自行修改
有興趣的可以測試一下有沒有缺失錯誤
|