Створення гри Catch the Gain (Злови Підсилення)

 

1. Рандомний спавн об'єктів з ReplicatedStorage

🎯 Приклад ServerScript у ServerScriptService:

local ReplicatedStorage = game:GetService("ReplicatedStorage") local Workspace = game:GetService("Workspace") local Players = game:GetService("Players") local spawnInterval = 5 -- інтервал спавну у секундах local spawnArea = Vector3.new(50, 1, 50) -- розміри зони спавну local center = Vector3.new(0, 5, 0) -- центр зони спавну local itemsFolder = ReplicatedStorage:WaitForChild("Items") -- папка з предметами while true do wait(spawnInterval) local allItems = itemsFolder:GetChildren() local randomItem = allItems[math.random(1, #allItems)]:Clone() local randomPosition = Vector3.new( math.random(-spawnArea.X, spawnArea.X), 5, math.random(-spawnArea.Z, spawnArea.Z) ) + center randomItem.Position = randomPosition randomItem.Parent = Workspace end

2. Взаємодія з гравцем (торкання об’єкта)

🧠 Для кожного предмета (наприклад, "SpeedBoost", "HealthPack") додай Touch обробник:

local item = script.Parent item.Touched:Connect(function(hit) local character = hit.Parent local player = game.Players:GetPlayerFromCharacter(character) if player then local leaderstats = player:FindFirstChild("leaderstats") local collected = leaderstats and leaderstats:FindFirstChild("Collected") if collected then collected.Value += 1 end -- ефект предмета local humanoid = character:FindFirstChild("Humanoid") if humanoid then if item.Name == "SpeedBoost" then humanoid.WalkSpeed += 10 elseif item.Name == "JumpBoost" then humanoid.JumpPower += 20 elseif item.Name == "HealthPack" then humanoid.Health = math.min(humanoid.MaxHealth, humanoid.Health + 30) elseif item.Name == "Damage" then humanoid:TakeDamage(30) end end item:Destroy() end end)

📌 Помісти цей  Script у сам предмет (всередині моделі в ReplicatedStorage → Items)


🏆 3. Створення leaderstats для підрахунку зібраних об'єктів

📁 У ServerScriptService:

game.Players.PlayerAdded:Connect(function(player) local leaderstats = Instance.new("Folder") leaderstats.Name = "leaderstats" leaderstats.Parent = player local collected = Instance.new("IntValue") collected.Name = "Collected" collected.Value = 0 collected.Parent = leaderstats end)

🧩 Структура ReplicatedStorage:

ReplicatedStorage └── Items (Folder) ├── SpeedBoost (Part/Model with Script inside) ├── JumpBoost ├── HealthPack └── Damage