Ouvre le dossier de l’addon
Crée d’abord toi-même garrysmod/addons/welcome, puis choisis ce dossier comme dossier de travail.
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.
Crée d’abord toi-même garrysmod/addons/welcome, puis choisis ce dossier comme dossier de travail.
É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.
Travaille en Ask first. Lis la carte du fichier et le diff de sv_welcome.lua, puis clique sur Accepter ou Refuser.
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é.
lua/autorun/servercréélua/autorun/server/sv_welcome.luaenregistrélua/autorun/server/sv_welcome.lua12 lignesPlayerSay1 résultatyour server launch scriptexit 0-- 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.
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.
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.