ปลั๊กอินอาซิ เรากำลังเขียนปลั๊กอิน ASI แบบง่ายสำหรับ GTA San Andreas

ฉันเตือนคุณทันทีว่ามันจะยาก แต่ไม่ใช่ทุกอย่างจะน่ากลัวอย่างที่คิด
มาเขียนปลั๊กอินง่ายๆ ซึ่งจะมีฟังก์ชันดังนี้: เมื่อกดปุ่ม เราจะมอบเงินจำนวนมากให้กับผู้เล่นของเราเพื่อชีวิตที่ร่ำรวยและมีความสุข!
บทความนี้มีไว้สำหรับผู้เริ่มต้น แต่จะไม่มีประโยชน์สำหรับผู้เขียนโค้ดที่มีประสบการณ์

ไปถึงจุด! ในการเริ่มต้น ให้ดาวน์โหลดสภาพแวดล้อมการพัฒนาแบบรวม หรือพูดง่ายๆ ก็คือโปรแกรมที่โปรแกรมเมอร์ใช้เวทย์มนตร์ของตน ฉันเลือกฟรีและค่อนข้างสะดวก และที่สำคัญที่สุดคือง่าย - Dev C++ 5.11
คุณสามารถดาวน์โหลดได้
คุณสามารถเลือกอะไรก็ได้ เช่น Code Blocks หรือ Visual Studio C++ มันเป็นเรื่องของรสนิยม ฉันขอแนะนำ Code Blocks

ฉันขอเตือนคุณล่วงหน้า หากคุณไม่สามารถติดตั้งหรือดาวน์โหลดโปรแกรมนี้ได้ คุณไม่ควรอ่านบทความนี้เพิ่มเติม

เราเปิดโปรแกรมคลิกในเมนู - สร้าง ---> โครงการและเลือก DLL

เราบันทึกโครงการของเราไว้ในโฟลเดอร์ที่สร้างไว้ล่วงหน้าภายใต้ชื่อ AsiPlugin
ซอร์สโค้ดของโครงการเปิดต่อหน้าเรา เราไม่ได้แตะต้องอะไรเลย สิ่งที่คุณต้องการตอนนี้คือฟังก์ชันที่เรียกว่า DllMain

DllMain คืออะไร? นี่คือฟังก์ชันที่เกมสามารถเรียกใช้ได้เมื่อเริ่มต้น ดังนั้น ทุกสิ่งที่คุณมีในใจจะถูกดำเนินการในโค้ดส่วนนี้ สำหรับการทดลองเล็กๆ ของเรา เราจำเป็นต้องมีโค้ดต่อไปนี้:

กรณี DLL_PROCESS_ATTACH: ( // ที่นี่เราจะเขียนการกระทำของเราและมันจะถูกดำเนินการ แตก; )

เราจำเป็นต้องมีอะไรบ้างในการเติมเงินเข้าบัญชีของผู้เล่น? ถูกต้อง ก่อนอื่นให้ค้นหาเมื่อเรากดปุ่ม!
ฉันจะให้เทมเพลตสำหรับฟังก์ชันนี้แก่คุณและคุณสามารถใช้มันได้ในอนาคต

Void OnTimer(HWND hwnd, UINT msg, UINT idTimer, DWORD dwTime) ( ถ้า (GetAsyncKeyState(0x47) & 0x8000) // ถ้าคุณกด G, 0x47 จะเป็นรหัสคีย์ ( // จากนั้นเราจะรันโค้ดของเราที่นี่) )

สามารถดูรหัสแป้นพิมพ์ได้
รหัสส่วนนี้จะถูกทำซ้ำอย่างต่อเนื่องและสถานะของปุ่ม G จะถูกตรวจสอบในแต่ละครั้ง

ถัดมาเป็นส่วนที่ยากที่สุด เราต้องการที่อยู่ของตัวแปรที่เก็บจำนวนเงินของผู้เล่น เมื่อใช้ที่อยู่นี้ เราจะนับเงินลงในตัวแปรของเราและเขียนจำนวนเงินใหม่
ไปที่นี่ (ที่นี่คุณจะพบที่อยู่หลักของตัวแปรเกม)

เราเห็นที่อยู่ของเรา: 0xB7CE50 - เงิน
วิธีใช้สิ่งนี้คุณถาม? ฉันจะอธิบาย!

DWORD หลาย = *(DWORD*)0xB7CE50; // รับเงิน.
*(DWORD*)0xB7CE50 = 1000000; // มอบเงินให้กับผู้เล่น

DWORD หลาย = *(DWORD*)0xB7CE50; // ผู้เล่นมีเงินเท่าไหร่? ถ้า(หลาย

ต่อไป เราต้องเริ่มจับเวลาที่จะทำหน้าที่ของเราและถามทุกครั้งว่าเราได้กดปุ่มหรือไม่?
ทำเช่นนี้ - SetTimer(0, 0, 200, (TIMERPROC)OnTimer); // 200 ช่วงเวลาเป็นมิลลิวินาที

เป็นผลให้เราได้รับรหัสต่อไปนี้:

OnTimer เป็นโมฆะ(HWND hwnd, UINT msg, UINT idTimer, DWORD dwTime) ( ถ้า (GetAsyncKeyState(0x47) & 0x8000) // ถ้าคุณกด G ( DWORD Many = *(DWORD*)0xB7CE50; // รับจำนวนเงินหาก (มากมาย

ตอนนี้สิ่งที่เราต้องทำคือรวบรวมโปรแกรมของเราและลองใช้งานในเกม ฉันต้องการดึงดูดความสนใจของคุณทันที เลือกคอมไพเลอร์ 32 บิตใน Dev C++ ไม่เช่นนั้นปลั๊กอินของเราจะไม่ทำงาน
ดูภาพเกี่ยวกับวิธีการทำเช่นนี้และสิ่งที่ต้องคลิกเพื่อรวบรวม

มันทำงานโดยไม่มีข้อผิดพลาดหรือไม่? ถ้าใช่ ให้ไปที่โฟลเดอร์ที่มีโปรเจ็กต์ของเราแล้วค้นหาไฟล์ DLL ที่เราได้รับ เปลี่ยนชื่อส่วนขยายเป็น ASI และวางลงในโฟลเดอร์เกม สำคัญ! อย่าลืมติดตั้ง AsiLoader หรือ CLEO 4
นั่นคือทั้งหมดที่ เปิดเกมแล้วกด G ทุกอย่างใช้งานได้หรือไม่? ทำได้ดีมาก ขอแสดงความยินดี!
อะไรต่อไปคุณถาม? คำตอบของฉันคือ: เรียนการเขียนโปรแกรม บางทีคุณอาจกลายเป็นกูรูด้านการม็อด หรืออาจจะเจ๋งกว่าด้วยซ้ำ
สำหรับผู้ที่ทำไม่สำเร็จ ฉันจะให้ปลั๊กอินแก่คุณ AsiPlugin.rarและที่มาของโครงการ บทเรียน.rar.

ลิงค์ที่มีประโยชน์:
สามารถดาวน์โหลดหนังสือเกี่ยวกับการเขียนโปรแกรมได้
ที่อยู่และฟังก์ชั่นของ Gta San Andreas คุณสามารถค้นหาฐานข้อมูลสำหรับ IDA ซึ่งมีสิ่งที่น่าสนใจมากมาย ฉันเกรงว่าวิธีใช้ IDA ต้องมีบทความแยกต่างหาก

ขอบคุณสำหรับความสนใจของคุณ ฉันหวังว่าคุณจะชอบบทความนี้! โชคดีทุกคน!
ป.ล.: หากบทความนี้กระตุ้นความสนใจในบทความถัดไปฉันจะสอนวิธีใช้ฟังก์ชัน GTA และตัวอย่างเช่นรถวางไข่

บทความนี้มีเฉพาะในเว็บไซต์เท่านั้น เมื่อคัดลอกเนื้อหา คุณต้องระบุลิงก์ไปยังเว็บไซต์

ASI Loader - อนุญาตให้คุณเรียกใช้สคริปต์ asi ได้ซึ่งจำเป็นสำหรับ mods ที่จะทำงานใน GTA 5 โปรดทราบว่าหากคุณติดตั้งไว้แล้วในกรณีนี้คุณไม่จำเป็นต้องติดตั้ง ASI Loader อีกต่อไปเนื่องจากสคริปต์ asi รวมอยู่ด้วยแล้ว ในตะขอสคริปต์

ผู้เล่นที่ต้องการใช้สคริปต์ต่างๆ ในเกมที่เพิ่มคุณสมบัติต่างๆ มากมาย ต้องใช้สคริปต์นี้ ตั้งแต่ฟังก์ชันสำหรับการเปลี่ยนโมเดลของตัวละครหลักไปจนถึงเทรนเนอร์ทุกประเภท

Mod ASI ผู้จัดการ Mod

ผู้เล่นบางคนคิดว่าคุณต้องเปิดตัว asi loader แยกต่างหาก แต่ไม่เป็นเช่นนั้น คุณเพียงแค่ต้องติดตั้งไฟล์ที่มีนามสกุล .dll และการแก้ไขที่ดาวน์โหลดมาทั้งหมดจะทำงานได้

สถานที่สำหรับ Grand Theft Auto V คือเมืองสมมุติในลอสซานโตสซึ่งมีพื้นฐานมาจากลอสแองเจลิส Los Santos ปรากฏตัวครั้งแรกในหนึ่งในเกมก่อนหน้าของซีรีส์นี้ - Grand Theft Auto: San Andreas ซึ่งวางจำหน่ายในปี 2004 นอกเหนือจากเมืองแล้ว เกมยังประกอบด้วยพื้นที่ชนบท ภูเขา ป่าไม้ เนินเขา และชายหาดที่เรียกว่า "Blaine County" ในเกม นอกจากนี้ยังมีพื้นที่เล่นเกมแยกต่างหาก - สถานะสมมติของ North Yankton; อาจเป็นการล้อเลียนรัฐนอร์ทดาโกตาในชีวิตจริงใกล้ชายแดนแคนาดา มีเมืองที่มืดมนเพียงเมืองเดียวในรัฐนี้ - Ludendorff คุณไม่สามารถเข้าไปใน North Yankton ได้ ยกเว้นภารกิจสองเรื่องที่เกิดขึ้นโดยตรงใน Ludendorff แผนที่ทั้งหมดของ Los Santos และสภาพแวดล้อมโดยรอบเปิดให้ผู้เล่นได้เล่นตั้งแต่เริ่มต้น มีสถานที่ทั้งหมด 39 แห่งในเกม

ติดตั้งอย่างไร

คัดลอกไฟล์ dinput8.dll ไปยังโฟลเดอร์รูทของ GTA 5 หากมีไฟล์นี้อยู่แล้ว

สคริปต์

เมื่อใช้ CLEO คุณสามารถเพิ่มสคริปต์ใหม่ลงในเกมของคุณ ซึ่งเขียนด้วย Sanny Builder หรือโปรแกรมแก้ไขสคริปต์อื่น โดยไม่ต้องเริ่มเกมใหม่ สิ่งที่คุณต้องทำในการเพิ่มสคริปต์ดังกล่าวลงในเกมคือวางไว้ในโฟลเดอร์ CLEO สคริปต์จะเริ่มทำงานหลังจากเกมเริ่ม หากต้องการลบสคริปต์ออกจากเกม ให้ลบไฟล์ที่เกี่ยวข้อง

สคริปต์ทั้งหมดเขียนโดยแฟนเกม และไม่มีความเกี่ยวข้องกับผู้พัฒนา CLEO แม้ว่าไลบรารี CLEO เองควรจะทำงานร่วมกับเกมเวอร์ชันต่างๆ ได้ แต่สคริปต์แต่ละตัวอาจมีข้อจำกัดและข้อกำหนดสำหรับไฟล์เกมเป็นของตัวเอง หากมีคำถามเกี่ยวกับประสิทธิภาพของสคริปต์ใดโดยเฉพาะ โปรดติดต่อผู้เขียนสคริปต์

รหัส Opcode

CLEO 4 เพิ่มคำสั่งสคริปต์ใหม่ 100 คำสั่งให้กับเกม ซึ่งช่วยให้คุณสามารถทำงานกับไฟล์ภายนอก เปลี่ยนข้อมูลในหน่วยความจำเกม เรียกใช้ฟังก์ชันเกมด้วยพารามิเตอร์ของคุณเอง และอื่นๆ อีกมากมาย

ในเวอร์ชันที่สี่ มีการเพิ่มคำสั่งใหม่สำหรับการทำงานกับเสียง เส้น และความสามารถในการแสดงข้อความบนหน้าจอโดยไม่ต้องใช้ไฟล์ภายนอก (.gxt, .fxt) หากต้องการชื่นชมความสำเร็จใหม่และใช้ในสคริปต์ของคุณ ให้ติดตั้งไลบรารี CLEO 4 เวอร์ชันล่าสุด

ปลั๊กอิน

ปลั๊กอิน CLEO เป็นไฟล์ DLL ปกติ แต่มีนามสกุล .CLEO เมื่อเปิดใช้งาน ไลบรารี CLEO จะค้นหาไฟล์ที่มีนามสกุลนี้ในโฟลเดอร์ CLEO และพยายามโหลดไฟล์เหล่านั้น หากการดาวน์โหลดสำเร็จปลั๊กอินจะเริ่มทำงานและทำหน้าที่ตามที่เขียนไว้

CLEO 4 ช่วยให้คุณสร้าง opcode ใหม่โดยใช้ซอร์สโค้ด CLEO SDK ในชุดเริ่มต้นของไลบรารี คุณจะพบตัวอย่างปลั๊กอินดังกล่าวสามตัวอย่าง

มีการติดตั้งและถอนการติดตั้งปลั๊กอินเหมือนกับสคริปต์ รายการปลั๊กอินที่มีอยู่สามารถพบได้ในหน้านี้

การติดตั้ง

CLEO 4 ได้รับการแจกจ่ายเป็นตัวติดตั้งอัตโนมัติ หากต้องการติดตั้งไลบรารี ให้รันโปรแกรมติดตั้งและปฏิบัติตามคำแนะนำ

CLEO 4.3 รองรับเกม GTA San Andreas สามเวอร์ชัน: 1.0, 1.01, 3.0 (steam)

CLEO ต้องการการติดตั้ง ASI Loader ซึ่งมาพร้อมกับไลบรารี ASI Loader เป็นโปรแกรมที่จะโหลดไฟล์ที่มีนามสกุล .asi โดยอัตโนมัติเมื่อเริ่มเกม ASI Loader จะแทนที่หนึ่งในไฟล์เกมต้นฉบับ "vorbisFile.dll" ด้วยตัวมันเอง ดังนั้น ตรวจสอบให้แน่ใจว่าคุณได้ทำสำเนาของไฟล์นี้

ไฟล์เกมอื่นๆ จะไม่ถูกแทนที่ แต่มีการเพิ่มไฟล์และโฟลเดอร์ต่อไปนี้:
- cleo\ (โฟลเดอร์ CLEO ซึ่งคัดลอกสคริปต์และปลั๊กอินทั้งหมดไปไว้ในนั้น)
- cleo\FileSystemOperations.cleo (ปลั๊กอินสำหรับการทำงานกับไฟล์)
- cleo\IniFiles.cleo (ปลั๊กอินสำหรับการทำงานกับ INI)
- cleo\IntOperations.cleo (ปลั๊กอินสำหรับการทำงานกับจำนวนเต็มในระดับบิต)
- cleo\cleo_save\ (โฟลเดอร์บันทึก CLEO)
- cleo.asi (เคอร์เนลของไลบรารี CLEO)
- bass.dll (ไลบรารีสำหรับการทำงานกับเสียง)
- vorbisHooked.dll (ตัวโหลด ASI ของ Silent)
ปลั๊กอินทั้งหมดเป็นทางเลือก แต่สคริปต์ CLEO ต่างๆ สามารถใช้ฟังก์ชันการทำงานได้

CLEO 4 เพื่อให้ San Andreas เล่นไฟล์เสียงต้องมีไลบรารี BASS.dll เวอร์ชัน 2.4 ที่ติดตั้งไว้ ซึ่งสามารถดาวน์โหลดได้จากเว็บไซต์อย่างเป็นทางการของ Un4seen Developments Ltd.

เข้ากันได้กับคลีโอ 3

CLEO มีการปรับปรุงและขยายอย่างต่อเนื่องเมื่อเวลาผ่านไป ในกรณีที่หายากมาก สคริปต์บางตัวที่เขียนสำหรับ CLEO 3 อาจไม่ทำงานกับ CLEO 4 ตั้งแต่ CLEO 4.3 เป็นต้นไป คุณสามารถเปิดใช้งานโหมดความเข้ากันได้พิเศษสำหรับสคริปต์ CLEO 3 ได้ หากต้องการดำเนินการนี้ ให้เปลี่ยนนามสกุลไฟล์สคริปต์ (โดยปกติคือ ".cs" ) เป็น ".cs3" CLEO 4.3 จะทำงานร่วมกับสคริปต์ดังกล่าวในโหมดพิเศษ ซึ่งรวมถึงการเปลี่ยนลักษณะการทำงานของคำสั่งสคริปต์บางคำสั่งด้วย ในกรณีส่วนใหญ่สคริปต์ CLEO 3 จะทำงานร่วมกับ CLEO 4 ได้โดยไม่มีปัญหาใด ๆ และไม่จำเป็นต้องใช้โหมดความเข้ากันได้

เกี่ยวกับผู้เขียน

ผู้พัฒนาไม่มีส่วนเกี่ยวข้องกับ Take 2 Interactive หรือ Rockstar Games และไม่รับผิดชอบต่อผลกระทบด้านลบที่อาจเกิดขึ้นจากการใช้ผลิตภัณฑ์นี้หรือผลิตภัณฑ์อื่นใดที่จัดจำหน่ายในห้องสมุด ใช้มันเป็นความเสี่ยงของคุณเอง

ข้อมูลเกี่ยวกับการเปลี่ยนแปลงในเวอร์ชัน 4.3 และคำอธิบายโดยละเอียดเพิ่มเติมเกี่ยวกับความสามารถของ CLEO สามารถพบได้ในไฟล์ Readme ที่มาพร้อมกับไลบรารี