ฉันกำลังพัฒนาเกม RPG 2d แบบคลาสสิก (ในหลอดเลือดดำคล้ายกับแฟนตาซีสุดท้าย) และฉันสงสัยว่าใครมีคำแนะนำเกี่ยวกับวิธีการทำสูตร / ลิงก์ไปยังแหล่งข้อมูล / ตัวอย่างเสียหาย? ฉันจะอธิบายการตั้งค่าปัจจุบันของฉัน หวังว่าฉันจะไม่หักโหมกับคำถามนี้และฉันขอโทษถ้าคำถามของฉันมีขนาดใหญ่ / กว้างเกินไป
สถิติตัวละครของฉันประกอบด้วย:
enum Stat
{
HP = 0,
MP = 1,
SP = 2,
Strength = 3,
Vitality = 4,
Magic = 5,
Spirit = 6,
Skill = 7,
Speed = 8, //Speed/Agility are the same thing
Agility = 8,
Evasion = 9,
MgEvasion = 10,
Accuracy = 11,
Luck = 12,
};
พลังโดยทั่วไปคือการป้องกันการโจมตีทางกายภาพและวิญญาณคือการป้องกันการโจมตีเวทมนตร์
สถิติทั้งหมดมีค่าตายตัวสูงสุด (9999 สำหรับ HP, 999 สำหรับ MP / SP และ 255 ที่เหลือ) ด้วยความสามารถสูงสุดสามารถเพิ่มได้สูงสุด (99999 สำหรับ HP, 9999 สำหรับ HP / SP, 999 สำหรับส่วนที่เหลือ) ด้วยค่าทั่วไป (ที่ระดับ 100) ก่อน / หลังความสามารถ + อุปกรณ์ + ฯลฯ จะเป็น 8000 / 20,000 สำหรับ HP, 800 / 2000 สำหรับ SP / MP, 180/350 สำหรับสถิติอื่น ๆ
ศัตรูที่ตามมาในช่วงท้ายเกม HP จะอยู่ที่ล้านคนต่ำกว่า (โดยมีหัวหน้าใหญ่ที่มีจำนวนสูงสุด ~ 12 ล้านคน)
ฉันสงสัยว่าผู้คนพัฒนาสูตรความเสียหายที่เหมาะสมที่ขยายอย่างถูกต้องได้อย่างไร ตัวอย่างเช่นตามข้อมูลนี้การใช้สูตรความเสียหายสำหรับ Final Fantasy X เป็นฐานดูน่าสนใจมาก การอ้างอิงแบบเต็มที่นี่http://www.gamefaqs.com/ps2/197344-final-fantasy-x/faqs/31381แต่เป็นตัวอย่างรวดเร็ว: Str = 127, ใช้คำสั่ง 'Attack', ศัตรู Def = 34
1. Physical Damage Calculation:
Step 1 ------------------------------------- [{(Stat^3 ÷ 32) + 32} x DmCon ÷16]
Step 2 ---------------------------------------- [{(127^3 ÷ 32) + 32} x 16 ÷ 16]
Step 3 -------------------------------------- [{(2048383 ÷ 32) + 32} x 16 ÷ 16]
Step 4 --------------------------------------------------- [{(64011) + 32} x 1]
Step 5 -------------------------------------------------------- [{(64043 x 1)}]
Step 6 ---------------------------------------------------- Base Damage = 64043
Step 7 ----------------------------------------- [{(Def - 280.4)^2} ÷ 110] + 16
Step 8 ------------------------------------------ [{(34 - 280.4)^2} ÷ 110] + 16
Step 9 ------------------------------------------------- [(-246)^2) ÷ 110] + 16
Step 10 ---------------------------------------------------- [60516 ÷ 110] + 16
Step 11 ------------------------------------------------------------ [550] + 16
Step 12 ---------------------------------------------------------- DefNum = 566
Step 13 ---------------------------------------------- [BaseDmg * DefNum ÷ 730]
Step 14 --------------------------------------------------- [64043 * 566 ÷ 730]
Step 15 ------------------------------------------------------ [36248338 ÷ 730]
Step 16 ------------------------------------------------- Base Damage 2 = 49655
Step 17 ------------ Base Damage 2 * {730 - (Def * 51 - Def^2 ÷ 11) ÷ 10} ÷ 730
Step 18 ---------------------- 49655 * {730 - (34 * 51 - 34^2 ÷ 11) ÷ 10} ÷ 730
Step 19 ------------------------- 49655 * {730 - (1734 - 1156 ÷ 11) ÷ 10} ÷ 730
Step 20 ------------------------------- 49655 * {730 - (1734 - 105) ÷ 10} ÷ 730
Step 21 ------------------------------------- 49655 * {730 - (1629) ÷ 10} ÷ 730
Step 22 --------------------------------------------- 49655 * {730 - 162} ÷ 730
Step 23 ----------------------------------------------------- 49655 * 568 ÷ 730
Step 24 -------------------------------------------------- Final Damage = 38635
ฉันเพียงแค่ปรับวงเวียนเพื่อรวมคะแนนการโจมตีของอาวุธและระดับเกราะของชุดเกราะ
คำนวณความเสียหายเวทย์มนตร์ดังนี้: Mag = 255, ใช้ Ultima, MDef ศัตรู = 1
Step 1 ----------------------------------- [DmCon * ([Stat^2 ÷ 6] + DmCon) ÷ 4]
Step 2 ------------------------------------------ [70 * ([255^2 ÷ 6] + 70) ÷ 4]
Step 3 ------------------------------------------ [70 * ([65025 ÷ 6] + 70) ÷ 4]
Step 4 ------------------------------------------------ [70 * (10837 + 70) ÷ 4]
Step 5 ----------------------------------------------------- [70 * (10907) ÷ 4]
Step 6 ------------------------------------ Base Damage = 190872 [cut to 99999]
Step 7 ---------------------------------------- [{(MDef - 280.4)^2} ÷ 110] + 16
Step 8 ------------------------------------------- [{(1 - 280.4)^2} ÷ 110] + 16
Step 9 ---------------------------------------------- [{(-279.4)^2} ÷ 110] + 16
Step 10 -------------------------------------------------- [(78064) ÷ 110] + 16
Step 11 ------------------------------------------------------------ [709] + 16
Step 12 --------------------------------------------------------- MDefNum = 725
Step 13 --------------------------------------------- [BaseDmg * MDefNum ÷ 730]
Step 14 --------------------------------------------------- [99999 * 725 ÷ 730]
Step 15 ------------------------------------------------- Base Damage 2 = 99314
Step 16 ---------- Base Damage 2 * {730 - (MDef * 51 - MDef^2 ÷ 11) ÷ 10} ÷ 730
Step 17 ------------------------ 99314 * {730 - (1 * 51 - 1^2 ÷ 11) ÷ 10} ÷ 730
Step 18 ------------------------------ 99314 * {730 - (51 - 1 ÷ 11) ÷ 10} ÷ 730
Step 19 --------------------------------------- 99314 * {730 - (49) ÷ 10} ÷ 730
Step 20 ----------------------------------------------------- 99314 * 725 ÷ 730
Step 21 -------------------------------------------------- Final Damage = 98633
ปัญหาคือสูตรแตกต่างกันอย่างสมบูรณ์เมื่อสถิติเริ่มสูงกว่า 255 โดยเฉพาะค่าการป้องกันที่มากกว่า 300 หรือมากกว่านั้นเริ่มสร้างพฤติกรรมแปลก ๆ สถิติ High Strength + Defense นำไปสู่ค่าลบขนาดใหญ่เช่น แม้ว่าฉันจะสามารถปรับเปลี่ยนสูตรเพื่อให้ทำงานได้อย่างถูกต้องสำหรับกรณีการใช้งานของฉันมันอาจจะง่ายกว่าที่จะใช้สูตรใหม่อย่างสมบูรณ์ ผู้คนพัฒนาสูตรความเสียหายได้อย่างไร ฉันกำลังพิจารณาเปิด excel และพยายามสร้างสูตรเช่นนั้น (การทำแผนที่สถิติการโจมตีเทียบกับสถิติการป้องกันเป็นต้น) แต่ฉันสงสัยว่ามีวิธีที่ง่ายกว่านี้ไหม ในขณะที่ฉันไม่สามารถถ่ายทอดกลไกเกมเต็มรูปแบบของเกมของฉันที่นี่ใครบางคนอาจแนะนำสถานที่เริ่มต้นที่ดีสำหรับการสร้างสูตรความเสียหาย
ขอบคุณ