Перейти к основному содержимому

Введение

⚡ Что такое GLua

GLua (Garry's Mod Lua) играет ключевую роль в создании собственных модификаций и аддонов для Garry's Mod по следующим причинам:

  1. Гибкость и мощь языка: GLua предоставляет разработчикам широкие возможности для создания разнообразных изменений в игре. Он предоставляет мощные средства для работы с игровыми объектами, интерфейсом, графикой, физикой и другими аспектами игры.
  2. Доступ к внутренней логике игры: GLua позволяет взаимодействовать с внутренней логикой Garry's Mod, что позволяет создавать уникальные и интересные игровые механики и функциональность.
  3. Создание собственных объектов и персонажей: С помощью GLua вы можете создавать собственные игровые объекты, персонажей, оружие и другие элементы. Это дает вам полный контроль над тем, какие элементы мира вы хотите добавить в игру.
  4. Создание интерфейсов: GLua позволяет создавать кастомные интерфейсы для вашей модификации или аддона. Это позволяет улучшить пользовательский опыт и добавить уникальные элементы дизайна.
  5. Сетевое взаимодействие: Вы можете использовать GLua для создания многопользовательских модификаций и аддонов, которые поддерживают сетевое взаимодействие между игроками. Это открывает двери для создания онлайн-игр и многопользовательских сценариев.
  6. Активное сообщество и поддержка: Сообщество разработчиков Garry's Mod активно поддерживает GLua, предоставляя ресурсы, учебные материалы и помощь. Это обеспечивает доступ к обширным знаниям и опыту других разработчиков.
  7. Steam Workshop: Garry's Mod поддерживает публикацию аддонов и модификаций на Steam Workshop, что позволяет вам делиться своими творениями с сообществом игроков и получать обратную связь.

💻 Установка и настройка окружения разработки

Мы пользуемся VS Code

📁 Создание структуры каталогов

  • Добавьте папку в addons: Внутри вашей папки Garry's Mod, обычно расположенной в /steamapps/common/GarrysMod/garrysmod, создайте новую папку и назовите ее так, как вы хотите назвать свой аддон. Например, my_first_addon.

  • Создание директорий для скриптов: Внутри папки вашего аддона создайте директории для скриптов сервера и клиента (если они нужны для вашего аддона):

    • lua/autorun/server/: Эта директория предназначена для серверных скриптов. Серверные скрипты выполняются только на сервере и могут контролировать игровую логику.
    • lua/autorun/client/: Эта директория предназначена для клиентских скриптов. Клиентские скрипты выполняются только на клиенте игрока и могут управлять интерфейсом и визуальными эффектами.

📨 Создание серверного скрипта

  • В папке lua/autorun/server/ создайте новый файл и назовите его, например, my_first_server_script.lua.

  • Внутри этого файла вы можете начать писать свой серверный скрипт на GLua. Например:

    print("Hello world!")

    Данный скрипт будет выводить текст Hello World в консоль. Поскольку мы создали его в папке /lua/autorun/server, выполняться он будет только на стороне сервера. Подробнее про реалмах (client и server) можно посмотреть здесь.

📠 Комментарии в коде

Это текстовые или аннотационные записи, которые добавляются в исходный код программы для того, чтобы делать объяснения, пояснения или заметки, которые не выполняются как часть активного кода. Они служат для облегчения понимания кода программы другими разработчиками (включая вас самого в будущем).

В Lua, комментарии могут быть добавлены двумя способами:

  • Однострочные комментарии: Однострочные комментарии начинаются с двойного дефиса -- и продолжаются до конца строки. Все, что идет после --, считается комментарием и игнорируется интерпретатором.

  • Многострочные комментарии: В Lua нет встроенного синтаксиса для создания многострочных комментариев, как в некоторых других языках программирования. Однако вы можете создать многострочный комментарий, используя строки с однострочными комментариями:

    -- Это однострочный комментарий в Lua
    --[[
    Это
    многострочный
    комментарий в Lua
    --]]

Многострочные комментарии заключаются в двойные квадратные скобки --[[ и --]], и все, что находится между ними, считается комментарием и будет проигнорировано интерпретатором Lua.