Найти в Дзене
-- Script (поместить в ServerScriptService) local Players = game:GetService("Players") local function setupPlayer(player) local remote = Instance.new("RemoteEvent") remote.Name = "BuyCharacterRequest" remote.Parent = player remote.OnServerEvent:Connect(function(plr) if plr ~= player then return end local leaderstats = player:FindFirstChild("leaderstats") local coins = leaderstats and leaderstats:FindFirstChild("Coins") if coins and coins.Value >= 100 then coins.Value -= 100 -- Здесь замени "CharacterTemplate" на имя твоего персонажа в ReplicatedStorage или Workspace local characterTemplate = game.ReplicatedStorage:FindFirstChild("CharacterTemplate") if characterTemplate then local newCharacter = characterTemplate:Clone() newCharacter.Parent = workspace newCharacter.HumanoidRootPart.CFrame = player.Character.HumanoidRootPart.CFrame + Vector3.new(0, 3, 0) -- Можно выдать игроку возможность управлять персонажем -- player.Character = newCharacter -- Осторожно: заменит текущего персонажа else warn("Не найден CharacterTemplate в ReplicatedStorage") end end end) end Players.PlayerAdded:Connect(setupPlayer) -- Для уже существующих игроков for _, player in ipairs(Players:GetPlayers()) do setupPlayer(player) end
1 неделю назад
-- LocalScript (поместить в StarterGui или в любой ScreenGui) local Players = game:GetService("Players") local player = Players.LocalPlayer local leaderstats = player:WaitForChild("leaderstats") -- Убедись, что у игрока есть leaderstats с монетами (Coins) local screenGui = Instance.new("ScreenGui") screenGui.Name = "BuyCharacterGui" screenGui.Parent = player:WaitForChild("PlayerGui") local button = Instance.new("TextButton") button.Size = UDim2.new(0, 200, 0, 50) button.Position = UDim2.new(0.5, -100, 0.5, -25) button.Text = "Купить персонажа за 100 монет" button.BackgroundColor3 = Color3.fromRGB(0, 255, 0) button.TextColor3 = Color3.fromRGB(0, 0, 0) button.Parent = screenGui button.MouseButton1Click:Connect(function() local coins = leaderstats:FindFirstChild("Coins") if coins and coins.Value >= 100 then -- Запрос на сервер для покупки local remote = Instance.new("RemoteEvent") remote.Name = "BuyCharacterRequest" remote.Parent = player remote:FireServer() -- Временно меняем текст кнопки button.Text = "Персонаж куплен!" button.BackgroundColor3 = Color3.fromRGB(255, 255, 0) task.wait(2) button.Text = "Купить персонажа за 100 монет" button.BackgroundColor3 = Color3.fromRGB(0, 255, 0) else button.Text = "Недостаточно монет!" button.BackgroundColor3 = Color3.fromRGB(255, 0, 0) task.wait(2) button.Text = "Купить персонажа за 100 монет" button.BackgroundColor3 = Color3.fromRGB(0, 255, 0) end end)
1 неделю назад
-- СКРИПТ МАГАЗИНА (поместить в ServerScriptService) local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") -- Создаём RemoteEvent для связи сервера с клиентом local remoteEvent = Instance.new("RemoteEvent") remoteEvent.Name = "ShopRemoteEvent" remoteEvent.Parent = ReplicatedStorage -- === НАСТРОЙКИ МАГАЗИНА === local shopItems = { { itemName = "Зелье здоровья", price = 50, description = "Восстанавливает 50 HP", icon = "rbxassetid://1234567890", -- замените на свой ID itemType = "heal", healAmount = 50 }, { itemName = "Меч", price = 150, description = "Увеличивает урон", icon = "rbxassetid://1234567890", itemType = "sword" }, { itemName = "Ключ", price = 100, description = "Открывает секретную дверь", icon = "rbxassetid://1234567890", itemType = "key" } } -- === ФУНКЦИЯ ПОКУПКИ === local function purchaseItem(player, itemIndex) local item = shopItems[itemIndex] if not item then warn("Товар не найден") return false end local leaderstats = player:FindFirstChild("leaderstats") if not leaderstats then return false end local money = leaderstats:FindFirstChild("Money") if not money then return false end if money.Value >= item.price then -- Списываем монеты money.Value = money.Value - item.price -- Выдаём предмет (настраиваем под свои нужды) giveItemToPlayer(player, item) print(player.Name .. " купил " .. item.itemName .. " за " .. item.price .. " монет") return true else print(player.Name .. " не хватает монет для покупки " .. item.itemName) return false end end -- === ФУНКЦИЯ ВЫДАЧИ ПРЕДМЕТА === local function giveItemToPlayer(player, item) -- Пример: кладём предмет в Backpack или в специальный папку if item.itemType == "heal" then -- Восстановление здоровья local character = player.Character if character then local humanoid = character:FindFirstChildWhichIsA("Humanoid") if humanoid then humanoid.Health = math.min(humanoid.MaxHealth, humanoid.Health + item.healAmount) end end elseif item.itemType == "sword" then -- Даём меч (создаём инструмент) local tool = Instance.new("Tool") tool.Name = item.itemName tool.RequiresHandle = false tool.Parent = player.Backpack elseif item.itemType == "key" then -- Сохраняем в IntValue, что у игрока есть ключ local keyValue = Instance.new("BoolValue") keyValue.Name = "HasKey" keyValue.Value = true keyValue.Parent = player end end -- === GUI ДЛЯ КНОПКИ ОТКРЫТИЯ МАГАЗИНА === local function createShopButton(player) local screenGui = Instance.new("ScreenGui") screenGui.Name = "ShopButtonGUI" screenGui.Parent = player:WaitForChild("PlayerGui") -- Кнопка открытия магазина local openButton = Instance.new("TextButton") openButton.Size = UDim2.new(0, 60, 0, 60) openButton.Position = UDim2.new(1, -80, 0, 10) openButton.BackgroundColor3 = Color3.fromRGB(255, 170, 0) openButton.Text = "🛒" openButton.TextSize = 30 openButton.Font = Enum.Font.GothamBold openButton.Parent = screenGui -- Закругление local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 30) corner.Parent = openButton -- Открытие магазина при нажатии openButton.MouseButton1Click:Connect(function() remoteEvent:FireClient(player, "openShop", shopItems) end) end -- === СОЗДАНИЕ GUI МАГАЗИНА НА КЛИЕНТЕ === local function setupClientShop(player) local function createShopGui(items) -- Удаляем старый GUI, если есть local oldGui = player.PlayerGui:FindFirstChild("ShopGUI") if oldGui then oldGui:Destroy() end local shopGui = Instance.new("ScreenGui") shopGui.Name = "ShopGUI" shopGui.Parent = player.PlayerGui -- Фон local background = Instance.new("Frame") background.Size = UDim2.new(0, 400, 0, 500) background.Position = UDim2.new(0.5, -200, 0.5, -250) background.BackgroundColor3 = Color3.fromRGB(30, 30, 40) background.BackgroundTransparency = 0.1 background.BorderSizePixel = 0 background.Parent = shopGui local cornerBg = Instance.new("UICorner") cornerBg.CornerRadius = UDim.new(0, 15)
1 неделю назад
-- Разместите этот скрипт в 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
1 неделю назад
-- Скрипт для создания денег у игроков local Players = game:GetService("Players") 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 = 0 money.Parent = leaderstats end Players.PlayerAdded:Connect(setupLeaderstats) for _, player in pairs(Players:GetPlayers()) do setupLeaderstats(player) end
1 неделю назад
-- Разместите этот скрипт ВНУТРИ парта (Part) local part = script.Parent -- Настройки local COIN_AMOUNT = 1 -- количество монет за наступание local DESTROY_ON_TOUCH = true -- исчезать ли после сбора -- Функция, которая даёт монету игроку local function giveCoin(player) local leaderstats = player:FindFirstChild("leaderstats") if leaderstats then local money = leaderstats:FindFirstChild("Money") if money then money.Value = money.Value + COIN_AMOUNT print(player.Name .. " получил " .. COIN_AMOUNT .. " монету. Теперь: " .. money.Value) else warn("У игрока " .. player.Name .. " нет статистики 'Money'") end else warn("У игрока " .. player.Name .. " нет папки 'leaderstats'") end end -- Обработчик касания part.Touched:Connect(function(hit) -- Проверяем, что коснулась именно часть персонажа (нога/тело) local character = hit.Parent local humanoid = character and character:FindFirstChildWhichIsA("Humanoid") if humanoid then local player = game:GetService("Players"):GetPlayerFromCharacter(character) if player then -- Даём монету giveCoin(player) -- Исчезаем (или удаляемся) if DESTROY_ON_TOUCH then part:Destroy() else -- Альтернатива: сделать невидимым и отключить касания part.CanCollide = false part.Transparency = 1 part.Anchored = true -- Можно добавить задержку перед повторным появлением end end end end) -- Визуальный эффект (необязательно) -- Добавляем свечение, чтобы парт привлекал внимание local selectionBox = Instance.new("SelectionBox") selectionBox.Adornee = part selectionBox.Color3 = Color3.fromRGB(255, 215, 0) -- золотой selectionBox.LineThickness = 0.05 selectionBox.Transparency = 0.5 selectionBox.Parent = part -- Маленькая анимация парения (необязательно) task.spawn(function() local startY = part.Position.Y local time = 0 while part and part.Parent do time = time + 0.05 local offset = math.sin(time) * 0.3 part.Position = Vector3.new(part.Position.X, startY + offset, part.Position.Z) task.wait(0.05) end end)
1 неделю назад
-- Создаём основной ScreenGui local screenGui = Instance.new("ScreenGui") screenGui.Name = "MoneyDisplay" screenGui.Parent = script.Parent -- Создаём главный Frame (панель) local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 200, 0, 50) frame.Position = UDim2.new(1, -210, 0, 10) -- Прижат к правому верхнему углу frame.BackgroundColor3 = Color3.fromRGB(30, 30, 30) frame.BackgroundTransparency = 0.2 frame.BorderSizePixel = 0 frame.Parent = screenGui -- Добавляем скругление углов (опционально) local corners = Instance.new("UICorner") corners.CornerRadius = UDim.new(0, 8) corners.Parent = frame -- Текст "Ваш баланс:" local label = Instance.new("TextLabel") label.Size = UDim2.new(0.5, 0, 1, 0) label.Position = UDim2.new(0, 5, 0, 0) label.BackgroundTransparency = 1 label.Text = "💰 Баланс:" label.TextColor3 = Color3.fromRGB(255, 255, 255) label.TextXAlignment = Enum.TextXAlignment.Left label.Font = Enum.Font.GothamBold label.TextSize = 18 label.Parent = frame -- Поле для отображения суммы денег local moneyText = Instance.new("TextLabel") moneyText.Size = UDim2.new(0.5, -10, 1, 0) moneyText.Position = UDim2.new(0.5, 0, 0, 0) moneyText.BackgroundTransparency = 1 moneyText.Text = "0" moneyText.TextColor3 = Color3.fromRGB(255, 215, 0) -- Золотой цвет moneyText.TextXAlignment = Enum.TextXAlignment.Right moneyText.Font = Enum.Font.GothamBold moneyText.TextSize = 18 moneyText.Parent = frame -- Ждём загрузки игрока local player = game.Players.LocalPlayer -- Функция обновления GUI local function updateMoneyDisplay() -- Ищем деньги в Leaderstats local leaderstats = player:FindFirstChild("leaderstats") if leaderstats then local cash = leaderstats:FindFirstChild("Cash") or leaderstats:FindFirstChild("Money") or leaderstats:FindFirstChild("Coins") if cash then moneyText.Text = tostring(cash.Value) return end end -- Если нет Leaderstats, пробуем найти IntValue в самом игроке local playerMoney = player:FindFirstChild("Money") or player:FindFirstChild("Cash") if playerMoney and playerMoney:IsA("IntValue") then moneyText.Text = tostring(playerMoney.Value) return end -- Если ничего не нашли moneyText.Text = "N/A" end -- Первоначальное обновление updateMoneyDisplay() -- Функция для отслеживания изменений local function onMoneyChanged(property) if property == "Value" then updateMoneyDisplay() end end -- Подключаем обновление при изменении значения local function setupTracking() local leaderstats = player:FindFirstChild("leaderstats") if leaderstats then local cash = leaderstats:FindFirstChild("Cash") or leaderstats:FindFirstChild("Money") or leaderstats:FindFirstChild("Coins") if cash then cash.Changed:Connect(onMoneyChanged) return end end local playerMoney = player:FindFirstChild("Money") or player:FindFirstChild("Cash") if playerMoney and playerMoney:IsA("IntValue") then playerMoney.Changed:Connect(onMoneyChanged) end end setupTracking() -- Если Leaderstats или деньги появятся позже (динамически) player.ChildAdded:Connect(function(child) if child.Name == "leaderstats" then child.ChildAdded:Connect(function(stat) if stat.Name == "Cash" or stat.Name == "Money" or stat.Name == "Coins" then stat.Changed:Connect(onMoneyChanged) updateMoneyDisplay() end end) setupTracking() updateMoneyDisplay() elseif (child.Name == "Money" or child.Name == "Cash") and child:IsA("IntValue") then child.Changed:Connect(onMoneyChanged) updateMoneyDisplay() end end)
1 неделю назад
local iconButton = script.Parent -- Ссылка на иконку local buttonsContainer = {} -- Таблица для хранения кнопок local isOpen = false -- Флаг для отслеживания состояния -- Находим все кнопки в ScreenGui for _, child in pairs(iconButton.Parent:GetChildren()) do if child:IsA("TextButton") and child ~= iconButton then table.insert(buttonsContainer, child) child.Visible = false -- Скрываем кнопки по умолчанию end end -- Функция для переключения видимости кнопок local function toggleButtons() isOpen = not isOpen -- Переключаем состояние for _, button in pairs(buttonsContainer) do button.Visible = isOpen -- Устанавливаем видимость кнопок end end -- Привязываем функцию к событию нажатия на иконку iconButton.MouseButton1Click:Connect(toggleButtons)
5 месяцев назад
local textButton = script.Parent -- Ссылка на TextButton local originalMaterials = {} -- Таблица для хранения оригинальных материалов local decalId = "rbxassetid://YOUR_DECAL_ID" -- Замените YOUR_DECAL_ID на ID вашего Decal local isTransformed = false -- Флаг для отслеживания состояния -- Функция для замены всех Parts на Decal local function transformParts() for _, obj in pairs(workspace:GetChildren()) do if obj:IsA("Part") then -- Сохраняем оригинальный материал originalMaterials[obj] = obj.Material -- Удаляем все Decal, чтобы избежать дублирования for _, child in pairs(obj:GetChildren()) do if child:IsA("Decal") then child:Destroy() end end -- Заменяем материал на SmoothPlastic obj.Material = Enum.Material.SmoothPlastic -- Добавляем Decal на каждую сторону Part for _, face in pairs(Enum.NormalId:GetEnumItems()) do local decal = Instance.new("Decal") decal.Texture = decalId decal.Face = face decal.Parent = obj end end end end -- Функция для восстановления оригинальных Parts local function restoreParts() for part, material in pairs(originalMaterials) do part.Material = material -- Восстанавливаем оригинальный материал -- Удаляем все Decal, чтобы вернуть Part в исходное состояние for _, child in pairs(part:GetChildren()) do if child:IsA("Decal") then child:Destroy() -- Удаляем Decal end end end originalMaterials = {} -- Очищаем таблицу оригинальных материалов end -- Основная функция для переключения состояния local function toggleTransformation() if isTransformed then restoreParts() -- Восстанавливаем оригинальные Parts else transformParts() -- Заменяем на Decal end isTransformed = not isTransformed -- Переключаем состояние end -- Привязываем функцию к событию наж
5 месяцев назад
local textButton = script.Parent -- Ссылка на TextButton local originalMaterials = {} -- Таблица для хранения оригинальных материалов local decalId = "rbxassetid://YOUR_DECAL_ID" -- Замените YOUR_DECAL_ID на ID вашего Decal local isTransformed = false -- Флаг для отслеживания состояния -- Функция для замены всех Parts на Decal local function transformParts() for _, obj in pairs(workspace:GetChildren()) do if obj:IsA("Part") then -- Сохраняем оригинальный материал originalMaterials[obj] = obj.Material -- Заменяем материал на Decal obj.Material = Enum.Material.SmoothPlastic local decal = Instance.new("Decal") decal.Texture = decalId decal.Parent = obj end end end -- Функция для восстановления оригинальных Parts local function restoreParts() for part, material in pairs(originalMaterials) do part.Material = material -- Восстанавливаем оригинальный материал for _, child in pairs(part:GetChildren()) do if child:IsA("Decal") then child:Destroy() -- Удаляем Decal end end end originalMaterials = {} -- Очищаем таблицу оригинальных материалов end -- Основная функция для переключения состояния local function toggleTransformation() if isTransformed then restoreParts() -- Восстанавливаем оригинальные Parts else transformParts() -- Заменяем на Decal end isTransformed = not isTransformed -- Переключаем состояние end -- Привязываем функцию к событию нажатия на кнопку textButton.MouseButton1Click:Connect(toggleTransformation)
5 месяцев назад
local textButton = script.Parent -- Ссылка на TextButton local replicatedStorage = game:GetService("ReplicatedStorage") -- Получаем сервис ReplicatedStorage local modelName = "MyModel" -- Имя вашей модели local modelClone -- Переменная для хранения клона модели local modelVisible = false -- Флаг для отслеживания состояния модели -- Функция для переключения видимости модели local function toggleModel() if modelVisible then if modelClone then modelClone:Destroy() -- Удаляем модель из Workspace end modelVisible = false else -- Клонируем модель из ReplicatedStorage modelClone = replicatedStorage:WaitForChild(modelName):Clone() modelClone.Parent = workspace -- Добавляем клон модели в Workspace modelVisible = true end end -- Привязываем функцию к событию нажатия на кнопку textButton.MouseButton1Click:Connect(toggleModel)
5 месяцев назад
local textButton = script.Parent -- Ссылка на TextButton local part = game.Workspace:WaitForChild("MyPart") -- Находим ваш Part в Workspace part.Transparency = 1 -- Делаем Part невидимым изначально part.CanCollide = false -- Убираем коллизию, чтобы игроки не могли взаимодействовать local partVisible = false -- Флаг для отслеживания состояния Part -- Функция для переключения видимости Part local function togglePart() if partVisible then part.Transparency = 1 -- Делаем Part невидимым part.CanCollide = false -- Убираем коллизию partVisible = false else part.Transparency = 0 -- Делаем Part видимым part.CanCollide = true -- Включаем коллизию partVisible = true end end -- Привязываем функцию к событию нажатия на кнопку textButton.MouseButton1Click:Connect(togglePart)
5 месяцев назад
00:10
1,0×
00:00/00:10
1 год назад