Re: [巨集] 技能冷卻中施放寫法

看板 WOW
作者 zonhan (我願與妳共舞)
時間 2011-08-11 01:50:06
留言 34則留言 (8推 0噓 26→)

: ※ 引述《lunaangel (淹死在沙灘的魚)》之銘言: : : 其實會出現這樣的狀況的原因很簡單,就是BLZ為了體恤大眾而在4.0加入的功能: : : 自訂延遲容許值 : : 這個功能主要是為了避免玩家因延遲過高,而造成技能施放不順所增加的。 : 這篇比較有價值回,也比較有跟到各種狀況 : 故回應於此篇: : 1.2010.10.14(四) : 「浩劫與重生前夕」當天晚上,還沒砸壞的暴風城木人區 : 就已實測出 : a.延遲施法佇列改動 : b.巨集/連續施法,受到延遲施法佇列改動影響的異常行為 : 並將後者回報GM : (延遲施法佇列的變動一般台灣使用者無法於Patch中得知) : http://www.wowtaiwan.com.tw/03Gameguide/patchnotes/detail.asp?id=76 : 2.2010.11.11(四) : k0286版友撰文分享 [心得] 4.0施法佇列機制探討 : 分享了他大量測試後的前部分結果 : a.實測施法佇列機制用於巨集,能容納下一個法術 : 對於有(無)CD,有(無)GCD,以及瞬發(含導引)與念咒 : 各種交叉測試比對 : b.施法完畢後在gcd的同時,另外押一個法術,這個法術會直接排入下個施放佇列 : 但施放/施放 寒冰箭 : /施放 冰霜長矛 : 即便按的快也無法達到效果 : c.提出下面兩者可能會影響施法佇列 (因為按的速度與結果無法完全配合) : 顯示設定 > 進階 > 降低延遲 : 介面設定 > 技能 > 技能觸發保險 : 關於這三點的回應是 : d.施法佇列用於巨集,關鍵在於:延遲容許期間上層遮罩的抹除 : 建議使用/連續施法,進行進一步的測試 : 會有更豐碩的發現 事實上並沒有上層遮罩這種東西 你所謂的遮罩其實是延遲和施法佇列系統存在下的必然結果 先來瞭解技能施放的過程好了: Player Client Network Server ───── ───────────────── ──── ─────── 無法施放 ↑ │yes 無施放中 │ 進入 技能 施放開始 處理施法時間後 按技能1 →判定cd┴─→施法佇列─────→並送出訊息──→ 判定施法完成 ↑ no ↑ │ │ │ │ 按技能2 ─┘ │ │ │ │ │ │ └──────────────────┘ 送回施法完成訊息 注意, "施法開始"和"施法完成"是由兩個不同機器去判定的!! 為了減少程式和網路負擔, 技能由client判斷後, 才決定要不要送出訊息 由於存在延遲, 因此blizzard設計出"單一技能施法佇列", (當前佇列只能儲存一個未cd中技能) Server端處理並判定施法完成後, 會直接接受一定時間內佇列所存放的下個技能 但是當多個技能同時送到佇列時, 要怎麼判斷存哪個咧? 為了避免延遲造成誤判, 此佇列會忽略短時間內與目前施法中技能相同者 舉個例來說 像是 /cast 懲擊 (無cd) /cast 神聖之火 (有cd) 這樣的巨集其實就是同時送出兩個技能(其實還是有時間差只是很短) 當神聖之火在cd時按下巨集, 神聖之火會判定無法施放被擋掉, "/cast 懲擊"排進佇列 而神聖之火cd完後按下巨集, 則會同時送出兩個/cast, 但是注意!! 這時還未收到前一個懲擊的施法完成訊息, 因此巨集裡的"/cast 懲擊"會被丟掉, "/cast 神聖之火"得以擠進佇列 (好像提到重點了...) 如果把巨集換成 /cast 神聖之火 (有cd) /cast 懲擊 (無cd) 這樣神聖之火cd時, Client直接判定cd中而停止運作巨集(也就是卡鍵 因此連"/cast 懲擊"都送不出去 (就想成當client判定cd中時會把按鍵鎖住讓它不能送出cast訊息) : e.施法佇列機制於巨集之外的「一般技能」按鈕也有一樣現象 : 只要在k板友提出的「能將東西放入施法佇列」的期間 : 就一路開始猛按直到前項技能念咒結束,就可以生效 : 因為我是採用閃電箭與大地震擊可以 : 當下我並不懂為什麼寒冰箭與冰霜長矛不行 : 測試後配合推文幾位板友的角度,知道最可能是猛按的模式不同 : 故猛按要從gcd快轉完就開始,而非念咒快結束才開始 : 且使用者本身的網路延遲要長 : 我認為此項改動的重點在於 (當時我使用的是元素薩) : 擴充以往"念咒技能-念咒技能"的預唱施法延遲補貼 : 使瞬發、導引、念咒都能具有類似的補償 : f.tiros板友在推文說明這個隊列(佇列)的反應時間在beta是可以調整的 : : 這個功能就是在設定的時間內,可以在第一個技能施放時按其他技能, : : 其他技能就能加入自動施法佇列,但只限一個技能加入! : : 其實這根本跟巨不巨集一點關係也沒有 =.= : 如上述e所說,任何技能只要延遲夠按法正確 : 不需要巨集也可以送進施法佇列,因此當然可以說跟巨不巨集真的無關 : 巨集可以發揮更強大的效果是一回事 : 但上述d中的異常效應卻有問題 : e施法延遲當然不是bug,但是d可以說是bug : 由於相關分享都停留在沒發現遮罩移除的d的程度 : 整個wow板聽過巨集中「遮罩移除足以稱為bug這件事」的人沒幾個 所以這並不是bug, 而是為了處理延遲所產生的必然結果 : : /cast A : : /cast B : : 這種巨集,就跟你狂按A,B兩技能是一樣意思的。 : 不一樣 因此是一樣的 -- 順序是在按下巨集前Client端的判斷 當送出訊息後因為延遲處理把兩技能視為同時送到
※ 批踢踢實業坊(ptt.cc)
※ 文章網址: https://www.ptt.cc/bbs/WOW/M.1312998609.A.FB5.html

zseineo:推專業 08/11 03:25

Ithildin:順序有影響 有時間差 哪裡一樣 08/11 08:21

Ithildin:還是說狂按AB和狂按BA是不一樣的事情 手指有時間差 08/11 08:21

choosin:你的最後一段有點怪 macroAB=AB狂按 macroBA=BA狂按 08/11 10:35

choosin:可是你上面已經說過macroAB =\=macroBA 08/11 10:36

choosin:然後如果處理延遲「意外」造成巨集可以用起來似乎判斷CD 08/11 10:42

choosin:那說是BUG並不為過 08/11 10:42

bniw:Exploit 08/11 11:11

HQ1030:這其實不太算bug,是網路延遲造成的問題 08/11 11:32

bniw:Bug只是一種說法,不喜歡被叫Bug可以換成別的詞,總之這並不 08/11 11:36

bniw:是bz希望看到的東西 08/11 11:37

salami:我跟我哥討論過 其實4.0還是有巨集方面的問題 08/11 12:55

salami:不是只有在佇列方面更動而已 這件事情用巨集圖示就能證明 08/11 12:56

salami:不過這篇間接證實了 當時我所說 典型必有兩行/cast這件事情 08/11 13:00

salami:總之佇列的更動是事實 不過不代表巨集沒有問題 08/11 13:01

salami:結論這樣下也好 省得我們在解釋更多巨集問題的細節 08/11 13:02

ironsalami:不正確 不過要當一樣也好 畢竟解釋再多也沒必要 08/12 05:03

ironsalami:只說明三個要點 08/12 05:04

ironsalami:1.使用/連續施法巨集測試 08/12 05:04

ironsalami:2.使用多層/連續施法巨集中的觀察寫法 觀察逐行動態 08/12 05:05

ironsalami:3.懲擊會被丟掉 那其他寫法到底是"什麼"會被丟掉呢 08/12 05:07

ironsalami:在未知的東西前面 每個人都是無所立足的 08/12 05:09

ironsalami:只有已經到過的人才會知道怎麼回事 其他懶得說了 08/12 05:09

ironsalami:巨集在每次施放都重新編譯 並且列為各式"物件" 以上 08/12 05:10

ironsalami:很久以來 我在其他板 總是很明確地感受到沒經歷過的人 08/12 05:11

ironsalami:只要他沒有親身經歷過 講再多 不一樣的東西也還是一樣 08/12 05:12

ironsalami:多少個夜晚別人在推raid進度 多少可以趴著睡一下的午後 08/12 05:14

ironsalami:如果已經有知道的人能跟我提醒一下 10%也可 那多好 08/12 05:16

ironsalami:剩下的90%我願意自己去劈荊棘 自己去找路踏地圖 08/12 05:17

ironsalami:現在的人 有九成是希望一下子就無代價拿到答案的 08/12 05:21

ironsalami:而剩下一成的人 只怕是答案就放在眼前還是不肯去面對 08/12 05:21

ironsalami:因為面對它要傾覆的代價彷彿太高了 08/12 05:24

ironsalami:這就是生命中總是要面對的生之欲望 與破滅的恐懼 08/12 05:25

ironsalami:但那些東西都是虛幻的 重點是那背後究竟是如何 08/12 05:26

您可能感興趣