Kether 动作扩展
KetherModulesLite 为 Kether 脚本引擎扩展了大量动作,可在方块事件、背包事件、脚本组等任何支持 Kether 的地方使用。
this — 当前方块信息
在方块事件中获取触发方块的信息。
this name # 方块材质名
this age # 方块 age 属性
this data # 方块 data 值
this cancel # 获取事件取消状态
this texture # 方块纹理信息
eventlite / evel — 事件动作
核心动作,用于掉落物品、给予物品、延迟执行。
掉落物品
evel drop <来源:ID> amount <数量> to <位置> chance <概率> throw <速度> owner <玩家名>
参数说明:
<来源:ID>— 物品源格式,如"zap:Gem"、"mm:mmID"amount— 掉落数量to— 掉落位置,支持~,~,~相对坐标或"{block}"方块位置chance— 掉落概率(0-100)throw— 抛出速度向量,格式"-0.5~0.5,0.2,0~0.8"(范围随机)owner— 归属玩家(配合掉落物归属系统)
返回值为布尔值,表示是否成功掉落(概率判定结果)。
给予物品
evel give <来源:ID> amount <数量> to <玩家> chance <概率>
直接给予玩家物品,不经过掉落。
掉落经验
evel drop exp amount <数量> to <位置> chance <概率>
延迟执行
evel delay [async] <时间> <动作>
示例:
evel delay 1s kml setblock at "{block}" this name
evel delay async 2s tell "2秒后异步执行"
实战示例
来自默认 break_block.yml:
diamond_ore: |-
set amt to 10
set item to "zap:Gem"
set vel to inline "-0.5~0.5,0.2,0~0.8"
if eventlite drop &item amount &amt to ~,~,~+2,~ chance 50 throw &vel then {
tell "好哦"
evel drop exp amount &amt to sender chance 100
}
false
kethermodules / kml — 多功能动作
插件核心动作,提供多种子功能:
| 子动作 | 说明 |
|---|---|
kml time | 时间相关操作 |
kml holo | 全息文字操作 |
kml item | 物品操作 |
kml setblock at <位置> <材质> | 在指定位置放置方块 |
kml getblock | 获取方块信息 |
kml disblock | 方块显示操作 |
kml tp | 传送玩家 |
kml hat | 设置头部装备 |
kml equip | 装备操作 |
kml sprinting | 设置疾跑状态 |
kml online | 获取在线玩家信息 |
kml held | 手持物品操作 |
示例:
kml setblock at "world,0,80,0" stone
kml setblock at "{block}" this name
kinv — 背包操作
操作玩家背包的动作。
| 用法 | 说明 |
|---|---|
kinv close | 关闭玩家当前打开的界面 |
kinv count <来源:ID> | 统计背包中指定物品数量 |
kinv has/have/check <来源:ID> <数量> | 检查是否拥有足够数量的物品 |
kinv take/remove <来源:ID> <数量> | 从背包移除指定物品 |
kinv slot match <槽位> <匹配条件> | 检查指定槽位是否匹配条件 |
kinv equipment match <匹配条件> | 检查装备是否匹配条件 |
mythic / kmm — MythicMobs 集成
前置要求
需要安装 MythicMobs 插件。
mythic cast <技能名> [to <玩家>] # 对玩家释放技能
mythic smob <怪物ID> [loc <位置>] # 在指定位置生成怪物
knode / node — 节点数据读取
从 nodes.yml 读取数据。使用 . 分隔路径层级。
node "def1.def2" # 返回 ['123', '456']
node "def4" # 返回 "000"
配合 inline 使用:
tell inline node "def4"
krun — 执行 Kether 脚本组
从 run_kether.yml 中执行脚本组。
krun r <组名> # 随机执行组内一条脚本(random 模式)
krun random <组名> # 同上
krun w <组名> # 按权重随机执行(weight 模式)
krun weight <组名> # 同上
frun — 执行 Fluxon 脚本组
从 run_fluxon.yml 中执行脚本组,用法与 krun 相同。
frun r <组名>
frun w <组名>
ksubmit — 异步/定时提交
将动作提交到调度器执行。
ksubmit [async <布尔>] [period <tick>] [delay <tick>] then <动作>
参数说明:
async— 是否异步执行,默认 falseperiod— 重复执行间隔(tick),不设置则只执行一次delay— 延迟执行(tick)
krandom / krand — 权重随机
从带权重的列表中随机选取。
krand [a:1 b:2 c:3]
上例中 a 权重 1,b 权重 2,c 权重 3。c 被选中的概率最高。
karr 系列 — 数组操作
| 动作 | 说明 |
|---|---|
karr-del <元素> in <数组> | 从数组中删除指定元素 |
karr-add <元素> to <数组> | 向数组末尾添加元素 |
karr-add-first <元素> to <数组> | 向数组头部添加元素 |
karr-push <元素> to <数组> | 同 karr-add-first |
karr-shuffle <数组> | 随机打乱数组顺序 |
ksize — 获取大小
获取集合、数组或字符串的长度。
ksize <对象>
kloc — 位置操作
| 用法 | 说明 |
|---|---|
kloc add <位置> <x> <y> <z> [eye] | 对位置进行偏移,eye 表示加上视线方向 |
kloc get <x/y/z/yaw/pitch> <位置> | 获取位置的指定分量 |
chs / chscript — Chemdah 脚本
前置要求
需要安装 Chemdah 插件。
执行 Chemdah workspace 脚本。
chs <脚本名>