Bot/zh: Difference between revisions
(Created page with "==== 范例: ====") |
(Created page with "* -1.5b 跳跃:%duration -1.5 * 3bc +1 跳跃:%duration 1 3") |
||
Line 45:
==== 范例: ====
*
▲* 3bc +1 jump: %duration 1 3
|
Revision as of 05:26, 31 August 2022
MCPK 机器人是一个致力于取代 MathBot 来计算运动的 Discord 机器人。实际上,一直重新定义函数越来越令人厌烦,而且语法使用起来也不太方便。MathBot 作为通用计算工具仍然非常有用。
相对于 Mathbot 的优点:
- 更充实且更具描述性的输出
- 内置了函数:不需要手动重定义它们。
- 机器人使用浮点数运算而不是分数,因此模拟更精确。
- 对于模拟运动:
- X 和 Z 运动都被考虑在内,并计入了动量阈值。
- 操作是从左到右读取的,读写起来更方便。
- 所有操作都有方向这一可选参数。
距离
%distance <X> [Z]
返回 X 乘 Z 跳跃的真距(以方块为距离单位,Z 方向为可选变量)
公式就是简单的
范例:
- 4b 跳跃:%distance 4
- 3x3 跳跃:%distance 3 3
滞空时间
%duration <跳跃高度> [天花板高度]
对于给定的高度,返回一个跳跃的滞空时间(高度以方块为单位,天花板高度为可选变量)
范例:
- -1.5b 跳跃:%duration -1.5
- 3bc +1 跳跃:%duration 1 3
Height
%height <jumpTicks> [ceilingHeight]
Returns the jump height of the player after n ticks (ceilingHeight is optional)
Examples:
- 12t jump: %height 12
- 2bc 9t jump: %height 9 2
Blip
%blip <repetitions> [initialHeight] [blipHeight] [lastJumpTicks]
Returns the height of the player after chaining consecutive blips (Y=0 is the bottom surface by convention).
- <repetitions> is the number of chained blips performed
- [initialHeight] is the player's initial height before the first jump (default: 0.0)
- [BlipHeight] is the height of the blip's top surface (e.g. 0.0625 for carpet, 0.1875 for trapdoor...)
- Unless specified with [lastJumpTicks], returns the peak of the jump by default (6 ticks).
Examples:
- starting from Y=200: %blip 4
- 17 chained blips on lilypad: %blip_top 17 0.015625
Simulate
%simulate <actions> (or simply %<actions>)
Reads the given actions from left to right, and simulates the resulting movement.
Actions:
Actions take two arguments:
- Ticks : the duration of the action, in ticks
- Direction (optional) : the direction (not facing) of the action, in degrees
Action | Description |
---|---|
stop, stop_air | No input |
sneak, sneak_air | Sneak |
sneak45, sneak45_air | Sneak with 45° strafe |
sneaksprint,
sneaksprint_air |
Sneak with sprint (used for 1.14+, or for sprint delay in air) |
sneaksprint45,
sneaksprint45_air |
Sneak with sprint (used for 1.14+, or for sprint delay in air) |
walk, walk_air | Walk |
walk45, walk45_air | Walk with 45° strafe |
sprint, sprint_air | Sprint |
sprint45, sprint45_air | Sprint with 45° strafe |
stopjump | Jump without moving |
walkjump | Jump without sprinting |
walkjump45 | Jump without sprinting, 45° strafe throughout the jump |
Lwalkjump
Rwalkjump |
Jump without sprinting, strafe Left or Right on the first tick. |
sprintjump | Sprintjump |
sprintjump45 | Sprintjump forward, start 45° strafe after the first tick |
Lsprintjump
Rsprintjump |
Strafe Left or Right on the first tick of a sprintjump.
Example: used for rex bwmm |
Lsprintjump45
Rsprintjump45 |
Strafe Left or Right throughout a sprintjump.
Example: used for 1bm 5-1 |
Add "max_" in front to get the maximum momentum with that action (repeats the action 20 times)
Special Tokens:
- Momentum, MM, and | sets the previous actions as momentum (resets the position minus the last tick)
- Blocks and b convert the output landing distance to blocks (± 0.6 to X and Z if nonzero)
- Meters, and m convert the output landing distance to meters (same values as default)
- Position, pos, and p convert the output to a relative position (used when you're not calculating jump distance)
Usage:
The parser reads the actions and tokens from left to right. Actions and tokens should be separated by spaces.
The Momentum token can be used anywhere between two actions.
The Blocks, Meters, and Position tokens are to be used at the end of the sequence (mutually exclusive).
Examples:
- hh timing: % sprint | sprintjump(12)
- rex bwmm: % walkjump(12,180) walk(1,180) Lsprintjump(12) | sprintjump(12)
- 1bm 5-1: % walkjump45(12,170) walk45(1,170) Lsprintjump45(1,-10) sprint45_air(11) | sprintjump45(14) b