خوادم ألعاب بالساعة. ادفع فقط عندما تلعب.

كيفية إعداد خادم مخصص لـ Half-Life Deathmatch: Source

Half-Life Deathmatch: Source هو ديث ماتش Half-Life 1 الكلاسيكي المُعاد بناؤه على نفس محرك Source الخاص بـ HL2:DM. استضافته مشابهة لـ HL2:DM، مع اختلافين يستحق معرفتهما مسبقًا: يُثبَّت كتطبيقين، والتثبيت الجديد يتعطل عند البدء حتى تضيف symlink. كلاهما مشروح أدناه.

ثبّت الخادم (تطبيقان)

HLDM:Source هو محرك HL2:DM متعدد اللاعبين (التطبيق 232370) يشغّل محتوى Half-Life 1 (التطبيق 360). ثبّت كليهما، بشكل مجهول، في نفس المجلد:

./steamcmd.sh +login anonymous \
  +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 في لحظة بدئه، مع خطأ ServerDLL_Load ودون رسالة واضحة. الحل هو symlink واحد بجوار الملف الحقيقي في 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.

انظر أيضًا

العودة إلى جميع الأدلة