作者gonzdevour (吞食)
看板WarCraft
標題Re: [WE] 遊戲途中與主機斷線,玩家被分成2團進行遊戲
時間Mon May 5 21:33:35 2008
Q. 如何解決伺服器分離(Server Split,以下簡稱分流)現象?
1. 首先確定自己玩絕對不會當機
如果自己玩就會跳出或當機,那就不屬於分流的問題。
2. 檢查以下各項:
a. 是否使用了pan camera as necessary的觸發
古早以前有個WE教學站(忘記名字)寫了個英雄選擇範例,
凡使用了這個範例的圖都出現了分流現象,
因為它選擇英雄後拉攝影機的選項用的是上述那條。
(其實簡單地用pan camera或apply camera object就可以正常運作了。)
b. 商店是否全地圖可賣東西
我忘記要怎麼設定商店才會變成全地圖可賣東西,
好像是把中立商店複製貼上後直接create給單一玩家。
藍綠大戰的前作Norne's Thread草草結束,95%因為這個。
c. 任何部隊攻擊力的骰子數是否超過10個
不要懷疑,鐵定分流。
藍綠大戰做到1.16差點就掛了,就是因為小兵攻擊力骰子升級會超過10。
這個問題的解決要歸功於War3Campaigns的討論串。
e. 是否調整過中立生物的索敵範圍
如果你想要有效地限縮CP怪的索敵範圍,
調整camp radius和guard distance,發現沒差多少,
你就會把腦筋動到這條:
GamePlay Constants: Maximum Creep Camp Radius (Pathing Cells)
保證分流,動一點點都不行。
藍綠大戰在2.65停滯了很久就是因為這個。
能活到現在,要感謝y38011鍥而不捨地幫我開Game測圖,
以及在不知情的狀況下加Game而分流的朋友們........
f. 是否不當使用local player的觸發
這就不解釋了,自學指南有錯誤寫法範例。
而且相較於前面幾項,算是容易抓的BUG。
g. 偵測子字串(Substring)時是否使用了空字串(<Empty>)為條件
簡單說,偵測字串的條件不能寫成:
string containing <Empty> as a substring
h. 關於Game Cache設定
這個功能我不熟,整理一些高手的意見:
Danny(自學手冊)
遊戲快取可用在多人連線遊戲中,做為暫存工具,
但不能將檔案寫入硬碟或從硬碟中讀取(也就是不同地圖之間的資料傳輸),
因為每台電腦的硬碟中可能有不同的檔案,這麼做會造成不同步而斷線。
(按:簡單說就是不能在多人遊戲地圖裡使用Save Game Cache和Reload All)
tv580025
初始化Game Cache時,有的玩家會因為Game Cache滿了,而無法進行初始化,
導致不同步而斷線。
(按:已知Jass Bug有一條是GameCache不能超過256個)
i. 關於MPQ改動造成的分流
基本上都跟mpq中飾物與可毀物的改動有關係。
如果你發現分流地圖上的飾物變成紅黑方塊,
那就屬於mpq改動的分流。一般來說有兩種常見原因:
1. 魔獸本身沒裝好,mpq中存在損壞的檔案。
最簡單的解決方法是重灌魔獸。
當然,如果你知道是哪個檔出問題,跟朋友借檔案然後用mpq程式壓進去也行。
2. SLK優化程式優化了飾物與可毀物
當你先玩過別人的地圖,接著再開你自己的地圖,就會出現紅黑方塊而分流,
基本上這不是你的問題,而可能是前一張地圖所造成的。
U9mapopt是中國魔獸網站U9的高手發佈的一種支援多國語言的SLK優化程式,
這個程式的技術源於大名鼎鼎的Widgetizer,可以加速地圖讀取。
目前中國、台灣大部份熱門地圖如仙之俠道、三國信長等,都使用了這個程式,
他們勾了哪些選項我不清楚,但很明顯的是:如果他們勾了「清理可毀壞與飾物」,
就會導致之後你開的另一張圖產生數據不同步的現象。
由於可毀壞與飾物的數據將會從你玩第一張圖開始,保留到你重開魔獸為止,
也就是說,假設之前開了仙之俠道,魔獸就會保留著仙俠的可毀壞與飾物數據,
接著你開了你自己的圖,卻還是使用仙俠的數據,
而仙俠的可毀與飾物數據已砍除部份物件,與你的地圖不同
因此導致不同步而跳出的結果。
自學手冊舉例的地圖AoM,
也是因為它匯入了自訂的Units/DestructableData.slk檔案,
造成玩下一張圖時會分流。原理同上。
3. 其他的可能性
以下是自學手冊(指南)的引文:
=================================
此外還有一些不明原因可能造成分流。
其中有一些網路謠傳會增加分流機率的因素,如下。
這些項目未經也難以進行實際的驗證,如果可以就盡量試著避免看看吧:)
1.過高的骰子數
2.過高的生命、攻擊力、法力等數值
3.遊戲中改變遊戲速度
4.把某些特定部隊的聲音設成無聲
5.過度頻繁地抓取部隊的Custom value
6.傳訊給單一玩家
7.給單一玩家任務訊息
8.打開單一玩家的電影模式
9.給單一不在場的玩家錢
=================================
1.過高的骰子數?
已實證。
2.過高的生命、攻擊力、法力等數值?
應該只是謠言。TD、守城類的地圖,這幾個數值都幾千幾萬起算的,
3.遊戲中改變遊戲速度?
未測。
4.把某些特定部隊的聲音設成無聲?
未測。
5.過度頻繁地抓取部隊的Custom value?
謠言可能性不小。
藍綠大戰的小兵路線就是是抓Custom Value在走的,夠頻繁了吧。
6.傳訊給單一玩家?
謠言,藍綠經常傳訊給單一玩家
7.給單一玩家任務訊息?
謠言,藍綠經常給單一玩家任務訊息
8.打開單一玩家的電影模式??
未測
9.給單一不在場的玩家錢?
謠言可能性大,藍綠會給不在場的玩家加錢。
4. 總結
我認為應該要有個觀念,分流並不是謠傳的那種複合性機率產生的問題。
的確,並不是你做了會分流的設定,分流就100%會在每場Game都發生,
不過,問題通常
只有一個。
以上,給有分流困擾的WEer們參考。
--
うまれて、すみません。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.73.54.171
推 readper:清楚明瞭 推 05/05 21:37
推 caeru:推! 05/05 21:39
推 b0017570:感謝解說,受教了 05/05 21:44
推 readper:我只能說我寫過百分之百一定分流的觸發 XD 05/05 21:46
推 gain:什麼是骰子數阿??攻擊力範圍? 05/05 21:54
推 Kendai:推推 05/05 21:58
→ gonzdevour:攻擊力的隨機值有分骰子數和骰子面數,此指前者。 05/05 22:00
推 lafel:好文推 05/05 22:05
推 EF5566:推~! 05/05 22:21
推 tamato9519:不懂推 05/05 22:24
推 fallengunman:...好威。 05/05 22:27
推 wix3000:淚推分流 05/05 22:35
推 holyspectral:push 05/05 22:43
→ gonzdevour:追加一條:string containing <Empty> as a substring 05/05 22:43
→ gonzdevour:也會分流。偵測子字串的條件裡不可使用empty string 05/05 22:44
推 jealous0953:推~這篇可以M了 05/05 23:18
推 mondale:大推~ 05/06 00:31
推 JKJANESE: 大推啦!以前遇到分流都無法解釋.. 05/06 00:44
→ gonzdevour:再補一個,就跟readper之前說的一樣:初始化Game Cache 05/06 06:27
→ gonzdevour:時,如果有玩家的Cache已經滿了,就會產生不同步。 05/06 06:28
推 readper:我說的100是錯的 (果然不能憑印象) tv的256才是對的 05/06 07:16
→ readper:而且不是一場遊戲 正確的說是每個profile只能有256個 05/06 07:17
k, 已編輯。
※ 編輯: gonzdevour 來自: 203.73.50.51 (05/06 09:36)
推 jay0207: good 05/06 10:44
→ slycsboy:=_= 很好很強大的一個變態想法 怎麼講 不會鳥大已經 05/06 11:27
→ slycsboy:解決這方面的問題? 另外 他應該是應用Cache吧... 05/06 11:27
→ slycsboy:這方面我弱掉了~~沒接觸過(茶 05/06 11:29
推 readper:不太可能用內建觸發達到這個 他應該是有改了War3執行檔 05/06 13:32
推 Cheya:重要 05/06 13:59
推 laymu:推一下,雖然我自己的圖從來沒發生過分流的現象 XD 05/06 16:50
※ 編輯: gonzdevour 來自: 203.73.10.70 (05/07 22:11)