[wizs] 最近上資料倉儲剛好上到的一個部份

看板mud_sanc (Sanctuary - 聖殿)作者 (小太保)時間17年前 (2008/10/29 12:02), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
資料倉儲有講到「合計表格」的概念,依我自己的理解,它的大意 是說,例如我們經常要用到某個數值.. 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
文章代碼(AID): #191-0xfK (mud_sanc)
文章代碼(AID): #191-0xfK (mud_sanc)