作者laechan (小太保)
看板mud_sanc
标题[wizs] special_attack 的更动
时间Mon Aug 30 15:33:13 2010
目前的做法,是在玩家身上设 special_attack 参数,
再用心跳判断 auto query special_attack 并做 shut
for(special_attack)
shut(special_attack[0],[1],[2]);
这麽写有个缺点,就是阵列累加的问题。阵列式参数无
法 easy add,通常的保险做法是先 tmps=query_special_attack,
然後做完 tmps+=({ new_special_attack })_ 之後才
set_special_attack(tmps);
在做这些事的过程中会很耗费一些资源。
当怪物攻击玩家时,判断到玩家有反击时,不能直接在
里面也 ppl->shut(mob); (上次提过,因为这实际上会
变成 mob call ppl->shut(mob) = mob 自己杀自己。
所以才有 special_attack 的存在,不过目前的写法太
差。基本原则应该是..
一、新增攻击时 call 函数(新增的项目)
二、执行攻击时 special_atttack();
三、实际运算时 data["special_attack"]+=({新增的项目})
系统还有一天才 shutdown,今晚有空我会先对这点做
修改,并给定新的栏位名。(仍旧使用 temp)
更动范围以 /std/user.c 的 876 行起为主。
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 110.27.107.67
※ 编辑: laechan 来自: 110.27.107.67 (08/30 15:34)
1F:推 justinj :变的很容易喘口气(XX)...所有的时间变的很慢... 08/30 16:29
2F:推 justinj :从recall後到出现战斗结束30sec.. 08/30 16:32
3F:→ laechan :fixed 08/30 17:37