CCodelab Station
Сценарии работы

Как сделать аддон GMod: пошагово

03
Первый аддон

Аддон с командой чата — от начала до конца

Команда чата !hello на вашем собственном сервере — самый маленький полезный аддон. Это обычный скриптинг Lua для GMod в 1 серверном файле, и он показывает, как сделать аддон GMod от пустой папки до проверенного результата. Агент пишет его. Вы проверяете.

01

Откройте папку аддона

Сначала сами создайте garrysmod/addons/welcome, а затем выберите эту папку рабочей.

02

Опишите задачу

Простыми словами напишите, что должен делать аддон, например отвечать на команду чата !hello именем игрока.

03

Проверьте diff

Работайте в Ask first. Прочитайте карточку файла и diff для sv_welcome.lua, затем нажмите «Принять» или «Отклонить».

04

Протестируйте в игре

Запустите сетевую игру на локальном тестовом сервере, зайдите на него, введите команду в чат и прочитайте консоль на предмет ошибок Lua, прежде чем считать работу законченной.

Файл, который пишет агент

lua/autorun/server/sv_welcome.lua
-- sv_welcome.lua: answer the !hello chat command
-- Runs on the server only (lua/autorun/server/).

local command = "!hello"

hook.Add("PlayerSay", "Welcome_Hello", function(ply, text)
    if string.lower(text) == command then
        local name = ply:Nick()
        ply:ChatPrint(string.format("Hello, %s!", name))
        return ""
    end
end)

Только на стороне сервера. hook.Add привязывает функцию к PlayerSay, string.lower делает сравнение нечувствительным к регистру, ChatPrint показывает приветствие этому игроку, а пустая строка скрывает набранную команду из чата.

Что делать после первого аддона

Дальше добавьте скриптовое оружие

Следующим шагом добавьте скриптовое оружие. Оружие живёт в lua/weapons/, поэтому попросите агента создать там один файл и объяснить каждое поле, которое он задаёт. Мод с ручной артиллерией и миномётами, например, может быть скриптовым оружием или скриптовой сущностью, а его поведение вы описываете простыми словами. Агент использует write_file для нового файла, grep, чтобы показать, где встречается имя класса, и Shell для вашей команды проверки. Режим Plan only перечисляет все файлы, прежде чем что-либо сохранится. Затем заспавните его на gm_flatgrass и прочитайте консоль на предмет ошибок.

Опубликуйте аддон и раздайте его игрокам

Игроки скачивают ваш аддон с сервера, а не с вашего ПК. Быстрый способ избавить их от ручной установки всех ваших модов — коллекция Workshop или строки resource.AddWorkshop в серверном файле Lua. Ваш собственный аддон должен быть сначала опубликован в Workshop, потому что resource.AddWorkshop принимает ID опубликованного элемента. Публикуйте только разрешённый контент. Попросите агента добавить строки через edit_file и проверьте diff. Если аддоны из Workshop не скачиваются у игрока на вашем тестовом сервере GMod, сначала найдите resource.AddWorkshop через grep. Затем перезапустите сервер и зайдите игроком, чтобы увидеть загрузку.

Codelab Station для Windows

Сделайте свой первый аддон

Скачать Codelab Station ↗