|
发表于 2022-12-18 20:58:45
|
显示全部楼层
ng.lua里面加了个方法,代码如下
function commandsNormal.ap(charIndex,args)
if args[1] ~="t" and args[1] ~="l" and args[1] ~="q" and args[1] ~="s" and args[1] ~="m" then
NLG.SystemMessage(charIndex,"参数错误: t-体力 l-力量 q-强度 s-速度 m-魔力 例:/ap t 100 加体力100")
return
end
local addPoint = tonumber(args[2]);
if addPoint<=0 then
NLG.SystemMessage(charIndex,"加点数值小于0,参数错误: t-体力 l-力量 q-强度 s-速度 m-魔力 例:/ap t 100 加体力100")
return
end
local leftPoint = Char.GetData(charIndex, CONST.CHAR_升级点);
if addPoint>leftPoint then
NLG.SystemMessage(charIndex,"加点数值大于剩余数值,以剩余数值为准")
addPoint = leftPoint
end
--点数计算
local allPoint = 0;
local s = { CONST.CHAR_体力, CONST.CHAR_力量, CONST.CHAR_强度, CONST.CHAR_速度, CONST.CHAR_魔法 }
for i, v in pairs(s) do
allPoint = Char.GetData(charIndex, v)/100 + allPoint;
end
allPoint = leftPoint + allPoint;
-- NLG.SystemMessage(charIndex,'全部点数: '..allPoint);
local keyWord = {"t","l","q","s","m"}
--匹配加点类型计算加点
local oneMax = allPoint/2
for i, v in pairs(keyWord) do
if args[1] ==v then
local nowTypePoint = Char.GetData(charIndex, s[i])/100
if addPoint + nowTypePoint > oneMax then
addPoint = oneMax-nowTypePoint
end
leftPoint = leftPoint-addPoint
Char.SetData(charIndex, s[i],(addPoint + nowTypePoint)*100)
Char.SetData(charIndex, CONST.CHAR_升级点,leftPoint)
end
end
NLG.UpChar(charIndex)
end
|
|