Как сделать магазин в Роблокс. Уроки Roblox для детей
Мы покажем, как создать интерфейс магазина и сделать скрипты для системы денежного оборота и системы покупок в Roblox Studio.
В Roblox Studio можно создавать игры в самых разных жанрах: несмотря на простой интерфейс, в программе много инструментов, которые усложняют и оживляют проект. Чтобы сделать игру интереснее, вы можете, к примеру, добавить магазин и сделать инвентарь.
Школа «Пиксель» подготовила урок о том, как добавить магазин в ваши игры в Roblox (видеоинструкция в конце статьи). Мы покажем, как наметить макет интерфейса (меню, кнопки и т. д.) и какие скрипты на языке программирования Lua понадобятся для запуска магазина. Поехали!
Интерфейс
Начнем с внешнего вида магазина. В компоненте StarterGui нам нужно добавить ScreenGui (даем ему имя ShopGui) и для него создать Frame. Далее делаем шире Frame — получится окно будущего магазина.
Во Frame создаем кнопки (TextButton), меняем их размер. Эти кнопки и будут предметами, которые нам нужно будет покупать. Подписываем название товара, который нам будет выдаваться при нажатии кнопки: меч, пистолет и т. д. Также вы можете добавить TextLable под кнопками и указать на них стоимость товара, мы этого делать не стали.
Добавим кнопку для закрытия окна магазина: создадим TextButton квадратного размера, поменяем цвет фона на красный и подпишем X.
А также кнопку открытия меню магазина: создадим TextButton для ScreenGui, разместим его вверху экрана и подпишем «Магазин».
Переименовываем все кнопки справа в Explorer.
Для кнопки открытия магазина создаем LocalScript и добавляем код:
В 1-й строке кода мы записываем игрока, это нужно для того, чтобы окно магазина открывалось только у одного игрока, а не у всех пользователей одновременно.
А в 3-й и 4-й строках указываем, что, когда кнопка будет нажата, окно магазина (Frame) будет показываться.
Для кнопки закрытия магазина нужен похожий скрипт. Поэтому копируем этот код и добавляем его к кнопке закрытия. Затем вносим изменения: меняем в конце true на false.
После нам нужно проверить эти скрипты — для этого откройте и закройте магазин.
Нам нужно, чтобы при входе в игру окно магазина было невидимым и открывалось только при нажатии на кнопку. Для этого в Properties уберите галочку с пункта Visible в компоненте Frame.
Добавляем оружие
Открываем ToolBox и переносим на экран оружие, которое вы хотели бы иметь в магазине. Мы выбрали меч и пистолет. Если вам предлагают добавить Starter Pack, то лучше отказаться (ведь в чем тогда смысл магазина, если оружие сразу появиться в инвентаре?).
Далее в службе ServerStorage создаем папку под названием Tools и переносим в нее наше оружие и для удобства переименовываем его (Pistol, Sword). Папка Tools нужна на случай, если мы будем продавать храните в ServerStorage не только инструменты, но и другие предметы.
Далее нам необходимо добавить события, которые будут активироваться при нажатии на кнопку. Они должны храниться в службе ReplicatedStorage. Создаем в ней папку и называем ее ToolEvents. Добавляем к ней столько же ивентов (RemoteEvent), сколько у нас и оружия. Каждое событие называем в соответствии с товаром в магазине.
Создание скриптов
Система денежного оборота
Займемся созданием денежной системы. Для этого в службе ServerScriptService создаем скрипт под названием CashStats.
Что означает этот скрипт?
1-я строка: при входе в игру для каждого игрока будет работать этот скрипт.
2-я строка: будет создаваться папка.
3-я строка: даем название этой папки.
5-я строка: в этой папке будет создаваться переменная со значением кол-ва денег у игрока.
6-я строка: название переменной.
7-я строка: начальная сумма денег у игрока.
Возвращаемся к интерфейсу, добавим еще одну кнопку TextLable под названием Cash. Здесь будет отображаться количество денег у игрока.
К этой кнопке добавляем LocalScript и создаем код:
Разберем скрипт:
1-я строка: создаем бесконечный цикл с небольшой задержкой (0.01), это нужно для того, чтобы значения постоянно обновлялись.
2-я строка: в тексте лейбла мы пишем значение суммы денег, для этого нужно обратиться в папку конкретного игрока (LocalPlayer), затем в папку CashStats, потом к переменной Cash, которая содержит количество денег, и в конце к значению этой переменной (Value). После указываем валюту, в которой будут храниться деньги: можно доллары или рубли.
Затем запускаем скрипт и проверяем его.
Система покупок
Возвращаемся к службе ServerScriptService, создаем для нее скрипт под названием BuyTools. Пишем код.
Разбираем скрипт:
1-я строка: запускаем службу, указываем тот ивент, который мы в данный момент продаем (PistolEvent или SwordEvent).
2-я строка: если у игрока есть определенное количество денег (для пистолета мы укажем значение 200), то обращаемся к папке CashStats, его переменной Cash и значению переменной Value. Если это значение больше или равно 200, то мы сможем ему продать товар.
3-я строка: но сначала мы отнимаем сумму, которую игрок должен потратить на этот товар. В нашем случае отнимаем от суммы денег 200.
4-я строка: выдаем игроку то, что он купил, в данном случае клонируем пистолет (Clone) из ServerStorage в рюкзак (Backpack) нашего игрока (под рюкзаком подразумевается инвентарь).
Далее мы просто копируем этот код, вставляем его ниже и меняем название предмета (мы поменяли Pistol на Sword) и его стоимость (мы изменили на 100). То же самое нужно проделать со всеми позициями в магазине.
Вновь возвращаемся к интерфейсу. Нам осталось написать скрипт для каждой кнопки с позициями товаров.
Подробнее о скрипте:
1-я строка: при нажатии на кнопку.
2-я строка: мы запускаем ивент (указываем здесь либо SwordEvent, либо PistolEvent в зависимости от того, для какой кнопки создан скрипт).
Создаем такой же скрипт для каждой кнопки (каждого товара в магазине), меняем только название предмета (ивента).
Магазин готов! Также вы можете посмотреть видеоинструкцию:
***
Материал подготовлен школой программирования для детей «Пиксель». Мы обучаем детей 5-17 лет программированию, разработке сайтов, созданию игр в Scratch, Kodu Game Lab, Roblox Studio, Unity 3D и др. Приходите к нам, если хотите увлечь детей программированием.