Half-Life Deathmatch: Source هو ديث ماتش Half-Life 1 الكلاسيكي المُعاد بناؤه على نفس محرك Source الخاص بـ HL2:DM. استضافته مشابهة لـ HL2:DM، مع اختلافين يستحق معرفتهما مسبقًا: يُثبَّت كتطبيقين، والتثبيت الجديد يتعطل عند البدء حتى تضيف symlink. كلاهما مشروح أدناه.
ثبّت الخادم (تطبيقان)
HLDM:Source هو محرك اللعب الجماعي لـ HL2:DM (التطبيق 232370) يشغّل محتوى Half-Life 1 (التطبيق 360). ثبّت الاثنين في المجلد نفسه. التطبيق 232370 وحده يُثبَّت بشكل مجهول. التطبيق 360 يحتاج إلى تسجيل دخول Steam بحساب يملك HLDM:Source، فسجّل الدخول بذلك الحساب:
./steamcmd.sh +login <your_steam_user> \
+app_update 232370 validate \
+app_update 360 validate \
+quitمجلد اللعبة هو hl1mp، والإعداد الذي يقرأه عند البدء هو:
<install>/hl1mp/cfg/server.cfgالتفصيلة: symlink الخاص بـ server_srv.so
هذه هي النقطة التي تحيّر الناس. يحمّل المحرك المخصص كود اللعبة من ملف اسمه server_srv.so، لكن HLDM:Source لا يأتي إلا بـ server.so. بدون الاسم البديل ينهار الخادم (segfault) لحظة إقلاعه، أثناء تهيئة المحرك (CModAppSystemGroup::Create) دون أي رسالة خطأ مفيدة. الإصلاح هو رابط رمزي واحد بجانب الملف الحقيقي في hl1mp/bin:
cd <install>/hl1mp/bin
ln -sf server.so server_srv.soافعل هذا مرة واحدة بعد التثبيت. تنفيذه مجددًا غير ضار، لذا من الآمن وضعه في سكربت بدء يعمل قبل srcds.
سطر التشغيل
نفس غلاف srcds_run الخاص بـ HL2:DM، موجّهًا إلى مجلد اللعبة hl1mp. الخريطة الأولية وحد اللاعبين معاملان:
./srcds_run -game hl1mp -console \
-port 27015 \
+map crossfire \
+maxplayers 16 \
+exec server.cfg- الخرائط الافتراضية هي crossfire (الكلاسيكية، مع زر القنبلة النووية)، boot_camp، bounce، datacore، frenzy، lambda_bunker، rapidcore، snarkpit، stalkyard، subtransit وundertow.
- maxplayers 16 يناسب الخرائط الافتراضية. تبقى crossfire وstalkyard ممتعتين مع خادم مكتظ.
- المنفذ 27015 هو منفذ اللعبة والاستعلام. افتح UDP (وTCP لـ RCON) في جدارك الناري.
ملف server.cfg أساسي
الاسم وكلمات المرور والقواعد توضع في hl1mp/cfg/server.cfg. الكل ضد الكل مقابل الفرق هو mp_teamplay، نفس مفتاح HL2:DM:
hostname "My HLDM:Source Server" // CHANGE ME
rcon_password "pick-a-long-secret" // CHANGE ME
sv_password "" // a word here = private, blank = open
sv_lan 0
mp_teamplay 0 // 0 = free-for-all, 1 = team deathmatch
mp_fraglimit 0 // kills to end the map, 0 = no limit
mp_timelimit 20 // minutes to end the map, 0 = no limitلا توجد بوتات فعّالة لهذه النسخة، لذا تحتاج إلى لاعبين حقيقيين. تكون في أفضل حالاتها مع بضعة أصدقاء على crossfire.
