[wizs] 最近上資料倉儲剛好上到的一個部份
資料倉儲有講到「合計表格」的概念,依我自己的理解,它的大意
是說,例如我們經常要用到某個數值..
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)
推
10/29 20:01, , 1F
10/29 20:01, 1F
→
10/29 20:05, , 2F
10/29 20:05, 2F
→
10/29 21:41, , 3F
10/29 21:41, 3F
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
35
58
120
255