
Multi Theft Auto (MTA) เป็นโครงการซอฟต์แวร์ที่เพิ่มฟังก์ชั่นการเล่นเครือข่ายให้กับซีรีย์เกมแกรนด์โจ Theft Auto ของ Rockstar North ซึ่งไม่พบฟังก์ชั่นนี้ เป็นการดัดแปลงที่ไม่ซ้ำกันซึ่งรวมองค์ประกอบการเล่นเครือข่ายที่ขยายได้ลงในเกมพีซีผู้เล่นเดี่ยวในเชิงพาณิชย์ในเชิงพาณิชย์
หมายเหตุ หากคุณเป็นนักพัฒนาส้อมโปรดอ่านโน้ตนี้อย่างระมัดระวัง เราได้เปลี่ยนประเภทบิลด์เริ่มต้นกลับเป็น แบบกำหนดเอง ใน
Shared/sdk/version.hหากคุณกำลังพัฒนาโดยไม่ต้องคำนึงถึงการรักษาในใจให้พูดในการกำหนดค่าการดีบักสิ่งนี้จะไม่ส่งผลกระทบต่อคุณเลย ตอนนี้หากคุณวางแผนที่จะทดสอบไคลเอนต์ที่กำหนดเองของคุณด้วยการเปิดใช้งาน Anti-Cheat คุณควรเปลี่ยนประเภทงานสร้างของคุณเป็นยังUNTESTEDหากคุณต้องการเผยแพร่ไคลเอนต์ที่กำหนดเองของคุณคุณต้องเปลี่ยนไปใช้netc.dllที่ สนับสนุนการสนับสนุนแบบส้อม โปรดอ่านหน้า Wiki ของเรา Forks_full_ac สำหรับข้อมูลเพิ่มเติม
Multi Theft Auto ขึ้นอยู่กับเทคนิคการฉีดรหัสและการเชื่อมต่อโดยที่เกมถูกจัดการโดยไม่ต้องเปลี่ยนไฟล์ต้นฉบับใด ๆ ที่มาพร้อมกับเกม ซอฟต์แวร์ทำหน้าที่เป็นเอ็นจิ้นเกมที่ติดตั้งตัวเองเป็นส่วนขยายของเกมต้นฉบับเพิ่มฟังก์ชั่นหลักเช่นเครือข่ายและการแสดงผล GUI ในขณะที่เปิดเผยฟังก์ชั่นการใช้งานของเกมดั้งเดิมผ่านภาษาสคริปต์
แต่เดิมก่อตั้งขึ้นในต้นปี 2546 ในฐานะชิ้นส่วนทดลองของซอฟต์แวร์ C/C ++ Multi Theft Auto ได้เติบโตขึ้นเป็นแพลตฟอร์มผู้เล่นหลายคนขั้นสูงสำหรับนักเล่นเกมและนักพัฒนาบุคคลที่สาม ซอฟต์แวร์ของเราให้การเล่นเกมสไตล์แซนด์บ็อกซ์ขั้นต่ำที่สามารถขยายผ่านภาษาสคริปต์ LUA ได้หลายวิธีทำให้เซิร์ฟเวอร์สามารถเรียกใช้โหมดเกมที่สร้างขึ้นเองด้วยเนื้อหาที่กำหนดเองสำหรับผู้เล่นออนไลน์ได้มากถึงหลายร้อยคน
ก่อนหน้านี้เป็นโครงการปิดแหล่งข้อมูลเราได้ย้ายไปยังโอเพนซอร์ซเพื่อกระตุ้นให้นักพัฒนารายอื่นมีส่วนร่วมรวมทั้งแสดงข้อมูลเชิงลึกเกี่ยวกับซอร์สโค้ดและการออกแบบของโครงการของเราด้วยเหตุผลทางการศึกษา
Multi Theft Auto ถูกสร้างขึ้นตามแนวคิด "สีน้ำเงิน" ที่ใช้เฟรมเวิร์กของเกม เนื่องจากการออกแบบชั้นเรียนของเฟรมเวิร์กเกมของเราขึ้นอยู่กับการออกแบบของ Grand Theft Auto เราจึงสามารถแทรกรหัสของเราลงในเกมดั้งเดิมได้ เกมดังกล่าวจะขยายออกไปอย่างมากโดยให้ฟังก์ชั่นเกมใหม่ (รวมถึงการปรับแต่งและการแก้ไขปัญหา) รวมถึงอินเทอร์เฟซกราฟิกใหม่ที่สมบูรณ์เครือข่ายและส่วนประกอบสคริปต์
โดยค่าเริ่มต้น Multi Theft Auto ให้การเล่นเกมสไตล์ Sandbox ขั้นต่ำของ Grand Theft Auto การเล่นเกมสามารถขยายออกไปอย่างมากผ่านการใช้ภาษาสคริปต์ LUA ที่ฝังอยู่ในซอฟต์แวร์ไคลเอนต์และเซิร์ฟเวอร์ ทั้งเซิร์ฟเวอร์โฮสต์เกมรวมถึงไคลเอนต์ที่เล่นเกมนั้นมีความสามารถในการเรียกใช้และซิงโครไนซ์สคริปต์ LUA สคริปต์เหล่านี้มีเลเยอร์อยู่บนกรอบเกมของ Multi Thetft Auto ซึ่งประกอบด้วยคลาสและฟังก์ชั่นมากมายเพื่อให้เกมสามารถปรับได้ในแบบที่เป็นไปได้
เนื้อหาการเล่นเกมทั้งหมดเช่นสคริปต์ Lua รูปภาพเสียงโมเดลที่กำหนดเองหรือพื้นผิวจะถูกจัดกลุ่มเป็น "ทรัพยากร" ทรัพยากรนี้ไม่มีอะไรมากไปกว่าการเก็บถาวร (มีเนื้อหา) และไฟล์ข้อมูลเมตาที่อธิบายเนื้อหาและข้อมูลเพิ่มเติมใด ๆ (เช่นการพึ่งพาทรัพยากรอื่น ๆ )
การใช้เฟรมเวิร์กตามทรัพยากรมีข้อดีหลายประการ ช่วยให้เนื้อหาสามารถถ่ายโอนไปยังลูกค้าและเซิร์ฟเวอร์ได้อย่างง่ายดาย ข้อดีอีกประการหนึ่งคือเราสามารถให้วิธีการนำเข้าและส่งออกฟังก์ชั่นการเขียนสคริปต์ในทรัพยากร ตัวอย่างเช่นทรัพยากรที่แตกต่างกันสามารถนำเข้าฟังก์ชั่น (มักจะพื้นฐาน) จากทรัพยากรทั่วไปอย่างน้อยหนึ่งแหล่ง สิ่งเหล่านี้จะถูกดาวน์โหลดและเริ่มต้นโดยอัตโนมัติ คุณลักษณะที่ควรค่าแก่การกล่าวถึงคือผู้ดูแลระบบเซิร์ฟเวอร์สามารถควบคุมการเข้าถึงทรัพยากรเฉพาะโดยกำหนดสิทธิ์ผู้ใช้ที่แตกต่างกันจำนวนหนึ่งให้กับพวกเขา
ที่เก็บรหัสโครงการของเราสามารถพบได้ในที่เก็บ Git Multitheftauto/Mtasa-Blue Git ที่ GitHub เรามักจะมองหานักพัฒนาใหม่ดังนั้นหากคุณสนใจนี่คือลิงค์ที่มีประโยชน์:
ข้อกำหนดเบื้องต้น
win-create-projects.batMTASA.sln ในไดเรกทอรี Buildwin-install-data.batเยี่ยมชมบทความ Wiki "Compiling MTASA" สำหรับข้อมูลเพิ่มเติมและการแก้ไขปัญหาข้อผิดพลาด
คุณสามารถสร้าง MTA: SA Server บนการแจกแจง GNU/Linux สำหรับ X86, X86_64, ARMHF และ ARM64 CPU สถาปัตยกรรม ปัจจุบันสถาปัตยกรรม ARM อยู่ใน ช่วงทดลอง ซึ่งหมายความว่าพวกเขาไม่เสถียรไม่ผ่านการทดสอบและอาจชนแบบสุ่ม ระวังว่าเราสนับสนุนอาคารอย่างเป็นทางการจาก X86_64 เท่านั้นและนั่นรวมถึงการเปรียบเทียบข้ามสำหรับ X86, ARM และ ARM64
สร้างการพึ่งพา
โปรดอ่าน DockerFiles สำหรับการพึ่งพาการสร้างที่ทันสมัยเสมอ หมายเหตุ: NCFTP ไม่จำเป็นสำหรับการสร้าง MTA: SA Server
สร้างคำแนะนำ: สคริปต์
หมายเหตุ: สคริปต์นี้จะลบ Build/ และ Bin/ ไดเรกทอรีเสมอและสร้างการสร้างที่สะอาด
$ ./linux-build.sh [--arch = x86 | x64 | arm | arm64] [--config = debug | release]
$ ./linux-install-data.sh # optional step หากไม่มีการจัดสถาปัตยกรรม --arch จะนำมาจากตัวแปรสภาพแวดล้อม BUILD_ARCHITECTURE (ค่าเริ่มต้นเป็น: x64)
หากไม่มีการกำหนดค่าการกำหนดค่า --config แสดงว่ามันนำมาจากตัวแปรสภาพแวดล้อม BUILD_CONFIG (ค่าเริ่มต้นเป็น: release)
หากคุณพยายามที่จะ เชื่อมโยง กับสถาปัตยกรรมอื่นให้ตั้งค่าตัวแปรสภาพแวดล้อม AR , CC , CXX , GCC_PREFIX ตามลำดับ (ดู DockerFile.ARM64 สำหรับตัวอย่าง)
สร้างคำแนะนำ: คู่มือ
$ ./utils/premake5 gmake
$ make -C Build/ config=release_x64 all
$ ./linux-install-data.sh # optional step หากคุณไม่ต้องการสร้างการกำหนดค่าการเปิดตัวสำหรับสถาปัตยกรรม x86_64 คุณสามารถเลือกการกำหนดค่าการสร้างอื่นจาก: {debug|release}_{x86|x64|arm|arm64}
หากคุณมีปัญหาในการแก้ไขการพึ่งพาที่จำเป็นหรือต้องการความเข้ากันได้สูงสุดคุณสามารถใช้สภาพแวดล้อมการสร้างที่เชื่อมต่อกับการพึ่งพาทั้งหมดที่จำเป็น นอกจากนี้เรายังใช้สภาพแวดล้อมนี้เพื่อสร้างไบนารีอย่างเป็นทางการ
ดึงภาพนักเทียบท่า
$ docker pull ghcr.io/multitheftauto/mtasa-blue-build:latest| สถาปัตยกรรม | แท็กรูปภาพ Docker |
|---|---|
| x86_64 | ล่าสุด |
| x86 | i386 |
| แขน | armhf |
| ARM64 | ARM64 |
อาคารที่มีนักเทียบท่า
ตัวอย่างเหล่านี้สมมติว่าไดเรกทอรีปัจจุบันของคุณคือไดเรกทอรีเช็คเอาต์ MTASA-Blue คุณควรทราบด้วยว่า /build เป็นไดเรกทอรีรหัสที่ต้องการโดยอิมเมจนักเทียบท่าของเราภายในคอนเทนเนอร์ หากไดเรกทอรีปัจจุบันไม่ใช่ที่เก็บ Git ที่ถูกต้องมันจะสร้างโคลน (ตื้น) ของที่เก็บ mtasa-blue แทน หลังจากรวบรวมคุณจะพบไบนารีที่เกิดขึ้นใน ./Bin bin ในการสร้างการดีบักดีบั๊กที่ไม่ได้ใช้งานให้เพิ่ม -e BUILD_CONFIG=debug ไปยังอาร์กิวเมนต์ Run Docker
| สถาปัตยกรรม | สร้างคำสั่ง |
|---|---|
| x86_64 | docker run --rm -v `pwd`:/build ghcr.io/multitheftauto/mtasa-blue-build:latest |
| x86 | docker run --rm -v `pwd`:/build ghcr.io/multitheftauto/mtasa-blue-build:i386 |
| แขน | docker run --rm -v `pwd`:/build ghcr.io/multitheftauto/mtasa-blue-build:armhf |
| ARM64 | docker run --rm -v `pwd`:/build ghcr.io/multitheftauto/mtasa-blue-build:arm64 |
ดำเนินการ win-create-projects.bat
เว้นแต่จะระบุไว้เป็นอย่างอื่นซอร์สโค้ดทั้งหมดที่โฮสต์บนที่เก็บนี้ได้รับอนุญาตภายใต้ใบอนุญาต GPLV3 ดูไฟล์ใบอนุญาตสำหรับรายละเอียดเพิ่มเติม
Grand Theft Auto และเครื่องหมายการค้าที่เกี่ยวข้องทั้งหมดคือ© Rockstar North 1997–2024