[wizs] 修正 no_damage_msg 造成的 bug

看板mud_sanc (Sanctuary - 聖殿)作者 (小太保)時間12年前 (2013/07/23 22:33), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
假設某群式怪物 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
文章代碼(AID): #1HxfGlLe (mud_sanc)
文章代碼(AID): #1HxfGlLe (mud_sanc)