CCodelab Station
ขั้นตอนการทำงาน

วิธีทำแอดออน GMod ทีละขั้นตอน

03
แอดออนตัวแรก

แอดออนคำสั่งแชต ตั้งแต่ต้นจนจบ

คำสั่งแชต !hello บนเซิร์ฟเวอร์ของคุณเองคือแอดออนที่มีประโยชน์เล็กที่สุด มันคือการเขียนสคริปต์ GMod Lua ธรรมดาในไฟล์ฝั่งเซิร์ฟเวอร์ 1 ไฟล์ และแสดงวิธีทำแอดออน GMod จากโฟลเดอร์ว่างไปจนถึงผลที่ทดสอบแล้ว เอเจนต์เป็นผู้เขียน คุณเป็นผู้ตรวจ

01

เปิดโฟลเดอร์แอดออน

สร้าง garrysmod/addons/welcome ด้วยตัวเองก่อน แล้วเลือกโฟลเดอร์นั้นเป็นโฟลเดอร์ทำงาน

02

อธิบายงาน

เขียนด้วยคำง่ายๆ ว่าแอดออนควรทำอะไร เช่น ตอบคำสั่งแชต !hello ด้วยชื่อของผู้เล่น

03

ตรวจ diff

ทำงานในโหมด Ask first อ่านการ์ดไฟล์และ diff ของ sv_welcome.lua แล้วกด Accept หรือ Reject

04

ทดสอบในเกม

เริ่มเกมมัลติเพลเยอร์บนเซิร์ฟเวอร์ทดสอบในเครื่อง เข้าไปเล่น พิมพ์คำสั่งในแชต และอ่านคอนโซลเพื่อหาข้อผิดพลาด Lua ก่อนจะถือว่างานเสร็จ

ไฟล์ที่เอเจนต์เขียน

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)

ฝั่งเซิร์ฟเวอร์เท่านั้น hook.Add ผูกฟังก์ชันเข้ากับ PlayerSay, string.lower ทำให้การจับคู่ไม่สนใจตัวพิมพ์ใหญ่ ChatPrint แสดงคำทักทายให้ผู้เล่นคนนั้น และสตริงว่างซ่อนคำสั่งที่พิมพ์ไม่ให้ขึ้นในแชต

ขั้นตอนถัดไปหลังแอดออนตัวแรก

เพิ่ม scripted weapon เป็นอย่างถัดไป

ขั้นต่อไป ให้เพิ่ม scripted weapon อาวุธอยู่ใน lua/weapons/ จึงให้เอเจนต์สร้างหนึ่งไฟล์ตรงนั้นและอธิบายทุกฟิลด์ที่กำหนด ตัวอย่างเช่น ม็อดปืนใหญ่และครกแบบใช้มือ อาจเป็น scripted weapon หรือ scripted entity ก็ได้ และคุณอธิบายพฤติกรรมของมันด้วยคำง่ายๆ เอเจนต์ใช้ write_file สำหรับไฟล์ใหม่ grep เพื่อแสดงว่าชื่อคลาสปรากฏที่ไหน และ Shell สำหรับคำสั่งทดสอบของคุณ โหมด Plan only แสดงรายการทุกไฟล์ก่อนบันทึกอะไร จากนั้นสปอว์นมันบน gm_flatgrass และอ่านคอนโซลเพื่อหาข้อผิดพลาด

เผยแพร่แอดออนของคุณและส่งให้ผู้เล่น

ผู้เล่นดาวน์โหลดแอดออนของคุณจากเซิร์ฟเวอร์ ไม่ใช่จาก PC ของคุณ วิธีลัดที่ช่วยไม่ให้พวกเขาต้องติดตั้งม็อดทั้งหมดของคุณด้วยมือคือคอลเลกชัน Workshop หรือบรรทัด resource.AddWorkshop ในไฟล์ Lua ของเซิร์ฟเวอร์ แอดออนของคุณเองต้องเผยแพร่บน Workshop ก่อน เพราะ resource.AddWorkshop ใช้ ID ของรายการที่เผยแพร่แล้ว เผยแพร่เฉพาะเนื้อหาที่ได้รับอนุญาต ให้เอเจนต์เพิ่มบรรทัดด้วย edit_file แล้วตรวจ diff หากแอดออน Workshop ดาวน์โหลดไม่ได้สำหรับผู้เล่นบนเซิร์ฟเวอร์ทดสอบ GMod ของคุณ ให้ grep หา resource.AddWorkshop ก่อน จากนั้นรีสตาร์ตเซิร์ฟเวอร์และเข้าไปเล่นเพื่อดูการดาวน์โหลด

Codelab Station สำหรับ Windows

ทำแอดออนตัวแรกของคุณ

ดาวน์โหลด Codelab Station ↗