[wizs] 修正 no_damage_msg 造成的 bug
假設某群式怪物 hp 設定 15 萬,隻數 100 隻,你的某次
普攻/en 共 16 連擊,每擊 10000。
之前會造成的 bug 是因為 setdata no_damage_msg 的緣故
,使得 16 連擊合併計算為 16x10000 = 16萬,而 16 萬的
總和傷害大於怪物 hp 15萬,會造成怪物馬上死一隻。
(也就是玩家只要發動一次攻擊怪物就死一隻)
而實際上因為每一擊才 10000 不可能造成血量 15 萬的mob
馬上瞬死一隻,此即本次 bug。
修改方式是在普攻/en 的 no_damage_msg 判斷上面,在呼
叫 show 函數時多傳一個參數過去,用來代表「傳過去的傷
害為合併計算值」。
show(me,tar,"敘述",傷害,合併參數);
並將 /adm/simul_efun/show.c 的 show 函數改成 varargs
varargs void show(參數1,參數2,參數3,參數4,合併參數);
然後在 show 函數裡面只要有呼叫到 tar->receive_damage
的地方一樣傳合併參數過去..
tar->receive_damage(dam,合併參數);
接著改 /std/mob/g_attack.c,在 dam > data["hp"] 改成
if(dam > data["hp"] && 合併參數<0)
{
}
else
做相當於一擊損傷多少的判斷;
實際修改跟上面略有不同,但概念相同。
那麼理論上,原先清礦坑在 no_damage_msg 的情況下應該
是輕鬆愉快的,將會因為這個 bug 的修正,而變回「正常
難度」。
所以我一直反對一般群式怪物設定過多隻數,該 bug 修正
後隻數越多,怪物越強,越難被清掉。
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.165.189.245
→
07/23 22:47, , 1F
07/23 22:47, 1F
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
31
60