【饥荒指令代码大全】是什么?

在《饥荒》(Don’t Starve)及其联机版《饥荒联机版》(Don’t Starve Together)中,“指令代码”(也常被称为“控制台指令”或“作弊码”)是一组开发者为了测试、调试游戏而内置的特殊命令。通过游戏内的控制台输入这些指令,玩家可以实现各种非正常的游戏行为,例如生成物品、改变角色状态、修改世界环境、传送角色位置等。它们提供了一种直接干预游戏状态的方式,绕过了常规的游戏玩法和限制。

为什么会需要【饥荒指令代码大全】?

玩家通常在以下几种情况下会需要使用饥荒指令代码:

  • 调试和测试: 开发者使用指令来测试新功能、平衡性或查找bug。玩家也可以用它们来测试游戏的某些机制,比如特定物品的效果、生物的行为模式等。
  • 从困境中解脱: 有时玩家可能会遇到游戏中的bug导致角色卡住、重要物品丢失,或者因为一些意外情况(比如遭遇一群不可战胜的怪物或饥饿值瞬间降至零)而陷入绝境。指令可以帮助玩家迅速恢复状态或脱离危险。
  • 沙盒实验: 对于想要体验游戏全部内容,或者在不受生存压力的情况下建造大型基地、进行创意实验的玩家,指令可以提供无限资源和无敌状态, превращая游戏变成一个创造性的沙盒。
  • 快速体验游戏内容: 跳过漫长的收集过程,直接获取高级物品或挑战特定的Boss,以便快速体验游戏的不同阶段或特定玩法。
  • 服务器管理(仅限DST): 在《饥荒联机版》中,作为服务器的主人或管理员,可以使用指令来管理玩家(踢出、封禁)、保存进度、回档等。

在哪里输入【饥荒指令代码】?如何使用?

饥荒的指令代码是在游戏内的“控制台”中输入的。

  1. 打开控制台: 在游戏进行中,按下键盘上的“~”键(通常位于Esc键下方,数字1键左侧)。这会打开一个半透明或全屏的输入框,这就是控制台。
  2. 输入指令: 在控制台输入框中输入你想要执行的指令代码。指令代码通常以 `c_` 开头(表示Client客户端指令),或者直接操作世界/玩家对象(如 `TheWorld.` 或 `ThePlayer.` / `GetPlayer().`)。
  3. 执行指令: 输入完毕后,按下“Enter”键即可执行该指令。如果指令输入正确,通常会立即生效;如果输入错误,控制台可能会显示错误信息。


指令语法:

大多数指令遵循函数调用的格式,例如:`指令名称(参数1, 参数2, …)`。

  • 参数可以是数字(如数量、时间百分比)、字符串(如物品或生物的英文名称,需要用双引号 `””` 包围)或布尔值(`true` 或 `false`)。
  • 不同的指令需要不同数量和类型的参数。


联机版(DST)注意事项:

在《饥荒联机版》中,指令分为客户端指令和服务器指令。

  • 以 `c_` 开头的指令通常是客户端指令,只影响你本地的游戏表现(比如切换上帝模式 `c_godmode()` 只影响你自己)。
  • 操作世界或玩家状态的指令通常需要通过服务器对象执行。比如 `TheWorld.` 开头的指令影响整个世界,而修改玩家状态的指令常常需要先获取玩家对象,例如 `GetPlayer().SetMaxHealth(300)`。
  • 部分强大的管理指令(如踢人、回档)只有服务器主机或管理员才能执行。

控制台支持自动补全功能,当你输入指令的前几个字母或物品、生物名称的前几个字母时,可以按Tab键来尝试补全。这对于查找指令或记住复杂的prefab名称非常有用。

【饥荒指令代码】有多少种?有哪些常用的?

饥荒的指令数量非常庞大,涵盖了游戏内几乎所有的功能和对象,难以精确计数。但它们可以归类为以下几种主要类型,每种类型下都有许多常用的指令:

物品与结构生成指令

这类指令用于在玩家背包中生成物品,或在世界中生成物品、生物、结构等。

生成物品到背包:

c_give("prefabname", quantity)

在玩家的背包中生成指定数量的物品。`”prefabname”` 是物品的英文名称(也称作prefab名称),`quantity` 是数量(可选,默认为1)。

例如:

  • c_give("log", 20) – 生成20个原木
  • c_give("goldnugget", 10) – 生成10个金块
  • c_give("meat", 5) – 生成5块大肉
  • c_give("spear") – 生成1个长矛
  • c_give("dragonpie") – 生成1个龙派
  • c_give("amulet_resurrection") – 生成1个复活护符(肉块)
  • c_give("nightsword") – 生成1个影刀
  • c_give("staff_ice") – 生成1个冰魔杖
  • c_give("gears", 5) – 生成5个齿轮
  • c_give("livingtree", 10) – 生成10个活木
  • c_give("deerclopscontrol") – 生成一个鹿角怪眼球

生成实体到世界:

c_spawn("prefabname", quantity)

在玩家光标附近生成指定数量的实体(物品、生物、结构等)。`”prefabname”` 是实体的英文名称,`quantity` 是数量(可选,默认为1)。

例如:

  • c_spawn("beefalo", 5) – 生成5只牛
  • c_spawn("spider", 10) – 生成10只蜘蛛
  • c_spawn("tent") – 生成1个帐篷
  • c_spawn("mandrake") – 生成1个曼德拉草
  • c_spawn("deerclops") – 生成1只鹿角怪
  • c_spawn("bearger") – 生成1只熊獾
  • c_spawn("moosegoose") – 生成1只夏季Boss(巨鹅)
  • c_spawn("dragonfly") – 生成1只龙蝇
  • c_spawn("walrus_boss") – 生成1个海象营地及海象父子
  • c_spawn("krampus") – 生成1只坎普斯

注意:某些实体生成后可能会立即行动(攻击、逃跑等)。

玩家状态指令

这类指令用于修改玩家角色的生命值、饥饿值、理智值、速度、位置等。

注意:在DST中,这些指令通常需要通过 `GetPlayer().` 来指定当前玩家。在单机版DS中,可以直接使用 `ThePlayer.` 或省略。为了通用性,这里使用 `GetPlayer().`。

修改属性:

  • GetPlayer().SetMaxHEALTH(value) – 设置最大生命值。
  • GetPlayer().SetHEALTH(value) – 设置当前生命值。
  • GetPlayer().SetMaxHUNGER(value) – 设置最大饥饿值。
  • GetPlayer().SetHUNGER(value) – 设置当前饥饿值。
  • GetPlayer().SetMaxSANITY(value) – 设置最大理智值。
  • GetPlayer().SetSANITY(value) – 设置当前理智值。
  • GetPlayer().SetPristineSANITY() – 瞬间将理智值恢复到最大。
  • GetPlayer().SetRunSpeed(value) – 设置跑步速度(默认是6)。
  • GetPlayer().OverrideLight({0.5, 0.5, 0.5}) – 改变玩家的光照颜色(参数为RGB值,0-1)。
  • GetPlayer().RemoveOverrideLight() – 移除自定义光照。

例如:

  • GetPlayer().SetHEALTH(300) – 将当前生命值设为300。
  • GetPlayer().SetHUNGER(250) – 将当前饥饿值设为250。
  • GetPlayer().SetSANITY(400) – 将当前理智值设为400。
  • GetPlayer().SetRunSpeed(12) – 使跑步速度加倍。

传送与变形:

  • GetPlayer().Transform(x, y, z) – 将玩家传送到指定的坐标。x和z是水平坐标,y是垂直坐标(通常用0表示地面)。可以通过 `c_listallprefabs()` 等指令输出实体位置来获取坐标。
  • c_goto("prefabname") – 将玩家传送到指定实体的附近。例如:c_goto("beefalo") 会传送到最近的一头牛旁边。

世界与环境指令

这类指令用于修改世界的时间、季节、天气、地图显示等。

时间与季节:

  • TheWorld.SetTime(percent) – 设置一天中的时间,`percent` 为0到1之间的值。0为午夜,0.5为正午,0.75为黄昏开始。例如:TheWorld.SetTime(0.5) 设置为正午。
  • TheWorld.SetSeason(season) – 设置季节,`season` 可以是 `”winter”` (冬季)、`”spring”` (春季)、`”summer”` (夏季)、`”autumn”` (秋季)。例如:TheWorld.SetSeason("winter") 进入冬季。
  • TheWorld.cycles = day – 设置当前是第几天(仅DST)。例如:TheWorld.cycles = 100 设置为第100天。

天气与温度:

  • TheWorld.SetTemperature(temperature) – 设置世界温度。
  • TheWorld.SetRainIntensity(intensity) – 设置下雨强度,`intensity` 为0到1之间的值。0为不下雨,1为大雨。
  • TheWorld.SetFogIntensity(intensity) – 设置雾强度。
  • TheWorld.Quake() – 触发一次地震。
  • TheWorld.ForceLightning() – 召唤一道闪电。

地图与地形:

  • TheWorld.RevealArea(x, y, radius) – 显示地图的某个圆形区域。x和y是中心坐标,radius是半径。
  • TheWorld.UnrevealArea(x, y, radius) – 隐藏地图的某个圆形区域。
  • TheWorld.minimap.RevealAllNodes() – 显示整个地图上的所有节点和路径(不会显示资源点)。
  • TheWorld.minimap.RevealEverything() – 显示整个地图,包括所有资源点(慎用,可能卡顿)。

调试与实用指令

这类指令提供了一些特殊的调试功能,如无敌、穿墙、暂停等。

  • c_godmode() – 切换上帝模式。开启后,玩家不会受到伤害、饥饿或理智值影响。重复输入可关闭。
  • c_supergodmode() – 切换超级上帝模式(仅DST)。比上帝模式更强大,可能包括无限耐久度等。
  • c_noclip() – 切换穿墙模式。开启后,玩家可以穿过障碍物移动。重复输入可关闭。
  • TheGame:SetPause(true) – 暂停游戏(仅单机版DS)。TheGame:SetPause(false) 取消暂停。
  • c_speed(multiplier) – 加速游戏时间流逝速度。例如:c_speed(2) 使游戏速度加倍。c_speed(1) 恢复正常。
  • c_countprefabs("prefabname") – 计算世界中指定实体的数量。
  • c_listallprefabs() – 在控制台输出所有实体的列表及坐标(输出量巨大,慎用)。

DST独有管理指令(需要主机/管理员权限)

这些指令主要用于多人游戏的服务器管理。

  • TheNet:Kick("userid") – 踢出指定玩家。`”userid”` 是玩家ID,可以通过Tab列表查看。
  • TheNet:Ban("userid") – 封禁指定玩家。
  • TheNet:SetAllowIncomingConnections(false) – 关闭服务器新玩家加入。
  • TheNet:SaveAndRollback(days) – 保存游戏并回档指定天数。例如:TheNet:SaveAndRollback(1) 回档1天。
  • TheNet:ResetSession() – 重置世界(回到第一天)。

重要提示: 以上列出的只是饥荒指令代码的冰山一角和常用部分。每个指令、每个prefab名称都需要精确输入(通常区分大小写,尤其是prefab名称)。错误的输入可能导致指令无效或游戏异常。

【饥荒指令代码】使用时要注意什么?

使用饥荒指令代码虽然能带来便利,但也有一些重要的注意事项和潜在风险:

影响游戏体验与成就

  • 使用指令(尤其是生成物品、无敌等)会极大降低游戏的生存挑战和乐趣,破坏原有的游戏体验。
  • 在《饥荒联机版》中,使用指令通常会禁用当前游戏的Steam成就获取。如果你希望获得成就,请不要使用控制台指令。

潜在的游戏不稳定

  • 频繁或不当使用指令,特别是生成大量实体或修改复杂世界状态的指令,可能导致游戏卡顿、崩溃或存档损坏。
  • 某些指令可能与游戏更新或模组冲突,导致不可预知的错误。

联机版中的权限问题

  • 在《饥荒联机版》中,许多强大的指令(如修改世界、生成Boss、管理玩家)只有服务器主机或拥有管理员权限的玩家才能使用。普通玩家只能使用一些客户端指令(如上帝模式、穿墙)。
  • 作为主机在公开服务器中使用指令,可能会影响其他玩家的游戏体验,导致不满甚至纠纷。

指令的精确性

  • 指令代码和prefab名称必须准确无误,包括大小写和标点符号。输入错误将无法执行。
  • 控制台不会检查你输入的prefab名称是否存在或是否合理,输入错误的名称不会生成任何东西。

【饥荒指令代码】在哪个版本适用?

饥荒的控制台指令系统在其多个主要版本中都是存在的,但具体指令可能略有差异:

  • 《饥荒》(Don’t Starve, DS): 包括原版、巨人国(Reign of Giants)、船难(Shipwrecked)、哈姆雷特(Hamlet)等DLC。这些单人版本都支持控制台指令,指令语法相对简单,主要操作 `ThePlayer` 和 `TheWorld` 对象。
  • 《饥荒联机版》(Don’t Starve Together, DST): 作为多人游戏版本,DST也支持控制台指令。但如前所述,指令分为客户端指令(`c_`开头)和服务器指令,且部分指令需要通过 `GetPlayer()` 获取玩家对象来执行。管理指令是DST独有的。DST的指令系统更为复杂和强大,但也需要注意服务器/客户端权限。

总的来说,指令代码是饥荒系列游戏的内置功能,在单人版和联机版中都可以使用,只是在联机版中增加了权限和服务器/客户端的区分。在使用特定指令时,最好确认它是否适用于当前你玩的游戏版本。


饥荒指令代码大全