前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >2022年手把手教你搭饥荒专用服务器(三)—MOD及其他高级设置

2022年手把手教你搭饥荒专用服务器(三)—MOD及其他高级设置

作者头像
用户6948990
发布于 2025-04-03 12:57:11
发布于 2025-04-03 12:57:11
33100
代码可运行
举报
文章被收录于专栏:wuterwuter
运行总次数:0
代码可运行

注:本篇含代码结构,在电脑上观看体验更佳

一、预备篇:存档路径及文件树

在讲解世界设置和MOD设置之前,讲一下之前已经生成好的世界的路径、文件树以及重要文件的作用,这里还是以A存档为例。

1、存档位置

如果是按照我的要求一步一步操作下来的话,云服务器饥荒存档路径

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/root/.klei/DoNotStarveTogether          ##这个目录下有饥荒的所有存档

本地饥荒存档路径

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
我的文档\Klei\DoNotStarveTogether         ##如果找不到就在游戏主页面点击左下角的“数据”

2、MOD存放位置

本地MOD的存放路径为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
*\Steam\steamapps\common\Don't Starve Together\mods   ##这里的*指的是你本地安装STEAM的路径
D:\Steam\steamapps\common\Don't Starve Together\mods  ##例如这是我的MOD位置

服务器MOD的存放路径为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/root/Steam/steamapps/common/Don't Starve Together Dedicated Server/mods 

3、云服务器饥荒存档文件树

之前生成的文件树为以下结构

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/root/.klei/DoNotStarveTogether/A        ##这里以A存档为例
 |  cluster.ini                          ##服务器总配置文件,包括端口、密码等
 |  cluster_token.txt                    ##即第一节讲到的User Token
 |  startcaves.sh                        ##洞穴启动代码
 |  startmaster.sh                       ##地上启动代码
 |——Master                               ##地上文件夹
 |  |  modoverrides.lua                  ##地上的MOD配置文件
 |  |  server.ini                        ##独立配置信息
 |  |  leveldataoverride.lua             ##资源配置文件
 |  |——backup文件夹                       ##存放备份文件
 |  |——save文件夹                         ##存放你的回退信息
 |
 |——Caves
    |  modoverrides.lua                  ##洞穴的MOD配置文件
    |  server.ini                        ##独立配置信息
    |  leveldataoverride.lua             ##资源配置文件
    |  worldgenoverride.lua              ##想要自己调整世界资源的建议删除,因为此配置信息优先级高于leveldataoverride.lua,就算你修改了资源,系统还是全默认资源
    |——backup文件夹                       ##存放备份文件
    |——save文件夹                         ##存放你的回退信息

我将在本篇最底部附上配置文件的详细信息,喜欢全手动的小伙伴可以研究

二、世界资源设置方法—移植法

由于按照一键端生成的世界是全资源默认的纯净档,所以需要自己调整世界资源,我把此种方法称为移植法。

顾名思义既然要移植,就需要有一个现成的世界设置配置文件。(当然你可以自己配置,本篇末尾我给出了如何手动配置文件)

1、获取现成的世界资源配置文件

在你电脑上打开饥荒游戏,点击创建世界,选择一个没有用过的存档,我们以第一个为例, 按照你想要的资源进行调整,洞穴也要设置。MOD暂时可以一个都不选,我在下一块会详细讲MOD的设置。

点击创建世界,等到进入世界的时候,退出,这个时候你的配置文件已经生成啦!

2、上传你刚生成的资源文件

如何找到这个配置文件呢,返回到主页面,点击左下角的“数据”即可打开本地的存档目录

打开之后是这种结构:

因为我们是在第一个存档修改的,所以需要Cluster_1里面的文件

(1)地上资源:打开 Cluster_1 /Master/,里面的leveldataoverride.lua就是地上世界的资源配置文件啦,把这个文件覆盖上传到你服务器的/root/.klei/DoNotStarveTogether/A/Master文件夹下,地上资源就配置好啦。

(2)洞穴资源:接下来我们再覆盖洞穴的资源配置文件,在游戏主页面点“数据”,打开你的本地存档,打开 Cluster_1 /Caves/ ,同理把洞穴文件夹下的 leveldataoverride.lua 覆盖 上传至你服务器的 /root/.klei/DoNotStarveTogether/A/ Caves ,至此,地上和洞穴世界的世界资源已经配置完成

3、为什么我登上去还是默认资源?

因为你在启动服务器时,一键端已经帮你生成好了一个默认世界,要想使你自己修改的世界生效的话,需要在游戏中重新生成世界。

方法:加入到你创建的游戏中,按键Tab键,在出现的面板里点···按钮,再点击生成世界即可。

★ 如果不想一键生成,世界资源手动配置方法附加在最底部

三、MOD设置方法—移植法

学会了世界资源的移植法,MOD移植法也是同一个道理,主要分为以下三步

1、获取现成的MOD配置资源

还是登陆游戏,选择创建游戏,我们还是以第一个存档为例,在模组里勾选你想添加的模组,点击回到世界。

进入游戏之后就可以退出了, 此时MOD的配置文件已经通过游戏生成好了。

2、将生成的MOD配置文件覆盖上传

按照之前的方法,打开游戏保存位置

因为我们是在第一个存档修改的,所以需要Cluster_1里面的文件

(1)地上MOD: 打开 Cluster_1 /Master/,里面的modoverrides.lua就是地上世界的资源配置文件,把这个文件覆盖上传到你服务器的/root/.klei/DoNotStarveTogether/A/Master文件夹下,地上MOD就配置好啦。

(2)洞穴MOD: 打开 Cluster_1 /Master/,里面的modoverrides.lua就是洞穴世界的资源配置文件,把这个文件覆盖上传到你服务器的/root/.klei/DoNotStarveTogether/A/Master文件夹下,洞穴MOD就配置好啦。

3、如何使MOD生效

MOD覆盖上传之后,这时候还没有生效,因为你只是把配置文件上传了,但是还没有上传MOD的源文件。顶部预备篇我们已经提到本地MOD和服务器MOD源文件的存放路径,把本地MOD上传至服务器即可。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
*\Steam\steamapps\common\Don't Starve Together\mods                         ##这里的*指的是你本地安装STEAM的路径
                                 ↓上传至服务器
/root/Steam/steamapps/common/Don't Starve Together Dedicated Server/mods    ##这是服务器MOD目录

上传之后,重新登录游戏就可以啦!

★ MOD手动配置方法同样附加在最底部

四、设置管理员(可选)

饥荒的管理员会有特殊操作权限,如果创建者不在而你因为特殊原因要回滚世界 ,就需要被赋予管理员权限才能执行回退世界的操作

1、首先获取自己的KLEI用户ID,我在第一节提到过 ,进游戏之后点“账户”即可查看

2、在服务器存档(比如之前建立的A存档)下新建一个文本文档,命名为adminlist.txt,将你的KLEI用户ID写进去就可以啦,保存退出。

五、设置白名单(可选)

如果人太多了,挤不进去怎么办

这就需要提前给自己预留一个位置,如果服务器可以容纳8个人,设置两个白名单的话,那么相当于这个服务器只能进入6个普通用户。就算两个白名单没有上线,也只能进6个

在存档根目录下新建whitelist.txt,在里面输入你的klei用户ID即可

六、如何BAN恶意操作用户

如果有人进来就烧家、喂你植物纤维的话

BAN他!

在存档根目录下新建blocklist.txt,在里面输入他的klei用户ID,它的ID可以在日志信息中找到

当然最简单的办法是在游戏中按下Tab,直接踢

只要掌握了如何修改资源和MOD,就可以正常游戏了,如果操作能力强的可以继续往下研究,我在本页底部会把每个配置文件的内容的作用列出来


正文结束


声明:本资料仅供学习交流,严禁使用于任何商业用途,由此产生的版权纠纷本站不负任何责任,并保留追究法律责任的权力!

如需转载,请注明出处:www.qimumu.top

友情链接:

手把手教你搭饥荒专用服务器(一)—服务器准备工作

手把手教你搭饥荒专用服务器(二)—环境配置及基本使用

手把手教你搭饥荒专用服务器(三)—MOD及其他高级设置

手把手教你搭饥荒专用服务器(四)—本地存档转专用存档


附:各配置文件信息及手动修改方法

所给的配置文件均在ubuntu系统下调试通过,可直接使用


1、世界地图资源(地上部分)

如需要自己配置,将以下内容保存为 leveldataoverride.lua,放入Master文件夹中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
return {
  desc="标准《饥荒》体验。",
  hideminimap=false,
  id="SURVIVAL_TOGETHER",
  location="forest",
  max_playlist_position=999,
  min_playlist_position=0,
  name="默认",
  numrandom_set_pieces=4,
  override_level_string=false,
  overrides = {                   ##以下为修改世界的各种选项
    ## 默认的资源等级分别为  "never", "rare", "default", "often", "always"
 
    ## 环境配置
	task_set = "default",         ## 默认为"classic", "default", "cave_default"
    start_location = "default",   ## 默认为"caves", "default", "plus", "darkness"
    world_size = "default",       ## 默认为"small", "medium", "default", "huge"
    branching = "default",        ## 默认为"never", "least", "default", "most"
    loop = "default",             ## 默认为"never", "default", "always"
    autumn = "default",           ## 默认为"noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random"
    winter = "default",      	  ## 默认为"noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random"
    spring = "default",      	  ## 默认为"noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random"
    summer = "default",      	  ## 默认为"noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random"
    season_start = "default",     ## 默认为"default", "winter", "spring", "summer", "autumnorspring", "winterorsummer", "random"
    day = "default",           ## 默认为"default", "longday", "longdusk", "longnight", "noday", "nodusk", "nonight", "onlyday", "onlydusk", "onlynight"
    weather = "default",
    earthquakes = "default",
    lightning = "default",
    frograin = "default",
    wildfires = "default",
    touchstone = "default",
    regrowth = "default",     	   ## 默认为"veryslow", "slow", "default", "fast", "veryfast"
    cavelight = "default",         ## 默认为"veryslow", "slow", "default", "fast", "veryfast"
    boons = "default",
    prefabswaps_start = "default", ## 默认为"classic", "default", "highly random"
    prefabswaps = "default",       ## 默认为"none", "few", "default", "many", "max"
 
    ## 资源设置
    flowers = "default",
    grass = "default",
    sapling = "default",
    marshbush = "default",
    tumbleweed = "default",
    reeds = "default",
    trees = "default",
    flint = "default",
    rock = "default",
    rock_ice = "default",
    meteorspawner = "default",
    meteorshowers = "default",
    mushtree = "default",
    fern = "default",
    flower_cave = "default",
    wormlights = "default",
 
    ## 随机设置
    berrybush = "default",
    carrot = "default",
    mushroom = "default",
    cactus = "default",
    banana = "default",
    lichen = "default",
 
    ## 动物设置
    rabbits = "default",
    moles = "default",
    butterfly = "default",
    birds = "default",
    buzzard = "default",
    catcoon = "default",
    perd = "default",
    pigs = "default",
    lightninggoat = "default",
    beefalo = "default",
    beefaloheat = "default",
    hunt = "default",
    alternatehunt = "default",
    penguins = "default",
    cave_ponds = "default",
    ponds = "default",
    bees = "default",
    angrybees = "default",
    tallbirds = "default",
    slurper = "default",
    bunnymen = "default",
    slurtles = "default",
    rocky = "default",
    monkey = "default",
 
    ## 怪物设置
    spiders = "default",
    cave_spiders = "default",
    hounds = "default",
    houndmound = "default",
    merm = "default",
    tentacles = "default",
    chess = "default",
    lureplants = "default",
    walrus = "default",
    liefs = "default",
    deciduousmonster = "default",
    krampus = "default",
    bearger = "default",
    deerclops = "default",
    goosemoose = "default",
    dragonfly = "default",
    bats = "default",
    fissure = "default",
    worms = "default",
 },
}

2、世界地图资源(洞穴部分)

如需要自己配置,将以下内容保存为 leveldataoverride.lua ,放入Caves文件夹中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
return {
  background_node_range={ 0, 1 },
  desc="探查洞穴…… 一起!",
  hideminimap=false,
  id="DST_CAVE",
  location="cave",
  max_playlist_position=999,
  min_playlist_position=0,
  name="洞穴",
  numrandom_set_pieces=0,
  override_level_string=false,
  overrides = {                    ##以下为修改世界的各种选项
    ## 默认的资源等级分别为"never", "rare", "default", "often", "always"
 
    ## 环境配置
    task_set = "cave_default",   ## 默认为"classic", "default", "cave_default"
    start_location = "default",  ##默认为 "caves", "default", "plus", "darkness"
    world_size = "default",   	 ## 默认为"small", "medium", "default", "huge"
    branching = "default",   	 ## 默认为"never", "least", "default", "most"
    loop = "default",       	 ## 默认为"never", "default", "always"
    autumn = "default",      	 ## 默认为"noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random"
    winter = "default",      	 ## 默认为"noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random"
    spring = "default",      	 ## 默认为"noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random"
    summer = "default",      	 ## 默认为"noseason", "veryshortseason", "shortseason", "default", "longseason", "verylongseason", "random"
    season_start = "default",    ## 默认为"default", "winter", "spring", "summer", "autumnorspring", "winterorsummer", "random"
    day = "default",        	 ## 默认为"default", "longday", "longdusk", "longnight", "noday", "nodusk", "nonight", "onlyday", "onlydusk", "onlynight"
    weather = "default",
    earthquakes = "default",
    lightning = "default",
    frograin = "default",
    wildfires = "default",
    touchstone = "default",
    regrowth = "default",     		 ## 默认为"veryslow", "slow", "default", "fast", "veryfast"
    cavelight = "default",     		 ## 默认为"veryslow", "slow", "default", "fast", "veryfast"
    boons = "default",
    prefabswaps_start = "default",   ## 默认为"classic", "default", "highly random"
    prefabswaps = "default",    	 ## 默认为"none", "few", "default", "many", "max"
 
    ## 资源配置
    flowers = "default",
    grass = "default",
    sapling = "default",
    marshbush = "default",
    tumbleweed = "default",
    reeds = "default",
    trees = "default",
    flint = "default",
    rock = "default",
    rock_ice = "default",
    meteorspawner = "default",
    meteorshowers = "default",
    mushtree = "default",
    fern = "default",
    flower_cave = "default",
    wormlights = "default",
 
    ## 随机配置
    berrybush = "default",
    carrot = "default",
    mushroom = "default",
    cactus = "default",
    banana = "default",
    lichen = "default",
 
    ## 动物配置
    rabbits = "default",
    moles = "default",
    butterfly = "default",
    birds = "default",
    buzzard = "default",
    catcoon = "default",
    perd = "default",
    pigs = "default",
    lightninggoat = "default",
    beefalo = "default",
    beefaloheat = "default",
    hunt = "default",
    alternatehunt = "default",
    penguins = "default",
    cave_ponds = "default",
    ponds = "default",
    bees = "default",
    angrybees = "default",
    tallbirds = "default",
    slurper = "default",
    bunnymen = "default",
    slurtles = "default",
    rocky = "default",
    monkey = "default",
 
    ## 怪物配置
    spiders = "default",
    cave_spiders = "default",
    hounds = "default",
    houndmound = "default",
    merm = "default",
    tentacles = "default",
    chess = "default",
    lureplants = "default",
    walrus = "default",
    liefs = "default",
    deciduousmonster = "default",
    krampus = "default",
    bearger = "default",
    deerclops = "default",
    goosemoose = "default",
    dragonfly = "default",
    bats = "default",
    fissure = "default",
    worms = "default",
  },
}

3、通用配置文件(即根目录下**cluster.ini**)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[GAMEPLAY]
max_players = 16                   # 最大游戏人数
pvp = true                         # 能不能攻击其他玩家,能不能给其他玩家喂屎
game_mode = survival               # 游戏模式,可选 survival, endless or wilderness,与玩家死亡后的负面影响有关
pause_when_empty = false           # 没人服务器暂停,刷天数必备
vote_kick_enabled = false          # 投票踢人

[STEAM]
steam_group_only = false           # 只允许某 Steam 组的成员加入
steam_group_id = 0                 # 指定某个 Steam 组,填写组 ID
steam_group_admins = false         # 开启后,Steam 组的管理员拥有服务器的管理权限


[NETWORK]
cluster_description = ~  		      # 游戏房间描述
cluster_name = ~     			        # 游戏房间名称
cluster_intention = social         # 游戏偏好,可选 cooperative, competitive, social,  madness,随便设置,没用
cluster_password =                 # 游戏密码,不设置表示无密码
offline_server = false             # 是否离线服务器,只有局域网用户能加入,并且所有依赖于 Steam 的任何功能都无效,比如说饰品掉落
tick_rate = 15                     # 每秒通信次数,越高游戏体验越好,但是会加大服务器负担
whitelist_slots = 0                # 为白名单用户保留的游戏位
lan_only_cluster = false           # 局域网游戏


[MISC]
console_enabled = true             # 是否开启控制台
max_snapshots = 6                  # 最大快照数,决定了可回滚的天数


[SHARD]
shard_enabled = true               # 是否允许地上及洞穴互通,开启洞穴的话必须填true       
bind_ip = 127.0.0.1  		          # 服务器监听的地址,单服务器搭建填 127.0.0.1,双服务器搭建填0.0.0.0
master_ip = 127.0.0.1	  	  	    # 主世界服务器的 IP,单服务器搭建填127.0.0.1,双服务器搭建填写服务器的公网IP
master_port = 10889  			        # 监听 master 服务器的 UDP 端口
cluster_key = supersecretkey       # 游戏通讯密码,每台服务器必须相同

4、独立配置文件(**Master**和**Caves**下的**server.ini**)

(1) 地上部分,保存为 server.ini**,并放到** Master 文件夹内:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[NETWORK]
server_port = 11000				# 监听的 UDP 端口,只能介于 10998 - 11018 之间,确保每个实例都不相同


[SHARD]
is_master = true     		    # 是否是 master 服务器,只能存在一个 true,其他全是 false


[STEAM]
master_server_port = 27018		# Steam 用的端口,确保每个实例都不相同
authentication_port = 8768		# Steam 用的端口,确保每个实例都不相同


[ACCOUNT]
encode_user_path = true

(2) 洞穴部分,保存为 server.ini**,放到** Caves 文件夹内:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[NETWORK]
server_port = 11001				# 监听的 UDP 端口,只能介于 10998 - 11018 之间,确保每个实例都不相同


[SHARD]
is_master = false     		    # 是否是 master 服务器,只能存在一个 true,其他全是 false
name = Caves                 # 从世界的名称
id = 3156403571              # 随机生成,不用加入该属性

[STEAM]
master_server_port = 27019		# Steam 用的端口,确保每个实例都不相同
authentication_port = 8769		# Steam 用的端口,确保每个实例都不相同


[ACCOUNT]
encode_user_path = true

5、MOD配置文件

因为MOD设置地上和洞穴是一样的,配置完一个之后一式两份拷贝到 MasterCaves 就可以了。

这里给出我配置的MOD文件作为参考

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
return {
  ["workshop-1079538195"]={
    configuration_options={
      beebox=true,
      birdcage=true,
      cartographydesk=true,
      cookpot=true,
      dragonflychest=true,
      dragonflyfurnace=true,
      endtable=true,
      firesuppressor=true,
      icebox=true,
      lightning_rod=true,
      meatrack=true,
      modsupport=true,
      moondial=true,
      mushroom_farm=true,
      mushroom_light=true,
      nightlight=true,
      perdshrine=true,
      pottedfern=true,
      rainometer=true,
      researchlab=true,
      researchlab2=true,
      researchlab3=true,
      researchlab4=true,
      resurrectionstatue=true,
      saltlick=true,
      scarecrow=true,
      sculptingtable=true,
      succulent_potted=true,
      townportal=true,
      treasurechest=true,
      wardrobe=true,
      winterometer=true 
    },
    enabled=true 
  },
  ["workshop-1166220990"]={ configuration_options={ attract=2, language=2 }, enabled=true },
  ["workshop-1185229307"]={ configuration_options={  }, enabled=true },
  ["workshop-1699194522"]={ configuration_options={ Language=true }, enabled=true },
  ["workshop-1829477822"]={ configuration_options={  }, enabled=true },
  ["workshop-1914860022"]={ configuration_options={  }, enabled=true },
  ["workshop-1914899068"]={
    configuration_options={
      [""]=0,
      BATTLE_HAT_ABSORPTION=80,
      BATTLE_HAT_HP=12000,
      BATTLE_SPEAR_DAMAGE=42.5,
      BATTLE_SPEAR_USES=400,
      HAMBAT_DAMAGE=110.5,
      HAMBAT_PERISHABLE="NO",
      hat_goldnugget=1,
      hat_rocks=1,
      spear_flint=1,
      spear_goldnugget=1,
      spear_twigs=1 
    },
    enabled=true 
  },
  ["workshop-347079953"]={
    configuration_options={ DFV_Language="CN", DFV_MinimalMode="default" },
    enabled=true 
  },
  ["workshop-362175979"]={ configuration_options={ ["Draw over FoW"]="disabled" }, enabled=true },
  ["workshop-374550642"]={ configuration_options={ MAXSTACKSIZE=250 }, enabled=true },
  ["workshop-375850593"]={ configuration_options={  }, enabled=true },
  ["workshop-375859599"]={
    configuration_options={
      divider=5,
      random_health_value=0,
      random_range=0,
      send_unknwon_prefabs=false,
      show_type=0,
      unknwon_prefabs=1,
      use_blacklist=true 
    },
    enabled=true 
  },
  ["workshop-378160973"]={
    configuration_options={
      ENABLEPINGS=true,
      FIREOPTIONS=2,
      OVERRIDEMODE=false,
      SHAREMINIMAPPROGRESS=true,
      SHOWFIREICONS=true,
      SHOWPLAYERICONS=true,
      SHOWPLAYERSOPTIONS=2 
    },
    enabled=true 
  },
  ["workshop-462434129"]={
    configuration_options={
      MOD_RESTART_ALLOW_KILL=true,
      MOD_RESTART_ALLOW_RESTART=true,
      MOD_RESTART_ALLOW_RESURRECT=true,
      MOD_RESTART_CD_BONUS=0,
      MOD_RESTART_CD_KILL=0,
      MOD_RESTART_CD_MAX=0,
      MOD_RESTART_CD_RESTART=0,
      MOD_RESTART_CD_RESURRECT=0,
      MOD_RESTART_FORCE_DROP_MODE=0,
      MOD_RESTART_IGNORING_ADMIN=true,
      MOD_RESTART_MAP_SAVE=1,
      MOD_RESTART_RESURRECT_HEALTH=100,
      MOD_RESTART_TRIGGER_MODE=1,
      MOD_RESTART_WELCOME_TIPS=true,
      MOD_RESTART_WELCOME_TIPS_TIME=6 
    },
    enabled=true 
  },
  ["workshop-466732225"]={ configuration_options={  }, enabled=true },
  ["workshop-588560555"]={ configuration_options={  }, enabled=true },
  ["workshop-661253977"]={
    configuration_options={ amudiao=true, baodiao=1, kong=0, rendiao=2, zbdiao=true },
    enabled=true 
  },
  ["workshop-666155465"]={
    configuration_options={
      chestB=-1,
      chestG=-1,
      chestR=-1,
      food_estimation=-1,
      food_order=0,
      food_style=1,
      lang="chs",
      show_food_units=-1,
      show_uses=-1 
    },
    enabled=true 
  },
  ["workshop-679636739"]={ configuration_options={  }, enabled=true },
  ["workshop-770901818"]={
    configuration_options={ days=2, enable_houndattack=true, format="complex" },
    enabled=true 
  } 
}

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-12-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
如何骚气的打开 web 页面录制与回放的黑盒子~rrweb
前段时间开源了我们的 web 录制、回放基础库 rrweb,它可以将⻚⾯中的 DOM 以及⽤户操作保存为可序列化的数据,以实现远程回放。
苏南
2020/12/16
1.6K0
如何骚气的打开 web 页面录制与回放的黑盒子~rrweb
Rejouer:探秘web页面录制与回放的新大陆
在我长期的固有认知中:为了收集和上报网站交互过程中 JavaScript 的报错信息和其它相关数据,我们一般会采用自研或者第三方的SDK,也可以简单理解为埋点。这也是为了方便生产问题的排查,做到可溯源。
前端森林
2021/10/08
2.1K0
Rejouer:探秘web页面录制与回放的新大陆
浅析 Web 录屏技术方案与实现
本文首发于政采云前端团队博客:浅析 Web 录屏技术方案与实现 https://www.zoo.team/article/webrtc-screen
政采云前端团队
2021/11/12
2.1K0
前端录屏 + 定位源码,帮你快速定位线上 bug
web-see[1] 前端监控方案,提供了 前端录屏+定位源码 方式,让bug无处藏身
前端老道
2023/02/27
1.7K0
前端录屏 + 定位源码,帮你快速定位线上 bug
如何将录制的DOM转成视频文件
Dear,大家好,我是“前端小鑫同学”,😇长期从事前端开发,安卓开发,热衷技术,在编程路上越走越远~ 背景说明:      最近有在看GitHub上的rrweb项目,确实是一款DOM录制的神器,在使用文档中提供了很多我们会用到的场景和对应的示例,我们今天来看一下其中一个场景《转换为视频》,虽然rrweb直接回放的效果最佳但还是会遇到需要转为视频进行存储的要求,通过查看rrweb提供的rrvideo项目后决定写一下整个转换的过程,大致的流程图如下: 环境配置: 安
前端小鑫同学
2022/12/26
1.8K0
如何将录制的DOM转成视频文件
大厂前端面试考什么?2
JSONP 核心原理:script 标签不受同源策略约束,所以可以用来进行跨域请求,优点是兼容性好,但是只能用于 GET 请求;
loveX001
2023/01/04
6120
前端速记
日常记录一些 js/css 相对实用的小笔记,本笔记保持长期更新,如有错误或更好的方案留言反馈
2Broear
2024/03/12
2150
前端速记
来自大厂 10+ 前端面试题附答案(整理版)
这里也是在考察变量提升,关键在于第一个fn2(),这时fn2仍是一个undefined的变量,所以会报错fn2不是一个函数。
loveX001
2022/11/03
5840
记录一些前端面试题
定时自动刷新,content表示刷新间隔,单位为秒s,下面代码表示页面每隔三秒刷新一次
wscats
2020/06/05
6870
腾讯前端一面常考面试题合集
默认情况下, TCP 连接会启⽤延迟传送算法 (Nagle 算法), 在数据发送之前缓存他们. 如果短时间有多个数据发送, 会缓冲到⼀起作⼀次发送 (缓冲⼤⼩⻅ socket.bufferSize ), 这样可以减少 IO 消耗提⾼性能.
loveX001
2022/09/15
4210
作为前端你还不懂MutationObserver?那Out了
为什么突然写MutationObserver呢?最近在写页面水印的时候用到了MutationObserver方法,两者之间有什么联系呢?不用MutationObserver情况下,使用网站的人员可以随意修改DOM就可以把系统作者的版权标识(水印)去掉,然后使用无水印的网站,这显然是违背了系统作者的意愿,那么怎么防止这一操作呢?当然是MutationObserver,它能够监听DOM的变化,根据DOM的变化然后做出相应操作,比如删除水印后,使用MutationObserver监听到了水印的DOM被删除,就会立即生成一个水印,这样就杜绝了上面的情况。
can4hou6joeng4
2023/11/29
3160
滴滴前端一面常考手写面试题合集2
setInterval 的作用是每隔一段指定时间执行一个函数,但是这个执行不是真的到了时间立即执行,它真正的作用是每隔一段时间将事件加入事件队列中去,只有当当前的执行栈为空的时候,才能去从事件队列中取出事件执行。所以可能会出现这样的情况,就是当前执行栈执行的时间很长,导致事件队列里边积累多个定时器加入的事件,当执行栈结束的时候,这些事件会依次执行,因此就不能到间隔一段时间执行的效果。
helloworld1024
2023/01/04
8620
2023秋招前端面试必会的面试题_2023-02-28
事件是用户操作网页时发生的交互动作,比如 click/move, 事件除了用户触发的动作外,还可以是文档加载,窗口滚动和大小调整。事件被封装成一个 event 对象,包含了该事件发生时的所有相关信息( event 的属性)以及可以对事件进行的操作( event 的方法)。
用户10377376
2023/02/28
8890
滴滴前端一面常考手写面试题整理_2023-03-01
类数组是具有length属性,但不具有数组原型上的方法。常见的类数组有arguments、DOM操作方法返回的结果。
用户10358576
2023/03/01
1.9K0
详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
当时的我年轻气盛,在简历上放了自己的博客地址,而面试官应该是翻了我的博客,好几道面试题都是围绕着我的博文来提问
用户6256742
2024/06/22
5810
大厂前端面试考什么?
浏览器的渲染进程的线程总共有五种: (1)GUI渲染线程 负责渲染浏览器页面,解析HTML、CSS,构建DOM树、构建CSSOM树、构建渲染树和绘制页面;当界面需要重绘或由于某种操作引发回流时,该线程就会执行。
loveX001
2022/11/17
1.3K0
前端监控 SDK 的一些技术要点原理分析
本文要讲的就是其中的第一个环节——数据采集与上报。下图是本文要讲述内容的大纲,大家可以先大致了解一下:
谭光志
2022/03/24
2.4K0
前端监控 SDK 的一些技术要点原理分析
那些高级前端是如何回答面试题的_2023-02-24
这个问题相信很多人会第一时间想到 Promise.all ,但是这个函数有一个局限在于如果失败一次就返回了,直接这样实现会有点问题,需要变通下。以下是两种实现思路
gogo2027
2023/02/24
5640
校招前端必会面试题_2023-03-01
实际上,上面的代码并不是立即执行的,这是因为setTimeout有一个最小执行时间,HTML5标准规定了setTimeout()的第二个参数的最小值(最短间隔)不得低于4毫秒。 当指定的时间低于该时间时,浏览器会用最小允许的时间作为setTimeout的时间间隔,也就是说即使我们把setTimeout的延迟时间设置为0,实际上可能为 4毫秒后才事件推入任务队列。
jsisbset
2023/03/01
1.2K0
前端高频手写面试题总结
输入字符串s,以及其重复的次数,输出重复的结果,例如输入abc,2,输出abcabc。
helloworld1024
2022/12/12
2.3K0
相关推荐
如何骚气的打开 web 页面录制与回放的黑盒子~rrweb
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验