【发布时间】:2021-04-29 19:29:28
【问题描述】:
所以我遇到了一个问题,我试图获取 IntValue 的值,但它总是给我 0,即使值不是 0。没有出现错误,它在服务器脚本中.我不知道是什么问题:
local leaderstats = Instance.new("Folder", plr)
leaderstats.Name = "leaderstats"
local Clicks = Instance.new("IntValue", leaderstats)
Clicks.Name = "Clicks"
local Multiplier = Instance.new("IntValue", leaderstats)
Multiplier.Name = "Multiplier"
-- a bunch of datastore stuff
game.Players.PlayerRemoving:Connect(function(plr)
print("removing")
local approved, errortext = pcall(function()
print(plr.leaderstats.Clicks.Value, plr.leaderstats.Multiplier.Value)
datastore:SetAsync(plr.UserId.."-save", {plr.leaderstats.Clicks.Value, plr.leaderstats.Multiplier.Value})
end)
if approved then
print("data saved")
print( plr.leaderstats.Multiplier.Value, plr.leaderstats.Clicks.Value)
else
print("idiot data wont save")
end
end)
它每次只打印 0 作为乘数值。
这是改变乘数值的代码:
local leaderstats = game.Players.LocalPlayer:WaitForChild("leaderstats")
local clicks = leaderstats.Clicks
local folder = script.Parent.multipliers
local multiplier = leaderstats.Multiplier
for i,v in pairs(folder:GetChildren()) do
local cost = v.Cost
v.MouseButton1Click:Connect(function()
print(v)
if multiplier.Value > tonumber(v.Name) then
print("already bbogt")
end
if multiplier.Value + 1 == tonumber(v.Name) then
if cost.Value > clicks.Value then
print("not enough moneys smh my head")
elseif cost.Value <= clicks.Value then
print("rich smh mynhead")
clicks.Value -= cost.Value
multiplier.Value = multiplier.Value + 1
end
elseif multiplier.Value == 0 and v.Name == "2" then
if 5 > clicks.Value then
print("not enough moneys smh my head")
elseif 5 <= clicks.Value then
print("rich smh mynhead")
clicks.Value -= 5
multiplier.Value = 2
print(clicks.Value)
end
end
end)
end
【问题讨论】:
-
你在哪里给那个打印 0 的值赋值?我只看到你连接了一些事件处理程序。
-
抱歉,我会添加该脚本