zoukankan      html  css  js  c++  java
  • Steam饥荒

    存档回滚

    D:Program Files (x86)Steamuserdata***219740
    emote

    巨人国是survival_数字,海难是shipwreck_数字,哈姆雷特是porkland_数字。

    先新建一个相同dll的文档,然后把备份覆盖进去改掉数字插槽位置,重新启动即可。

    Lua脚本

    steam单机版时分不清改哪个文件,嫌麻烦可以卸载掉另外两个dll。

    dont_starvedata下面,DLC0001为巨人国,DLC0002为海难,DLC0003为Hamlet,其他为原版的素材及源码(其他三个dlc也会用一些公用的源码文件及素材)。

    快速采集

    首先进入饥荒单机版目录D:Program Files (x86)Steamsteamappscommondont_starve

    1.草:用记事本打开游戏目录dataDLC0001scriptsprefabsgrass.lua文件,在inst:AddComponent("pickable")的下一行插入inst.components.pickable.quickpick = true
    2.树枝:用记事本打开游戏目录dataDLC0001scriptsprefabssapling.lua文件,在inst:AddComponent("pickable")的下一行插入inst.components.pickable.quickpick = true
    3.浆果:用记事本打开游戏目录dataDLC0001scriptsprefabserrybush.lua文件,在inst:AddComponent("pickable")的下一行插入inst.components.pickable.quickpick = true

    远程采集和拾起物品

    用记事本打开游戏目录dataDLC0001scriptsactions.lua文件,将下列内容:
    PICK = Action(),
    PICKUP = Action(1),
    替换为:
    PICK = Action({},0, true, false, 20),
    PICKUP = Action({},1, true, false, 20),

     

    一斧砍倒一棵树、一镐开掉一块石

    这两个文件是共用的,dll中没有此文件

    datascriptsprefabsaxe.lua文件

    inst.components.tool:SetAction(ACTIONS.CHOP)替换为inst.components.tool:SetAction(ACTIONS.CHOP, 15)

    datascriptsprefabspickaxe.lua文件

    inst.components.tool:SetAction(ACTIONS.MINE)替换为inst.components.tool:SetAction(ACTIONS.MINE, 15)

    冰箱永久保鲜

    scripts uning.lua文件,将PERISH_FRIDGE_MULT = .5,替换为PERISH_FRIDGE_MULT = 0,

    如果将0改为负数比如-5,则可使不新鲜的食物回复新鲜度。

    其他各种东西的属性也在tuning.lua里更改

    旷工帽无限时间

    scriptsprefabshats.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, -- 手提灯时间延长十倍

    人物回血

     scriptsprefabsplayer_common.lua中

    inst.components.health:SetMaxHealth(TUNING.WILSON_HEALTH)下面加如下代码

    inst.components.health:StartRegen(1, 10) -- 每十秒恢复一滴血

    墙壁永固(自己可砸,怪物无法破坏)

     scriptsprefabswalls.lua文件,在inst:AddTag("noauradamage")的下一行插入以下内容:

    inst.components.health:SetInvincible(true)

    DST  Dedicated Server

    创建服务器目录

    首先在联机版中新建一个存档,找到对应的位置D:UsersAutumnDocumentsKleiDoNotStarveTogether,对应的1-5插槽如下图。

    生成Token

    进入游戏后执行TheNet:GenereteClusterToken()会在指定Cluster插槽下面生成Token(服务器认证用)

    TheNet:GenerateClusterToken()

    bat配置服务器目录并启动

    然后,找到steamappscommonDon't Starve Together Dedicated Serverinscripts下的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 Filessteamcmdsteamcmd.exe +login anonymous +app_update 343050 validate +quit
    cd "D:Program Files (x86)SteamsteamappscommonDon't Starve Together Dedicated Serverin"
    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中

    SteamsteamappscommonDon't Starve Togetherdatadatabundlesscripts.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

  • 相关阅读:
    3.Appium运行时出现:Original error: Android devices must be of API level 17 or higher. Please change your device to Selendroid or upgrade Android on your device
    3.Python连接数据库PyMySQL
    2.Python输入pip命令出现Unknown or unsupported command 'install'问题解决
    2.Linux下安装Jenkins
    5.JMeter测试mysql数据库
    Android 4学习(7):用户界面
    Android 4学习(6):概述
    Android 4学习(5):概述
    Android 4学习(4):概述
    Android 4学习(3):概述
  • 原文地址:https://www.cnblogs.com/aeolian/p/10577725.html
Copyright © 2011-2022 走看看