Купівля оновлень
Це підводить нас до останнього етапу ігрового циклу — купівлі оновлень. Дозволяючи гравцям купувати оновлення, які збільшують розмір сумки з предметами, вони можуть збирати більше предметів за подорож і заробляти ще більше золота.

Створення магазину
У кожному магазині буде кнопка, яку гравці натискають, щоб придбати більшу сумку з предметами. Сам магазин буде частиною з SurfaceGUI, елементом, який дозволяє писати текст на частинах.
У робочій області створіть нову модель під назвою «Магазин».
У Shop створіть нову частину блоку під назвою BuyButton.

У BuyButton додайте новий графічний інтерфейс Surface, натиснувши + і прокрутивши до GUI.

У Surface GUI додайте нову TextLabel під назвою BuyText. Десь на деталі з’явиться маленька мітка.

Залежно від того, як була виготовлена деталь, ярлик може знаходитися в іншому місці. Якщо ви не бачите тексту з потрібної сторони, перейдіть до SurfaceGUI і знайдіть властивість Face. Змінюйте цю властивість, доки не побачите текстову мітку.

Залежно від частини властивість Face може відрізнятися від показаної вище.
Додавання детектора кліків
Гравці купуватимуть предмети, натискаючи на магазин, а не просто торкаючись його. Сценарій використовуватиме детектор кліків, щоб визначити, чи клацнув гравець вивіску магазину. Детектори кліків — це об’єкти, які дозволяють користувачам взаємодіяти з чимось у середовищі, наприклад відкривати двері.
У BuyButton додайте ClickDetector.

У BuyButton додайте новий сценарій під назвою BuyScript і додайте до нього скрипт, розміщений нижче.

Скрипт для магазину BuyScript
-- Lets players click a button to buy an upgrade that increases Spaces
local buyButton = script.Parent
local clickDetector = buyButton.ClickDetector
-- Variables for the upgrade
local newSpaces = 5
local upgradeCost = 100
local function giveUpgrade(player)
print("Someone clicked the button")
-- Get's the player's leaderboard to get other IntValues
local playerStats = player:FindFirstChild("leaderstats")
if playerStats then
-- Gets the player's money and spaces to make changes
local playerGold = playerStats:FindFirstChild("Gold")
local playerSpaces = playerStats:FindFirstChild("Spaces")
-- Checks if player has enough money to afford the upgrade
if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
-- Subtract the item's cost from the player's money
playerGold.Value -= upgradeCost
playerSpaces.Value += newSpaces
end
end
end
clickDetector.MouseClick:Connect(giveUpgrade)
Відтворіть свій проект і перевірте таблицю лідерів, щоб перевірити, чи спрацювало оновлення просторів.