Project Zomboid架站教學 (B28β) - Steam

Oscar avatar
By Oscar
at 2014-08-22T18:02

Table of Contents

前言:
目前使用Build 28 beta於Win7 64上運行,Build 27應該也適用,但應該少了幾項
參數可調整。

本PO主要是分享如何架Server(公開/私人)跟大家同樂。

我的硬體設備如下,而採用VMPLAYER虛擬機來運行(初次是在實體機上,但遇到解
不掉的網路問題,故試架在VM上,下面括號中為分給VM的資源

E3-1230V2 ( 4 個執行緒 )
32GB RAM ( 8 GB )
SSD (20 GB )
網路卡 * 2 ( 1 張作Bridge)
Asus AC66U(Tomato的QoS好用@@)


行前資訊與準備
電腦硬體:
RAM:指派給Service使用,官方建議給80%的量,但我想這取決於你要開幾人的
Server,我目前是給6114MB,目前最大上線人數是13人,看起來還OK。若
你電腦在運行Server的同時,還需要忙其事,請再看情況調整

SSD:Server運行後會產生很多小檔案來記錄各物件資訊,儲存方式以小檔案為
主,我的站台運行了約2週,檔案數82,853,約657MB,剛好SSD的強項就是
讀散落在四處的小檔,建議使用。

網路:
Server所使用的Port
UDP 16261,它主要是引導連進來的Client,後續使用那一個TCP的Port
TCP 16262 ~ N:每一個連線進來的Clinet會佔用一個,離線後會釋出。
因為目前最大人數為64,所以N為16263~16326,若您只
想開4人房,那就開到16265
Port Fowarding / NAT (若您未使用IP分享器可跳過)
請在您的分享器上設置好,設置時請記得協定是TCP / UDP

DDNS (若您使用固定IP可跳過)
在解釋前先說明連線模式下Clinet端的存檔資料夾命名原則;
Client連線到Server後,會將資料儲存於
%USERPROFILE%\Zomboid\Multiplayer,並以 "連線名稱_登入帳號"
作為資料夾名稱
範例1 192.168.1.10_Edgar
範例2 myddns.no-ip.org_Edgar
範例3 110.114.1.8_Edgar

但,為什麼同一個帳號怎麼被系統分成了 3個呢?原因無它,因為系統認為
它是 3個不同的玩家

當你是透過Public Server search來找到你朋的Server,點擊後介面會把IP
當作是你的連線名稱作為儲存條件之一

如果你有DDNS,可以請你朋友把IP改成host name,未來即使Server端的IP
變了,你的朋友也不至於受到影響

當然,如果你要持續開站一陣子,也請在站台的Description及登入後的系統訊
息中,提醒玩家

了解儲檔邏輯後,聰明的你也能想到,當Server的IP變了後,只要把資料夾的
舊IP改新IP,就可以讀到先前玩的角色了

防火牆
同Port fowarding,請放行Server所需要的port

檢查Port是否放行
官方FAQ中,有提到這個網站
網路上也不少類似的,可以參考看看

正文開始


先指定RAM的大小
在啟動Server之前,我們先指派 RAM給它,請編輯ProjectZomboidServer.bat
批次檔的內容如下,主要是用Java運行,而-Xms 與-Xmx即最少~最大的RAM SIZE,
調整後請存檔
".\jre64\bin\java.exe" -Xms6144m -Xmx6144m -Djava.library.path=./ -cp
lwjgl.jar;lwjgl_util.jar;sqlitejdbc-v056.jar;trove-3.0.3.jar;./ zombie.network.GameServer
PAUSE

初次執行
若你之前有架過或執行過上述批次檔,如果可以,請進行舊資料刪除
%USERPROFILE%\Zomboid\
刪除資料夾 "db"
刪除資料夾 "Server"
刪除資料夾 "servertest" (這個放在"Multiplaye"裡)

執行ProjectZomboidServer.bat,轉眼間它就跳到要你輸入Admin的passrowd,到這裡
可以先把DOS視窗關掉,後續還有參數要設

ServerSettings
servertest_SandboxVars.lua 多人連線的沙盒設定
如果你想用預設值,這裡可以跳過

如果你想要對資源, 水, 電, 殭屍特性等等作更一步設定,你可以看我先前PO的這
一篇http://ppt.cc/wosK


Spawnpoints 出生點
遊戲中已有預設 2個出生城市(在該範圍隨機出生),若你覺得足夠,這裡可以略過,
之後想要改再回來看

出生點設定有種兩種。在設置前,你會需要這份地圖地圖取得座標資訊,
http://pzmap.crash-override.net/

方法一:servertest.ini設定法,
此法是修改%USERPROFILE%\Server\servertest.ini,此法是強制所有玩家皆以此為
出生點,連預設的2個城市都不能選擇
只要把參數SpawnPoint=0,0,0 (這是預設值)改成你要的座標即可以
像改成大家都愛的Muldraugh large warehouse倉庫10629,9312,0
(http://ppt.cc/VEM1)

方法二:servertest_spawnregions.lua + servertest_spawnpoints.lua
先看看檔案內容,就知道是怎麼一回事了
頭2個不是遊戲預設的區域嗎?分別又參考了2份不同路徑下的lua檔

===================Fileservertest_spawnregions.lua========================
function SpawnRegions()
return {
{ name = "Muldraugh, KY", file = "media/maps/Muldraugh, KY/spawnpoints.lua" },
{ name = "West Point, KY", file = "media/maps/West Point, KY/spawnpoints.lua" },
-- Uncomment the line below to add a custom spawnpoint for this server.
-- { name = "Twiggy's Bar", serverfile = "servertest_spawnpoints.lua" },
}
end
===========================================================================

再看看被用--註解的這一行檔案,我們可以找到West Point的這家Twiggy的酒吧
http://ppt.cc/Ly3c
其Cell就是World
Rel就是pos座標
===================File servertest_spawnregions.lua========================
function SpawnPoints()
return {
unemployed = {
{ worldX = 40, worldY = 22, posX = 67, posY = 201 }
}
}
end
=======================================================================================

小結;方法二的好處是除了保留預設的二個出生地,只要在檔案1加一行,並對應一
份獨立的檔案2,就可以多一個出生點

提醒您,每份檔案2都要有獨立的檔案及名稱,檔名建議只用英文,數字,-,_等等
簡易符號,避以非預期的錯誤


Servertest.ini的設定,該檔在%USERPROFILE%\Zomboid\Server,內容如下

--這很明顯,目前伺服器模式是能不能PVP,值就true or false,開啟後當玩家啟動
PVP模式時,就可以搶食物,搶資源,搶殭屍(誤)
PVP=false

--當伺服器都沒人在線時,時間要不要停止,不停止則殭屍會移動,食物會腐爛,作物
會成長,天氣會變化
PauseEmpty=true

--是否開放全域聊天
GlobalChat=true

--Server目前是否允許連線 (還沒測過當值為false時,在白名單內的人能否連線)
Open=true

--這是進到遊戲裡的資訊,會顯示在聊天視窗中,你可以在加註你要提供的訊息
ServerWelcomeMessage= <RGB:1,0,0> Welcome to Project Zomboid MP ! to chat
locally press "t", to global chat press "y" or add "/all" before chatting
<LINE> Press /help to have a list of server commands <LINE> <RGB:1,1,1>

--是否要保存聊天視窗中的內容,預設會存在%USERPROFILE%\Zomboid\Logs
LogLocalChat=true

--是否要自動把連結玩家加入白名單內
AutoCreateUserInWhiteList=false

--是否要顯示玩家姓名,如果你看到其他玩家,名子會在他頭上
DisplayUserName=true

--強制設定的出生點,參閱上述出生點的方法一
SpawnPoint=0,0,0

--保險(避免誤傷隊友)
SafetySystem=true

--是否在右下角顯示目前保險系統有沒有開 (保險狀態下是綠底兩支交叉斧頭)
ShowSafety=true

--切換所耗用時間單位
SafetyToggleTimer=100

--切換的冷確時間
SafetyCooldownTimer=120

--預設身上的東西,可以給多樣,用逗號隔開;如下範例
--SpawnItems=Base.BaseballBat,Base.Pistol,Base.Bullets9mm,Base.Bullets9mm,
Base.Bullets9mm
--什麼,我那知道遊戲裡有什麼東西!?
--沒關係清單在這裡 C:\Program Files (x86)\Steam\SteamApps\common\
ProjectZomboid\media\scripts\items.txt
--每個名稱之前加上Base.即可,有分大小寫喔
--上例即給每個人球棒, 手槍, 手槍子彈(10)*3
SpawnItems=

--預設UDP埠號
DefaultPort=16261

--這個編號一變,Server內的生態就重置了,我們等到第三篇再說明
ResetID=353015082

--本站可以使用的模組,利用分號隔開,Client端也要裝對應的版本,無相容性問題下
, 即可正常使用
Server端的模組是放在%USERPROFILE%\Zomboid\mods
這裡有些模組http://pz-mods.net/
Mods=CraftHelper;

--預設地圖,也有超極玩家用工具作客製化地圖,有空再介紹
Map=Muldraugh, KY

--出生地,請參閱上述的方法二
SpawnRegions=servertest_spawnregions.lua

--這是檢查Clinet的Lua是否有異動過,以避免作幣或破壞平衡
DoLuaChecksum=true

--是否允許在Public Server Search介面中被找到
Public=true

--當Public=true時,列在清單中的站台名稱
PublicName=[TW][PVE]Edgar's Server Beta 28(IWBUMS)

--同上,只是是更細部的說明欄位
PublicDescription= Server did a SOFT REST at today. Ping Limit 500ms (over
5 time)

--線上最大的玩家數,Admin可以不被限制,預設是64
MaxPlayers=16

--Ping值的更新率,顯示在畫面左上
PingFrequency=20

--Ping值的限制,單位是ms,某期間內超過這個值5次,就會被踢掉
PingLimit=500



--這裡開始應該是B28β才多出的,B27不知道會不會有影響


--這裡我也有點疑感,請大家看看原文
Enable loot respawn if > 0, then the zone need to be unseen for X (this
parameter) hours before respawn loot in it.
我的解讀如下
值大於 0時,容器內才會重生資源
這個Zone要沒在X小時內沒有玩家拜訪,才會開始資源重生
不確定的地方是Zone的定義,看到(拜訪)的距離,重生的數量
HoursForLootRespawn=24

--當容器內,資源項目數大於X時,就不會重生
MaxItemsForLootRespawn=6

--這個值同HoursForLootRespawn機制,只是重生的是殭屍
原文Enable zombies respawn if > 0, then the zone need to be unseen for X
(this parameter) hours before respawn zombies on it, only on road.
同上面的解讀,殭屍只會重生在道路上 (別忘了,牠也是會移動的)
HoursForZombiesRespawn=40

--額外重生的殭屍數,即Base數量 + X
當Base為2時,IncreaseZombieRespawnBy為5時,那每次就會重生2+5隻殭屍
可能是前一篇中設定中提到的
Zombies (數量)
Insane 最多
High 多
Normal* 一般
Low 少
None 沒有
IncreaseZombieRespawnBy=5

(servertest.ini結束)
調整完後,請存檔!

開始執行ProjectZomboidServer.bat,當你還沒設定Admin的PW前,每次都會要求你連
敲 2次,當Dos視窗執行到底下訊息時,即表示站台已ready
return code: 0
*** SERVER STARTED ****
server is listening on port 16261

--
Tags: Steam

All Comments

Hamiltion avatar
By Hamiltion
at 2014-08-23T07:44
推!
Oscar avatar
By Oscar
at 2014-08-24T14:16
專業推
William avatar
By William
at 2014-08-25T10:45
很讚的技術資料文,值得推!!

關於Csgo的箱子

Callum avatar
By Callum
at 2014-08-22T16:32
小弟最近剛接觸 遊戲內常會拿到箱子 請問抽出來的槍都是永久的嗎? -- Sent from my Android - ...

一些數位下載的基本問題

Candice avatar
By Candice
at 2014-08-22T08:21
※ 引述《Lacos0918 (Lacos)》之銘言: : 最近剛跨入數位下載的行列...(前一台電腦用七年XD,根本完全放棄遊戲) : 前陣子剛換新電腦,沒想到時代已經進步到不用光碟了O.O : 因為我就是很討厭用光碟...買了佔空間,丟掉又可惜,但是有一些基本的問題想請教 : 可能太基本了...googl ...

罪冤殺機 Dishonored 75% off

Damian avatar
By Damian
at 2014-08-22T07:05
商店:http://store.steampowered.com/app/205100/?snr=1_620_4__45 剛剛起床收信發現了這個消息 本體目前只要$4.99,週末特賣活動到8/26 喜歡這遊戲的可以衝了! -- Sent from my Android - ...

Gamersgate特價,買將軍2的可以補齊了XD

Kelly avatar
By Kelly
at 2014-08-22T04:23
※ 引述《forink (佛硬客)》之銘言: : Gamersgate不知道在慶祝什麼的特價 : 偷偷握將軍2 75% off : http://www.gamersgate.com/DD-TWS2/total-war-shogun-2 : Total War Shogun 2 Fall of the Sam ...

The Humble Weekly Bundle: Presented by

Ophelia avatar
By Ophelia
at 2014-08-22T02:16
The Humble Weekly Bundle: Presented by Extra Credits https://www.humblebundle.com/weekly http://i.imgur.com/qHAt1Rz.jpg Enemy Mind http://store.steampower ...