控制台/指令
指令控制台默认是启用状态。如果它因为任何原因没有处于开启状态,你首先要做的就是调整你存档中的 settings.ini文件。它可以在 "donotstarve" 文件夹里被找到,位于以下路径:
Windows, Mac: <Documents>\Klei\DoNotstarve\settings.ini Linux: ~/.klei/DoNotStarve/settings.ini
找到 settings.ini 然后用记事本打开,接着找到写着 [MISC]ENABLECONSOLE = false 的部分,然后将它修改为 [MISC]ENABLECONSOLE = true ,然后保存。
然后在游戏中打开控制台,英文键盘下默认按 "~" 键。这可以随时在控制菜单中修改。你也可以通过按 Ctrl + L 来隐藏控制台。
你需要运行一次以下命令才能启用控制台命令:
RunScript("consolecommands")
注:和许多其他命令行界面程序一样,用户可以按上箭头键来获取之前所输入的命令,而不需要重新手动输入。另一方面,玩家重新进入世界后,仍然必须重新输入命令。
简单命令
- 生成预设
c_spawn("prefab", amount)
利用 DebugSpawn("预设") 命令,在鼠标所指处生成一定数量被指定的"预设"。
- 获得物品
c_give("prefab", amount)
在你的物品栏中生成一定数量被指定的"预设"。只适用于可以被储存在物品栏的背包 和物品 。
- 脚本(未测试)
c_doscenario(scenario)
应用一个选择的脚本并执行它。
- 生命值
c_sethealth(percent)
用百分比设置你的生命值。注:使用分数 0.90 = 90%
- 理智值
c_setsanity(percent)
用百分比设置你的理智值。注:使用分数 0.90 = 90%
- 饥饿值
c_sethunger(percent)
用百分比设置你的饥饿值。注:使用分数 0.90 = 90%
- 上帝模式
c_godmode()
上帝模式下,玩家的理智值、饥饿值和被攻击时生命值不再下降。注意,你在通过一个虫洞后、睡觉后、传送后、进入或者退出一个洞穴系统后、吃曼德拉草后或者使用多次结构复杂的命令后都需要重新开启它。
- 设置移动速度
c_speedmult(value,"me")
标准的移动速度为1。设置为10可以使你更快一点移动,设置为40可以使你穿过墙和"越过"水。
这儿有其他一些命令,但是它们很难使用而且用处不大。
玩家命令
- 隐藏和显示HUD
GetPlayer().HUD:Hide()
GetPlayer().HUD:Show()
隐藏或显示(隐藏后可以使用显示)完整的游戏HUD(界面)。
- 创造模式
GetPlayer().components.builder:GiveAllRecipes()
你可以合成任何东西,包括你之前从未合成过的东西。
- 生命值上限
GetPlayer().components.health:SetMaxHealth(value)
- 理智值上限
GetPlayer().components.sanity:SetMax(value)
- 饥饿值上限
GetPlayer().components.hunger:SetMax(value)
- 暂停饥饿
GetPlayer().components.hunger:Pause(true)
你的角色 不再降低饥饿值。
- 海狸
GetPlayer().components.beaverness:SetPercent(1)
世界命令
- 传送到预设
c_gonext("prefab")
输入该命令后,你将被传送到第一个预设的实体.如果存在多个预设的实体,控制台日志将会显示实体数量的列表,再次执行相同的命令将会传送玩家到下一个在世界中生成的预设的实体。
- 删除鼠标下的实体
TheInput:GetWorldEntityUnderMouse():Remove()
输入该命令后,将会删除你鼠标下的物品。
- 显示地图
GetWorld().minimap.MiniMap:ShowArea(0,0,0,10000)
注:退出游戏后或更改地图后地图将恢复正常状态,但探索过的新区域将会保留。
- 跳过一天
GetClock():MakeNextDay()
跳过当前的一天。
- 跳过更多天数
for x = 1, 50 do GetClock():MakeNextDay() end
这个例子为跳过50天。如果想要跳过其他天数可以将50替换为其他数字。
警告:数值太大可能会冻结游戏。(取决于电脑的运算速度)
- 跳过时间单元并更新
LongUpdate(X)
对世界对象执行 "LongUpdate" 事件并跳过X个时间单元
注:每一个时间部分有30个时间单元。想要跳过一天可以使用 LongUpdate(480) 或者用乘法计算,例如 LongUpdate(X*16*30) 或者 LongUpdate(X*TUNING.TOTAL_DAY_TIME) X 为想要跳过的天数。
译者注:每天有16个小部分,每部分有30个时间单元,每单元为现实中的一秒,所以一天为现实中的8分钟。(详见日夜周期 )
- 设置时间阶段
用法:
GetClock():SetSegs(day,dusk,night)
为白天、黄昏、夜晚设置时间部分的数量。如果三者相加超过16则错误。例子:
GetClock():SetSegs(14,1,1)
拥有非常长的白天,非常短的黄昏和夜晚(只给黄昏一个时间部分和夜晚一个时间部分)
- 跳过时间阶段
GetClock():NextPhase()
跳过当前时间阶段。
- 进入夏季
GetSeasonManager():StartSummer()
进入夏季
- 进入冬季
GetSeasonManager():StartWinter()
进入冬季
GetSeasonManager():StartAutumn()
进入秋季
GetSeasonManager():StartSpring()
进入春季
GetSeasonManager():StartMild()
进入温和季节
GetSeasonManager():StartWet()
进入飓风季节
GetSeasonManager():StartGreen()
进入雨季
GetSeasonManager():StartDry()
进入旱季
- 开始下雨
GetSeasonManager():StartPrecip()
开始下雨
- 停止下雨
GetSeasonManager():StopPrecip()
停止下雨
- 生成闪电
GetSeasonManager():DoLightningStrike(Vector3(GetPlayer().Transform:GetWorldPosition()))
闪电击中玩家,如果靠近避雷针的话,则击中避雷针。
GetVolcanoManager():StartEruption(smokeduration,ashduration,firerainduration,firerockspersecond)
火山爆发。注意火雨会缓慢地持续数秒。
- 测量距离
print(math.sqrt(GetPlayer():GetDistanceSqToInst(TheInput:GetWorldEntityUnderMouse())))
在控制台日志中输出玩家和鼠
标指著的物体(默认情况下按Ctrl + L显示控制台日志)。
配置命令
虽然配置命令是永久的并且不需要每次都执行,但它们必须在游戏中才能执行。你可以逐次输入解锁多个角色的命令而不需要每次都保存,直到最后再执行保存命令。
- 改变角色
GetPlayer().prefab = "character"
更改当前角色为命令中输入的角色名(预设名,例如,麦斯威尔为 waxwell )。需要保存并退出游戏该命令才会生效。
- 解锁薇洛
GetPlayer().profile:UnlockCharacter("willow") GetPlayer().profile:Save()
解锁薇洛。第一次输入后不需要重新输入,除非丢失了你的配置设置。
- 解锁沃尔夫冈
GetPlayer().profile:UnlockCharacter("wolfgang") GetPlayer().profile:Save()
解锁沃尔夫冈。第一次输入后不需要重新输入,除非丢失了你的配置设置。
- 解锁温蒂
GetPlayer().profile:UnlockCharacter("wendy") GetPlayer().profile:Save()
解锁温蒂。第一次输入后不需要重新输入,除非丢失了你的配置设置。
- 解锁WX-78
GetPlayer().profile:UnlockCharacter("wx78") GetPlayer().profile:Save()
解锁WX-78。第一次输入后不需要重新输入,除非丢失了你的配置设置。
- 解锁薇克伯顿
GetPlayer().profile:UnlockCharacter("wickerbottom") GetPlayer().profile:Save()
解锁薇克伯顿。第一次输入后不需要重新输入,除非丢失了你的配置设置。
- 解锁伍迪
GetPlayer().profile:UnlockCharacter("woodie") GetPlayer().profile:Save()
解锁伍迪。第一次输入后不需要重新输入,除非丢失了你的配置设置。
- 解锁维斯
GetPlayer().profile:UnlockCharacter("wes") GetPlayer().profile:Save()
解锁维斯。第一次输入后不需要重新输入,除非丢失了你的配置设置。
- 解锁麦斯威尔
GetPlayer().profile:UnlockCharacter("waxwell") GetPlayer().profile:Save()
解锁麦斯威尔。第一次输入后不需要重新输入,除非丢失了你的配置设置。
- 解锁薇格弗德
GetPlayer().profile:UnlockCharacter("wigfrid") GetPlayer().profile:Save()
解锁薇格弗德。第一次输入后不需要重新输入,除非丢失了你的配置设置。
- 解锁韦伯
GetPlayer().profile:UnlockCharacter("webber") GetPlayer().profile:Save()
解锁韦伯。第一次输入后不需要重新输入,除非丢失了你的配置设置。
- 解锁瓦拉尼
GetPlayer().profile:UnlockCharacter("walani") GetPlayer().profile:Save()
解锁瓦拉尼。第一次输入后不需要重新输入,除非丢失了你的配置设置。
- 解锁沃利
GetPlayer().profile:UnlockCharacter("warly") GetPlayer().profile:Save()
解锁沃利。第一次输入后不需要重新输入,除非丢失了你的配置设置。
- 解锁一切(当前所有角色)
GetPlayer().profile:UnlockEverything()
杂项命令
- 清空停尸房
ErasePersistentString("morgue")
清空停尸房。执行该命令后需要关闭并重新打开游戏。