hae5en 发表于 2024-12-10 17:54:31

关于1.12版本原版指令问题

想做个低版本的rpg地图,大篇幅的那种npc交互文字是放命令方块里好啊,还是说放在function里用计时器控制好啊,有没有模板能够参考一下的

燕子 发表于 2024-12-11 17:45:03

俩者无差别,命令方块每一次修改只能在游戏里面,function使用起来会更加的方便,该有的功能都有,命令方块类似GUI图形界面,function类似纯命令,看你适合哪一个

爱玩游戏的阿坤 发表于 前天 15:20

制作 RPG 地图时,关于 NPC 交互和大篇幅文字的展示,你有几种不同的实现方式。每种方法都有其优缺点,具体选择哪种方式要看你的需求和设计偏好。以下是两种常见的实现方式,并给出了一些建议和模板参考:1. 命令方块实现交互文本优点:
[*]实现简单,特别是对于较小规模的 RPG 地图来说,可以快速上手。
[*]可以直接在游戏内测试并调整,非常方便。
缺点:
[*]如果交互文字篇幅很大,命令方块的数量会迅速增加,可能导致命令方块排列混乱或游戏运行性能下降。
[*]扩展性较差,维护复杂的对话系统可能会变得困难。
实现方式:
[*]利用命令方块和条件触发器(如玩家右键点击 NPC 或区域进入)触发文本显示。
[*]常见的命令方式是使用 tellraw 命令,/tellraw @p {"text":"你好,勇士!","color":"gold"}。
[*]如果文本较长,可以分段显示,每次触发显示一段文本。例如,可以使用多个命令方块依次播放不同的对话文本。
示例:
[*]使用多个命令方块按顺序发送文本:复制代码
/tellraw @p {"text":"欢迎来到村庄,冒险者!","color":"gold"}复制代码
/tellraw @p {"text":"这里有一个任务等待你完成。","color":"green"}
[*]使用命令方块来检测玩家与 NPC 的互动(例如用 testfor 命令检测玩家是否点击了特定区域)。

2. Function 文件实现交互文本优点:
[*]功能更强大,适用于更复杂的 RPG 地图,可以使用计时器、条件语句等逻辑来控制文本的显示和交互。
[*]代码更整洁,便于维护,适合制作长篇对话和多个NPC的互动。
[*]可以灵活控制对话的流程,例如选择性分支、分段对话、计时器控制等。
缺点:
[*]需要一定的命令和编程知识,初学者可能需要花时间学习。
[*]需要使用 function 文件,需要设置数据包(data pack),而且需要用到一些基本的命令和计时控制,可能稍显复杂。
实现方式:
[*]使用 function 文件可以通过定义不同的对话逻辑来创建复杂的交互系统。
[*]使用计时器(例如通过 scoreboard 来跟踪进度)来控制何时显示每一段文字。
[*]利用 tellraw 命令来显示文本,同样可以使用 JSON 格式来定义文本的颜色、样式、链接等。
示例:
[*]创建一个 function 文件,在其中定义显示文本的流程。例如:复制代码
# function/quest/start.mcfunctiontellraw @p {"text":"欢迎来到村庄,勇士!","color":"gold"}scoreboard players set @p dialogue 1复制代码
# function/quest/next.mcfunctionexecute if score @p dialogue matches 1 run tellraw @p {"text":"这里有一个任务等待你完成。","color":"green"}execute if score @p dialogue matches 1 run scoreboard players set @p dialogue 2
[*]用 scoreboard 来控制对话的进度,并在不同阶段显示不同的对话。
复制代码
scoreboard objectives add dialogue dummy "Dialogue Progress"
页: [1]
查看完整版本: 关于1.12版本原版指令问题