大致修正了兩個地方, 一個是誤把空物件(0)丟去戰鬥相關
函數因而產生的相關問題, 一個是 new_defence 函數的回
傳值(array)錯誤造成的相關問題。
new_defence 主要傳回一個 array..
dresult = ({ 傷害的計算後修正值, "傷害的訊息" })
一般就令 damage = dresult[0], str = dresult[1]
在 /adm/daemons/user_d.c 及 /adm/daemons/shut_d.c
都會看到類似的東西.
我發現它有時會 return 空集合, 目前暫時是先以加判斷
來解決, 未來就是直接改 new_defence 函數來解決.
特別提這個是因為 new_defence 函數的由來就是先前寫在
/adm/daemons/fight_d.c 裡的 defence 函數, 將其改寫
成 simul_efun 而來的, 而今會跑出上述問題, 就代表該
問題以前就已經存在過.
defence 函數被設計為不管是任何判斷情況都會有回傳值
, 最基本的就是 ({ 0 , "" }) 這樣的東西, 這東西當然
不能隨便定為預設回傳(不然有時應該造成傷害卻反而會
無傷害).
有空時我再看看 new_defence.
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 115.82.96.162