嘿,听好了!- 制作你自己的教程

嘿,听好了!- 制作你自己的教程

编写你自己的游戏内教程和任务,让屏幕变暗,指向确切的按钮,并且在玩家真正操作之前拒绝继续。

嘿,听好了!—— 制作你自己的教程

教会你的整合包,而不是丢一个 wiki 链接。

每个大型整合包都有同样的毛病。新玩家加入,打开一个从未见过的机器,而你唯一能给的帮助就是一个为其他版本写的 wiki 链接。于是他们切出去,或者在聊天里问,或者直接退出。

嘿,听好了!让你在游戏内自己写帮助,直接指向那个东西。一个步骤会让屏幕变暗,在关键的那个按钮上挖一个洞,说一句话,并且在玩家真正完成之前拒绝前进。

一个步骤做三件事

  • 变暗。 除了你指向的东西之外,一切都变暗,让你没有别的可看。
  • 指向。 黑暗中的一个洞、一个箭头、一个方框、一个圆圈,或者你自己的图片,放在某个槽位、按钮、HUD 区域或屏幕上的任何位置。
  • 门控。 在玩家完成该操作之前,步骤不会前进。打开一个界面、点击一个槽位、按下一个按键、挖掘一个方块、拾取一个物品,或获得一个进度。

高亮停留在它该在的地方

这是让教程在你的整合包更新后依然能用的关键。

没有任何东西以像素坐标存储。每个标记都挂在一个父级上:槽位 36、标着 Craft 的按钮、快捷栏,或一个带黑边的虚拟画布。那个父级每一帧都会重新解析。

在步骤进行中改变你的 GUI 缩放,高亮仍停留在槽位上。调整窗口大小、切换分辨率、让某个模组把自己的窗口移动四个像素:洞仍然在正确的位置,因为它从来就不知道像素的存在。

不只是教程,还是任务

一个步骤可以等待服务器自己验证的事情,这意味着教程同时也是一个任务。

用一个进度来门控一个步骤,它就无法被伪造或半途完成:游戏已经决定了什么才算完成了这件事。要求五个圆石,角落里的计数器就会记分。完成时用任何命令奖励玩家。

向导知道什么时候该闭嘴

有两种状态,模组会自己选择正确的那一种。

当它在说话时,你会看到完整面板和一张头像。当某个步骤只是在等你去做某件事时,向导会缩小成角落里的一张只显示目标的小卡片,黑暗消散,屏幕交还给你游玩。

角色就是文件夹

一个角色就是一个图片文件夹。一个表情就是一个文件名。

把 neutral.png 和 happy.png 放进 config/heylisten/characters/herald/,你就有了一个向导。加上 happy_talk.png,嘴巴就会动起来,台词会逐字打出。这一切都不需要 JSON。PNG、JPG、BMP 和 TGA 都能加载。

对话取代 NPC

头像、一句话,以及两到四个可分支的回复按钮。回复可以设置每玩家变量,供后续步骤读取,并且这些变量在死亡和登出后依然存在。

过去一个会说话的 NPC 为你的整合包做的一切,现在都不需要一个必须走过去才能对话的 NPC,也不需要在世界存档里存对话——那样会随存档一起消失。

写一个只需一条命令

命令 作用
/heylisten new <name> 写入一个可用的入门教程并加载它
/heylisten new quest <name> 同上,但这是一个任务:回复、门控步骤、奖励
/heylisten reload 立即重新读取你的教程,无需完整数据包重载
/heylisten folder 在你的文件浏览器中打开教程文件夹
/heylisten start <id> 运行一个
/heylisten validate 报告任何可能让玩家卡住的步骤
/heylisten debug 打印当前打开的界面实际暴露了什么可供指向

教程是 config/heylisten/tutorials/ 里的普通 JSON 文件。放一个进去,重载,完成。整合包作者可以把它们放进数据包里发布,在那里它们会和整合包的其他部分一起纳入版本控制。

它自己会教你

这个模组自带两节课,它们写在模组里,所以你通过被引导着走一遍来学习。

如何制作教程 会在你身处其中时把自己拆解给你看。它展示你正在阅读的那一行,并说出它来自哪个字段;让屏幕变暗,并告诉你哪个元素做到了这一点;在你的快捷栏上挖一个洞,向你展示什么是父级;然后停止说话,等你真正打开聊天,这样你就能从内部感受一个门控步骤。

如何制作任务 给你一个选择,让你看到分支发生;把一个变量写到你的身上,并告诉你去读取它的命令;然后派你去破坏一个方块,并在你做这件事时不再打扰你。

运行 /heylisten start heylisten:how-to-make-a-tutorial 然后从那里开始。

文件夹自己会解释

你永远不必离开游戏去查阅语法。每次启动都会在同一文件夹中重新生成 HOW-TO-WRITE-A-TUTORIAL.md:一个文档里的完整格式、每一个键、每一个合法值、原版物品栏的槽位索引,以及关于不使用原版控件的界面的警告。

你写的东西也无法破坏游戏。文件不认识的键会被忽略,而不是加载失败,并且 /heylisten validate 会准确告诉你它忽略了什么以及为什么。

没人会卡住

一个困住玩家的教程比没有教程更糟,所以这个模组拒绝成为那样的东西。

  • /heylisten validate 会在发布之前捕获那个把玩家锁在它自己要求的事物之外的步骤。
  • 每个输入锁定都有一个来自配置的硬上限,无论某个步骤要求什么。
  • 死亡会解除锁定,然后从你离开的地方重新接起任务,而不是悄悄删除它。
  • 登出会释放一切。

需求

Minecraft 1.21.1
加载器 NeoForge
端 客户端和服务端
必需模组 无
可选 FTB Quests

在单人游戏和服务器上都能运行。状态是每玩家的且以服务器为准,所以一个玩家的教程永远不会影响其他任何人的。

诚实的现状

这是一个早期 alpha 版本。 运行时是完整的,并且已经从头到尾玩通过,但在你安装之前,有两件事值得知道。

目前还没有默认的向导美术资源,所以你的第一个教程会有一个声音但没有脸,直到你放一个角色文件夹进去。而且那些自己绘制 UI 而不是使用原版控件的模组,比如 Create 和 MineColonies,尚未针对槽位和控件高亮进行验证。在一个界面上运行 /heylisten debug 来查看它究竟提供了什么,当它什么都不提供时,退而使用界面父级。

欢迎并期待错误报告。

支持这些模组

这些模组是免费的,并且会一直免费。如果其中一个在你的服务器上运行,你可以在 patreon.com/epicwarborn 支持下一个版本、下一次移植和下一个模组。赞助者会在鸣谢名单中留下名字,获得向我直接报告错误的渠道、早期构建版本,以及对下一个要构建什么内容的投票权。


别再发 wiki 链接了。直接指向那个按钮。

属于 The Warborn Realm 的一部分,作者 barunn