ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

饥荒服务器搭建加mod使用 阿里云服务器 Ubuntu18

2020-12-05 23:04:29  阅读:584  来源: 互联网

标签:ServerModSetup ServerModCollectionSetup steamcmd workshop dir Ubuntu18 服务器 Force


饥荒服务器搭建

环境:基于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

标签:ServerModSetup,ServerModCollectionSetup,steamcmd,workshop,dir,Ubuntu18,服务器,Force
来源: https://www.cnblogs.com/somegenki/p/14091548.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有