CCodelab Station
Flujos de trabajo

Cómo crear un addon de GMod, paso a paso

03
Un primer addon

Un addon con comando de chat, de principio a fin

Un comando de chat !hello en tu propio servidor es el addon útil más pequeño. Es scripting de Lua en GMod puro en 1 archivo del lado del servidor, y muestra cómo crear un addon de GMod desde una carpeta vacía hasta un resultado probado. El agente lo escribe. Tú lo revisas.

01

Abre la carpeta del addon

Crea tú primero garrysmod/addons/welcome y luego elige esa carpeta como carpeta de trabajo.

02

Describe la tarea

Escribe con palabras sencillas lo que debe hacer el addon, por ejemplo responder al comando de chat !hello con el nombre del jugador.

03

Revisa el diff

Trabaja en Ask first. Lee la tarjeta del archivo y el diff de sv_welcome.lua, y pulsa Aceptar o Rechazar.

04

Prueba en el juego

Inicia una partida multijugador en un servidor de pruebas local, entra, escribe el comando en el chat y lee la consola en busca de errores de Lua antes de darlo por terminado.

El archivo que escribe el agente

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)

Solo del lado del servidor. hook.Add engancha una función a PlayerSay, string.lower hace que la comparación ignore las mayúsculas, ChatPrint muestra el saludo a ese jugador, y la cadena vacía oculta del chat el comando escrito.

Siguientes pasos tras el primer addon

Añade un arma con script a continuación

A continuación, añade un arma con script. Las armas viven en lua/weapons/, así que pide al agente que cree ahí un archivo y que explique cada campo que define. Un mod de artillería y morteros manuales, por ejemplo, podría ser un arma con script o una entidad con script, y tú describes su comportamiento con palabras sencillas. El agente usa write_file para el archivo nuevo, grep para mostrar dónde aparece el nombre de la clase y Shell para tu comando de prueba. El modo Plan only lista todos los archivos antes de guardar nada. Luego haz spawn en gm_flatgrass y lee la consola en busca de errores.

Publica tu addon y sírvelo a los jugadores

Los jugadores descargan tu addon desde el servidor, no desde tu PC. Una forma rápida de ahorrarles la instalación manual de todos tus mods es una colección de Workshop, o líneas resource.AddWorkshop en un archivo Lua del servidor. Tu propio addon debe estar publicado antes en Workshop, porque resource.AddWorkshop recibe el ID de un elemento publicado. Publica solo contenido permitido. Pide al agente que añada las líneas con edit_file y revisa el diff. Si a un jugador no se le descargan los addons de Workshop en tu servidor de pruebas de GMod, haz primero grep de resource.AddWorkshop. Luego reinicia el servidor y entra como jugador para ver la descarga.

Codelab Station para Windows

Crea tu primer addon

Descargar Codelab Station ↗