冈格尼尔控制台增强套件

冈格尼尔控制台增强套件

一个游戏内控制台增强模组。Gungnir旨在为《英灵神殿》玩家提供更整洁、更愉悦的控制台体验。

实用工具

Gungnir 是游戏内置控制台的增强套件!它提供了全新的视觉风格、实用的命令,并且为想要贡献的开发者提供了非常简便的方式来添加新命令!

特性

  • 为控制台和所有 Gungnir 相关的输出提供新的配色方案。
  • 弹出提示,显示你正在输入的命令的用法,并高亮你正在输入的参数。
  • 控制台历史记录滚动,最多 1000 行。
  • 许多新命令。
  • 将多个命令链接在一起(例如,/fly 1;/creative;/god
  • 使用 /alias 为命令或命令序列创建自定义名称。
  • 直接从控制台使用 /bind 将命令绑定到任意按键。
  • 有用的地形修改和恢复命令。
  • ...更多功能即将推出!

你们中的一些人可能使用或了解 SkToolbox,而 Gungnir 与之非常相似,但鉴于作者已声明其不再维护,我想我应该开始着手开发自己的控制台。我不会添加诸如屏幕菜单或敌人检测等功能,因为我觉得这些超出了这个模组应有的范围。 这个模组显然与 SkToolbox 以及任何可能做类似事情的模组不兼容。

命令列表

/alias <String name> <String[] commandText> 为命令或命令序列创建快捷方式或别名。

/bind <String keyCode> <String[] commandText> 将控制台命令绑定到一个按键。请参阅 Unity 文档中关于 KeyCode 名称的信息。

/butcher [Decimal radius = 50f] [Boolean killTamed = false] 杀死半径(米)内的所有生物,不包括玩家。

/clear 清除控制台的输出。

/creative [Boolean enabled = none] 切换创造模式,移除对资源的需求。

/echo <String[] values> 向虚空喊话。

/fly [Boolean noCollision = false] 切换飞行能力。第二个参数还可以禁用碰撞。

/ghost [Boolean enabled = none] 切换幽灵模式。阻止敌对生物发现你。

/give <String itemName> [Number amount = 1] [Player player = none] [Number level = 1] 将物品给予你自己或另一个玩家。

/god [Boolean enabled = none] 切换无敌模式。

/goto <Player player> 将你传送到另一个玩家身边。

/heal 治疗你所有的伤口。

/help [String commandOrPageNum = none] 打印命令列表,或查询特定命令的语法。也接受页码,以防命令过多。

/listaliases [String alias = none] 列出你所有的自定义别名,或检查特定别名的功能。

/listbinds [String keyCode = none] 列出你所有的自定义按键绑定,或检查特定键码绑定了什么。

/listitems [String itemName = none] 列出游戏中的每个物品,或搜索包含你输入文本的物品。

/listportals 列出每个传送门标签。

/listprefabs [String prefabName = none] 列出游戏中的每个预制体,或搜索包含你输入文本的预制体。

/listskills 列出游戏中所有可用的技能。

/listweather 获取所有可用天气类型的列表。

/nomana [Boolean enabled = none] 切换无限 Eitr(法力)。

/nores [Boolean enabled = none] 切换建筑限制。允许你在预览为红色时放置物品。

/noslide [Boolean enabled = none] 切换在陡峭角度上行走而不滑倒的能力。

/nostam [Boolean enabled = none] 切换无限耐力。

/nosup [Boolean enabled = none] 切换对结构支撑的需求。

/pos 打印你当前的位置,格式为 XZY 坐标。(XZY 用于 tp 命令。)

/puke 清除所有食物增益效果,为你吃其他东西腾出空间。

/removedrops [Decimal radius = 50f] 清除半径(米)内的所有物品掉落。

/repair 修复你库存中的每件物品。

/repairbuilds [Decimal radius = 50f] 修复半径(米)内所有附近的建筑。

/seed 打印此世界使用的种子。

/setmaxweight [Decimal maxWeight = 300f] 设置你的最大负重。

/setskill <String skillName> <Number level> 设置你的某个技能的等级。

/spawn <String prefab> [Number levelOrQuantity = 1] 生成一个预制体/生物/物品。如果是生物,levelOrQuantity 将设置等级;如果是物品,则设置堆叠数量。

/spawntamed <String creature> [Number level = 1] 生成一个已被驯服的生物。

/tame [Decimal radius = 10f] 安抚半径内的所有可驯服生物。

/time <Decimal time> 仅为你覆盖一天中的时间(0 到 1,其中 0.5 是正午)。设置为负数以禁用。

/tlevel [Decimal radius = 10f] 平整半径内的地形。

/tlower [Decimal radius = 10f] [Decimal depth = 1f] [Decimal strength = 0.01f] 将半径内的地形降低一定量。强度值越接近 0,地形边缘越陡峭;强度值越远离 0,地形边缘越平滑。

/tp <Decimal x> <Decimal z> [Decimal y = none] 传送到指定坐标。Y 值是可选的。如果省略,将尝试自动为你找到最佳高度。

/tpaint [Decimal radius = 5f] [String paintType = "reset"] 在半径内绘制地形。可用的绘制类型有:dirt(泥土), paved(铺砌), cultivate(耕种), 和 reset(重置)。

/traise [Decimal radius = 10f] [Decimal height = 1f] [Decimal strength = 0.01f] 将半径内的地形升高一定量。强度值越接近 0,地形边缘越陡峭;强度值越远离 0,地形边缘越平滑。

/treset [Decimal radius = 10f] 重置半径内所有地形修改。

/tshape <String shape> 使用 "circle"(圆形) 或 "square"(方形) 选择地形修改的形状。

/tsmooth [Decimal radius = 10f] [Decimal strength = 0.5f] 以一定强度平滑半径内的地形。强度越高,平滑效果越强。

/unalias <String alias> 移除你创建的一个别名。

/unaliasall <Boolean confirm> 移除你所有的自定义命令别名。需要将 true/1/yes 作为参数来确认。

/unbind <String keyCode> 移除一个自定义按键绑定。

/unbindall <Boolean confirm> 解除所有与你 Gungnir 相关的按键绑定。需要将 true/1/yes 作为参数来确认。

/weather <String weatherType> 仅为你覆盖天气。使用 -1 来清除覆盖。

使用方法

按下 F5 并输入 /help 来获得一个关于你可以运行哪些命令的良好概览。每个命令都会给出其期望的参数列表、参数类型以及是否为必需参数。

例如,/give 的帮助文本显示为:/give <String itemName> [Number amount=1] [Player player=none] [Number level=1] 这表明此命令有 4 个可能的参数,其中 3 个是可选的。 任何被 [方括号] 包围的参数都是可选的,而任何在 <尖括号> 中的参数都是必需的。 等号后面的值告诉你默认值是什么。如果默认值难以描述,有时会显示 none,但这通常只出现在玩家名称参数上。如果玩家参数默认为 none,意味着它会默认选择你。

可能的参数类型: String - 你想要的任何文本。 Number - 一个整数,不允许分数或小数。 (+)Number - 一个正整数。 Decimal - 一个可以有任意多位小数的数字。 Boolean - 一个真/假值。你只能输入三种东西来表示真:"yes"、"1" 和 "true"。其他所有内容都视为假。 Player - 当前服务器上某位玩家的名字。

上述任何类型后面都可以加方括号,例如 String[],这意味着从该参数开始,你此后输入的所有内容都将被用作该参数的值。

命令链/别名与绑定

命令可以串联在一起,以便一次性全部执行。 要按顺序执行多个命令,请用分号隔开它们。示例:

/god;/ghost;/nostam;/nores;/fly true

此功能与 /bind 命令配合得很好,允许你创建便捷的开关或快速访问工具。你需要将要绑定的命令用引号括起来,以避免混淆命令链。示例:

/bind k "/butcher;/removedrops 100"

同样,在创建别名时,如果你打算创建一个运行多个命令的别名,请务必像上面的示例一样,用双引号将你的命令集括起来。

很难判断你是想运行多个命令,还是你的别名/绑定本应包含这些额外的命令。使用双引号可以让模组知道,你希望它将引号内的所有内容作为参数值。

待办事项

  • 更多命令。
  • 加入游戏时自动运行命令。
  • 更好的自动补全。游戏内置的自动补全系统相当糟糕,并且只支持第一个参数的自动补全。我计划将其扩展为适用于命令的每个参数,并在你输入时显示命令格式。
  • 框架,允许其他模组将其命令注册到 Gungnir,而不是基础游戏。
  • 在控制台中能够选择文本。
  • 更多的自定义选项(也许配色方案选择?字体大小控制等)。

安装

此模组需要 BepInEx,安装方式与其他任何 BepInEx 模组相同。将其放入你的 plugins 文件夹。 请确保你安装的 BepInEx 版本也包含 Harmony。如果没有,请一并安装。

贡献/错误报告

如果你想添加自己的命令,发现了错误,或者只是想浏览源代码,请前往 Gungnir 的 GitHub 页面 并参与进来!