ฉันไม่เคยเห็นแหล่งข้อมูลมากมายในเรื่องนี้เช่นกัน แต่สิ่งที่ดีที่สุดที่ฉันพบคือ:
มันให้ข้อมูลเชิงลึกเกี่ยวกับศัตรู AI เช่นนี้:
AI: Setup
{
TempVar:TurnsUntilGrenade = 3
TempVar:GrenadeAmmo = 4
}
AI: Main
{
If (Stage == 0) Then
{
If (TempVar:TurnsUntilGrenade == 0) Then
{
If (TempVar:GrenadeAmmo > 0) Then
{
Choose Random Opponent with Lowest HP
Use Hand Grenade on Target
TempVar:GrenadeAmmo = TempVar:GrenadeAmmo - 1
TempVar:TurnsUntilGrenade = 3
} Else {
Choose Random Opponent with Lowest HP
Use <Machine Gun> on Target
}
} Else {
Choose Random Opponent
Use <Machine Gun> on Target
TempVar:TurnsUntilGrenade = TempVar:TurnsUntilGrenade - 1
}
} Else {
If (TempVar:GrenadeAmmo > 0) Then
{
Choose Random Opponent with Lowest HP
Use Hand Grenade on Target
TempVar:GrenadeAmmo = TempVar:GrenadeAmmo - 1
} Else {
Choose Random Opponent
Use <Machine Gun> on Target
}
}
}
AI: Counter - General
{
If (Grenade Combatant's HP <= 3 * [Grenade Combatant's Max HP / 4]) Then
{
Stage = 1
} Else {
Stage = 0
}
}
ด้วยวิธีนี้คุณจะเห็นได้ว่าศัตรูของคุณอาจต้องใช้กลไกของรัฐในการจัดการสถานะต่าง ๆ ที่พวกเขาสามารถทำได้และแต่ละรัฐจะมีพฤติกรรมของตัวเองในการดำเนินการในแต่ละเทิร์นไม่ว่าจะเป็นฮาร์ดโค้ดหรือศัตรู ภาษา.
มีการเปลี่ยนแปลงมากมายระหว่าง JRPG ที่ใช้เทิร์นดังนั้นจึงไม่มีกฎสำหรับพวกเขาทั้งหมด ตัวอย่างเช่นคุณสามารถออกคำสั่งปาร์ตี้ทั้งหมดก่อนที่จะเกิดขึ้นหรือพวกเขาสามารถเกิดขึ้นทันทีหลังจากเลือก ลำดับการโจมตีอาจเป็นแบบสุ่มหรือบ่อยครั้งขึ้นอยู่กับสถิติความเร็ว
แต่ตัวอย่างเช่นสมมติว่าคุณมีระบบการต่อสู้แบบเทิร์นเบสล้วนๆซึ่งคุณจะต้องออกคำสั่งปาร์ตี้ทั้งหมดก่อน คุณสามารถเข้าใกล้มันเช่น:
- เก็บเอนทิตีทั้งหมด (ผู้เล่น + ศัตรู) ที่เข้าร่วมในการต่อสู้ในรายการ
- สำหรับผู้เล่นแต่ละคนในรายการรับอินพุตและเก็บไว้
- เรียงลำดับรายการเอนทิตีตามคุณลักษณะความเร็ว
- สำหรับแต่ละเอนทิตีในรายการหากผู้เล่นดำเนินการกระทำที่เก็บไว้มิฉะนั้นเรียกใช้สคริปต์ AI สำหรับสถานะปัจจุบัน
- ล่วงหน้าแล้วเลี้ยวซ้ำ
รบกลศาสตร์คำถามที่พบบ่อยนอกจากนี้ยังมีจำนวนมากของข้อมูลที่เป็นประโยชน์โดยเฉพาะอย่างยิ่งเกี่ยวกับการบริหารจัดการเวลาในการต่อสู้ แต่น่าเสียดายที่ระบบนี้ (ATB หรือ Active Time Battle) ได้รับการจดสิทธิบัตรดังนั้นคุณจึงไม่สามารถทำอะไรที่คล้ายคลึงกันได้
แก้ไขฉันเพิ่งพบเว็บไซต์นี้ซึ่งให้ข้อมูลทางเทคนิคมากมายเกี่ยวกับการใช้ FF7 น่าเสียดายที่ส่วนโมดูลการต่อสู้ยังไม่ได้เขียนอย่างสมบูรณ์