Re: [分享] MO 網頁多人線上RPG
看板Little-Games (小遊戲)作者TWayne (TWin)時間12年前 (2012/10/30 17:05)推噓91(91推 0噓 351→)留言442則, 17人參與討論串6/142 (看更多)
一直受戰鬥模擬的奇怪結果所惑,
受bachw大的激勵查了下戰鬥模擬網站的程式碼,在這做個整理。
----------------------------------------------------------
先簡介下運算時會用到的素質和直覺性的效果聯想:
玩家能力素質
命中:accuracy 瞄準:aim 最終命中(簡稱pa):accuracy + aim/2
掌管造成傷害與否,決定是否打出0傷害(Miss)的屬性
力量:strength 威力:power 最終威力(簡稱ps):strength + power/2
影響攻擊力多寡的屬性,越高造成的傷害也越多
防禦:defense 裝甲:armour 最終防禦(簡稱pd):defense + armour/3
防禦怪物傷害的屬性balabala
血量:health
-----------------------------------------------------------
怪物能力素質和玩家差不多便不贅述
怪物攻擊和玩家攻擊使用一樣的公式,這邊以玩家攻擊怪物為例,
只使用血量和防禦兩素質,
分別以mh和md代替。
-----------------------------------------------------------
接下來就是重點啦,傷害計算公式
function calcdmg(a,b,d){
a = (a/5) * Math.random()+1;
b= Math.max(0,d-b) * Math.random();
return Math.max(Math.ceil(a-b),0);
}
就是這麼簡單的公式掌管了怪物和玩家的生死。
稍微改變下變數的名稱
function calcdmg(pa,ps,md){
pa = (pa/5) * Math.random()+1;
ps = Math.max(0,md-ps) * Math.random();
return Math.max(Math.ceil(pa-ps),0);
}
Dala~ 傷害就這樣出來了,後面就是血量減傷害判斷死亡死否的部份,暫且忽略。
一部份一部份來看。
第一行 pa = (pa/5) * Math.random()+1
pa 是玩家的命中率,除五簡單易懂,
Math.random() 是變數,其值在 0~1 之間,後面+1防止為0的狀況(基本攻擊力)。
眼間的朋友就發現了,這該死的命中率影響了傷害值(後面會再補充)。
第二行 ps = Math.max(0,md-ps) * Math.random()
ps 是玩家力量,md是怪物防禦,
Math.max(0,md-ps),意思為在括弧內兩變數間取最大值代入,
結果這裡計算的是對怪物防禦的穿甲值 ,
最大(ps = md時)可以把怪物防禦歸零。
第三行 Math.max(Math.ceil(pa-ps),0)
Math.max前面談過了,Math.ceil意指四捨五入。
這邊就很簡單了,把造成的傷害減去剩餘的裝甲值,
若大於零擇造成傷害,小於零擇被迴避...或者應該說被硬吃了下來。
---------------------------------------------------------
玩家命中越高,造成傷害越高
玩家力量越高,無視的怪物防禦越高
.........等等!!
---------------------------------------------------------
在線上被更正,說力量值和命中值應該要反過來,再次確認程式碼後發現並沒有錯。
看到推文提到官方wiki的戰鬥模擬,便去找了程式碼來看。
以下是程式碼+結論:
for(var i=0;i<10000;i++) {
var d = FIGHT.calculate_damage(total_strength, total_accuracy,
AGAINST_BASE[against].total_defense);
cumm+=d;
if(dmg[d] > 0) {
dmg[d]++;
} else {
dmg[d] = 1;
}
}
直接結論!!
就是那http://t2.tomimg.com/rpg2.php戰鬥模擬的力量和命中打反了...Orz
玩家力量越高,造成傷害越高
玩家命中越高,無視的怪物防禦越高
要用上面連結的話Acc和Str記得反過來打嘿...
--
噓
01/13 10:31,
01/13 10:31
噓
01/13 10:32,
01/13 10:32
噓
01/13 10:33,
01/13 10:33
噓
01/13 10:36,
01/13 10:36
噓
01/13 10:42,
01/13 10:42
噓
01/13 10:45,
01/13 10:45
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.34.34.166
※ 編輯: TWayne 來自: 1.34.34.166 (10/30 17:07)
※ 編輯: TWayne 來自: 1.34.34.166 (10/30 17:08)
推
10/30 17:15, , 1F
10/30 17:15, 1F
推
10/30 17:19, , 2F
10/30 17:19, 2F
推
10/30 17:21, , 3F
10/30 17:21, 3F
推
10/30 17:23, , 4F
10/30 17:23, 4F
→
10/30 17:24, , 5F
10/30 17:24, 5F
→
10/30 17:24, , 6F
10/30 17:24, 6F
→
10/30 17:26, , 7F
10/30 17:26, 7F
→
10/30 17:28, , 8F
10/30 17:28, 8F
→
10/30 17:29, , 9F
10/30 17:29, 9F
推
10/30 17:29, , 10F
10/30 17:29, 10F
→
10/30 17:30, , 11F
10/30 17:30, 11F
推
10/30 17:32, , 12F
10/30 17:32, 12F
推
10/30 17:35, , 13F
10/30 17:35, 13F
→
10/30 17:43, , 14F
10/30 17:43, 14F
→
10/30 18:15, , 15F
10/30 18:15, 15F
→
10/30 18:37, , 16F
10/30 18:37, 16F
→
10/30 18:46, , 17F
10/30 18:46, 17F
→
10/30 18:46, , 18F
10/30 18:46, 18F
→
10/30 18:47, , 19F
10/30 18:47, 19F
→
10/30 18:55, , 20F
10/30 18:55, 20F
※ 編輯: TWayne 來自: 1.34.34.166 (10/30 19:08)
→
10/30 19:24, , 21F
10/30 19:24, 21F
→
10/30 19:25, , 22F
10/30 19:25, 22F
→
10/30 19:26, , 23F
10/30 19:26, 23F
推
10/30 19:26, , 24F
10/30 19:26, 24F
→
10/30 19:28, , 25F
10/30 19:28, 25F
→
10/30 19:29, , 26F
10/30 19:29, 26F
→
10/30 19:32, , 27F
10/30 19:32, 27F
→
10/30 19:33, , 28F
10/30 19:33, 28F
→
10/30 19:39, , 29F
10/30 19:39, 29F
→
10/30 19:39, , 30F
10/30 19:39, 30F
→
10/30 19:40, , 31F
10/30 19:40, 31F
還有 371 則推文
推
11/01 21:48, , 403F
11/01 21:48, 403F
→
11/01 21:48, , 404F
11/01 21:48, 404F
→
11/01 21:55, , 405F
11/01 21:55, 405F
推
11/01 22:01, , 406F
11/01 22:01, 406F
→
11/01 22:06, , 407F
11/01 22:06, 407F
→
11/01 22:25, , 408F
11/01 22:25, 408F
→
11/01 22:26, , 409F
11/01 22:26, 409F
→
11/01 22:27, , 410F
11/01 22:27, 410F
→
11/01 22:33, , 411F
11/01 22:33, 411F
→
11/01 22:36, , 412F
11/01 22:36, 412F
→
11/01 22:37, , 413F
11/01 22:37, 413F
→
11/01 22:37, , 414F
11/01 22:37, 414F
→
11/01 22:38, , 415F
11/01 22:38, 415F
推
11/01 22:39, , 416F
11/01 22:39, 416F
→
11/01 22:39, , 417F
11/01 22:39, 417F
→
11/01 22:41, , 418F
11/01 22:41, 418F
推
11/01 23:01, , 419F
11/01 23:01, 419F
→
11/01 23:02, , 420F
11/01 23:02, 420F
推
11/01 23:13, , 421F
11/01 23:13, 421F
→
11/01 23:17, , 422F
11/01 23:17, 422F
推
11/01 23:18, , 423F
11/01 23:18, 423F
→
11/01 23:18, , 424F
11/01 23:18, 424F
→
11/01 23:19, , 425F
11/01 23:19, 425F
→
11/01 23:20, , 426F
11/01 23:20, 426F
→
11/01 23:28, , 427F
11/01 23:28, 427F
推
11/01 23:34, , 428F
11/01 23:34, 428F
推
11/01 23:37, , 429F
11/01 23:37, 429F
推
11/01 23:41, , 430F
11/01 23:41, 430F
→
11/01 23:46, , 431F
11/01 23:46, 431F
→
11/01 23:49, , 432F
11/01 23:49, 432F
推
11/01 23:52, , 433F
11/01 23:52, 433F
→
11/02 00:16, , 434F
11/02 00:16, 434F
推
11/02 00:18, , 435F
11/02 00:18, 435F
推
11/02 00:19, , 436F
11/02 00:19, 436F
→
11/02 00:28, , 437F
11/02 00:28, 437F
推
11/02 00:45, , 438F
11/02 00:45, 438F
推
11/02 03:40, , 439F
11/02 03:40, 439F
→
11/02 04:40, , 440F
11/02 04:40, 440F
推
11/02 06:28, , 441F
11/02 06:28, 441F
→
11/02 08:27, , 442F
11/02 08:27, 442F
討論串 (同標題文章)
Little-Games 近期熱門文章
PTT遊戲區 即時熱門文章