264 подписчика
-- Разместите этот скрипт в ServerScriptService
local Players = game:GetService("Players")
-- Функция создания GUI для игрока
local function createMoneyGUI(player)
-- Создаём ScreenGui
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "MoneyGUI"
screenGui.Parent = player:WaitForChild("PlayerGui")
-- Создаём основной Frame
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 200, 0, 50)
frame.Position = UDim2.new(0, 10, 0, 10)
frame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
frame.BackgroundTransparency = 0.2
frame.BorderSizePixel = 0
frame.Parent = screenGui
-- Закругление углов (необязательно)
local uiCorner = Instance.new("UICorner")
uiCorner.CornerRadius = UDim.new(0, 10)
uiCorner.Parent = frame
-- Текст "Деньги:"
local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(0, 80, 1, 0)
textLabel.Position = UDim2.new(0, 10, 0, 0)
textLabel.BackgroundTransparency = 1
textLabel.Text = "💰 Деньги:"
textLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
textLabel.TextSize = 18
textLabel.Font = Enum.Font.GothamBold
textLabel.TextXAlignment = Enum.TextXAlignment.Left
textLabel.Parent = frame
-- Значение денег (обновляется динамически)
local moneyValue = Instance.new("TextLabel")
moneyValue.Name = "MoneyValue"
moneyValue.Size = UDim2.new(0, 90, 1, 0)
moneyValue.Position = UDim2.new(0, 100, 0, 0)
moneyValue.BackgroundTransparency = 1
moneyValue.Text = "0"
moneyValue.TextColor3 = Color3.fromRGB(255, 215, 0) -- золотой
moneyValue.TextSize = 18
moneyValue.Font = Enum.Font.GothamBold
moneyValue.TextXAlignment = Enum.TextXAlignment.Right
moneyValue.Parent = frame
-- Функция обновления значения денег
local function updateMoneyDisplay()
local leaderstats = player:FindFirstChild("leaderstats")
if leaderstats then
local moneyStat = leaderstats:FindFirstChild("Money")
if moneyStat then
moneyValue.Text = tostring(moneyStat.Value)
else
moneyValue.Text = "0"
end
else
moneyValue.Text = "0"
end
end
-- Подписываемся на изменение значения Money
local leaderstats = player:WaitForChild("leaderstats", 5)
if leaderstats then
local moneyStat = leaderstats:FindFirstChild("Money")
if moneyStat then
moneyStat:GetPropertyChangedSignal("Value"):Connect(updateMoneyDisplay)
updateMoneyDisplay()
end
end
-- Если leaderstats появится позже
player.CharacterAdded:Connect(function()
task.wait(0.5)
updateMoneyDisplay()
end)
end
-- Создаём leaderstats и Money, если их нет
local function setupLeaderstats(player)
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local money = Instance.new("IntValue")
money.Name = "Money"
money.Value = 1000 -- начальная сумма
money.Parent = leaderstats
end
-- Обработка новых игроков
Players.PlayerAdded:Connect(function(player)
-- Добавляем leaderstats, если отсутствует
if not player:FindFirstChild("leaderstats") then
setupLeaderstats(player)
end
-- Даём время на создание leaderstats и создаём GUI
task.wait(0.1)
createMoneyGUI(player)
end)
-- Для уже существующих игроков (если скрипт добавили в середине игры)
for _, player in pairs(Players:GetPlayers()) do
if not player:FindFirstChild("leaderstats") then
setupLeaderstats(player)
end
task.spawn(function()
task.wait(0.1)
createMoneyGUI(player)
end)
end
2 минуты
29 марта