![]() |
ScriptHazem Launcher + PatchServer
لانشر ScriptHazem — دليل التشغيل والتعديل للمبرمجين للمبرمجين اللي بيشتغلوا C# · شرح خطوة بخطوة · من غير تعقيد عفواً لايمكن عرض الروابط إلا بعد الرد على الموضوع الواجهة الرئيسية للانشر مقدمة السلام عليكم ورحمة الله وبركاته، النهارده معانا شرح كامل للانشر ScriptHazem Launcher، بداية من فتح المشروع وبنائه، مرورًا بتجهيزه للاعبين وربطه بالسيرفر، وصولًا إلى إعداد سيرفر التحديثات وتعديل الواجهة والثيمات. الشرح موجّه للمبرمجين اللي عندهم معرفة أساسية بـ C#، وعايزين يفهموا طريقة تشغيل المشروع وتخصيصه بما يناسب سيرفر كونكر الخاص بيهم. مش محتاج تكون خبير في .NET؛ كل اللي عليك إنك تمشي مع الخطوات بالترتيب. محتويات الموضوع
1- اللانشر ده بيعمل إيه؟ الـ Launcher هو برنامج بيشتغل قبل اللعبة، وبيوفّر مجموعة من الوظائف اللي بتساعد اللاعب على تشغيل اللعبة والوصول للمعلومات المهمة من مكان واحد. أهم الوظائف الموجودة في المشروع:
التقنيات المستخدمة:
2- المتطلبات اللازمة على جهازك قبل ما تبدأ، اتأكد إن جهازك مجهّز بالمتطلبات التالية.
هل اللاعب محتاج يسطّب .NET؟ لو نشرت اللانشر بإعدادات Self-contained المناسبة، مع تحديد معمارية ويندوز المستهدفة وإعداد إخراج ملف واحد، فاللاعب مش هيحتاج يسطّب .NET Runtime بشكل منفصل. [HR][/HR] 3- فتح المشروع في Visual Studio بعد ما تفك ضغط ملفات المشروع، افتح المجلد الرئيسي وابحث عن ملف المشروع التالي: كود PHP:
بعد فتح المشروع:
لو ظهرت رسالة بتطلب استعادة الحزم، نفّذ Restore NuGet Packages، وبعدها جرّب بناء المشروع مرة تانية. [HR][/HR] 4- بناء المشروع وإخراج ملف EXE عندك طريقتين لبناء المشروع. الطريقة الأولى: من Visual Studio افتح قائمة: كود PHP:
كود PHP:
الطريقة الثانية: إخراج نسخة جاهزة للتوزيع من CMD افتح Terminal أو CMD داخل المجلد الرئيسي للمشروع، ونفّذ الأمر التالي: كود PHP:
كود PHP:
اسم ملف EXE النهائي وإمكانية تشغيله كملف واحد بيعتمدوا على إعدادات المشروع داخل ملف CSProj، بما فيها إعدادات PublishSingleFile وSelfContained وRuntimeIdentifier. اتأكد من الإعدادات دي قبل توزيع النسخة. لو إعدادات النشر مضبوطة على إخراج ملف واحد، هتقدر توزّع الملف الناتج مع ملفات البيانات الخارجية المطلوبة، زي launcher.ini ومجلد themes. [HR][/HR] 5- تجهيز اللانشر عند اللاعب بعد ما تجهّز نسخة النشر، انسخ الملفات المطلوبة إلى المجلد الرئيسي للكلاينت، وهو المجلد اللي موجود بداخله مجلد Env_DX9. الملفات المطلوبة:
اتأكد إن اسم ملف EXE مطابق للاسم الفعلي الناتج من عملية النشر، وإن ملف الإعدادات والثيمات موجودين في المسارات اللي اللانشر متوقعها. بعد كده اعمل اختصار للانشر على سطح المكتب، واستخدمه بدل اختصار play.exe القديم. نصيحة: احتفظ بنسخة احتياطية من ملفات الكلاينت قبل تجربة أي تغييرات أو تحديثات جديدة. [HR][/HR] 6- ربط اللانشر بسيرفرك عن طريق launcher.ini ملف launcher.ini هو الملف المسؤول عن مجموعة من إعدادات اللانشر، زي عنوان السيرفر ومنافذ الاتصال ومسار اللعبة والثيم واللغة. افتح الملف باستخدام Notepad، وابحث عن قسم Launcher. الإعدادات الأساسية: كود PHP:
إعداد فحص إغلاق اللعبة ابحث عن قسم SystemCheck، واضبط القيمة التالية: كود PHP:
القيمة CrashWatchSeconds مرتبطة بطريقة تشغيل اللعبة ومراقبة العملية داخل اللانشر. في هذا المشروع، ملف Conquer.exe ممكن يقفل نفسه بعد حوالي 5 ثوانٍ أثناء انتقال التشغيل إلى عملية اللعبة الفعلية. لو اللانشر بيراقب العملية الأولى فقط، ممكن يعتبر إغلاقها كراش بالخطأ. علشان كده، القيمة المقترحة في الإعدادات هي 3 ثوانٍ، وفقًا لسلوك التشغيل الموضّح للمشروع. لو بتعدّل على طريقة تشغيل اللعبة أو مراقبة العمليات، راجع الكود المسؤول عن اكتشاف الكراش قبل تغيير القيمة. [HR][/HR] 7- تعديل اللانشر وإضافة ثيمات جديدة من مميزات تنظيم المشروع إنك تقدر تعدّل على النصوص والموارد والإعدادات من أماكن منفصلة. أهم الملفات والمجلدات:
إزاي تعمل ثيم جديد؟
مثال: كود PHP:
تعديل اسم السيرفر وروابط التواصل راجع launcher.ini وابحث عن حقول اسم السيرفر وروابط Facebook وDiscord وWebsite، وعدّلها وفقًا للإعدادات الموجودة فعلًا في نسخة المشروع عندك. [HR][/HR] 8- سيرفر التحديثات PatchServer (اختياري) لو عايز تستخدم نظام التحديثات والأخبار والصيانة، هتحتاج إعداد وتشغيل PatchServer. أما لو مش محتاج تحديثات حاليًا، تقدر تسيب UpdateUrl فاضي وتتخطى الجزء ده، بشرط إن اللانشر بيسمح بالتشغيل من غير عنوان تحديثات. عفواً لايمكن عرض الروابط إلا بعد الرد على الموضوع واجهة الإعدادات أولًا: بناء PatchServer افتح Terminal داخل مجلد المشروع الرئيسي ونفّذ: كود PHP:
ثانيًا: إعداد PatchServer.ini افتح ملف PatchServer.ini واضبط إعدادات السيرفر، ومنها البورت ومجلد الملفات اللي هيتم تقديمها للاعبين. مثال: كود PHP:
ثالثًا: فتح البورت في Windows Firewall لو السيرفر شغّال على Windows وعايز تسمح بالاتصالات الواردة على TCP port 8801، افتح CMD بصلاحيات Administrator ونفّذ: كود PHP:
رابعًا: ربط اللانشر بسيرفر التحديثات داخل launcher.ini عند اللاعب، اضبط UpdateUrl على عنوان السيرفر الفعلي: كود PHP:
لو بتستخدم دومين، تقدر تستخدم عنوان الدومين بدل IP، بشرط إن إعدادات الشبكة وDNS والمنفذ متوافقة مع طريقة تشغيل PatchServer. خامسًا: إضافة تحديث جديد لما تحب تنشر تحديثًا:
أوامر كونسول PatchServer: كود PHP:
بحسب تنظيم ملفات المشروع، مجلد www\data يحتوي على الملفات الخاصة بالأخبار وحالة الصيانة.
مثال توضيحي لحالة الصيانة: كود PHP:
كود PHP:
عفواً لايمكن عرض الروابط إلا بعد الرد على الموضوع واجهة الصيانة تنبيه مهم بخصوص ملفات اللعبة: ماتحطّش داخل www\files ملفات إعدادات محلية ممكن تتغيّر عند كل لاعب، زي:
لو الملفات دي بتتغيّر تلقائيًا عند اللاعبين، فإن توزيع نسخ ثابتة منها مع كل تحديث ممكن يكتب فوق إعداداتهم المحلية، حسب طريقة تطبيق التحديث في المشروع. قبل ما تضيف أي ملف إلى نظام التحديثات، اتأكد إنه مناسب للتوزيع على جميع اللاعبين، واحتفظ بنسخة احتياطية من الملفات المهمة. [HR][/HR] 9- أشهر المشاكل وطرق حلها المشكلة الأولى: البناء بيفشل أو فيه Packages ناقصة الحل:
المشكلة الثانية: رسالة إن رابط التحديثات فاضي الحل: لو مش محتاج نظام التحديثات، سيب UpdateUrl فاضي بشرط إن المشروع بيدعم الوضع ده. لو محتاج التحديثات، اضبط الرابط على عنوان PatchServer الصحيح. المشكلة الثالثة: سيرفر الأخبار مش متاح الأسباب المحتملة:
ابدأ بالتأكد من تشغيل PatchServer وصحة الإعدادات، وبعدها اختبر الاتصال من الجهاز المستهدف. المشكلة الرابعة: رسالة «اللعبة قفلت فجأة» رغم إن اللعبة شغّالة راجع إعداد CrashWatchSeconds وطريقة مراقبة عملية تشغيل اللعبة. القيمة المقترحة في هذا المشروع هي: كود PHP:
المشكلة الخامسة: زرار اللعب رمادي أو مقفول راجع حالة الصيانة داخل status.json. لو الصيانة منتهية، اتأكد إن القيمة مضبوطة على: كود PHP:
المشكلة السادسة: التحديث الجديد مش بيظهر بعد إضافة الملفات إلى مجلد التحديثات، نفّذ الأمر التالي في كونسول PatchServer: كود PHP:
المشكلة السابعة: التأكد من إن PatchServer شغّال جرّب فتح الرابط التالي في المتصفح: كود PHP:
لو الملف مش بيفتح، راجع حالة البرنامج والبورت وإعدادات الشبكة ومسار الملفات. نجاح فتح الرابط بيعتمد على إن PatchServer بيقدّم manifest.json على المسار ده فعلًا. [HR][/HR] نصائح قبل نشر اللانشر للاعبين
روابط التحميل — Download في النهاية ❤️اختر النسخة المناسبة لك من الروابط التالية: عفواً لايمكن عرض الروابط إلا بعد الرد على الموضوع نسخة جاهزة للتشغيل دون الحاجة إلى بناء المشروع من السورس. عفواً لايمكن عرض الروابط إلا بعد الرد على الموضوع للمبرمجين الراغبين في استكشاف الكود وتعديله وتطويره والبناء منه. روابط التحميل مستضافة على Google Drive أتمنى يكون الشرح وضّح طريقة التعامل مع ScriptHazem Launcher، من فتح المشروع وبنائه إلى إعداده وربطه بسيرفر التحديثات. لو عندك سؤال أو اقتراح لتطوير المشروع، اكتبه في رد داخل الموضوع. لو استخدمت اللانشر، يُرجى الحفاظ على الحقوق وذكر صاحب العمل ❤️ تحياتي للجميع |
رد: ScriptHazem Launcher + PatchServer
مجهود ممتاز عاش
بالتوفيق ان شاء الله |
رد: ScriptHazem Launcher + PatchServer
تسلم ايدك
|
| الساعة الآن 12:00 AM |
مرحبا بكم في منتدي اكواد لتطوير الالعاب
new notificatio by 9adq_ala7sas