Saya berasumsi ini adalah pertanyaan keseimbangan permainan dan bukan pertanyaan pengkodean, dan ada banyak cara untuk mengatasinya. Dari algoritma yang ada, saya curiga Anda membuatnya lebih rumit dari yang seharusnya (tiga atribut DAN angka acak dibuat untuk sistem yang sangat berlumpur dari sudut pandang pemain). Naluri pertamaku adalah menyederhanakan!
Atribut atribut yang melakukan banyak hal, bukan hasil yang ditentukan oleh banyak atribut. DEX berfungsi dengan baik sebagai penentu utama peluang to-hit; penambahan semua yang lain hanya berfungsi untuk membuat keseimbangan menjadi lebih sulit. Pikirkan seperti ini: Kerusakan yang diharapkan pemain pada setiap pukulan adalah to-hit mereka% dikalikan dengan kerusakan rata-rata mereka ketika mereka memukul. Bagaimana Anda berencana untuk menghitung% yang "diharapkan" atau "khas" dengan banyak variabel?
Saya melihat masalah lain, yaitu rumus Anda tidak menskala, dan ini mungkin yang Anda alami. Dengan asumsi DEX, LUCK dan SPEED cenderung meningkat selama permainan, perbedaan antara pemain dan monster dalam statistik tersebut juga akan cenderung meningkat. Seperti contohnya, jika DEX permainan awal pemain ada dalam kisaran 4 hingga 6 dan begitu juga monster, itu adalah 10-20% to-hit modifier. Jika rentangnya lebih seperti 10 hingga 20 di tahap-tahap selanjutnya dalam permainan, itu adalah pengubah hingga 100%.
Salah satu cara untuk memperbaikinya adalah dengan menjaga statistik tetap. Rentang pemain dan monster sama sepanjang permainan, dan mendapatkan sesuatu seperti +1 DEX adalah masalah besar, sangat langka, dan diperlakukan seperti itu (jika ada sama sekali). Kemudian formula Anda akan bekerja dengan baik untuk seluruh permainan, dan Anda akan melihat seorang pemain dengan peluang hit yang sama di seluruh.
Cara lain adalah mengubah "10" hardcode ke skala dengan level, jadi mungkin itu "10 + level monster" atau "10 + level bawah tanah" atau sesuatu, yang menyebabkan sedikit peningkatan kesulitan saat permainan berlangsung kecuali permainan naik level kecuali pemain naik level statistik mereka sesuai.
Cara ketiga, seperti yang dikatakan orang lain, adalah menetapkan batas tertinggi pada% hit tertinggi yang dapat diterima, dan hanya mengatakan "jika nilai yang dihitung kurang dari X, gunakan X sebagai gantinya".
Demi kelengkapan, saya akan menunjukkan bahwa tidak ada hukum mutlak yang Anda HARUS sertakan roll to-hit di tempat pertama. Mengambil tindakan dalam permainan yang tidak efektif tidak terlalu menyenangkan, dan tidak benar-benar menambah pengalaman kecuali dalam kasus yang jarang terjadi. Alternatifnya adalah membiarkan pemain SELALU memukul, dan hanya mengacaukan kisaran kerusakan sehingga terkadang mereka akan melakukan kerusakan jauh lebih sedikit daripada yang lain. Ingatlah bahwa sistem yang kompleks lebih menyenangkan bagi perancang daripada pemain.