أداة فك قفل المحتوى القابل للتنزيل (DLC) الشرعي لـ Steamworks
؟ فتح DLC الشرعي
؟ مضاهاة المخزون
عملية التكوين أقل
طرق التثبيت المتعددة:
️ وضع المتجر
؟ وضع اللعبة
؟ وضع هوك
؟ وضع الوكيل
؟ قم بتنزيل أحدث إصدار
موضوع منتدى SmokeAPI
SmokeAPI عبارة عن أداة إلغاء قفل المحتوى القابل للتنزيل (DLC) للألعاب المملوكة بشكل قانوني في حساب Steam الخاص بك. إنها تحاول محاكاة الألعاب التي تستخدم Steamworks SDK للاعتقاد بأنك تمتلك المحتوى القابل للتنزيل (DLC) المرغوب فيه. ومع ذلك، لا يقوم SmokeAPI بتعديل بقية حزمة Steamworks SDK، وبالتالي تظل الميزات مثل تعدد اللاعبين والإنجازات وما إلى ذلك تعمل بكامل طاقتها.
يهدف SmokeAPI إلى دعم جميع إصدارات SteamAPI التي تم إصدارها. عندما يواجه إصدارًا جديدًا غير مدعوم من الواجهة، فإنه سيلجأ إلى أحدث إصدار مدعوم. فيما يلي قائمة بإصدارات الواجهة المدعومة:
ISteamClient v6 — v20. (الإصدارات قبل 6 لم تحتوي على أي واجهات ذات صلة بـ DLC)
ISteamApps v2 — v8. (الإصدار 1 لم يحتوي على أي وظائف ذات صلة بـ DLC)
ISteamUser v12 — v21. (الإصدارات قبل 12 لم تحتوي على أي وظائف ذات صلة بـ DLC)
آي ستيم إنفنتوري v1 — v3.
لا يعمل مخزون Steam في جميع الألعاب التي تحتوي على مخزون Steam بسبب التنفيذ المخصص والفحوصات عبر الإنترنت. قائمة الألعاب التي ثبت أن محاكاة المخزون تعمل هي كما يلي:
مشروع الشتاء
اليورو شاحنة المحاكاة 2
Hero Siege (إذا تجاوزت EAC)
تحذير | يرجى متابعة التثبيت على مسؤوليتك الخاصة. يستلزم استخدام أداة إلغاء القفل هذه انتهاك واحد أو أكثر من شروط الخدمة، مما قد يؤدي إلى خسارة دائمة لحسابك. |
يدعم SmokeAPI وضعين رئيسيين للتثبيت: وضع المتجر ووضع اللعبة ، الموضحين في القسم التالي.
ملحوظة | تجدر الإشارة إلى أن الإرشادات التالية تصف طريقة التثبيت اليدوي . يمكنك الاستفادة من التثبيت التلقائي وتكوين واجهة المستخدم الرسومية باستخدام Koalageddon v2. |
في وضع التثبيت هذا، يتم تحميل SmokeAPI في عملية Steam، مما يجعله قادرًا على التأثير على جميع ألعاب Steam.
قم بتنزيل أحدث إصدار مضغوط من Koaloader من إصدارات Koaloader.
من أرشيف Koaloader قم بفك ضغط version.dll
من version-32
ووضعه في دليل Steam [1] .
في دليل Steam [1] قم بإنشاء ملف تكوين Koaloader التالي:
Koaloader.config.json
{
"auto_load" : false ,
"targets" : [
" Steam.exe "
],
"modules" : [
{
"path" : " SmokeAPI.dll " ,
"required" : true
}
]
}
قم بتنزيل أحدث إصدار مضغوط لـ SmokeAPI من إصدارات SmokeAPI.
من أرشيف SmokeAPI، قم بفك ضغط steam_api.dll
، وأعد تسميته إلى SmokeAPI.dll
، وضعه في دليل Steam [1] .
في وضع التثبيت هذا، يتم تحميل SmokeAPI في عملية اللعبة، مما يقتصر على تلك اللعبة المحددة فقط. يدعم هذا الوضع نفسه وضعين: وضع الخطاف ووضع الوكيل. حاول تثبيت برنامج إلغاء القفل في وضع الخطاف أولاً. إذا لم ينجح الأمر، فحاول تثبيته في وضع الوكيل.
قم بتنزيل أحدث إصدار مضغوط من Koaloader من إصدارات Koaloader.
من أرشيف Koaloader، قم بفك ضغط version.dll
من الإصدار 32/64، اعتمادًا على عدد وحدات البت في اللعبة، ووضعه بجوار ملف exe الخاص باللعبة.
قم بتنزيل أحدث إصدار مضغوط لـ SmokeAPI من إصدارات SmokeAPI.
من أرشيف SmokeAPI، قم بفك ضغط steam_api.dll
/ steam_api64.dll
، اعتمادًا على عدد وحدات اللعبة، أعد تسميته إلى SmokeAPI.dll
، وضعه بجوار ملف exe الخاص باللعبة.
ابحث عن ملف steam_api.dll
/ steam_api64.dll
في دليل اللعبة، وأعد تسميته إلى steam_api_o.dll
/ steam_api64_o.dll
.
قم بتنزيل أحدث إصدار مضغوط لـ SmokeAPI من إصدارات SmokeAPI.
من أرشيف SmokeAPI، قم بفك ضغط steam_api.dll
/ steam_api64.dll
، اعتمادًا على عدد وحدات البت في اللعبة، ثم ضعه بجوار ملف steam_api DLL الأصلي.
إذا لم يعمل برنامج إلغاء القفل كما هو متوقع، فيرجى قراءة تعليمات تثبيت برنامج إلغاء القفل العام بالكامل قبل طلب الدعم في موضوع منتدى SmokeAPI.
ملحوظة | يصف هذا المستند تكوين الإصدار 2 من SmokeAPI. يمكنك العثور على وثائق الإصدار 1 هنا. |
لا يتطلب SmokeAPI أي تكوين يدوي. بشكل افتراضي، فهو يستخدم الخيارات الأكثر منطقية ويحاول فتح جميع المحتويات القابلة للتنزيل (DLC) التي يمكنه فتحها. ومع ذلك، قد تكون هناك ظروف تحتاج فيها إلى مزيد من السلوك المخصص، مثل تعطيل بعض DLCs، أو تمكين عدد قليل منها بشكل انتقائي. في هذه الحالة، يمكنك استخدام ملف التكوين SmokeAPI.config.json الذي يمكنك العثور عليه هنا في هذا المستودع أو في ملف الإصدار المضغوط. لاستخدامه، ما عليك سوى وضعه بجوار SmokeAPI DLL. سيتم قراءتها عند كل إطلاق للعبة أو المتجر. في حالة عدم وجود ملف التكوين، سيتم استخدام القيم الافتراضية المحددة أدناه. من المتوقع أن يتوافق ملف التكوين مع معيار Json.
logging
تبديل إنشاء ملف SmokeAPI.log.log
.
يكتب | منطقية |
تقصير | |
unlock_family_sharing
وضع المتجر فقط . تبديل تجاوز المشاركة العائلية، الذي يمكّن المستعير من مكتبة مشتركة من بدء الألعاب ومواصلتها عندما يلعب مالك المكتبة أيضًا.
يكتب | منطقية |
تقصير | |
default_app_status
يضبط هذا الخيار سلوك إلغاء قفل المحتوى القابل للتنزيل (DLC) الافتراضي.
القيم الممكنة |
| ||||
يكتب | خيط | ||||
تقصير | |
override_app_status
يتجاوز هذا الخيار حالة جميع المحتوى القابل للتنزيل (DLC) الذي ينتمي إلى معرف تطبيق محدد [2] .
القيم الممكنة | كائن يحتوي على أزواج قيمة المفتاح، حيث يتوافق المفتاح مع معرف التطبيق، وقيمة حالة التطبيق. يتم تحديد قيم حالة التطبيق المحتملة في خيار |
يكتب | هدف |
تقصير | |
override_dlc_status
يتجاوز هذا الخيار حالة المحتوى القابل للتنزيل (DLC) الفردي، بغض النظر عن حالة التطبيق المقابلة.
القيم الممكنة | كائن يحتوي على أزواج قيمة المفتاح، حيث يتوافق المفتاح مع معرف التطبيق، وقيمة حالة التطبيق. يتم تحديد قيم حالة التطبيق المحتملة في خيار |
يكتب | هدف |
تقصير | |
auto_inject_inventory
لتبديل ما إذا كان يجب على SmokeAPI إدخال قائمة بجميع عناصر المخزون المسجلة تلقائيًا، عندما تستعلم إحدى الألعاب عن مخزون المستخدم
يكتب | منطقية |
تقصير | |
extra_inventory_items
قائمة بمعرفات عناصر المخزون [2] التي سيتم إضافتها بالإضافة إلى العناصر التي يتم حقنها تلقائيًا.
يكتب | صفيف (من الأعداد الصحيحة) |
تقصير | |
$version
مجال تقني مخصص للاستخدام بواسطة أدوات مثل محررات تكوين واجهة المستخدم الرسومية. لا تقم بتعديل هذه القيمة.
يكتب | عدد صحيح |
تقصير | |
extra_dlcs
راجع كيفية عمل SmokeAPI في الألعاب التي تحتوي على عدد كبير من المحتويات القابلة للتنزيل (DLC) لفهم حالة الاستخدام لهذا الخيار.
القيم الممكنة | كائن يحتوي على أزواج قيمة المفتاح، حيث يتوافق المفتاح مع معرف التطبيق، وقيمة الكائن الذي يحتوي على معرفات DLC. التنسيق هو نفسه الموجود في تكوين GitHub المذكور أعلاه. |
يكتب | هدف |
تقصير | |
store_config
وضع المتجر فقط . كائن يحدد الإزاحات المطلوبة لتشغيل وضع المتجر. وسوف يتجاوز التكوين الذي تم جلبه من المصدر البعيد أو ذاكرة التخزين المؤقت المحلية. لا تقم بتعديل هذه القيمة إلا إذا كنت تعرف ما تفعله.
يكتب | هدف |
تقصير | انظر التكوين عبر الإنترنت |
{
"$version" : 2 ,
"logging" : true ,
"unlock_family_sharing" : true ,
"default_app_status" : " unlocked " ,
"override_app_status" : {
"1234" : " original " ,
"4321" : " unlocked "
},
"override_dlc_status" : {
"1234" : " original " ,
"4321" : " unlocked " ,
"5678" : " locked "
},
"auto_inject_inventory" : true ,
"extra_inventory_items" : [],
"extra_dlcs" : {
"1234" : {
"dlcs" : {
"56789" : " Example DLC 1 "
}
},
"4321" : {
"dlcs" : {
"98765" : " Example DLC 2 " ,
"98766" : " Example DLC 3 "
}
}
},
"store_config" : {
"client_engine_steam_client_internal_ordinal" : 12 ,
"steam_client_internal_interface_selector_ordinal" : 18 ,
"vstdlib_callback_address_offset" : 20 ,
"vstdlib_callback_data_offset" : 0 ,
"vstdlib_callback_interceptor_address_offset" : 1 ,
"vstdlib_callback_name_offset" : 4
}
}
تبدأ بعض الألعاب التي تحتوي على عدد كبير من المحتويات القابلة للتنزيل (DLC) في التحقق من الملكية عن طريق الاستعلام عن واجهة برمجة تطبيقات Steamworks للحصول على قائمة بجميع المحتويات القابلة للتنزيل (DLC) المتاحة. بمجرد أن تتلقى اللعبة القائمة، ستراجع كل عنصر وتتحقق من ملكيته. تنشأ المشكلة من حقيقة أن الاستجابة من Steamworks SDK قد تصل إلى 64 كحد أقصى، اعتمادًا على مقدار المحتوى القابل للتنزيل (DLC) غير المملوك لدى المستخدم. للتخفيف من هذه المشكلة، سيقوم SmokeAPI بتقديم طلب عبر الويب إلى Steam API للحصول على قائمة كاملة بالمحتوى القابل للتنزيل (DLC)، والذي يعمل بشكل جيد في معظم الأوقات. لسوء الحظ، حتى واجهة برمجة تطبيقات الويب لا تحل جميع مشاكلنا، لأنها ستعيد فقط المحتوى القابل للتنزيل (DLC) المتوفر في متجر Steam. وهذا يعني أنه سيتم استبعاد المحتوى القابل للتنزيل (DLC) الذي لا يحتوي على عرض متجر مخصص، مثل المحتوى القابل للتنزيل (DLC) للطلب المسبق. وهنا يأتي دور خيار التكوين extra_dlcs
. يمكنك تحديد معرفات المحتوى القابل للتنزيل (DLC) المفقودة هناك، وسيقوم SmokeAPI بإتاحتها للعبة. ومع ذلك، فإن هذا يقدم الحاجة إلى التكوين اليدوي، وهو ما يتعارض مع مُثُل هذا المشروع. لمعالجة هذه المشكلة، سيقوم SmokeAPI أيضًا بإحضار قائمة يتم الاحتفاظ بها يدويًا بمحتوى DLC الإضافي المخزن في مستودع GitHub. الغرض من هذا المستند هو احتواء جميع معرفات DLC التي تفتقر إلى صفحة متجر Steam. يؤدي هذا إلى تمكين SmokeAPI من فتح جميع المحتويات القابلة للتنزيل (DLC) دون أي ملف تكوين على الإطلاق. لا تتردد في الإبلاغ في منتدى SmokeAPI عن الألعاب التي تحتوي على أكثر من 64 محتوى قابل للتنزيل (DLC)، والتي تحتوي على محتوى قابل للتنزيل (DLC) بدون صفحة متجر مخصصة. ستتم إضافتها إلى قائمة معرفات DLC المفقودة لتسهيل التشغيل بدون تكوين.
CMake v3.24 (تأكد من توفر cmake من بوويرشيل)
فيجوال ستوديو 2022 [3] .
تم اختباره على Windows 11 SDK (10.0.22621.0) [3] .
بناء المشروع
.build.ps1 <arch> <config>
أين
قوس | |
التكوين | |
على سبيل المثال:
.build.ps1 32 تصحيح الأخطاء
يستخدم هذا المشروع المشاريع مفتوحة المصدر المحددة في ملف KoalaBox التمهيدي
تم ترخيص هذا البرنامج بموجب Unlicense، وتتوفر شروطه في UNLICENSE.txt