作者dustlike (灰塵)
看板KanColle
標題Re: [閒聊] 中破進擊->開場大破
時間Thu Jan 2 17:27:53 2014
來聊點跟檯面下的機制有關的事
這遊戲在戰鬥開始時客戶端會送個指令告知伺服器"我開始戰鬥了"
嚴格來說這個時間點是點下陣型後到顯示"戰鬥開始"這四個字之間
當網路慢或是伺服器負荷大導致延遲大的時候,這之間的空隙就會變得很明顯
然後伺服器就會傳戰鬥序列資料回來,
所以攻擊順序、攻擊目標、是否命中、造成多少傷害都是在這時候傳給玩家
遊戲程式就依據這個資料演出海戰動畫。
戰鬥結束後客戶端會發一個請求戰鬥結果的指令,伺服器傳來的資料就是戰鬥結算畫面
在你關掉戰鬥結算畫面到顯示進擊/撤退之間會再有一次資料傳送
這次送的資料是用來同步艦隊資訊、全船艦資訊與裝備資訊
所以如果戰鬥序列的損傷資訊跟後來全船艦血量資訊彼此不同步會發生什麼事?
大概就像這次莫名其妙少了16HP,以及之前滿血被擊沉又立刻復活的驚悚鬧劇
至於這影片能不能偽造...確實有軟體可以截獲封包並修改後再餵給目標程式
不過天下bug百百種 這種程度的bug也不是不可能...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.138.100
※ 編輯: dustlike 來自: 140.113.138.100 (01/02 17:30)
1F:→ Shift2:THX 才在上篇文推完 就有人回答了 01/02 17:29
2F:→ Shift2:不過按照這個說法,玩家基本上沒辦法對戰鬥結果動手腳? 01/02 17:32
3F:推 ilen0129:所以打爆王跳貓悲劇是請求戰鬥結果指令斷掉了?? 01/02 17:33
4F:→ dustlike:yes 那個E4完全慢心UC提督就是碰到這種狀況www 01/02 17:34
5F:→ dustlike:請求戰鬥結果的封包沒送出 伺服器就當你打到一半中斷 01/02 17:34
6F:→ Yijhen0525:我想這是伺服器的預設指令,當客戶端沒有回應 01/02 17:35
7F:→ Yijhen0525:就用預設的方式來處理並回應 01/02 17:35
8F:→ Yijhen0525:至於改封包,那就要有辦法攔截並破解,然後傳偽造的封包 01/02 17:37
9F:→ Yijhen0525:但是真的修改下去官方應該會注意到 01/02 17:38
10F:→ Shift2:唔 整個戰鬥處理是在伺服裡面的 玩家只拿到結果 這樣? 01/02 17:39
11F:→ dustlike:沒錯。不然就可以輕易作弊了... 01/02 17:40
12F:→ Shift2:伺服只會問玩家進擊與否 不會跟玩家要船艦狀況 無從修改 01/02 17:40
13F:推 Yijhen0525:資訊都儲存在伺服器端的好處是玩家只能下指令 01/02 17:43
14F:→ Yijhen0525:像資訊什麼的完全無法得知 01/02 17:43
15F:推 clover1211:所以影片上 其實算是大破下進擊的狀況 有可能會沉? 01/02 17:48
以結果來說up主沒沉 所以到底那個6HP時是不是會沉船的狀態...不得而知
這個影片的重點不是中破會不會沉 而是同步有問題啊...
16F:推 ryvius0723:樓上你要不要解釋22/75為什麼會是大破? 01/02 17:52
不是22/75是大破 是6/75是大破
問題在於那16點HP跑哪去了
17F:推 ryvius0723:至於大破進擊高機率沉那早就是被公認的事 01/02 17:56
18F:推 qooking316:但結果就是好運沒沉 你不能以"沉了"這觀點來看啊 01/02 17:59
※ 編輯: dustlike 來自: 140.113.138.100 (01/02 18:02)
※ 編輯: dustlike 來自: 140.113.138.100 (01/02 18:03)
19F:推 fonlinian:提督,榛名出擊時不能做這種事阿! 第一次會損16HP 01/02 18:03
20F:推 ryvius0723:我猜是傳封包回伺服器的時候網路不穩導致封包丟失 01/02 18:04
21F:推 Kenqr:資料同步有bug吧 應該是前一場就已經大破了 不過運氣好沒沉 01/02 18:04
22F:→ ryvius0723:結果莫名其妙多了一次攻擊判定 01/02 18:04
應該不是網路的錯。TCP/IP會保證封包內容絕對不會出錯
然後戰鬥序列資料是一次傳完的,不會有部分消失的問題。
我傾向是server的戰鬥畫面計算出了毛病
※ 編輯: dustlike 來自: 140.113.138.100 (01/02 18:07)
23F:推 qooking316:我覺得是中破進擊但大破顯示 所以感覺有鎖血 01/02 18:07
24F:→ Shift2:也就是戰鬥畫面和實際結果有出入? 01/02 18:07
25F:→ dustlike:我是這麼認為 01/02 18:08
26F:→ dephille:被打的那一下是扣2滴。我覺得很高機率是HP22時的擦傷。 01/02 18:18
27F:→ dephille:HP6的時候擦傷應該是0~1,我覺得不太會那麼剛好打出2滴。 01/02 18:19
28F:→ Shift2:摩耶雷裝是60,複縱+T有利算下去 沒爆很難打穿榛名的裝甲 01/02 18:21
29F:→ Shift2:無暴最小値: (60+5)*1.2* 0.8-89*4/3=-56 (擦傷) 01/02 18:22
30F:→ Shift2:無暴最大値: (60+5)*1.2* 0.8-89*2/3=3 01/02 18:22
31F:→ RbJ:沒cri打不穿,擦傷傷害是現存的6%~14%,剩下6刮2已經33%了 01/02 18:24
32F:→ dephille:就是除非裝甲那麼剛好骰到60剛好打出2滴... 01/02 18:26
33F:→ dephille:否則我覺得打出這2滴比較可能的狀況是HP22狀況下的擦傷。 01/02 18:27
34F:→ dephille:平常打個位數敵人時擦傷大部份都是MISS比較多...XD 01/02 18:30
35F:→ Shift2:不過HP22(中破)狀況下 榛名攻擊的傷害不會這麼低 01/02 18:30
36F:→ RbJ:怪給伺服器就好啦!(逃 01/02 18:34
37F:→ wht810090:When have doubt, server. hmhm. 01/02 18:37