存檔回滾
D:\Program Files (x86)\Steam\userdata\***\219740\remote
巨人國是survival_數字,海難是shipwreck_數字,哈姆雷特是porkland_數字。
先新建一個相同dll的文檔,然后把備份覆蓋進去改掉數字插槽位置,重新啟動即可。
Lua腳本
steam單機版時分不清改哪個文件,嫌麻煩可以卸載掉另外兩個dll。
dont_starve\data下面,DLC0001為巨人國,DLC0002為海難,DLC0003為Hamlet,其他為原版的素材及源碼(其他三個dlc也會用一些公用的源碼文件及素材)。
快速采集
首先進入飢荒單機版目錄D:\Program Files (x86)\Steam\steamapps\common\dont_starve\
1.草:用記事本打開游戲目錄\data\DLC0001\scripts\prefabs\grass.lua文件,在inst:AddComponent("pickable")的下一行插入inst.components.pickable.quickpick = true
2.樹枝:用記事本打開游戲目錄\data\DLC0001\scripts\prefabs\sapling.lua文件,在inst:AddComponent("pickable")的下一行插入inst.components.pickable.quickpick = true
3.漿果:用記事本打開游戲目錄\data\DLC0001\scripts\prefabs\berrybush.lua文件,在inst:AddComponent("pickable")的下一行插入inst.components.pickable.quickpick = true
遠程采集和拾起物品
用記事本打開游戲目錄\data\DLC0001\scripts\actions.lua文件,將下列內容:
PICK = Action(),
PICKUP = Action(1),
替換為:
PICK = Action({},0, true, false, 20),
PICKUP = Action({},1, true, false, 20),
一斧砍倒一棵樹、一鎬開掉一塊石
這兩個文件是共用的,dll中沒有此文件
\data\scripts\prefabs\axe.lua文件
inst.components.tool:SetAction(ACTIONS.CHOP)替換為inst.components.tool:SetAction(ACTIONS.CHOP, 15)
\data\scripts\prefabs\pickaxe.lua文件
inst.components.tool:SetAction(ACTIONS.MINE)替換為inst.components.tool:SetAction(ACTIONS.MINE, 15)
冰箱永久保鮮
scripts\tuning.lua文件,將PERISH_FRIDGE_MULT = .5,替換為PERISH_FRIDGE_MULT = 0,
如果將0改為負數比如-5,則可使不新鮮的食物回復新鮮度。
其他各種東西的屬性也在tuning.lua里更改
曠工帽無限時間
\scripts\prefabs\hats.lua中更改
inst.components.fueled:StartConsuming() --開始消耗 inst.SoundEmitter:PlaySound("dontstarve/common/minerhatAddFuel") 改為 inst.components.fueled:StopConsuming() --停止消耗 inst.SoundEmitter:PlaySound("dontstarve/common/minerhatAddFuel")
或者在tuning.lua中調節
MINERHAT_LIGHTTIME = (night_time+dusk_time)*2.6*10, -- 礦工帽時間延長十倍 LANTERN_LIGHTTIME = (night_time+dusk_time)*2.6*10, -- 手提燈時間延長十倍
人物回血
scripts\prefabs\player_common.lua中
inst.components.health:SetMaxHealth(TUNING.WILSON_HEALTH)下面加如下代碼
inst.components.health:StartRegen(1, 10) -- 每十秒恢復一滴血
牆壁永固(自己可砸,怪物無法破壞)
\scripts\prefabs\walls.lua文件,在inst:AddTag("noauradamage")的下一行插入以下內容:
inst.components.health:SetInvincible(true)
DST Dedicated Server
創建服務器目錄
首先在聯機版中新建一個存檔,找到對應的位置D:\Users\Autumn\Documents\Klei\DoNotStarveTogether,對應的1-5插槽如下圖。
生成Token
進入游戲后執行TheNet:GenereteClusterToken()會在指定Cluster插槽下面生成Token(服務器認證用)
TheNet:GenerateClusterToken()
bat配置服務器目錄並啟動
然后,找到steamapps\common\Don't Starve Together Dedicated Server\bin\scripts下的launch_preconfigured_servers.bat
復制一份並修改為。這里的Cluster_2用第二個插槽作為服務器目錄,也可以復制為其他的名字(如MyDediServer)。
@ECHO OFF set SteamAppId=322330 set SteamGameId=322330 cd .. start "Don't Starve Together Overworld" /D "%~dp0.." "%~dp0..\dontstarve_dedicated_server_nullrenderer.exe" -cluster Cluster_2 -shard Master -console start "Don't Starve Together Caves" /D "%~dp0.." "%~dp0..\dontstarve_dedicated_server_nullrenderer.exe" -cluster Cluster_2 -shard Caves -console
老版啟動代碼
D:\Program Files\steamcmd\steamcmd.exe +login anonymous +app_update 343050 validate +quit cd "D:\Program Files (x86)\Steam\steamapps\common\Don't Starve Together Dedicated Server\bin" start dontstarve_dedicated_server_nullrenderer -console -cluster publicDSTServer -shard Master start dontstarve_dedicated_server_nullrenderer -console -cluster publicDSTServer -shard Caves
啟動該bat文件
管理員列表
在cluster_token.txt同級新建一個文件adminlist.txt,每一行為keli的userID
修改服務器源碼
首先關掉服務器和游戲(服務器的文件也是從本地游戲中獲取),否則修改無法保存到zip中
\Steam\steamapps\common\Don't Starve Together\data\databundles\scripts.zip直接打開,像單機版修改即可。內容可能會有差異,但是大體相同(親測)。
Linux下搭建DST Dedicate Server
運行庫的安裝
libstdc++6:i386(Cntos系統libstdc++.i686)
libgcc1:i386(Centos系統glibc.i686)
libcurl4-gnutls-dev:i386(Centos系統libcurl.i686)
steamcmd命令的安裝
用yum命令安裝libstdc++、libgcc、libcurl。如果安裝失敗可以挨個安裝,如果存在Protected multilib versions,在后面加--setopt=protected_multilib=false。
yum install glibc.i686 libstdc++.i686 libcurl.i686 -y
新建用戶並進入用戶的根目錄
useradd steam #添加用戶 passwd steam #設置密碼 su steam #切換用戶 cd ~ #進入到用戶主文件夾 # 或者 cd /home/steam #不切換用戶直接進入steam用戶根目錄下面
下載steamcmd
網上下載steam官方提供的steamcmd命令安裝包,並解壓
wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz tar -xvzf steamcmd_linux.tar.gz
運行steamcmd.sh文件,下載一些文件。
./steamcmd.sh
下載完成后如下圖,繼續操作。
登錄Steam賬號
輸入Steam賬戶名密碼
login 用戶名 密碼
登錄過程中會發送一封郵件到你的郵箱,查看驗證碼並輸入。
設置游戲目錄
這里的目錄為steam游戲的目錄不是飢荒的專屬目錄。
force_install_dir <目錄>
安裝飢荒服務器程序,Steam游戲Appid查詢網址http://steamdb.sinaapp.com/
app_update 游戲的steam appid (Steam Application ID ) [validate]
quit命令退出steam操作台
配置飢荒專用服務器
mkdir -p ~/.klei/DoNotStarveTogether/Documents #在用戶主目錄下創建存檔文件夾,klei文件夾和DoNotStarveTogether文件夾是飢荒默認的不可更改,此處Document即為Cluster cd ~/.klei/DoNotStarveTogether/Documents/ #這里注意一定要切換到steam用戶 #創建adminlist.txt和cluster_token.txt用於存放之前獲得的UserID和令牌號 vim adminlist.txt vim cluster_token.txt #創建服務器端的設置文件,cluster.ini注意此文件必須要用utf8(無bom)進行存儲,否則部分設置無效,最好下個notepad++ vim cluster.ini
下面的這些步驟直接在DST中復制即可
配置cluster.ini文件
[GAMEPLAY] max_players = 3 #最大人數 pvp = false #是否開啟pvp game_mode = survival #游戲模式(生存,荒野等) pause_when_empty = true #服務器無人時,自動暫停 vote_kick_enabled = false #投票踢人 [NETWORK] cluster_description = #服務器介紹 cluster_name = #服務器名字 cluster_password = #服務器的密碼 cluster_intention = cooperative ##游戲的意圖(合作,競爭,無盡) [MISC] max_snapshots = 6 console_enabled = true #是否開啟控制台 #IP端口設置,一般不用改 [SHARD] shard_enabled = true bind_ip = 127.0.0.1 master_ip = 127.0.0.1 master_port = 10889 cluster_key = supersecretkey
創建主世界Master
mkdir Master
cd Master
創建server.ini和worldgenoverride.lua用於存儲服務器信息和世界信息
server.ini
vim server.ini #配置服務器信息 [NETWORK] server_port = 11000 [SHARD] is_master = true [STEAM] master_server_port = 27018 authentication_port = 8768 [ACCOUNT] encode_user_path = true
worldgenoverride.lua
vim worldgenoverride.lua #配置世界信息 return { override_enabled = true, preset = "SURVIVAL_TOGETHER", misc = { world_size = "huge", }, monsters = { walrus = "often", }, }
創建地穴世界
cd ..
mkdir Caves
cd Caves
server.ini
[NETWORK] server_port = 11001 [SHARD] is_master = false name = Caves id = 1811570792 [STEAM] master_server_port = 27019 authentication_port = 8769 [ACCOUNT] encode_user_path = true
worldgenoverride.lua
return { override_enabled = true, preset = "DST_CAVE", misc = { world_size = "huge" } }
運行如下命令
cd /home/steam/DST_aeolian/bin
./dontstarve_dedicated_server_nullrenderer
運行出現如下即說明c依賴沒有缺失。
運行時可能會出現問題
問題1、
報錯./dontstarve_dedicated_server_nullrenderer: error while loading shared libraries: libcurl-gnutls.so.4: cannot open shared object file: No such file or directory
CentOS特有的錯,Unbantu不存在
解決辦法
$ cd /usr/lib/ $ ln -s libcurl.so.4 libcurl-gnutls.so.4
問題2、
查看依賴包
cd /home/steam/DST_aeolian/bin ldd dontstarve_dedicated_server_nullrenderer #查看依賴的包
有三個依賴包沒有
解決辦法
第一個libc.so.6依賴包在/home/steam/lib32下面復制過去即可,剩下兩個用--setopt=protected_multilib=false安裝運行庫(即第一步)
升級Glibc(勿用,我用這個把系統裝崩了,不知道為啥)
訪問http://ftp.gnu.org/gnu/glibc/glibc-2.15.tar.gz下載響應安裝包(根據具體問題選擇對應的glibc版本);
下載后執行以下命令:
tar zxvf glibc-2.15.tar.gz cd glibc-2.15 mkdir glibc-build-2.15 cd glibc-build-2.15 ../configure --prefix=/opt/glibc-2.15 make make install
問題3、
運行screen命令,首先yum install screen命令安裝screen命令
cd /home/steam/steamapps/DST_aeolian/bin /usr/bin/screen -S "DST" /bin/sh -c './dontstarve_dedicated_server_nullrenderer -console'
若是出現Cannot open your terminal'/dev/pts/1' - please check.運行如下文件
script /dev/null
啟動
進入到用戶主文件夾,編寫startDST.sh shell啟動腳本,一定要用steam用戶執行
cd ~
vim startDST.sh
startDST.sh內容如下
#!/bin/bash #前面的文件夾更改后,下面的相應值也需要更改 steamcmd_dir="$HOME/steamcmd" install_dir="$HOME/DST_aeolian" cluster_name="Documents" cd "$install_dir/bin" run_shared=(./dontstarve_dedicated_server_nullrenderer) run_shared+=(-console) run_shared+=(-cluster "$cluster_name") run_shared+=(-monitor_parent_process $$) #不想開啟洞穴就把&和后面的都去掉 "${run_shared[@]}" -shard Master | sed 's/^/Master: /' & "${run_shared[@]}" -shard Caves | sed 's/^/Caves: /'
賦權限,運行,可能出現的問題bash: ./startDSTServer.sh: /bin/bash^M: bad interpreter: No such file or directory
chmod 777 startDST.sh
./startDST.sh
可能遇到問題
1.執行命令后出現steamclient.so: cannot open shared object file: No such file or directory
解決辦法
locate -b 'steamclient.so'查看so文件位置,cp到/home/steam/DST_aeolian/bin/lib32下面。
若移動后啟動出現steamclient.so: wrong ELF class: ELFCLASS64,則cp另一個32/64位的so文件到/home/steam/DST_aeolian/bin/lib32下面
2.出現bad thread local
我的是因為Cluster所屬用戶不是steam而是root。
解決辦法是用root執行 chown -R steam /publicDSTServer
看到Slave LUA is now ready!就說明你成功了。
永久運行
su steam #使用steam用戶登錄 cd ~/aeolian/bin/ #~為/home/steam nohup ./startDSTServer & #永久運行
或者
screen -s 'DST' ./startDSTServer
覺得好的話支持一下哦~后期會一直更新
網上的資料:
https://wenku.baidu.com/view/53b888eb0912a216157929b7.html
https://www.gamersky.com/handbook/201501/513086.shtml
https://blog.csdn.net/qq_35543890/article/details/81257937
https://dontstarve.fandom.com/wiki/Guides/Don%E2%80%99t_Starve_Together_Dedicated_Servers