CCodelab Station
Workflows

So erstellst du ein GMod-Addon, Schritt für Schritt

03
Ein erstes Addon

Ein Chatbefehl-Addon von Anfang bis Ende

Ein Chatbefehl !hello auf deinem eigenen Server ist das kleinste nützliche Addon. Es ist reines GMod-Lua-Scripting in 1 serverseitigen Datei und zeigt, wie man ein GMod-Addon von einem leeren Ordner bis zu einem getesteten Ergebnis erstellt. Der Agent schreibt es. Du prüfst es.

01

Öffne den Addon-Ordner

Lege garrysmod/addons/welcome zuerst selbst an und wähle diesen Ordner dann als Arbeitsordner.

02

Beschreibe die Aufgabe

Schreibe in einfachen Worten, was das Addon tun soll, zum Beispiel auf den Chatbefehl !hello mit dem Namen des Spielers antworten.

03

Prüfe den Diff

Arbeite in Ask first. Lies die Dateikarte und den Diff für sv_welcome.lua und klicke dann auf Annehmen oder Ablehnen.

04

Teste im Spiel

Starte ein Mehrspielerspiel auf einem lokalen Testserver, tritt bei, gib den Befehl im Chat ein und lies die Konsole auf Lua-Fehler, bevor du die Sache für erledigt hältst.

Die Datei, die der Agent schreibt

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)

Nur serverseitig. hook.Add hängt eine Funktion an PlayerSay, string.lower sorgt dafür, dass der Vergleich Groß- und Kleinschreibung ignoriert, ChatPrint zeigt diesem Spieler die Begrüßung, und der leere String blendet den eingetippten Befehl im Chat aus.

Nächste Schritte nach dem ersten Addon

Füge als Nächstes eine geskriptete Waffe hinzu

Füge als Nächstes eine geskriptete Waffe hinzu. Waffen liegen in lua/weapons/, also bitte den Agenten, dort eine Datei anzulegen und jedes Feld zu erklären, das er setzt. Ein Mod mit manueller Artillerie und Mörsern könnte zum Beispiel eine geskriptete Waffe oder eine geskriptete Entity sein, und du beschreibst ihr Verhalten in einfachen Worten. Der Agent nutzt write_file für die neue Datei, grep, um zu zeigen, wo der Klassenname vorkommt, und Shell für deinen Testbefehl. Der Modus Plan only listet jede Datei auf, bevor etwas gespeichert wird. Spawne sie dann auf gm_flatgrass und lies die Konsole auf Fehler.

Veröffentliche dein Addon und stelle es Spielern bereit

Spieler laden dein Addon vom Server herunter, nicht von deinem PC. Ein schneller Weg, ihnen die manuelle Installation aller deiner Mods zu ersparen, ist eine Workshop-Kollektion oder resource.AddWorkshop-Zeilen in einer Server-Lua-Datei. Dein eigenes Addon muss zuerst im Workshop veröffentlicht sein, denn resource.AddWorkshop nimmt die ID eines veröffentlichten Eintrags. Veröffentliche nur erlaubte Inhalte. Bitte den Agenten, die Zeilen mit edit_file hinzuzufügen, und prüfe den Diff. Wenn Workshop-Addons bei einem Spieler auf deinem GMod-Testserver nicht heruntergeladen werden, suche zuerst per grep nach resource.AddWorkshop. Starte den Server danach neu und tritt als Spieler bei, um den Download zu sehen.

Codelab Station für Windows

Erstelle dein erstes Addon

Codelab Station herunterladen ↗