作者laechan (小太保)
看板mud_sanc
标题[系统] shut 的修改(一)
时间Wed Oct 10 19:57:16 2007
我预定分几部份完成。
目前核心系统的 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