Я думаю, что ваша проблема в том, что вы просто неправильно обращаетесь к значению лидера.
Существует разница между игроком, которого вы найдете в game.Players
, и игроком в game.Workspace
. В game.Players
находится папка лидера, а в game.Workspace
- место обитания гуманоида игрока.
Чтобы изменить значения лидера, вам нужно использовать гуманоида, чтобы узнать, какой игрок коснулся этой части, а затем получить фактический объект игрока из game.Players
, чтобы правильно получить доступ к папке.
local boostPart = script.Parent
local function onPartTouch(otherPart)
-- get the player that touched the boost block
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChildWhichIsA("Humanoid")
if ( humanoid ) then
-- a player touched this, prevent more collisions
boostPart.CanCollide = false
-- get the current player's jump power by looking into the players leaderstats
local playerService = game.Players
local playerName = partParent.Name
local currentPlayer = playerService[playerName]
local playerGold = currentPlayer.leaderstats.gold.Value -- << gold?
-- give the player a temporary boost
local currentJumpPower = humanoid.JumpPower
if ( currentJumpPower < playerGold) then
humanoid.JumpPower = playerGold
-- reset the player's jump power
wait(5)
humanoid.JumpPower = currentJumpPower
end
end
end
boostPart.Touched:Connect(onPartTouch)
Это должно позволить вам правильно читать значения из лидеров. Если вы хотите изменить их, вы можете использовать ту же систему для перехода в папку Players и изменения значений.