ตัวปลดล็อค DLC ที่ถูกกฎหมายสำหรับ Steamworks
- การปลดล็อค DLC ที่ถูกกฎหมาย
- การจำลองสินค้าคงคลัง
การดำเนินการโดยไม่ต้องกำหนดค่า
วิธีการติดตั้งหลายวิธี:
️ โหมดร้านค้า
- โหมดเกม
- โหมดตะขอ
- โหมดพร็อกซี
- ดาวน์โหลดรุ่นล่าสุด
หัวข้อฟอรัม SmokeAPI
SmokeAPI เป็นตัวปลดล็อค DLC สำหรับเกมที่เป็นเจ้าของโดยชอบด้วยกฎหมายในบัญชี Steam ของคุณ มันพยายามปลอมแปลงเกมที่ใช้ Steamworks SDK โดยเชื่อว่าคุณเป็นเจ้าของ DLC ที่ต้องการ อย่างไรก็ตาม SmokeAPI ไม่ได้แก้ไขส่วนที่เหลือของ Steamworks SDK ดังนั้นคุณสมบัติต่างๆ เช่น ผู้เล่นหลายคน ความสำเร็จ ฯลฯ ยังคงทำงานได้อย่างสมบูรณ์
SmokeAPI มีเป้าหมายที่จะสนับสนุน SteamAPI เวอร์ชันที่เผยแพร่ทั้งหมด เมื่อพบอินเทอร์เฟซเวอร์ชันใหม่ที่ไม่รองรับ ระบบจะถอยกลับเป็นเวอร์ชันล่าสุดที่รองรับ ด้านล่างนี้เป็นรายการเวอร์ชันอินเทอร์เฟซที่รองรับ:
ISteamClient เวอร์ชัน 6 — เวอร์ชัน 20 (เวอร์ชันก่อน 6 ไม่มีอินเทอร์เฟซที่เกี่ยวข้องกับ DLC)
ISteamApps เวอร์ชัน 2 — เวอร์ชัน 8 (เวอร์ชัน 1 ไม่มีฟังก์ชันที่เกี่ยวข้องกับ DLC)
ISteamUser เวอร์ชัน 12 — เวอร์ชัน 21 (เวอร์ชันก่อน 12 ไม่มีฟังก์ชันที่เกี่ยวข้องกับ DLC)
ISteamInventory เวอร์ชัน 1 — เวอร์ชัน 3
สินค้าคงคลัง Steam ใช้งานไม่ได้กับทุกเกมที่มีสินค้าคงคลัง Steam เนื่องจากมีการใช้งานแบบกำหนดเองและการตรวจสอบออนไลน์ รายชื่อเกมที่แสดงการจำลองสินค้าคงคลังมีดังนี้:
โครงการฤดูหนาว
เครื่องจำลองรถบรรทุกยูโร 2
Hero Siege (ถ้าคุณข้าม EAC)
คำเตือน | โปรดดำเนินการติดตั้งต่อโดยยอมรับความเสี่ยงเอง การใช้ตัวปลดล็อคนี้ต้องฝ่าฝืนข้อกำหนดในการให้บริการตั้งแต่หนึ่งข้อขึ้นไป ซึ่งอาจส่งผลให้บัญชีของคุณสูญเสียอย่างถาวร |
SmokeAPI รองรับโหมดการติดตั้งหลัก 2 โหมด: โหมด ร้านค้า และโหมด เกม ซึ่งจะอธิบายไว้ในส่วนถัดไป
บันทึก | เป็นที่น่าสังเกตว่าคำแนะนำต่อไปนี้อธิบายวิธีการติดตั้ง ด้วยตนเอง คุณจะได้รับประโยชน์จากการติดตั้ง อัตโนมัติ และการกำหนดค่า GUI โดยใช้ Koalageddon v2 |
ในโหมดการติดตั้งนี้ SmokeAPI จะถูกโหลดเข้าสู่กระบวนการ Steam ซึ่งทำให้สามารถส่งผลกระทบต่อเกม Steam ทั้งหมดได้
ดาวน์โหลด Koaloader release zip ล่าสุดจาก Koaloader Releases
จากไฟล์เก็บถาวร 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
}
]
}
ดาวน์โหลด zip รุ่น SmokeAPI ล่าสุดจาก SmokeAPI Releases
จากไฟล์เก็บถาวร SmokeAPI ให้คลาย steam_api.dll
เปลี่ยนชื่อเป็น SmokeAPI.dll
และวางไว้ในไดเร็กทอรี Steam [1]
ในโหมดการติดตั้งนี้ SmokeAPI จะถูกโหลดเข้าสู่กระบวนการของเกม ซึ่งจะจำกัดไว้เฉพาะเกมนั้นเท่านั้น โหมดนี้รองรับ 2 โหมด: โหมด hook และโหมดพร็อกซี ลองติดตั้งตัวปลดล็อคในโหมด hook ก่อน หากไม่ได้ผล ให้ลองติดตั้งในโหมดพร็อกซี
ดาวน์โหลด Koaloader release zip ล่าสุดจาก Koaloader Releases
จากไฟล์เก็บถาวร Koaloader ให้ version.dll
จากเวอร์ชัน 32/64 ขึ้นอยู่กับบิตเนสของเกม และวางไว้ข้างไฟล์ exe ของเกม
ดาวน์โหลด zip รุ่น SmokeAPI ล่าสุดจาก SmokeAPI Releases
จากไฟล์เก็บถาวร SmokeAPI ให้คลาย steam_api.dll
/ steam_api64.dll
ขึ้นอยู่กับบิตเนสของเกม เปลี่ยนชื่อเป็น SmokeAPI.dll
และวางไว้ข้างไฟล์ exe ของเกม
ค้นหาไฟล์ steam_api.dll
/ steam_api64.dll
ในไดเร็กทอรีเกม และเปลี่ยนชื่อเป็น steam_api_o.dll
/ steam_api64_o.dll
ดาวน์โหลด zip รุ่น SmokeAPI ล่าสุดจาก SmokeAPI Releases
จากไฟล์เก็บถาวร SmokeAPI ให้แตก steam_api.dll
/ steam_api64.dll
ขึ้นอยู่กับบิตเนสของเกม และวางไว้ถัดจากไฟล์ steam_api DLL ดั้งเดิม
หากตัวปลดล็อคไม่ทำงานตามที่คาดไว้ โปรดอ่านคำแนะนำในการติดตั้งตัวปลดล็อคทั่วไปให้ครบถ้วนก่อนที่จะขอรับการสนับสนุนในหัวข้อฟอรัม SmokeAPI
บันทึก | เอกสารนี้อธิบายการกำหนดค่าสำหรับ SmokeAPI เวอร์ชัน 2 คุณสามารถดูเอกสารเวอร์ชัน 1 ได้ที่นี่ |
SmokeAPI ไม่ต้องการการกำหนดค่าด้วยตนเอง โดยค่าเริ่มต้น จะใช้ตัวเลือกที่เหมาะสมที่สุดและพยายามปลดล็อก DLC ทั้งหมดที่สามารถทำได้ อย่างไรก็ตาม อาจมีบางสถานการณ์ที่คุณต้องการพฤติกรรมที่ปรับแต่งเองเพิ่มเติม เช่น การปิดการใช้งาน DLC บางตัว หรือการเลือกเปิดใช้งานเพียงบางส่วนเท่านั้น ในกรณีนี้ คุณสามารถใช้ไฟล์การกำหนดค่า SmokeAPI.config.json ซึ่งคุณสามารถพบได้ที่นี่ในพื้นที่เก็บข้อมูลนี้หรือในไฟล์ zip สำหรับการเผยแพร่ หากต้องการใช้งาน เพียงวางไว้ข้าง SmokeAPI DLL จะมีการอ่านเมื่อมีการเปิดตัวเกมหรือร้านค้าแต่ละครั้ง ในกรณีที่ไม่มีไฟล์กำหนดค่า ระบบจะใช้ค่าเริ่มต้นที่ระบุไว้ด้านล่างนี้ ไฟล์การกำหนดค่าคาดว่าจะเป็นไปตามมาตรฐาน Json
logging
สลับการสร้างไฟล์ SmokeAPI.log.log
พิมพ์ | บูลีน |
ค่าเริ่มต้น | |
unlock_family_sharing
โหมดร้านค้าเท่านั้น สลับการเลี่ยงการแชร์กันในครอบครัว ซึ่งช่วยให้ผู้ยืมห้องสมุดที่ใช้ร่วมกันสามารถเริ่มและเล่นเกมต่อได้ในขณะที่เจ้าของห้องสมุดกำลังเล่นอยู่ด้วย
พิมพ์ | บูลีน |
ค่าเริ่มต้น | |
default_app_status
ตัวเลือกนี้จะตั้งค่าลักษณะการปลดล็อค DLC เริ่มต้น
ค่าที่เป็นไปได้ |
| ||||
พิมพ์ | สตริง | ||||
ค่าเริ่มต้น | |
override_app_status
ตัวเลือกนี้จะแทนที่สถานะของ DLC ทั้งหมดที่เป็นของ ID แอปที่ระบุ [2]
ค่าที่เป็นไปได้ | ออบเจ็กต์ที่มีคู่คีย์-ค่า โดยที่คีย์สอดคล้องกับรหัสแอป และค่าของสถานะแอป ค่าสถานะแอปที่เป็นไปได้ถูกกำหนดไว้ในตัวเลือก |
พิมพ์ | วัตถุ |
ค่าเริ่มต้น | |
override_dlc_status
ตัวเลือกนี้จะแทนที่สถานะของ DLC แต่ละรายการ โดยไม่คำนึงถึงสถานะของแอปที่เกี่ยวข้อง
ค่าที่เป็นไปได้ | ออบเจ็กต์ที่มีคู่คีย์-ค่า โดยที่คีย์สอดคล้องกับรหัสแอป และค่าของสถานะแอป ค่าสถานะแอปที่เป็นไปได้ถูกกำหนดไว้ในตัวเลือก |
พิมพ์ | วัตถุ |
ค่าเริ่มต้น | |
auto_inject_inventory
สลับว่า SmokeAPI ควรแทรกรายการสินค้าคงคลังที่ลงทะเบียนทั้งหมดโดยอัตโนมัติหรือไม่ เมื่อเกมค้นหาสินค้าคงคลังของผู้ใช้
พิมพ์ | บูลีน |
ค่าเริ่มต้น | |
extra_inventory_items
รายการ ID รายการสินค้าคงคลัง [2] ที่จะถูกเพิ่มนอกเหนือจากรายการที่แทรกโดยอัตโนมัติ
พิมพ์ | อาร์เรย์ (ของจำนวนเต็ม) |
ค่าเริ่มต้น | |
$version
สาขาทางเทคนิคที่สงวนไว้สำหรับการใช้งานโดยเครื่องมือ เช่น ตัวแก้ไขการกำหนดค่า GUI ห้ามแก้ไขค่านี้
พิมพ์ | จำนวนเต็ม |
ค่าเริ่มต้น | |
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 API เพื่อดูรายการ DLC ที่พร้อมใช้งานทั้งหมด เมื่อเกมได้รับรายชื่อแล้ว เกมจะผ่านแต่ละรายการและตรวจสอบการเป็นเจ้าของ ปัญหานี้เกิดจากการที่การตอบสนองจาก Steamworks SDK อาจสูงสุดที่ 64 ขึ้นอยู่กับจำนวน DLC ที่ยังไม่ได้เป็นเจ้าของที่ผู้ใช้มี เพื่อบรรเทาปัญหานี้ SmokeAPI จะส่งคำขอทางเว็บไปยัง Steam API เพื่อดูรายการ DLC ทั้งหมด ซึ่งทำงานได้ดีเกือบตลอดเวลา น่าเสียดายที่แม้แต่เว็บ API ก็ไม่สามารถแก้ปัญหาทั้งหมดของเราได้ เนื่องจากจะส่งคืนเฉพาะ DLC ที่มีอยู่ในร้านค้า Steam เท่านั้น ซึ่งหมายความว่า DLC ที่ไม่มีข้อเสนอจากร้านค้าโดยเฉพาะ เช่น DLC ที่สั่งซื้อล่วงหน้าจะถูกละทิ้ง นั่นคือสิ่งที่ตัวเลือกการกำหนดค่า extra_dlcs
เข้ามามีบทบาท คุณสามารถระบุรหัส DLC ที่ขาดหายไปได้ที่นั่น และ SmokeAPI จะทำให้รหัสเหล่านั้นพร้อมใช้งานสำหรับเกม อย่างไรก็ตาม สิ่งนี้ทำให้เกิดความจำเป็นในการกำหนดค่าด้วยตนเอง ซึ่งขัดกับอุดมคติของโปรเจ็กต์นี้ เพื่อแก้ไขปัญหานี้ SmokeAPI จะดึงรายการ DLC พิเศษที่ได้รับการดูแลด้วยตนเองซึ่งจัดเก็บไว้ในที่เก็บ GitHub วัตถุประสงค์ของเอกสารนี้คือเพื่อให้มีรหัส DLC ทั้งหมดที่ไม่มีหน้าร้านค้า Steam ซึ่งจะทำให้ SmokeAPI สามารถปลดล็อก DLC ทั้งหมดได้โดยไม่ต้องมีไฟล์ปรับแต่งใดๆ เลย อย่าลังเลที่จะรายงานในหัวข้อเกมในฟอรัม SmokeAPI ที่มี DLC มากกว่า 64 รายการ และ มี DLC ที่ไม่มีหน้าร้านค้าเฉพาะ พวกเขาจะถูกเพิ่มเข้าไปในรายการรหัส DLC ที่หายไปเพื่ออำนวยความสะดวกในการดำเนินการที่ไม่ต้องกำหนดค่า
CMake v3.24 (ตรวจสอบให้แน่ใจว่า cmake พร้อมใช้งานจาก PowerShell)
วิชวลสตูดิโอ 2022 [3] .
ทดสอบบน Windows 11 SDK (10.0.22621.0) [3]
สร้างโครงการ
.build.ps1 <โค้ง> <config>
ที่ไหน
โค้ง | |
กำหนดค่า | |
ตัวอย่างเช่น:
.build.ps1 32 ดีบัก
โปรเจ็กต์นี้ใช้ประโยชน์จากโปรเจ็กต์โอเพ่นซอร์สที่ระบุใน KoalaBox Readme
ซอฟต์แวร์นี้ได้รับอนุญาตภายใต้ Unlicense ซึ่งมีข้อกำหนดอยู่ใน UNLICENSE.txt