获取“ IntValue”的值总是获取默认值

问题描述 投票:0回答:1

我是一名学生,我试图获取要使用的“ IntValue”的值具有等级,我的意思是,我需要为每个单独的玩家拥有一个技能等级,并使用该技能等级乘以该技能造成的伤害量。

例如:技能等级为5

伤害应该是:基础伤害*技能等级

就我而言基本伤害是2,所以最终结果应该是10伤害。

但是当我尝试执行此代码时,它的工作量就很大。 (我不是LUA的最佳人选,而且我还不太熟悉,所以我提前道歉)

代码(到目前为止,我知道了):

local XP = 0 --Exp Amount
local LevelValue = player.Backpack.ScriptStorage.Player.SkillLevel.Value --Gets the value of the skill level from the "IntValue"


--Other code that i dont want to show (it just checks if a remote event has fired the server, and it adds .5 to the XP everytime it fires)



--This is the line that should add 1 to the level
LevelValue = LevelValue + 1
--But everytime it gets to 2 it simply gets set back to 1 (the default level)

我刚刚展示了相关的代码技巧。与此无关的所有内容均已显示(除了:XP = XP + .5 wich在代码中未显示)

希望这有助于找出问题所在。如上所述:“我在LUA上并不是最好的,而且我还很新,所以我提前道歉”

lua roblox
1个回答
0
投票

在您的代码中,您将SkillLevel.Value存储到LevelValue局部变量中。这将获取该值的快照并将其存储在变量中。因此,当您修改局部变量时,您不会更新存储SkillLevel的IntValue对象。

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

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

-- .. do some other stuff

-- add 1 to the level
SkillLevel.Value = SkillLevel.Value + 1
© www.soinside.com 2019 - 2024. All rights reserved.