CCodelab Station
Workflows

Comment créer un addon GMod, pas à pas

03
Un premier addon

Un addon de commande de chat, du début à la fin

Une commande de chat !hello sur ton propre serveur est le plus petit addon utile. C’est du pur scripting Lua pour GMod, dans 1 fichier côté serveur, et il montre comment créer un addon GMod depuis un dossier vide jusqu’à un résultat testé. L’agent l’écrit. Tu le relis.

01

Ouvre le dossier de l’addon

Crée d’abord toi-même garrysmod/addons/welcome, puis choisis ce dossier comme dossier de travail.

02

Décris la tâche

Écris avec des mots simples ce que l’addon doit faire, par exemple répondre à la commande de chat !hello avec le nom du joueur.

03

Relis le diff

Travaille en Ask first. Lis la carte du fichier et le diff de sv_welcome.lua, puis clique sur Accepter ou Refuser.

04

Teste dans le jeu

Lance une partie multijoueur sur un serveur de test local, rejoins-la, tape la commande dans le chat et lis la console pour y repérer d’éventuelles erreurs Lua avant de considérer le travail comme terminé.

Le fichier que l’agent écrit

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)

Côté serveur uniquement. hook.Add rattache une fonction à PlayerSay, string.lower rend la comparaison insensible à la casse, ChatPrint affiche le message d’accueil à ce joueur, et la chaîne vide masque dans le chat la commande tapée.

Les étapes suivantes après le premier addon

Ajoute ensuite une arme scriptée

Ajoute ensuite une arme scriptée. Les armes vivent dans lua/weapons/, alors demande à l’agent d’y créer un fichier et d’expliquer chaque champ qu’il définit. Un mod d’artillerie et de mortiers manuels, par exemple, pourrait être une arme scriptée ou une entité scriptée, et tu décris son comportement avec des mots simples. L’agent utilise write_file pour le nouveau fichier, grep pour montrer où apparaît le nom de la classe et Shell pour ta commande de test. Le mode Plan only liste chaque fichier avant que quoi que ce soit soit enregistré. Fais ensuite apparaître l’arme sur gm_flatgrass et lis la console pour repérer les erreurs.

Publie ton addon et fournis-le aux joueurs

Les joueurs téléchargent ton addon depuis le serveur, pas depuis ton PC. Pour leur épargner l’installation manuelle de tous tes mods, une solution rapide est une collection Workshop, ou des lignes resource.AddWorkshop dans un fichier Lua serveur. Ton propre addon doit d’abord être publié sur le Workshop, car resource.AddWorkshop prend l’ID d’un élément publié. Ne publie que du contenu autorisé. Demande à l’agent d’ajouter les lignes avec edit_file et relis le diff. Si les addons du Workshop ne se téléchargent pas pour un joueur sur ton serveur de test GMod, lance d’abord grep sur resource.AddWorkshop. Redémarre ensuite le serveur et rejoins-le en tant que joueur pour voir le téléchargement.

Codelab Station pour Windows

Crée ton premier addon

Télécharger Codelab Station ↗