[系統] shut 的修改(一)
看板mud_sanc (Sanctuary - 聖殿)作者laechan (小太保)時間18年前 (2007/10/10 19:57)推噓0(0推 0噓 0→)留言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
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
12
19