[系統] shut 的修改(一)

看板mud_sanc (Sanctuary - 聖殿)作者 (小太保)時間18年前 (2007/10/10 19:57), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
我預定分幾部份完成。 目前核心系統的 shut 部份已經使用內迴,但是還無法讓 wiz 透過修改 shut 內的參數來達到 n 連發的效果。 這個最近會搞定。 我發現 shut 目前的呼叫流程是... mob->shut => shut->USER_D->shut => shut->SHUT_D->shut_tar 這個太浪費了,因為 USER_D 與 SHUT_D 都是外部程式,實際 上是可以省略中間的 USER_D->shut, 直接 SHUT_D->shut_tar 的。 這不僅可以實質減少一個物件呼叫,日後內迴實裝時還能實際 減少 n-1 個物件呼叫(原本 n 個呼叫變成 1 個呼叫就解決)。 修改計劃如下,以 user 為例.. /std/user/attack.c ======================================================= varargs int shut(string msg,int damage,int chance,string kind,object tar) { USER_D-> shut(me, msg, damage, chance, kind, tar); } 改成.. varargs int shut(string msg,int damage,int chance,string kind, object tar,int times) { if(!tar) if(! tar=me->query_current_attacker()) return 1; if(!times) times=1; SHUT_D->shut_tar(me,tar,msg,damage,chance,kind,times); return 1; } 日後再實裝 mixed kinds。 Laechan -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.231.234.210
文章代碼(AID): #173BuU6Q (mud_sanc)
文章代碼(AID): #173BuU6Q (mud_sanc)