CCodelab Station
Сценарії

Як зробити аддон GMod: крок за кроком

03
Перший аддон

Аддон із командою чату — від початку до кінця

Команда чату !hello на вашому сервері — найменший корисний аддон. Це звичайний скриптинг Lua для GMod в 1 серверному файлі, і він показує, як зробити аддон GMod від порожньої теки до протестованого результату. Пише агент. Перевіряєте ви.

01

Відкрийте теку аддона

Спершу самостійно створіть garrysmod/addons/welcome, а потім оберіть цю теку робочою.

02

Опишіть завдання

Напишіть простими словами, що має робити аддон, наприклад відповідати на команду чату !hello іменем гравця.

03

Перегляньте diff

Працюйте в Ask first. Прочитайте картку файлу й diff для sv_welcome.lua, потім натисніть Accept або Reject.

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 показує привітання цьому гравцеві, а порожній рядок ховає введену команду з чату.

Що робити після першого аддона

Далі додайте scripted weapon

Далі додайте scripted weapon. Зброя живе в lua/weapons/, тож попросіть агента створити там один файл і пояснити кожне поле, яке він задає. Скажімо, ручна артилерія чи міномет може бути і scripted weapon, і scripted entity, а поведінку ви описуєте простими словами. Агент використовує write_file для нового файлу, grep, щоб показати, де трапляється назва класу, і Shell для вашої команди тестів. Режим Plan only перелічує кожен файл, перш ніж щось буде збережено. Потім заспавніть її на gm_flatgrass і прочитайте консоль на предмет помилок.

Опублікуйте аддон і роздайте його гравцям

Гравці завантажують ваш аддон із сервера, а не з вашого ПК. Швидкий спосіб позбавити їх ручного встановлення всіх ваших модів — колекція Workshop або рядки resource.AddWorkshop у серверному файлі Lua. Власний аддон має спершу бути опублікований у Workshop, адже resource.AddWorkshop приймає ID опублікованого елемента. Публікуйте лише дозволений вміст. Попросіть агента додати рядки через edit_file і перегляньте diff. Якщо аддони з Workshop не завантажуються в гравця на вашому тестовому сервері GMod, спершу зробіть grep за resource.AddWorkshop. Потім перезапустіть сервер і зайдіть як гравець, щоб побачити завантаження.

Codelab Station для Windows

Зробіть свій перший аддон

Завантажити Codelab Station ↗