Урок 1 из 15

Переменные: где код хранит значения

Заводить переменные, менять их значения и понимать, где они видны.

Теория

Переменная — это имя для значения. Пишешь local coins = 0 — и дальше в коде вместо нуля используешь слово coins. Значение можно поменять в любой момент, имя останется прежним.

Слово local значит «эта переменная живёт только здесь»: внутри скрипта, функции или блока. Без local переменная становится глобальной, её видит весь скрипт, и разобраться, кто её испортил, становится тяжело. В Luau local пишут почти всегда.

  • Имя переменной — латиницей, без пробелов, чувствительно к регистру: coins и Coins разные
  • Значение можно перезаписать: coins = coins + 10
  • Сокращение coins += 10 работает и читается лучше
  • Переменная, объявленная внутри блока, снаружи не видна

Пример

Скрипт заводит две переменные, меняет одну из них и печатает результат.

ServerScriptService/Variables.lua
  1. local playerName = "Аня"
  2. local coins = 100
  3.  
  4. coins += 50
  5.  
  6. print(playerName .. " — монет: " .. coins)

Две точки подряд склеивают строки: это конкатенация, а не сложение.

Задача

Заведи переменные для имени игрока, его уровня и здоровья. Увеличь уровень на единицу, уменьши здоровье на 25 и выведи одной строкой всё вместе.

  • Числа складываются через +=, строки склеиваются через ..
  • Число внутри строки превращать вручную не нужно: конкатенация справится
Показать решение
ServerScriptService/Solution.lua
  1. local playerName = "Аня"
  2. local level = 3
  3. local health = 100
  4.  
  5. level += 1
  6. health -= 25
  7.  
  8. print(playerName .. ": уровень " .. level .. ", здоровье " .. health)

Проверь себя

Зачем перед именем переменной пишут local?

Показать ответ

local ограничивает видимость. Менять значение можно, а сохранением занимается DataStore.

Что напечатает print("Монет: " .. 10 + 5)?

Показать ответ

Сложение выполняется раньше склейки, поэтому в строку попадает уже 15.