zoukankan      html  css  js  c++  java
  • 饥荒服务器搭建加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
  • 相关阅读:
    jquery radio set checked.
    Java Reflect
    Java Collection
    hashcode and equals
    Statement VS PrepareStatement
    第十六章 调试及安全性(In .net4.5) 之 调试程序
    第十五章 调试及安全性(In .net4.5) 之 管理程序集
    第十四章 调试及安全性(In .net4.5) 之 对称及非对称加密
    第十三章 调试及安全性(In .net4.5) 之 验证程序输入
    第十二章 管理类型(In .net4.5) 之 操作字符串
  • 原文地址:https://www.cnblogs.com/somegenki/p/14091548.html
Copyright © 2011-2022 走看看