วิธีแหวนเล็งไปที่ผู้เล่น
การโจมตีของเอลลี่ขอแหวนเล็งที่มีจำนวนเริ่มต้น 16 หนึ่งผู้ช่วยคำนวณทิศทางของกระสุนแต่ละ แหวนเดียวกันสามารถเผชิญกับทิศทางที่คงที่หรือหันไปทางผู้เล่น
ใช้ REA เพื่อหาวิธีการ TH04 สร้างแหวนของกระสุนและมีจุดมุ่งหมายที่ผู้เล่น อธิบายการคำนวณและแสดงรหัส
พร้อมท์ตัวอย่างด้วยการเช็คเอาท์ที่ปฏิบัติการและการฟื้นฟูเดิมที่มีอยู่ภายใน
TH04 เก็บหมุนตามเข็มนาฬิกาเต็มรูปแบบใน 256 หน่วยมุม สำหรับ 16 กระสุน,แต่ละดัชนีเพิ่ม 16 หน่วย: 0, 16, 32, …, 240. การเพิ่มทิศทางของผู้เล่นหมุนตำแหน่งเหล่านั้นเข้าด้วยกัน
แม่แบบการยิงในแหล่งที่มาที่กู้คืน
bullet_template.angle = 0;
bullet_template.group = BG_RING_AIMED;
bullet_template.count = 16;
bullet_template_tune();
เส้นเหล่านี้เลือกรูปแบบก่อนที่จะปรับความยากลำบากและประสิทธิภาพการทำงาน อ่านแหล่งที่มาของการโจมตี.
อะไรนะ REA การคืนสินค้า
เราตรวจสอบ bullet_velocity_and_angle_set() ฟังก์ชั่นที่กำหนดความเร็วและมุมของกระสุน REA ส่งคืนคำแนะนำของรหัสปลอมและการอ้างอิง สามส่วนของผลลัพธ์นั้นอธิบายรูปแบบ
-
ตรวจสอบภาพก่อนอ่านรหัส
เจ้าหน้าที่→ REAopen_binary {"path": "MAIN.EXE"} inspect_native_load_image {}REA agent ตัวแทน·ช่องที่เลือกไว้status: "verified" format: "dos-mz" load_segment: 4096 header_bytes: 6144 module_bytes: 150114ตรวจสอบผูกโค้ดที่โหลดและระเบียนการย้ายไปยังปฏิบัติการที่ให้มา เส้นทางด้านบนจะสั้นลงสำหรับการแสดงผล
-
อ่านแหวนคูณและหาร
เจ้าหน้าที่→ REA ·analyze_function{"procedure": "0x2cfc8"}REA →ตัวแทน*ตัดตอนการเรียนการสอน0x2d0eb: MOV AX, SI 0x2d0ed: SHL AX, 0x8 0x2d0f0: MOV DL, byte ptr [0x53af] 0x2d0f9: IDIV BXSIถือดัชนีกระสุน กะคูณด้วย 256 แล้วส่วนที่ใช้นับอ่านจากDS:53AF. ชื่อแหล่งที่มาที่เก็บรักษาไว้bullet_template.count. ลำดับที่สมบูรณ์ปรากฏด้านล่าง -
หาที่รูปแบบหันไปทางผู้เล่น
ผลฟังก์ชั่นเดียวกัน*ตัดตอนมาจุดมุ่งหมาย0x2d190: SUB AX, word ptr [0x53a6] 0x2d198: SUB AX, word ptr [0x53a4] 0x2d19d: CALLF 0x1000:1da8 0x2d1a2: ADD word ptr [BP + -0x2], AXการบำรุงรักษาที่สอดคล้องกันค++group_angle_offset += iatan2( player_pos.cur.y - bullet_template.origin.y, player_pos.cur.x - bullet_template.origin.x );การเรียนการสอนดำเนินการเปิดเผยความแตกต่างสองประสานงานและผู้ช่วยทิศทาง มูลค่าผลตอบแทนของมันจะถูกเพิ่มในมุมแหวนสัมพัทธ์ ชื่อแหล่งที่มาทำให้ที่อยู่เหล่านั้นสามารถอ่านได้; REA ช่วยให้ตัวแทนตรวจสอบการดำเนินงานเดิมที่อยู่เบื้องหลังพวกเขา
จากการชุมนุมที่จะอ่านค++
เลือกขั้นตอนเพื่อให้ตรงกับคำแนะนำเดิมกับการคำนวณมุม สรุปนี้เป็นไปตามเส้นทางที่มุ่งแหวน;แหล่งที่มาเต็มรูปแบบยังจัดการแพร่กระจาย,กองและรูป
0x2cfcf: MOV SI, word ptr [BP + 0x4]
0x2d0eb: MOV AX, SI
0x2d0ed: SHL AX, 0x8
0x2d0f0: MOV DL, byte ptr [0x53af]
0x2d0f4: MOV DH, 0x0
0x2d0f6: PUSH DX
0x2d0f7: CWD
0x2d0f8: POP BX
0x2d0f9: IDIV BX
0x2d0fb: MOV word ptr [BP + -0x2], AX
0x2d18d: MOV AX, [0x4650]
0x2d190: SUB AX, word ptr [0x53a6]
0x2d194: PUSH AX
0x2d195: MOV AX, [0x464e]
0x2d198: SUB AX, word ptr [0x53a4]
0x2d19c: PUSH AX
0x2d19d: CALLF 0x1000:1da8
0x2d1a2: ADD word ptr [BP + -0x2], AX
0x2d1b9: MOV AL, byte ptr [BP + -0x2]
0x2d1bc: ADD AL, byte ptr [0x53ad]
0x2d1c0: MOV [0xbcc8], AL
unsigned char aimed_ring_angle(
int index, int count,
int player_direction,
unsigned char rotation)
{
int angle = index;
angle = (angle * 256) / count;
angle += player_direction;
angle += rotation;
return (unsigned char)angle;
}
01*อ่านดัชนีกระสุน อาร์กิวเมนต์สแต็คถูกโหลดลงใน SI. ในวงแหวนกระสุน 16 ดัชนีสมาชิกนี้ทำงานจาก 0 ถึง 15
02*พื้นที่ทิศทางรอบเปิดเต็ม SHL AX,8 คูณด้วย 256 นับเป็นศูนย์-ขยายเป็นคำแล้ว IDIV หารผลิตภัณฑ์ด้วยจำนวนที่ นับ 16 แต่ละดัชนีก้าวหน้า 16 หน่วยมุม
03*เพิ่มทิศทางของผู้เล่น สองรูปแบบการลบพิกัดผู้เล่นลบต้นกำเนิด ผู้ช่วยทิศทางกลับมุมใน AX;เพิ่มมันจะเปิดแหวนทั้งที่มีต่อผู้เล่น
04*เพิ่มการหมุนของรูปแบบ ADD AL,[0x53ad] เพิ่มมุมแม่แบบ แม่แบบเริ่มต้นของเอลลี่ชุดให้เป็นศูนย์;รูปแบบอื่นๆสามารถใช้ผู้ช่วยเดียวกันกับการหมุน
05*เก็บมุมสุดท้ายไว้ในไบต์เดียว ร้านเขียน AL ไปยังสนามวางไข่มุม ค่าห่อหลังจาก 255 เช่นเดียวกับการหล่อไบต์ที่ไม่ได้ลงนามไม่ แหล่งที่มาโดยรอบยังแปลงมุมนี้และความเร็วเป็นความเร็ว
การชุมนุมเลือกสาขาเล็งแหวน,การคำนวณจุดมุ่งหมายและเก็บสุดท้าย บทความนี้ไม่มีการอ้างอิงจากเอกสารอ้างอิงหรือแหล่งข้อมูลโปรดช่วยพัฒนาบทความนี้โด ตรวจสอบคอมไพเลอร์ด้านล่างนำไปใช้กับแหล่งที่มาของการบำรุงรักษาในโครงการที่เชื่
อ่านแหวนที่เก็บรักษาไว้และจุดมุ่งหมาย
angle_offset = (i * BULLET_ANGLE_FULL_TURN) / count;
if (i >= (count - 1)) {
group_complete = true;
}
goto aim_or_no_aim;
aim:
group_angle_offset += iatan2(
(player_pos.cur.y - bullet_template.origin.y),
(player_pos.cur.x - bullet_template.origin.x)
);
no_aim:
vector2_near(
bullet_template.velocity,
(group_angle_offset + bullet_template.angle),
speed
);
bullet_spawn_angle = (group_angle_offset + bullet_template.angle);
แมโครแหวน · จุดมุ่งหมายและแหล่งที่มาของความเร็ว · การแสดงมุม
การตรวจสอบแหล่งที่มาที่บำรุงรักษา
ร TH04 การตรวจสอบการบันทึกของโครงการรวบรวมรหัสรุ่นกระสุน,รวมทั้งผู้ช่วยนี้,กับเทอร์โบตรึงค 44.0
2,139 ไบต์ที่ตรงกัน
รหัสรุ่นกระสุนที่คอมไพล์ตรงกับส่วน 2,139 ไบต์ของปฏิบัติการเดิม
สองสร้างสะอาด
สองรุ่นที่แยกต่างหากผลิตไบต์ที่ตรงกันเดียวกัน แฮชอินพุตที่บันทึกไว้ตรงกับแหล่งที่มาที่เก็บรักษาไว้ที่แสดงที่นี่
บันทึกใน 3 ตุลาคม 2026. อ่านการตรวจสอบคอมไพเลอร์.
อัตลักษณ์เป้าหมายและขอบเขตการวิเคราะห์
| เป้าหมายเดิม | MAIN.EXE,156,258 ไบต์,เมกะไบต์ |
|---|---|
| รายการผู้ช่วย | 0x2cfc8 ใน REAภาพโหลดของ |
| ชดเชยแฟ้มต้นฉบับ |
0x1e7c8,ส่งคืนโดย address_to_file_offset
|
| การตรวจสอบรหัสที่บันทึกไว้ | REA4.1.0·7 ตุลาคม 2026 |
ตรวจสอบคอมไพเลอร์ครอบคลุมส่วนโค้ดเพิ่มกระสุนที่สมบูรณ์รวมถึงตัวช่วยนี้ พวกเขายังเปรียบเทียบการมีส่วนร่วมของแผนที่และการย้ายที่ทับซ้อนกัน
REA ตรวจสอบภาพโหลดแบบคงที่ที่ส่วนโหลด 0x1000. ที่อยู่ของมันอธิบายภาพการวิเคราะห์นั้น ผลฟังก์ชันรายงาน 503 ไบต์ร่างกายในสองช่วงข้ามช่วง 517 ไบต์;คำแนะนำที่เลือกข้างต้นอยู่ในช่วง
ชื่อแหล่งที่มาและการตรวจสอบคอมไพเลอร์มาจาก TH04 ด่านตรวจ 0d72e980. การสังเกตการฟื้นฟูก่อนหน้านี้ใช้สคริปต์การวิเคราะห์ของตัวเองของโครงการ;หน้านี้จะเพิ่ REA การตรวจสอบของเป้าหมายเดิมเดียวกัน ตัวตนของเกมที่ให้มาถูกตรึงโดยที่ประจักษ์พื้นที่เก็บข้อมูลที่มีแหล่งที่มาที่เก่าแก่การถ่ายโอน
รูปที่แสดงให้เห็นถึงการคำนวณมุม การควบคุมเต็มรูปแบบเกมระยะเวลาและ PC-98 รวจสอบรันไทม์แยกต่างหากในโครงการฟื้นฟู
เต็ม TH04 การฟื้นฟู
งการสร้างเกมสี่ผลิตภัณฑ์ดอสจากการบำรุงรักษาซีซีและการชุมนุม นอกเหนือจากการสร้างกระสุน,แหล่งที่มาครอบคลุมขั้นตอนผู้บังคับบัญชา,การแสดงผล,การป้อ
- แหล่งกำเนิดกระสุนผู้ช่วยที่สมบูรณ์ประเภทรูปแบบอื่นๆและการปรับแต่งแม่แบบ
- สร้างและเรียกใช้คู่มือมีทักษะในการสื่อสารการเจรจาต่อรองและการเจรจาต่อรอง PC-98 เวิร์กโฟลว์จำลอง
- สถานะโครงการปัจจุบัน64 พอร์ต