Minecraft Server 設定筆記 === 這個筆記是提供給想開服的伺服器擁有者參考用, 如果你是一般玩家請看[給參與玩家的說明文件](https://docs.google.com/document/d/1IVnEwsqHVE_MQNw2RWO1zUsO4SvlntbHpkqpmjdOxeY/edit)。 ## 常用的 server.properties 設定 - `difficulty=2` 遊戲難度,我很常忘記改,0和平、1簡單、2普通、3困難。 - `level-type=CUSTOMIZED` 地圖設定,詳見generator-settings。 DEFAULT預設值、FLAT超平坦世界、CUSTOMIZED自訂。 - `generator-settings={"biomeSize":3}` 地圖設定細節。稍微縮小生態群系大小,biomeSize預設為4。 - `online-mode=false` 線上驗證,俗稱正版驗證。開啟後可使用存於官方的skin等設定資料。 雖然我Server中大部分的玩家都有購買正版,但為了推坑方便還是普遍會關閉。 - `pvp=false` PVP模式,通常會關閉,但如果有意製作PVP競技場需要開啟該設定,詳見**競技場製作**。 - `enable-command-block=true` 允許指令方塊,如果需要執行指令方塊(eg.蓋競技場、設定傳送點)就需要開啟。 ## Server開啟運行參數 ```Java @ECHO OFF TITLE MINECRAFT START "MINECRAFT" /ABOVENORMAL /B java -server -Xmx10G -XX:PermSize=128m -XX:MaxPermSize=256m -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+UseNUMA -XX:+CMSParallelRemarkEnabled -XX:MaxGCPauseMillis=50 -XX:+UseAdaptiveGCBoundary -XX:-UseGCOverheadLimit -XX:+UseBiasedLocking -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=15 -XX:UseSSE=3 -XX:+UseLargePages -XX:+OptimizeStringConcat -XX:+UseFastAccessorMethods -XX:+AggressiveOpts -jar server.jar nogui PAUSE ``` ## 歷代模組列表 詳見[模組列表表格](https://docs.google.com/spreadsheets/d/1vTodChJ-0glmX1Y7c35QdofxqXJzKM_to_jF2S8flPw/edit?usp=sharing)。 ## 競技場製作 :::info 適用於Minecraft 1.12.2,無使用任何模組。 ::: ### 初始化 請確認server.properties中的`pvp=true`。 非戰鬥區域的PVE會以隊伍(scoreboard)實現。 伺服器開始時初始化須執行以下指令。 ```shell /scoreboard teams add Rat //建立一個隊伍Rat /scoreboard teams option Rat color aqua //將Rat隊伍中的玩家名稱改為淺藍綠色,方便辨識狀態 /scoreboard teams option Rat friendlyfire false //設定Rat隊伍中不會互相誤傷 /gamerule spawnRadius 0 //將玩家預設出生點的區域半徑改為0,即僅於定點重生 ``` 在玩家進入世界的進入點(預設出生地)設置障礙, 讓玩家只能於特定的缺口出入。 在該缺口的地面設置壓力板,連接至指令方塊。 ```shell /scoreboard teams join Rat @a //將線上所有玩家加入Rat隊伍 ``` 玩家離開出生地時會踩到壓力板, 並觸發方塊將線上所有人加入隊伍Rat。 至此完成PVE區域, 並且處於PVE狀態的玩家名稱會是淺藍綠色。 ### 建造競技場 競技場需要建造出入口、觀眾席,以及遊玩的場地。 場地可斟酌參考其他遊戲增加礦車、水流、生怪磚等。 競技場周圍為避免玩家從外部非允許的方式進入, 可建造於極遠區域或使用[屏障](https://minecraft-zh.gamepedia.com/index.php?title=%E5%B1%8F%E9%9A%9C&variant=zh-tw)來阻擋。 我們製作時選擇將競技場懸浮於空中,使用傳送點進出。 ### 進出競技場 確定競技場位置及對應的出入口座標後, 選擇一個定點作為入口傳送點, 可製作於出生點附近避免遭到破壞。 以壓力板觸發,垂直向下堆疊指令方塊。 ```shell /title @p title {"text":"進入競技場"} //於最近的玩家畫面上顯示標題 /scoreboard teams leave @p //把該玩家移出隊伍 /say @p 進入競技場 //伺服器廣播該玩家進入競技場,可使用鐵鉆命名該方塊 /spawnpoint @p 129 64 95 //更改該玩家出生點 /gamemode @p 2 //把該玩家的遊戲模式更改為冒險模式,以免破壞場地 /effect @p 1 5 1 //給予該玩家一個加速BUFF /tp @p 129 64 95 //傳送該玩家至競技場 ``` 堆疊方塊時需注意,因為指定玩家的命令是以 @p 運作。 所以傳送的方塊需最後執行。 離開競技場也是同樣原理。 選擇一個定點作為出口傳送點, 可傳送至入口附近,受出生地保護避免被破壞。 以壓力板觸發,垂直向下堆疊指令方塊。 傳送指令最後執行。 ```shell /title @p title {"text":"離開競技場"} //於最近的玩家畫面上顯示標題 /scoreboard teams join Rat @p //把該玩家加入隊伍Rat /say @p 離開競技場 //伺服器廣播該玩家進入競技場 /spawnpoint @p 133 65 95 //更改該玩家出生點 /tp @p 129 64 95 //傳送該玩家回PVE區域 ``` 這樣基本的競技場雛型已經完成。 還有觀眾席、觀眾席的出入口,以及一些BUG需要解決,如下。 :::warning 一些已知的可能問題: - 如果同時很多人踩上壓力板? - 回到PVE區域時出生點被重置? ::: ## TODO 1. server.properties: resource-pack 2. [【心得】Overviewer--將你的地圖「Google地圖」化!](https://forum.gamer.com.tw/Co.php?bsn=18673&sn=624891) 3. 整理愛用模組 ## 參考資料 1. [Minecraft Wiki 伺服器](https://minecraft-zh.gamepedia.com/index.php?title=%E6%9C%8D%E5%8A%A1%E5%99%A8&variant=zh-tw) 2. [Minecraft Wiki server.properties](https://minecraft-zh.gamepedia.com/Server.properties) 3. [Minecraft Wiki 地圖自定義](https://minecraft-zh.gamepedia.com/%E8%87%AA%E5%AE%9A%E4%B9%89) 4. [\[討論\] 這幾天我架了伺服器-如何將java最佳化?](https://www.ptt.cc/bbs/Minecraft/M.1358080973.A.E11.html) 5. [minecraft 紅石教室 PVP區域和非PVP區域](https://www.youtube.com/watch?v=5To6IGKm-TE) 6. [【地圖範例說明】PVP - 起始分隊/組隊](https://forum.gamer.com.tw/C.php?bsn=18673&snA=142763) 7. [Minecraft Wiki 指令](https://minecraft-zh.gamepedia.com/%E5%91%BD%E4%BB%A4) *[@p]: 最近的玩家