CCodelab Station
Fluxos de trabalho

Como criar um addon de GMod, passo a passo

03
Um primeiro addon

Um addon de comando de chat, do início ao fim

Um comando de chat !hello no seu próprio servidor é o menor addon útil possível. É scripting de Lua no GMod puro, em 1 arquivo do lado do servidor, e mostra como criar um addon de GMod de uma pasta vazia até um resultado testado. O agente escreve. Você revisa.

01

Abra a pasta do addon

Crie você mesmo primeiro a garrysmod/addons/welcome e depois escolha essa pasta como pasta de trabalho.

02

Descreva a tarefa

Escreva com palavras simples o que o addon deve fazer, por exemplo responder ao comando de chat !hello com o nome do jogador.

03

Revise o diff

Trabalhe no Ask first. Leia o card do arquivo e o diff do sv_welcome.lua e clique em Aceitar ou Rejeitar.

04

Teste no jogo

Inicie uma partida multiplayer num servidor de teste local, entre nela, digite o comando no chat e leia o console atrás de erros de Lua antes de dar o trabalho por concluído.

O arquivo que o agente escreve

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)

Somente do lado do servidor. O hook.Add liga uma função ao PlayerSay, o string.lower faz a comparação ignorar maiúsculas, o ChatPrint mostra a saudação a esse jogador, e a string vazia esconde do chat o comando digitado.

Próximos passos depois do primeiro addon

Adicione uma arma com script em seguida

Em seguida, adicione uma arma com script. As armas ficam em lua/weapons/, então peça ao agente que crie um arquivo lá e explique cada campo que ele define. Um mod de artilharia e morteiros manuais, por exemplo, poderia ser uma arma com script ou uma entidade com script, e você descreve o comportamento dele em palavras simples. O agente usa o write_file para o arquivo novo, o grep para mostrar onde o nome da classe aparece e o Shell para o seu comando de teste. O modo Plan only lista todos os arquivos antes de salvar qualquer coisa. Depois faça o spawn no gm_flatgrass e leia o console atrás de erros.

Publique seu addon e entregue-o aos jogadores

Os jogadores baixam seu addon do servidor, não do seu PC. Um jeito rápido de poupar a instalação manual de todos os seus mods é uma coleção do Workshop, ou linhas resource.AddWorkshop em um arquivo Lua do servidor. Seu próprio addon precisa estar publicado antes no Workshop, porque o resource.AddWorkshop recebe o ID de um item publicado. Publique só conteúdo permitido. Peça ao agente que adicione as linhas com edit_file e revise o diff. Se os addons do Workshop não baixam para um jogador no seu servidor de teste de GMod, faça grep de resource.AddWorkshop primeiro. Depois reinicie o servidor e entre como jogador para ver o download.

Codelab Station para Windows

Crie seu primeiro addon

Baixar o Codelab Station ↗