精華區beta mud_sanc 關於我們 聯絡資訊
我預定分幾部份完成。 目前核心系統的 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