Загрузка данных



### Шаг 1: Подготовка рабочего места
Для начала нам нужно убедиться, что ты видишь два самых важных окна в Roblox Studio.
 1. Наверху нажми на вкладку **View** (Вид).
 2. Убедись, что кнопки **Explorer** (Проводник) и **Properties** (Свойства) нажаты (они должны быть серыми/активными).
   *В окне Explorer мы видим все объекты в игре, а в Properties — настраиваем их цвет, размер и т.д.*
### Шаг 2: Создаем статистику (Деньги и Камни)
Нам нужно, чтобы в правом верхнем углу экрана отображались твои ресурсы.
 1. В окне **Explorer** найди папку **ServerScriptService**.
 2. Наведи на нее мышку, нажми на появившийся плюсик + и выбери **Script** (Скрипт).
 3. Удали весь текст в скрипте и вставь этот:
```lua
game.Players.PlayerAdded:Connect(function(player)
    -- Создаем папку leaderstats (это стандартное имя для статистики в Роблокс)
    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
    
    -- Создаем счетчик Камней
    local stone = Instance.new("IntValue")
    stone.Name = "Stone"
    stone.Value = 0
    stone.Parent = leaderstats

    -- Скрытый счетчик силы клика (для магазина)
    local power = Instance.new("IntValue")
    power.Name = "Power"
    power.Value = 1 -- Изначально за 1 разрушение дается 1 камень
    power.Parent = player
end)

```
 4. Закрой вкладку скрипта (он сохранится автоматически).
### Шаг 3: Создаем камень, который можно ломать
Теперь сделаем саму руду, по которой нужно кликать.
 1. Наверху во вкладке **Home** нажми кнопку **Part** (Деталь). В мире появится блок.
 2. В окне **Explorer** нажми на этот блок (он называется *Part*). Переименуй его в **Rock** (нажми F2 или кликни правой кнопкой мыши -> Rename).
 3. В окне **Properties** найди свойство **Anchored** и поставь там галочку (чтобы камень не падал и не улетал).
 4. Наведи мышку на твой **Rock** в Explorer, нажми плюсик + и добавь **ClickDetector** (Детектор кликов).
 5. Снова нажми + на **Rock** и добавь **Script**. Вставь туда этот код:
```lua
local rock = script.Parent
local clickDetector = rock.ClickDetector

local maxHealth = 5 -- Сколько раз нужно кликнуть, чтобы сломать
local currentHealth = maxHealth
local isBroken = false

clickDetector.MouseClick:Connect(function(player)
    if isBroken then return end -- Если сломан, ничего не делаем
    
    currentHealth = currentHealth - 1
    rock.Color = Color3.fromRGB(150, 150, 150) -- Камень немного меняет цвет при ударе
    wait(0.1)
    rock.Color = Color3.fromRGB(100, 100, 100) -- Возвращаем исходный цвет (настрой под себя)
    
    if currentHealth <= 0 then
        isBroken = true
        rock.Transparency = 1 -- Делаем камень невидимым
        clickDetector.MaxActivationDistance = 0 -- Отключаем клики
        
        -- Даем игроку камень с учетом его силы
        local playerStone = player.leaderstats.Stone
        local playerPower = player.Power
        playerStone.Value = playerStone.Value + playerPower.Value
        
        -- Ждем 3 секунды и восстанавливаем камень
        wait(3) 
        currentHealth = maxHealth
        rock.Transparency = 0
        clickDetector.MaxActivationDistance = 32
        isBroken = false
    end
end)

```
### Шаг 4: Ларек для продажи камней
Игрок должен подойти к зоне, чтобы продать камни.
 1. Создай еще один **Part** (блок) и сделай его плоским, как коврик.
 2. Переименуй его в **SellZone**, поставь галочку **Anchored** и поменяй цвет на зеленый.
 3. Нажми + на **SellZone** и добавь **Script**. Вставь этот код:
```lua
local sellZone = script.Parent
local pricePerStone = 5 -- Цена за 1 камень

sellZone.Touched:Connect(function(hit)
    -- Проверяем, коснулся ли зоны игрок
    local character = hit.Parent
    local player = game.Players:GetPlayerFromCharacter(character)
    
    if player then
        local stone = player.leaderstats.Stone
        local money = player.leaderstats.Money
        
        -- Если у игрока есть камни
        if stone.Value > 0 then
            local earnings = stone.Value * pricePerStone
            money.Value = money.Value + earnings -- Даем деньги
            stone.Value = 0 -- Забираем камни
        end
    end
end)

```
Шаг 5: Магазин (Улучшение силы добычи)
Сделаем простую кнопку в виде платформы. Если игрок наступает на нее и у него хватает денег, он получает прокачку.
 1. Создай еще один **Part**, назови его **UpgradeZone**, сделай **Anchored** и покрась в синий цвет.
 2. Добавь в него **Script**:
```lua
local upgradeZone = script.Parent
local upgradeCost = 100 -- Стоимость улучшения
local debounce = false -- Защита от случайных двойных касаний

upgradeZone.Touched:Connect(function(hit)
    if debounce then return end
    
    local character = hit.Parent
    local player = game.Players:GetPlayerFromCharacter(character)
    
    if player then
        local money = player.leaderstats.Money
        local power = player.Power
        
        -- Проверяем, хватает ли денег
        if money.Value >= upgradeCost then
            debounce = true
            money.Value = money.Value - upgradeCost
            power.Value = power.Value + 1 -- Увеличиваем количество добываемых камней
            
            print(player.Name .. " купил улучшение! Теперь сила: " .. power.Value)
            
            -- Увеличиваем цену на следующее улучшение (по желанию)
            upgradeCost = upgradeCost + 50 
            
            wait(1)
            debounce = false
        end
    end
end)

```