本文章为饥荒进阶控制台代码,其他更高级的控制代码请参考饥荒联机版控制台物品代码大全

文中大多数内容都并非原创,只是做了简单的整合,方便本人查看

对玩家

创造模式:

1
ThePlayer.components.builder:GiveAllRecipes()

设置最大生命值:

1
ThePlayer.components.health:SetMaxHealth()

括号内设置生命数值

设置最大理智值:

1
ThePlayer.components.sanity:SetMax()

括号内设置理智数值

设置最饥饿值:

1
ThePlayer.components.hunger:SetMax(value)

括号内设置最大饥饿值

伤害倍数:

1
ThePlayer.components.combat.damagemultiplier = 数值

设置生命值:

1
c_sethealth()

百分比血量,括号内值为0%到100%,可以使用对应分数

设置理智值:

1
c_setsanity()

百分比血量,括号内值为0%到100%,可以使用对应分数

设置饱食度:

1
c_sethunger()

百分比血量,括号内值为0%到100%,可以使用对应分数

设置温度:

1
c_settemperature()

括号内取值为:-20到85

设置湿度:

1
c_setmoisture()

百分比,括号内值为0%到100%,可以使用对应分数

上帝模式:

1
c_godmode()

超级上帝模式

1
c_supergodmode()

修改速度:

1
c_speedmult()

在括号内设置速度倍数

对其他玩家命令

列出玩家用户名和编号:

1
c_listallplayers()

在游戏中使用时可能由于显示原因,没有列出玩家列表

可在自建服务器中使用

玩家编号可通过Tab键最右边查看,有概率会不一样,但如果是自建服务器就只能这样使用

对某一玩家使用命令:

1
AllPlayers[]

[]内使用玩家编号来选择玩家

对所有玩家使用命令:

1
for k,v in pairs(AllPlayers) do command end

只修改command,用其他命令代替command,使用 “v” 代替命令中的 AllPlayers[number]。例如, “for k,v in pairs(AllPlayers) do c_move(v) end” 将会把所有玩家都移动到鼠标所指的位置。

移动一个玩家:

1
c_move(AllPlayers[number])

移动玩家到鼠标指定位置

复活玩家:

1
AllPlayers[number]:PushEvent('death')

传送至玩家:

1
c_goto(AllPlayers[number])

number为玩家编号

丢弃玩家物品栏物品:

1
AllPlayers[number].components.inventory:DropEverything()

玩家重选角色:

1
c_despawn(AllPlayers[number])

number为玩家编号

服务器指令

踢出或封禁玩家:

1
2
TheNet:Kick(userid)
TheNet:Ban(userid)

userid可通过Tab查看,或者使用玩家编号AllPlayers[#].userid

临时封禁:

1
TheNet:BanForTime(userid,time_in_seconds)

userid可通过Tab查看,或者使用玩家编号AllPlayers[#].userid

time_in_seconds为要封禁的秒数

连接服务器:

1
c_connect("IP address", port, "password")

如果无法进行常规的连接,可以使用该命令直接连接一个IP地址。默认情况下,端口是10999。如果服务器没有密码的话,你可以不填密码参数:c_connect(“10.0.0.8”, 10999)

重新加载世界:

1
c_reset() 

不保存游戏并重载世界(也就是重载到上一个储存点)。如果你是一个客户端的话,该命令可能会造成你的游戏崩溃(除非你用远程命令模式发送该命令)。

重新生成世界:

1
c_regenerateworld()

重生生成世界。

重新生成世界碎片:

1
c_regenerateshard()

重新生成世界碎片。

保存:

1
c_save()

强制服务器立即保存。(服务器通常在夜晚结束的时候自动保存)

  • 关闭服务器:
1
c_shutdown( true / false)

true 会保存游戏,false 不会保存游戏。 c_shutdown() 和 c_shutdown(true) 是一样的。

回档:

1
c_rollback(count)

回档服务器一定次数。 c_rollback() 会回档一次,c_rollback(3) 会回档三次。

启用/禁用新玩家加入:

1
TheNet:SetAllowIncomingConnections( true / false )

默认情况下设置为 true (新玩家可以加入)。设置为 false 将禁止玩家进入。

发送一个服务器公告:

1
c_announce("announcement")

可以发送一个公告给玩家,例如即将关闭 / 重启服务器,让玩家知道即将断线。

对世界

传送:

1
c_gonext("prefab")

可以将玩家传送到世界存在的实体处,如果存在多处,执行后依次传送

删除实体:

1
2
ConsoleWorldEntityUnderMouse():Remove()
c_select():Remove()

输入该命令后,将会删除你鼠标下的物品。在专用服务器上使用第二个命令,因为第一个不能在专用服务器上使用。

显示地图:

1
2
minimap = TheSim:FindFirstEntityWithTag("mini­map")
TheWorld.minimap.MiniMap:ShowArea (0,0,0,10000)

这是一个本地命令,且客户端不可用。

跳过一天

1
TheWorld:PushEvent("ms_nextcycle")

跳过时间

1
TheWorld.net.components.clock:OnUpdate(16*30*x) 

跳过 x 天。将 x 修改为所要跳的天数(例如,16*30*4.5 为跳过4.5天)警告数值太大可能会冻结游戏。(取决于电脑的运算速度

跳过时间单元并更新

1
LongUpdate(X)

对世界对象执行 “LongUpdate” 事件并跳过X个时间单元

注:每一个时间部分有30个时间单元。想要跳过一天可以使用 LongUpdate(480) 或者用乘法计算,例如 LongUpdate(X1630) 或者 LongUpdate(X*TUNING.TOTAL_DAY_TIME) X 为想要跳过的天数

译者注:每天有16个小部分,每部分有30个时间单元,每单元为现实中的一秒,所以一天为现实中的8分钟。(详见日夜周期 )

跳过时钟阶段

1
TheWorld:PushEvent("ms_nextphase")

跳过当前时钟阶段。

设置时钟阶段

1
TheWorld:PushEvent("ms_setclocksegs", {day=x,dusk=y,night=z}) 

设置每个时钟阶段的时间部分的数量。如果 x + y + z 加起来超过 16 将会产生错误。注意这样的修改第二天会复原。
例子:

1
TheWorld:PushEvent("ms_setclocksegs", {day=14,dusk=1,night=1})

非常长的白天,非常短的黄昏和夜晚(只给黄昏一个时间部分和夜晚一个时间部分)

设置季节的时钟阶段

1
TheWorld:PushEvent("ms_setseasonclocksegs", {summer={day=sx,dusk=sy,night=sz}, winter={day=wx,dusk=wy,night=wz}}) 

为指定季节设置每个时钟阶段的时间部分的数量。如果 x + y + z 加起来超过 16 将会生错误。不像设置时钟阶段一样,该设置是永久性的。
例子:

1
TheWorld:PushEvent("ms_setseasonclocksegs", {summer={day=14,dusk=1,night=1}, winter={day=13,dusk=1,night=2}})

非常长的白天,非常短的黄昏和夜晚(夏天:只给黄昏一个时间部分和夜晚一个时间部分,冬天:只给黄昏一个时间部分和夜晚两个个时间部分)

设置季节长度

1
TheWorld:PushEvent("ms_setseasonlength", {season="summer", length=15})

设置季节的长度。

进入夏季

1
TheWorld:PushEvent("ms_setseason", "summer")

进入夏季

进入冬季

1
TheWorld:PushEvent("ms_setseason", "winter")

进入冬季

当添加了巨人的统治DLC,会有额外的命令TheWorld:PushEvent(“ms_setseason”, “spring”) 和 TheWorld:PushEvent(“ms_setseason”, “autumn”)

开始下雨

1
TheWorld:PushEvent("ms_forceprecipitation")

开始下雨

停止下雨

1
TheWorld:PushEvent("ms_forceprecipitation", false) 

停止下雨。这包括青蛙雨。

生成闪电

1
TheWorld:PushEvent("ms_sendlightningstrike", ConsoleWorldPosition())

闪电击中玩家,如果靠近避雷针的话,则击中避雷针。

陨星撞击

1
c_spawn("shadowmeteor", 1)

陨星撞击在鼠标的位置。随机生成不同类型的岩石。

激活所有的事件

1
for k, v in pairs(SPECIAL_EVENTS) do if v ~= SPECIAL_EVENTS.NONE then local tech = TECH[k] if tech ~= nil then tech.SCIENCE = 0 end end end function IsSpecialEventActive(event) return true end

同一事件内激活所有事件 。

测量距离

1
print(math.sqrt(ThePlayer:GetDistanceSqToInst(ConsoleWorldEntityUnderMouse()))) 

在控制台日志中输出玩家和鼠标指着的物体的距离(默认情况下按Ctrl + L显示控制台日志)。

交易小店宠物属性

修改宠物品种

1
Profile:SetKitBuild("宠物品种")

宠物小猫品种如下

1
2
3
4
5
6
7
8
9
森林浣小猫:kitcoon_forest_build
热带草原浣小猫:kitcoon_savanna_build
桦树林浣小猫:kitcoon_deciduous_build
沼泽浣小猫:kitcoon_marsh_build
草地浣小猫:kitcoon_grass_build
岩石浣小猫:kitcoon_rocky_build
沙漠浣小猫:kitcoon_desert_build
月岛浣小猫:kitcoon_moon_build
虎年浣小猫:kitcoon_yot_build

修改名字

1
Profile:SetKitName("新名字")

修改地上便便数量

1
Profile:SetKitPoops(M)

M为需要修改的便便数量

修改宠物体型

1
Profile:SetKitSize(N)

这里的N值不要设置得太大,猫猫最小的时候为0.3倍,最大为1.2倍

养猫小技巧

猫猫每天都要喂两次食物,摸两次;在离开前要把地上的便便清理干净,要不然猫猫会不开心

如果长时间不能登陆游戏,要把猫猫放到窝里冬眠

希望大家的猫猫都不要感受到被冷落而离你而去