飢荒服務器搭建加mod使用 阿里雲服務器 Ubuntu18


飢荒服務器搭建

環境:基於Ubuntu18.4 64bit 1核2G的輕量應用服務器(5M的帶寬)

工具:使用WinSCP(文件傳輸軟件) 和PowerShell

使用的賬戶是admin 非root賬戶

1. 安裝依賴項

sudo apt-get install libstdc++6:i386 libgcc1:i386 libcurl4-gnutls-dev:i386

2. 安裝steamcmd

steamcmd的詳細安裝可以參考 : https://developer.valvesoftware.com/wiki/SteamCMD#Linux

以下是簡要安裝的命令

mkdir -p ~/steamcmd/
cd ~/steamcmd/
wget "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz"
tar -xvzf steamcmd_linux.tar.gz

3. 下載服務器設置

可以直接訪問:https://accounts.klei.com/account/game/servers?game=DontStarveTogether

或者從游戲的主菜單下面的賬戶點擊訪問kei官網,然后點擊頭部菜單的“游戲”,找到飢荒聯機版的游戲服務器

可以選擇添加新服務器,或者選擇已有的。然后就是填寫表單內容再點下載設置,會自動下載MyDediServer.zip文件到本地。里面包含基本的配置文件和token令牌數據。

4. 移動相關文件到服務器

  1. mkdir -p .klei/DoNotStarveTogether #創建屬於飢荒的目錄,路徑不按照規范好像會出錯
  2. 或者使用winscp直接像在window那樣創建目錄,(WinSCP默認隱藏.開頭的文件夾,可以使用Ctrl+Alt+H顯示出來)
  3. MyDediServer.zip壓縮包里的MyDediServer文件夾用WinSCP上傳到剛剛創建的目錄下

Q9n28.png

5. 創建運行腳本

  1. 在當前賬號根目錄(~ 我的是/home/admin)下創建文件run_dedicated_servers.sh

  2. 復制如下代碼到shell腳本里 (使用WinSCP就像Windows創建txt一樣簡單)

    #!/bin/bash
    
    steamcmd_dir="$HOME/steamcmd"
    install_dir="$HOME/dontstarvetogether_dedicated_server"
    cluster_name="MyDediServer"
    dontstarve_dir="$HOME/.klei/DoNotStarveTogether"
    
    function fail()
    {
    echo Error: "$@" >&2
    exit 1
    }
    
    function check_for_file()
    {
    if [ ! -e "$1" ]; then
    fail "Missing file: $1"
    fi
    }
    
    cd "$steamcmd_dir" || fail "Missing $steamcmd_dir directory!"
    
    check_for_file "steamcmd.sh"
    check_for_file "$dontstarve_dir/$cluster_name/cluster.ini"
    check_for_file "$dontstarve_dir/$cluster_name/cluster_token.txt"
    check_for_file "$dontstarve_dir/$cluster_name/Master/server.ini"
    check_for_file "$dontstarve_dir/$cluster_name/Caves/server.ini"
    
    ./steamcmd.sh +force_install_dir "$install_dir" +login anonymous +app_update 343050 +quit
    
    check_for_file "$install_dir/bin"
    
    cd "$install_dir/bin" || fail
    
    run_shared=(./dontstarve_dedicated_server_nullrenderer)
    run_shared+=(-console)
    run_shared+=(-cluster "$cluster_name")
    run_shared+=(-monitor_parent_process $$)
    
    "${run_shared[@]}" -shard Caves  | sed 's/^/Caves:  /' &
    
    "${run_shared[@]}" -shard Master | sed 's/^/Master: /' 
    
    
  3. 賦予腳本執行權限chmod u+x ~/run_dedicated_servers.sh

  4. 運行~/run_dedicated_servers.sh 腳本來啟動服務器

6. 添加服務端 Mod/模組

使用默認設置(懶得改配置)

  1. 創建一個自動下載和更新 Mod 的腳本( lua 腳本)

    cd ~/dontstarvetogether_dedicated_server/mods

    vi dedicated_server_mods_setup.lua

    不用vi也可以用WinSCP創建文件並復制下面的代碼

  2. 樣例內容,已忽視上面自帶的注釋,數字是mod在創意工坊中的id

    這些大概是死亡不掉落,從骨頭復活,快速采集,地窖,自動打開們,Forge Item Pack,無限帳篷,血條功能等

    	ServerModSetup("1271089343")
    	ServerModSetup("2110246021")
    	ServerModSetup("2303923229")
    	ServerModSetup("1860955902")
    	ServerModSetup("2069206134")
    	ServerModSetup("2074508776")
    	ServerModSetup("1221281706")
    	ServerModSetup("785009843")
    	ServerModSetup("375859599")
    	ServerModSetup("382177939")
    	ServerModSetup("375850593")
    	ServerModSetup("356930882")
    	ServerModSetup("458587300")
    
    	ServerModCollectionSetup("1271089343")
    	ServerModCollectionSetup("2110246021")
    	ServerModCollectionSetup("2303923229")
    	ServerModCollectionSetup("1860955902")
    	ServerModCollectionSetup("2069206134")
    	ServerModCollectionSetup("2074508776")
    	ServerModCollectionSetup("1221281706")
    	ServerModCollectionSetup("785009843")
    	ServerModCollectionSetup("375859599")
    	ServerModCollectionSetup("382177939")
    	ServerModCollectionSetup("375850593")
    	ServerModCollectionSetup("356930882")
    	ServerModCollectionSetup("458587300")
    
  3. modsettings.lua中的相關內容,以強制開啟mod。已忽視自帶注釋(如果沒有該文件,可以先啟動一次服務器,再來配置)

    ForceEnableMod("workshop-1271089343")
    
    ForceEnableMod("workshop-2110246021")
    
    ForceEnableMod("workshop-2303923229")
    
    ForceEnableMod("workshop-1860955902")
    
    ForceEnableMod("workshop-2069206134")
    
    ForceEnableMod("workshop-2074508776")
    
    ForceEnableMod("workshop-785009843")
    
    ForceEnableMod("workshop-1221281706")
    
    ForceEnableMod("workshop-375859599")
    ForceEnableMod("workshop-375850593")
    ForceEnableMod("workshop-382177939")
    ForceEnableMod("workshop-356930882")
    ForceEnableMod("workshop-458587300")
    
    

7. 服務端相關指令

TheNet:Kick(userid)--踢出用戶ID為“userid”的玩家

TheNet:Ban(userid)--禁止用戶ID為“userid”的玩家加入

c_save() --立即保存當前世界(一般會在每天早上自動保存)

c_reset(true) --true保存並重新加載世界;false不保存直接重新加載當前世界。

c_regenerateworld() 重置世界

c_shutdown(true) true保存並關閉當前世界; false不保存直接關閉當前世界

TheNet:SetAllowIncomingConnections(true|false) --true允許他人加入;false阻止任何人加入。

c_announce("內容") 公告

TheWorld.net.components.clock:OnUpdate(163060) 跳過時間 X為多少天

TheWorld:PushEvent("ms_nextphase") 跳過時間階段

c_rollback(X) 回檔x天 x為你要回檔的天數

TheWorld:PushEvent("ms_forceprecipitation") 開始下雨
TheWorld:PushEvent("ms_forceprecipitation", false) 雨停了

8. 使用tmux,退出shell終端仍保持會話

  1. 安裝tmux sudo apt install tmux
  2. tmux new -s jihuang # 創建一個會話,名字叫jihuang
  3. 在這個會話中執行一些代碼,后 先按Ctrl+B,完全放開鍵盤,再D
  4. tmux attach-session -t jihuang # 下次打開shell要返回上次的會話使用這個

-1 參考

  1. https://www.bilibili.com/read/cv8428713
  2. https://www.bilibili.com/read/cv4488136
  3. https://tieba.baidu.com/p/4239164899


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM