【饥荒联机】服务器移除实体指令 您所在的位置:网站首页 饥荒石果树 【饥荒联机】服务器移除实体指令

【饥荒联机】服务器移除实体指令

2024-01-11 05:59| 来源: 网络整理| 查看: 265

** 此文为我在Steam社区的教程的重新上传,Steam社区链接请戳:https://steamcommunity.com/sharedfiles/filedetails/?id=1577275691

当时写文的版本为296477

懒人请看

删除一个物体:

c_findnext(实体名称,距离):Remove()

比如:c_findnext("beefalo",30):Remove()

多次删除一种物体(其实只是上面指令的循环:

for i=1,次数,1 do c_findnext(实体名称,距离):Remove() end

比如:for i=1,10,1 do c_findnext("beefalo",30):Remove() end

例子:删除距离为10以内的一个鹿鹅刷新点c_findnext("moose_nesting_ground",10):Remove()

删除距离为10以内的一个洞穴入口

c_findnext("cave_entrance",10):Remove()

**如果上面的指令无效,请尝试:

c_findnext("cave_entrance_open",10):Remove()

删除鼠标处物体在专用服务器中失效的原因

最开始想到要删除物体,是在一个200天左右的饥荒海难联机档里面。因为地图刷的不好导致池塘卡在一个岛屿连接处中间。(联机版海难mod请搜索饥荒联机|热带地形MOD)尝试了一下之前用到的删除鼠标处物体的指令:

TheInput:GetWorldEntityUnderMouse():Remove()(或者用c_select()同理)

在饥荒客户端里直接开的服务器用上面的指令可以成功删除物体。然而这几天开专用服务器玩耍,想要把家旁边一片春季boss刷新点和池塘删除掉的时候,发现上面的指令并没有用。个人推测 TheInput:GetWorldEntityUnderMouse():Remove() 这条指令有以下两点:

(1)只能删除可以互动的实体(比如松树、掉落在地上的物品、联机的大门),不能删除大部分不能互动的物体(比如春季boss刷新点、远古遗迹中的洼洞、san值在15%和87.5%之间自然产生的影怪等等)。原因可能是这些不能互动的物体不属于实体而属于精灵或者其他类型。

春季boss巢(鹿鹅)

(2)在专用服务器中会失效。(如果只是自己玩耍请忽略这条。自己直接在饥荒客户端内开服玩耍控制台是没有Remote和Local的区别的orz)之前在网上查到的指令是讲没有管理员权限或者是控制台没有设置成远程模式(Remote,打开控制台后输入栏左边的字。可以按Ctrl在Remote和Local之间切换)。两点我都检查过,在我自己的档里面上面的方法依然没有效果。同时专用服务器上的日志显示“attempt to call a nil value” 该指令在Local模式下运行会起效然后游戏马上崩溃。个人推测专用服务器上GetWorldEntityUnderMouse()会返回空值,所以会出现上面的情况。

移除一个实体的指令

通过删除附近的一个实体可以完美回避掉牵涉到鼠标位置和互动的问题,从而解决上面两个问题:

c_findnext(实体名称,距离):Remove()

该指令具体功能是删除一定距离内的下一个实体,但是需要注意:

***删除箱子、冰箱、锅这类有储物格的物体时,储存的物体也会一并被删除。

***距离内的箱子、冰箱、锅之类的存储器内物品同样会被该指令遍历、删除。

***注意一叠物品会被认为是一个物体。例如把木头*20放在地上用这个指令会删除掉20个木头而非1个(因为一组木头被游戏认为是一个实体)。

比如删除30码内的下一头牛:c_findnext("beefalo",30):Remove()

这里30码下一头的顺序是根据物体生成顺序决定的。如果有多个同种物体的话建议贴到物体旁边然后把距离设置成2到5之间这种较小的值,避免误删实体。

移除多个实体(相同实体名称)

这个其实没啥区别,在外面套一层循环就可以做到多次删除一种物体。如果学过一点Lua的话就随便改这个代码,和debugspawn配合食用效果更加,可以实现大规模修改地形的效果:

for i=1,次数,1 do c_findnext(实体名称,distance):Remove() end

比如:当你的小伙伴非常懒叫猪人砍完整片树林,又懒得挖树根?

for i=1,100,1 do c_findnext("evergreen”,50):Remove() end

(这么懒还玩什么饥荒233)

实体名称和一些特殊实体的删除

物体名称,大部分情况下就是生成代码。建议到饥荒wiki上面找:饥荒中文维基[zh.dontstarve.wikia.com]

鹿鹅生成代码

比如鹿鹅,物体名称就是"moose",所以想要删除10码内的鹿鹅的话指令就是:

c_findnext("moose",10):Remove()

另一方面有一些物体的生成代码和实体名称是不一样的。比如树桩的生成指令是“stump_evergreen”,但是删除树桩时依然要用常青树的指令"evergreen":c_findnext("evergreen",10):Remove()同时,不可互动的物体也可以通过这个指令删除,比如删除鹿鹅巢:

c_findnext("moose_nesting_ground",10):Remove()联机版中的洞穴入口出口也可以删除。比如删除总是刷蝙蝠的基地边上的入口:

入口: c_findnext("cave_entrance_open",10):Remove()或: c_findnext("cave_entrance",10):Remove()

出口: c_findnext("cave_exit",10):Remove()

删除之后可以使用c_spawn生成指令产生一个新入口/新出口,否则人物进出洞穴时就会从地面/洞穴的传送门里而不是对应的入口/出口出来。

10码的距离到底多远

之前做了个试验看10码距离大概多少:

用花瓣标记了树枝的位置,然后一边靠近一边输入c_findnext("sapling",10):Remove()

10码大致的长度

这么看的话10码大概是1/3个横屏的长度



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有