获取"IntValue"的值总是得到默认值

我是一名学生,我正在尝试获取"IntValue"的值以用作等级,我的意思是我需要为每个玩家单独设定一个技能等级,并使用这个技能等级来乘以技能造成的伤害数量。

例如:技能等级为5

伤害应为:baseDamage * SkillLevel

在我的例子中,基础伤害为2,因此最终结果应为10点伤害。

但当我尝试使用代码时,它不起作用。(我不是很擅长LUA,我对stack也比较新,所以我提前道歉)

代码(到目前为止我得到了这个):

local XP = 0 --经验数量
local LevelValue = player.Backpack.ScriptStorage.Player.SkillLevel.Value --获取"IntValue"的技能等级值

--我不想展示的其他代码(只是检查远程事件是否已经触发服务器,每次触发都会将XP增加0.5)

--这是应该将等级增加1的那一行
LevelValue = LevelValue + 1
--但每当它达到2时,它就会被设置回1(默认等级)

我只展示了相关的代码片段,所有不相关的内容都没有展示(除了:XP = XP + .5,这在我不展示的代码中)。希望这能帮助解决问题。正如上面所说:"我不是很擅长LUA,我对stack也比较新,所以我提前道歉"。

点赞
用户2860267
用户2860267

在你的代码中,你把 SkillLevel.Value 存储到 LevelValue 本地变量中。这会对该值进行快照并存储在变量中。因此,当你修改本地变量时,你并没有更新存储 SkillLevel 的 IntValue 对象。

当你想要更新 SkillLevel 时,你需要直接更新 IntValue:

local SkillLevel = player.Backpack.ScriptStorage.Player.SkillLevel
local LevelValue = SkillLevel.Value

-- .. 进行其他操作

-- 将等级加1
SkillLevel.Value = SkillLevel.Value + 1
2020-04-09 18:03:56