作者laechan (小太保)
看板mud_sanc
标题[wizs] 最近上资料仓储刚好上到的一个部份
时间Wed Oct 29 12:02:00 2008
资料仓储有讲到「合计表格」的概念,依我自己的理解,它的大意
是说,例如我们经常要用到某个数值..
n = (int)ppl->query("xx1") + (int)ppl->query("xx2") +
(int)ppl->query("xx3");
然後我们会很经常用到 n 这个值,那用到时就得去 query 玩家身
上的 xx1、xx2、xx3,然後再「合计」它们的 sum 结果後产生出
n 这个值。
那一个很直觉的想法就是,既然 n 很常用到,而且它的计算规则
也是固定的,那 n 是不是可以先预读起来放着哩?
答案当然是可以的,例如..
set("xx",n);
那以後要用到 n 时就只需要 ppl->query("xx"); 就可以读出 n 了
这个概念以及运用,在圣殿是很重要的,bdlen 一个很经典的例子
就是...
TEMP DATA :
dodge : ({ 0, 5414, 2400 })
玩家 temp data 区的这个资料是怎麽来的呢?
/d/skill/basesk.c
bdlen 发现在做玩家格挡/闪躲/招架的判断时总是要读玩家的一堆
数值资料并做计算,但实际上有部份的数值其实是...
1)常保固定的
2)变动幅度小到可以忽略的
3)可以忽略其变动的
这时候这些数值就可以先行预读出来并做完计算後设入 dodge 中,
则当要做格挡/闪躲/招架的判断时就不用再去读玩家的一堆数值资
料,只要读 dodge 中的资料「再读其它几个必要的资料」就可以了
,读资料的步骤可以省略很多,相对就能提高执行效能。
那何时产生 dodge 这个资料值呢?就是在玩家登入的时候。
我自己在圣殿也是有一些这方面的运用啦,不过很多都不是在数值
的计算上就是了XD
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
※ 编辑: laechan 来自: 218.170.229.211 (10/29 12:03)
1F:推 bahatest :打怪会不会死,登入就决定了 10/29 20:01
2F:→ bahatest :就像幸福或困苦,出生就决定了 10/29 20:05
3F:→ laechan :楼上小心泄漏圣殿机密喔 10/29 21:41