Чи є українські туторіали по скриптингу в Roblox Studio?
Відповідь - ні. Чому? Не можу зрозуміти. Дуже багато роликів саме по цій темі, але російською, тому рекомендувати не буду. Є багато туторіалів на офіційному сайті з документацією, там є і приклад в картинках і є готові коди. Також є в devforum багато туторіалів, є розділ кацапською, на жаль, тому не підчепіть заразу.
До речі, вже 5-6 раз пишу до підтримки Roblox та Developer Relations з просьбою додати український розділ в форумі. Або мені не відповідають, або пишуть взагалі не про те що потрібно. Якщо хочете більше про цю тему та особисто про devforum, то пишіть.
Що ти маєш вже знати про Roblox Studio?
Розібратись із інтерфейсом початкового екрану у Roblox Studio: New(створити нову гру на шаблоні), My Games(перелічення твоїх ігор), Recent(нещодавно змінені ігри), Archive(ігри в архіві, їх не можна змінювати поки вони там)
Навчитись створювати нові ігри(New), нажавши на один із шаблонів, та входити до них(My Games).
Знати різницю між режимами відображення ігор та вміти правильно їх в My Games.
Знати як правильно користуватись розділами My Games(ігри від вашого імені), Group Games(ігри від імені групи), Shared With Me(ігри до яких у вас є доступ, включно Group Games) в My Games.
Ознайомитись із базовими інструментами та вікнами в редакторі Roblox Studio.
Знати деякі швидкі клавіши, буду про них казати під час туторіалів. Alt+P для збереження свого проекту в Roblox, не боїтесь, він буде не доступний для всіх.
Коли вже писати код будемо? Які види скриптів є?
Я знаю, що вам вже хочеться написати скрипт, який хакне пентагон, мабуть)
Але для ясного старту вам потрібно розуміти що таке Local Script, Server Script, Module Script:
Local Script - локальний скрипт, клієнтський скрипт - цей вид скрипта відповідає за відображення все на стороні гравця, наприклад інтерфейс.
Server Script - скрипт, серверний скрипт - цей вид скрипта відповідає за ігрову логіку та розрахунки.
Module Script - модульний скрипт, shared - цей вид скрипта дозволяє мати в себе якісь константи: функції, змінні; зручний для зв’язку декількох скриптів; частіше використовується для налаштувань у проекті. І він має специфічну форму написання, ніж інші.
Сьогодні ми з вами розберемо базовий синтаксис Luau, та переглянемо декілька бібліотек.
Будемо йти за планов цього roadmap, який надав один із розробників, який зібрав всі приколюхи Luau і не тільки.
Функції print() та warn(), і в яких випадках їх використовувати
Створіть свій перший скрипт в ServerScriptServer(далі SSS):
Наведіться на розділ SSS.
Нажміть на “+” біля назви.
Оберіть із списку об’єктів серверний скрипт.
Ви створили свій перший скрипт.
Початковий код
І перше, що ви побачили - це початковий код:
print("Hello world!")
>>> Hello world!
Тепер додайте якийсь туди текст.
Як з’єднати текст
А якщо не одними ковичками? Це буде виглядати так:
print("Hello".."Drukarnia")
>>> HelloDrukarnia
Дві крапки між ковичками з’єднують текст між собою, а ще можна з’єднати так:
print("Hello","Drukarnia")
>>> Hello Drukarnia
І так, кома з’єднує текст і між цим текстом ставить пробіли. Давайте я вам прикол покажу:
print"Hello Drukarnia"
>>> Hello Drukarnia
Це не є правильною формою, але просто щоб ви знали.
Розрахунки у print()
Також у print() можна робити розрахунки, але вони вже робляться без ковичок:
print(1 + 5)
print(2 * 1)
>>> 6
>>> 2
Використання змінних
Можемо додати змінні для цікавості:
a = "Hello,"
b = "Drukarnia"
print(a,b)
>>> "Hello, Drukarnia"
a = 3
b = 6
print(a + b)
>>> 9
Де знаходиться консоль
Я думаю, що тут все просто. І так, я робив код у друкарні, але ви можете написати його в своєму скрипті і коли ви зайдете в гру(гаряча клавіша: зайти - F5, вийти - Shift+F5), то нажміть далі на View > Output і там будуть відображатись ваша писемність :)
Про warn()
І коротко про warn(): це теж саме що і print(), але виділене жовтим і жирнуватим текстом.
Що таке змінні? Як їх правильно визивати та називати?
Змінна - це певне значення в певній частині кода, яка використовується для визова в певній частині кода. Такий собі приклад ми вже робити із print().
Ось приклади правильних і неправильних назв змінних
LETTERS -- правильне
a1 -- правильне
var_name -- правильне
_test -- правильне
if -- неправильне
25th -- неправильне
Зазвичай у проектах є певні форми назв ваших змін
HomeObject -- називай так свої об'єкти та класи
UserInputService -- називай так сервіси Roblox
YOUR_NUMBER -- називай так константи у своєму проекті
Не використовуй такі назви змін у своєму проекті
Ці назви є специфічними і більше використовуються для логіки вашої програми:
and
for
or
break
function
repeat
do
if
return
else
in
then
elseif
local
true
end
nil
until
false
not
while
Як правильно створювати свої змінні та використовувати їх
local nilVar -- пустота
local x = 10 -- цифра 10
local word = "Hello" -- текст Hello
local reference = workspace.Camera -- об'єкт в workspace
print(nilVar) -- nil (пусто)
print(x) -- цифра 10
print(word) -- текст Hello
print(reference) -- об'єкт Camera
На початку ми пишемо local, потім свою назву змінної, знак рівності, і на останок пишемо значення нашої змінної.
Як створювати мульті-змінні та як використовувати
Це такі ж самі змінні, але вони можуть писатись в одну строку:
local a, b, c = 1, 2, 3
local d, e, f = 4, 5 -- так звані extra variable
local g, h = 7, 8, 9 -- так звані extra value
print(a, b, c) -- 1, 2, 3
print(d, e, f) -- 4, 5, nil
print(g, h) -- 7, 8
Як змінювати змінні
Все дуже просто: можемо їм змінити значення, а можемо перестворити змінні
local x, y = 10, 20
print(x,y) -- 10 20
x = 1000
y = 2000
print(x,y) -- 1000 2000
local x, y = 10, 20
print(x,y) -- 10 20
local x = 1000
local y = 2000
print(x,y) -- 1000 2000
Умови if..elseif..else..end та різні знаки рівності
Що таке умова? Умова - це якщо якесь значення дорівнює якомусь, то будет true та виповнюється якийсь код, або false та виконується, або ні, якийсь певний код.
Приклади умов
local example = 5 + 5
if example == 10 then
print("5 + 5 = 10")
end
local example = 5 + 5
if example == 10 then
print(example.." = 10")
elseif example == 15 then
print(example.." = 15")
end
local example = 5 + 5
if example == 10 then
print(example.." = 10")
elseif example == 15 then
print(example.." = 15")
else
print("Чорт його зна що воно дорівнює")
end
Я думаю, ви вже зрозуміли, що if - це початок умови, then - це закінчення певної умови, elseif - це початок іншої умови, else - це всі інші умови, а end - закінчення умови. Знак дорівнює в умовах тільки можуть бути як два знака дорівнює “==” - цей знак працює як і на назви, так і на числа, так і на об’єкти(але про це пізніше).
Використання ~= та not
Для цих значень може підійти знак нерівності “~=“ або перед умовою вставляємо “not”:
local example = 5 + 5
-- перший варіант
if not example == 15 then
print(example.." не дорівнює 15")
end
-- другий варіант
if example ~= 15 then
print(example.." не дорівнює 15")
end
Математичні оператори для умов
Для математичних виразів є також такі знаки(оператори):
== -- дорівнює
~= -- не дорівнює
>= -- більше або дорівнює
<= -- менше або дорівнює
> -- більше
< -- менше
Більше про логічні оператори(or,and)
or та and ми використовуємо для з’єднання умов. Завдяки них ми не будемо писати так:
local example1 = 5 + 5
local example2 = 2 + 2
if example1 == 10 then
if example2 == 4 then
print(example1,"=","10","та",example2,"=","4")
end
end
Ми можемо написати так…
Якщо нам потрібно дізнатись, чи 5+5=10 та 2+2=4, то будемо використовувати and та писати так:
local example1 = 5 + 5
local example2 = 2 + 2
if example1 == 10 and example2 == 4 then
print(example1,"=","10","ТА",example2,"=","4")
end
А якщо нам потрібно дізнатись, чи 5+5=10 або 2+2=4, то будемо використовувати or та писати так:
local example1 = 5 + 5
local example2 = 2 + 5
if example1 == 10 or example2 == 4 then
print(example1,"=","10","АБО",example2,"=","4")
end
На сьогодні досить
Сьогодні я вам дав багато інформації про деякий функціонал Luau, та хочу, щоб ви запам’ятали це, бо ми розібрали всього та нічого.
Якщо вам це сподобалось та було корисно, то дайте знати про це.
Якщо є неточності та неправильності, то пишіть про це в коментарях!
Успіхів вам!