跳到主要内容

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 — 是否异步执行,默认 false
  • period — 重复执行间隔(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 <脚本名>