Skip to content

Commit 8ff3dd8

Browse files
authored
Create 假人.md
1 parent 50351df commit 8ff3dd8

1 file changed

Lines changed: 290 additions & 0 deletions

File tree

Lines changed: 290 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,290 @@
1+
# 假人
2+
3+
Leaves 提供了类似 Carpet 的假人支持,假人的命令为 `/bot`
4+
5+
## 什么是假人
6+
7+
假人是一个**玩家实体**,怪物会被它吸引并攻击它,它也可以模拟部分玩家操作。比如:
8+
9+
- 区块随机刻
10+
- 生物生成
11+
- 物品使用
12+
- 方块破坏
13+
- ....
14+
15+
## 权限
16+
17+
- `bukkit.command.bot` - 允许玩家使用 `/bot` 命令。
18+
19+
::: tip
20+
21+
在执行命令前,请确保已经拥有此权限。
22+
23+
:::
24+
25+
## 创建假人
26+
27+
要创建假人,请在游戏内执行命令:`/bot create <假人名> [皮肤名]`
28+
或在控制台执行命令:`/bot create <假人名> <皮肤名> <世界名> <X> <Y> <Z>`
29+
30+
`<假人名>` 是必要参数,并且假人名称需要符合 Minecraft 的玩家名规范。
31+
32+
`[皮肤名]` 是可选参数,假人将会使用皮肤名对应的皮肤。若没有填写此参数,则假人会使用假人名的对应皮肤。
33+
34+
通过在游戏内执行命令创建的假人会继承创建者的位置和视角(也就是创建者的 NBT 标签 `Rotation``Pos`)。
35+
36+
::: tip
37+
38+
如果玩家在创建假人后不离开假人位置,则假人会和玩家发生碰撞而导致一定位置偏移。
39+
40+
:::
41+
42+
::: tip
43+
44+
若假人在创建后迟迟没有出现,可能需要检查服务器和 Mojang 皮肤服务器的连接。
45+
46+
:::
47+
48+
::: danger
49+
50+
假人不会穿过传送门,因此需要将假人放置在需要的世界。如果使用命令或其他方法使假人改变世界,则假人可能**不会**正常工作。
51+
52+
:::
53+
54+
## 移除假人
55+
56+
假人无法复活,即使游戏规则 `keepInventory``true`,也会在死亡后扔出所有物品并移除自己(而不是像 Carpet 那样断开连接)。
57+
58+
在默认情况下,假人会在服务器关闭前被全部移除。
59+
你可以在配置中修改假人是否在服务器重启之后自动还原。
60+
61+
你也可以使用命令 `/bot remove <假人名>` 来移除指定的假人。
62+
63+
你也可以使用命令 `/bot remove <假人名> [时] [分] [秒]` 来定时移除指定的假人。
64+
65+
## 假人加载/保存
66+
67+
假人可以被手动加载/保存,这相当于正常玩家的上下线操作,在保存前后,假人的所有信息(例如位置和维度)都会保持一致。
68+
69+
你可以通过 `/bot save <假人名>` 来保存假人,同时使用 `/bot load <假人名>` 来加载假人
70+
71+
## 假人配置
72+
73+
假人存在若干可以被命令配置的配置项,它们会对假人的运行产生影响。
74+
75+
每个假人的配置项都是独立且唯一的,在大部分情况下,它们不会互相影响。
76+
77+
你可以使用命令 `/bot config <假人名> <配置项名>` 来查看假人某一配置项的当前状态。
78+
79+
同时 `/bot config <假人名> <配置项名> [修改值]` 也可以用来修改假人当前的配置项值。
80+
81+
### 始终发送信息
82+
83+
- **配置名**: `always_send_data`
84+
- **类型**: `布尔值`
85+
- **默认值**: 由配置文件中的 `always-send-data` 决定
86+
- **描述**: 是否一直向位于相同世界的玩家发送假人数据,使得玩家可以始终观测到假人(即使可能不会渲染)。
87+
88+
### 模拟距离
89+
90+
- **配置名**: `simulation_distance`
91+
- **类型**: `整数`
92+
- **默认值**: 由服务器配置的当前世界 `simulation-distance` 决定
93+
- **描述**: 影响假人可以强加载的区块大小,与原版的模拟距离作用相同。
94+
95+
### 睡眠计数跳过
96+
97+
- **配置名**: `skip_sleep`
98+
- **类型**: `布尔值`
99+
- **默认值**: 由配置文件中的 `skip-sleep-check` 决定
100+
- **描述**: 是否在睡眠计数时跳过假人,使得不需要假人睡眠就跳过夜晚。
101+
102+
### 生成幻翼
103+
104+
- **配置名**: `spawn_phantom`
105+
- **类型**: `布尔值`
106+
- **默认值**: 由配置文件中的 `spawn-phantom` 决定
107+
- **描述**: 是否允许假人生成幻翼,当其为关时,假人的未睡眠计时器会被置空。
108+
109+
### 实体刻类型
110+
111+
- **配置名**: `tick_type`
112+
- **类型**: `枚举<NETWORK, ENTITY_LIST>`
113+
- **默认值**: 由配置文件中的 `tick-type` 决定
114+
- **描述**: 假人的实体刻计算类型。当为 `NETWORK` 时,相当于正常玩家,部分计算在网络阶段进行。当为 `ENTITY_LIST` 时,类似于 Carpet 假人,所有计算在实体列表中进行。
115+
116+
::: tip
117+
118+
此配置会影响部分基于假人时序的机器设计运行
119+
120+
你可以查询/询问机器作者机器是否只允许 `真人/假人` 挂机,据此修改挂机假人的此项配置。
121+
122+
:::
123+
124+
## 假人动作
125+
126+
动作是假人的重要部分,它可以让假人完成更多任务。
127+
截止目前,假人一共拥有 15 种动作。
128+
129+
每个假人可以同时执行多个动作。每个动作相互独立,不会互相影响。
130+
131+
你可以使用命令 `/bot action <假人名> <动作名> [动作参数]` 来指定假人的动作。
132+
133+
命令 `/bot action <假人名> list` 将用于查看指定假人当前的所有动作。
134+
135+
命令 `/bot action <假人名> stop <动作序号/all>` 将用于停止假人当前的 一个/所有 动作。
136+
137+
### 动作参数
138+
139+
#### TickDelay
140+
141+
- **类型**: `整数`
142+
- **默认值**: `20`
143+
- **描述**: 每次成功执行一次操作后的等待时间,单位为 tick。
144+
145+
::: tip
146+
147+
此参数目前功能为,在执行成功 **等待** 的时间,而非执行一个动作的时间周期。
148+
149+
在挂机时,对于需要精密时序的操作,可以将在 Carpet 假人动作中设置的 `周期 - 1` 设置为此参数值。
150+
151+
:::
152+
153+
::: danger
154+
155+
本参数会在 `1.21.5` 修改为,执行一个动作的时间周期。
156+
157+
:::
158+
159+
#### DoNumber
160+
161+
- **类型**: `整数`
162+
- **默认值**: `-1`
163+
- **描述**: 每次动作中可以成功执行操作的次数,如为 `-1` 则为无限。
164+
165+
#### X 或 Y 或 Z
166+
167+
- **类型**: `浮点数(小数)`
168+
- **默认值**: `0.0`
169+
- **描述**: 一个 X/Y/Z 坐标。
170+
171+
### 攻击实体动作
172+
173+
- **动作名**: `attack`
174+
- **动作参数**: `[TickDelay] [DoNumber]`
175+
- **描述**: 当假人开始执行这项动作时,假人将尝试攻击 **视线前方****碰撞箱内** 的实体。
176+
177+
### 方块破坏动作
178+
179+
- **动作名**: `break`
180+
- **动作参数**: `[TickDelay] [DoNumber]`
181+
- **描述**: 当假人开始执行这项动作时,假人将尝试挖掘 **视线前方** 的方块。
182+
183+
### 物品扔出动作
184+
185+
- **动作名**: `drop`
186+
- **动作参数**: ``
187+
- **描述**: 当假人开始执行这项动作时,假人将扔出背包中的所有物品。
188+
189+
### 自动钓鱼动作
190+
191+
- **动作名**: `fish`
192+
- **动作参数**: `[TickDelay] [DoNumber]`
193+
- **描述**: 假人将尝试自动钓鱼。
194+
195+
### 跳跃动作
196+
197+
- **动作名**: `jump`
198+
- **动作参数**: `[TickDelay] [DoNumber]`
199+
- **描述**: 当假人开始执行这项动作时,假人将尝试进行跳跃。
200+
201+
### 注视动作
202+
203+
- **动作名**: `look`
204+
- **动作参数**: `<X>` `<Y>` `<Z>`
205+
- **描述**: 当假人开始执行这项动作时,假人将看向一个给定的坐标。
206+
207+
### 转向动作
208+
209+
- **动作名**: `rotate`
210+
- **动作参数**: ``
211+
- **描述**: 当假人开始执行这项动作时,假人将看向玩家所在位置。
212+
213+
### 下蹲动作
214+
215+
- **动作名**: `sneak`
216+
- **动作参数**: ``
217+
- **描述**: 当假人开始执行这项动作时,假人将切换潜行状态。
218+
219+
### 游泳动作
220+
221+
- **动作名**: `swim`
222+
- **动作参数**: ``
223+
- **描述**: 当假人执行此项动作时,假人将尝试在水中自动浮起(而不是进入游泳姿态)。
224+
225+
### 物品使用动作
226+
227+
- **动作名**: `use`
228+
- **动作参数**: `[TickDelay] [DoNumber]`
229+
- **描述**: 假人将尝试使用主手物品,此动作将不会尝试对方块或实体使用物品。
230+
231+
### 副手物品使用动作
232+
233+
- **动作名**: `use_offhand`
234+
- **动作参数**: `[TickDelay] [DoNumber]`
235+
- **描述**: 假人将尝试使用副手物品,此动作将不会尝试对方块或实体使用物品。
236+
237+
::: danger
238+
239+
假人尝试使用带有 GUI 的物品的行为是未定义的。
240+
241+
:::
242+
243+
### 对方块使用物品动作
244+
245+
- **动作名**: `use_on`
246+
- **动作参数**: `[TickDelay] [DoNumber]`
247+
- **描述**: 假人将尝试对视线前方的方块使用主手物品。
248+
249+
### 对方块使用副手物品动作
250+
251+
- **动作名**: `use_on_offhand`
252+
- **动作参数**: `[TickDelay] [DoNumber]`
253+
- **描述**: 假人将尝试对视线前方的方块使用副手物品。
254+
255+
::: tip
256+
257+
如果你需要放置方块,请使用此动作。
258+
259+
:::
260+
261+
::: danger
262+
263+
假人尝试使用带有 GUI 的方块(如工作台,熔炉,铁砧等)的行为是未定义的。
264+
265+
:::
266+
267+
### 对实体使用物品动作
268+
269+
- **动作名**: `use_to`
270+
- **动作参数**: `[TickDelay] [DoNumber]`
271+
- **描述**: 假人将尝试视线前方的实体使用主手物品。此动作将允许假人进入载具。
272+
273+
### 对实体使用副手物品动作
274+
275+
- **动作名**: `use_to_offhand`
276+
- **动作参数**: `[TickDelay] [DoNumber]`
277+
- **描述**: 假人将尝试视线前方的实体使用副手物品。此动作将允许假人进入载具。
278+
279+
::: danger
280+
281+
假人尝试使用带有 GUI 的生物(如装有箱子的羊驼,驴子)的行为是未定义的。
282+
283+
:::
284+
285+
## 假人列表
286+
287+
通过使用 `/bot list [世界]` 来查看全局/各个世界的假人。
288+
289+
`[世界]` 是可选参数。它默认为 `world` / `world_nether` / `world_the_end`
290+
输入自定义世界的名称以查看位于该世界中的假人。

0 commit comments

Comments
 (0)