CCodelab Station
سير العمل

كيف تصنع إضافة GMod خطوة بخطوة

03
أول إضافة

إضافة أمر دردشة من البداية إلى النهاية

أمر الدردشة !hello على خادمك هو أصغر إضافة مفيدة. إنه برمجة Lua عادية لـ GMod في ملف واحد من جهة الخادم، ويُظهر كيف تصنع إضافة 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. تقع الأسلحة في lua/weapons/، فاطلب من الوكيل إنشاء ملف واحد هناك وشرح كل حقل يضبطه. فمثلًا قد يكون تعديل مدفعية وهاون يدويّ scripted weapon أو scripted entity، وتصف أنت سلوكه بكلمات بسيطة. يستخدم الوكيل write_file للملف الجديد وgrep ليُظهر أين يظهر اسم الصنف وShell لأمر الاختبار لديك. يسرد وضع Plan only كل ملف قبل حفظ أي شيء. ثم أنشئه على gm_flatgrass واقرأ وحدة التحكم بحثًا عن أخطاء.

انشر إضافتك وقدّمها للاعبين

يُنزّل اللاعبون إضافتك من الخادم، لا من حاسوبك. وطريقة سريعة لتجنيبهم تثبيت كل تعديلاتك يدويًا هي مجموعة Workshop أو أسطر resource.AddWorkshop في ملف Lua الخاص بالخادم. يجب أن تُنشر إضافتك في Workshop أولًا، لأن resource.AddWorkshop يأخذ معرّف عنصر منشور. انشر المحتوى المسموح به فقط. اطلب من الوكيل إضافة الأسطر بواسطة edit_file وراجع الـ diff. وإذا لم تُنزَّل إضافات Workshop عند لاعب على خادم الاختبار الخاص بك في GMod، فابحث أولًا بـ grep عن resource.AddWorkshop. ثم أعد تشغيل الخادم وادخل لاعبًا لترى التنزيل.

Codelab Station لنظام Windows

اصنع أول إضافة لك

نزّل Codelab Station ↗