[动作引擎]Chronos
Glimmer 语句
Chronos Glimmer 表达式语句参考
在纯粹的光明中就像在纯黑暗中一样,看不清什么东西。
概述
Glimmer 是 Chronos 的服务端表达式系统,用于在状态配置中编写动态逻辑。
Glimmer vs Shimmer: 两者语法完全相同,Glimmer 运行在服务端(Chronos),Shimmer 运行在客户端(ArcartX)。取不同的名字是为了方便区分。
基本用法
在 Chronos 配置中,self 指代当前玩家对象:
使用场景
1. 条件表达式
控制状态是否可以进入:
2. 动态数值
根据玩家状态计算持续时间、速度等:
3. 执行动作
在状态执行过程中触发效果:
变量系统
你可以使用 var. 前缀来存储和读取自定义变量:
实用示例
闪避冲刺
跳跃攻击
蓄力判定
语句参考
战斗相关语句 (EntityCombat)
attack
- 说明: 使对象攻击指定生物
- 对象: LivingEntity(生物)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| living | LivingEntity | 攻击目标 |
- 使用方式:
entity.attack(living) - 返回值: 无
setHealth
- 说明: 设置对象的生命值
- 对象: LivingEntity(生物)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| amount | double | 生命值数值 |
- 使用方式:
entity.setHealth(20.0) - 返回值: 无
setFire
- 说明: 设置对象的着火时间
- 对象: LivingEntity(生物)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| ticks | int | 着火时间(tick,20tick = 1秒) |
- 使用方式:
entity.setFire(100) - 返回值: 无
药水效果语句 (EntityEffect)
addPotionEffect
- 说明: 为对象添加药水效果
- 对象: LivingEntity(生物)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| id | String | 药水效果ID(见下方列表) |
| duration | int | 持续时间(tick) |
| amplifier | int | 效果等级(0为1级) |
-
使用方式:
entity.addPotionEffect("speed", 200, 1) -
返回值: 无
-
可用药水效果ID列表:
| 增益效果 | 中文名 | 负面效果 | 中文名 |
|---|---|---|---|
| speed | 速度 | slowness | 缓慢 |
| haste | 急迫 | mining_fatigue | 挖掘疲劳 |
| strength | 力量 | instant_damage | 瞬间伤害 |
| instant_health | 瞬间治疗 | nausea | 反胃 |
| jump_boost | 跳跃提升 | blindness | 失明 |
| regeneration | 生命恢复 | hunger | 饥饿 |
| resistance | 抗性提升 | weakness | 虚弱 |
| fire_resistance | 防火 | poison | 中毒 |
| water_breathing | 水下呼吸 | wither | 凋零 |
| invisibility | 隐身 | glowing | 发光 |
| night_vision | 夜视 | levitation | 飘浮 |
| health_boost | 生命提升 | unluck | 霉运 |
| absorption | 伤害吸收 | bad_omen | 不祥之兆 |
| saturation | 饱和 | ||
| luck | 幸运 | ||
| slow_falling | 缓降 | ||
| conduit_power | 潮涌能量 | ||
| dolphins_grace | 海豚的恩惠 | ||
| hero_of_the_village | 村庄英雄 |
removePotionEffect
- 说明: 移除对象的指定药水效果
- 对象: LivingEntity(生物)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| effectName | String | 药水效果ID |
- 使用方式:
entity.removePotionEffect("SPEED") - 返回值: 无
clearPotionEffect
- 说明: 清除对象所有药水效果
- 对象: LivingEntity(生物)
- 参数: 无
- 使用方式:
entity.clearPotionEffect() - 返回值: 无
hasPotionEffect
- 说明: 检查对象是否拥有指定药水效果
- 对象: LivingEntity(生物)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| effectName | String | 药水效果ID |
- 使用方式:
entity.hasPotionEffect("SPEED") - 返回值: boolean(是否拥有该效果)
getPotionEffectDuration
- 说明: 获取对象指定药水效果的剩余持续时间
- 对象: LivingEntity(生物)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| effectName | String | 药水效果ID |
- 使用方式:
entity.getPotionEffectDuration("SPEED") - 返回值: int(剩余时间tick,无效果返回0)
getPotionEffectAmplifier
- 说明: 获取对象指定药水效果的等级
- 对象: LivingEntity(生物)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| effectName | String | 药水效果ID |
- 使用方式:
entity.getPotionEffectAmplifier("SPEED") - 返回值: int(效果等级,无效果返回-1)
实体信息语句 (EntityInfo)
isJumping
- 说明: 检查对象是否正在跳跃
- 对象: LivingEntity(生物)
- 参数: 无
- 使用方式:
entity.isJumping() - 返回值: boolean
isInWater
- 说明: 检查对象是否在水中
- 对象: LivingEntity(生物)
- 参数: 无
- 使用方式:
entity.isInWater() - 返回值: boolean
isFallFlying
- 说明: 检查对象是否正在鞘翅滑翔
- 对象: LivingEntity(生物)
- 参数: 无
- 使用方式:
entity.isFallFlying() - 返回值: boolean
isSwimming
- 说明: 检查对象是否正在游泳
- 对象: LivingEntity(生物)
- 参数: 无
- 使用方式:
entity.isSwimming() - 返回值: boolean
isInLava
- 说明: 检查对象是否在岩浆中
- 对象: LivingEntity(生物)
- 参数: 无
- 使用方式:
entity.isInLava() - 返回值: boolean
isSleeping
- 说明: 检查对象是否正在睡觉
- 对象: LivingEntity(生物)
- 参数: 无
- 使用方式:
entity.isSleeping() - 返回值: boolean
isOnGround
- 说明: 检查对象是否在地面上
- 对象: LivingEntity(生物)
- 参数: 无
- 使用方式:
entity.isOnGround() - 返回值: boolean
getPosX
- 说明: 获取对象的X坐标
- 对象: LivingEntity(生物)
- 参数: 无
- 使用方式:
entity.getPosX() - 返回值: double
getPosY
- 说明: 获取对象的Y坐标
- 对象: LivingEntity(生物)
- 参数: 无
- 使用方式:
entity.getPosY() - 返回值: double
getPosZ
- 说明: 获取对象的Z坐标
- 对象: LivingEntity(生物)
- 参数: 无
- 使用方式:
entity.getPosZ() - 返回值: double
getYaw
- 说明: 获取对象的水平朝向角度
- 对象: LivingEntity(生物)
- 参数: 无
- 使用方式:
entity.getYaw() - 返回值: float
getPitch
- 说明: 获取对象的垂直朝向角度
- 对象: LivingEntity(生物)
- 参数: 无
- 使用方式:
entity.getPitch() - 返回值: float
getAir
- 说明: 获取对象的剩余氧气值
- 对象: LivingEntity(生物)
- 参数: 无
- 使用方式:
entity.getAir() - 返回值: int
getHealth
- 说明: 获取对象当前生命值
- 对象: LivingEntity(生物)
- 参数: 无
- 使用方式:
entity.getHealth() - 返回值: double
getMaxHealth
- 说明: 获取对象最大生命值
- 对象: LivingEntity(生物)
- 参数: 无
- 使用方式:
entity.getMaxHealth() - 返回值: double
移动相关语句 (EntityMovement)
teleportForward
- 说明: 向前方传送指定距离(自动寻找安全位置)
- 对象: LivingEntity(生物)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| distance | double | 传送距离(格) |
- 使用方式:
entity.teleportForward(5.0) - 返回值: 无
teleportBack
- 说明: 向后方传送指定距离(自动寻找安全位置)
- 对象: LivingEntity(生物)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| distance | double | 传送距离(格) |
- 使用方式:
entity.teleportBack(5.0) - 返回值: 无
teleportLeft
- 说明: 向左方传送指定距离(自动寻找安全位置)
- 对象: LivingEntity(生物)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| distance | double | 传送距离(格) |
- 使用方式:
entity.teleportLeft(5.0) - 返回值: 无
teleportRight
- 说明: 向右方传送指定距离(自动寻找安全位置)
- 对象: LivingEntity(生物)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| distance | double | 传送距离(格) |
- 使用方式:
entity.teleportRight(5.0) - 返回值: 无
teleportUp
- 说明: 向上方传送指定距离(自动寻找安全位置)
- 对象: LivingEntity(生物)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| distance | double | 传送距离(格) |
- 使用方式:
entity.teleportUp(5.0) - 返回值: 无
teleportDown
- 说明: 向下方传送指定距离(自动寻找安全位置)
- 对象: LivingEntity(生物)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| distance | double | 传送距离(格) |
- 使用方式:
entity.teleportDown(5.0) - 返回值: 无
dash
- 说明: 向前方冲刺(设置速度向量)
- 对象: LivingEntity(生物)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| horizontal | double | 水平速度 |
| vertical | double | 垂直速度 |
- 使用方式:
entity.dash(1.5, 0.3) - 返回值: 无
dashBack
- 说明: 向后方冲刺(设置速度向量)
- 对象: LivingEntity(生物)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| horizontal | double | 水平速度 |
| vertical | double | 垂直速度 |
- 使用方式:
entity.dashBack(1.5, 0.3) - 返回值: 无
dashLeft
- 说明: 向左方冲刺(设置速度向量)
- 对象: LivingEntity(生物)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| horizontal | double | 水平速度 |
| vertical | double | 垂直速度 |
- 使用方式:
entity.dashLeft(1.5, 0.3) - 返回值: 无
dashRight
- 说明: 向右方冲刺(设置速度向量)
- 对象: LivingEntity(生物)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| horizontal | double | 水平速度 |
| vertical | double | 垂直速度 |
- 使用方式:
entity.dashRight(1.5, 0.3) - 返回值: 无
jump
- 说明: 使对象向上跳跃
- 对象: LivingEntity(生物)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| force | double | 跳跃力度 |
- 使用方式:
entity.jump(0.5) - 返回值: 无
dive
- 说明: 使对象向下俯冲
- 对象: LivingEntity(生物)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| force | double | 俯冲力度 |
- 使用方式:
entity.dive(1.0) - 返回值: 无
bounce
- 说明: 反弹对象速度(速度向量取反)
- 对象: LivingEntity(生物)
- 参数: 无
- 使用方式:
entity.bounce() - 返回值: 无
实体选择器语句 (EntitySelector)
getLivingEntitiesInRadius
- 说明: 获取圆形范围内的所有生物实体
- 对象: LivingEntity(生物)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| radius | double | 半径 |
- 使用方式:
entity.getLivingEntitiesInRadius(10.0) - 返回值: List<LivingEntity>(范围内的生物列表)
getLivingEntitiesInCone
- 说明: 获取面前扇形范围内的生物实体
- 对象: LivingEntity(生物)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| radius | double | 半径 |
| angle | double | 扇形角度(度数) |
- 使用方式:
entity.getLivingEntitiesInCone(10.0, 90.0) - 返回值: List<LivingEntity>(范围内的生物列表)
getLivingEntitiesInBox
- 说明: 获取面前矩形范围内的生物实体
- 对象: LivingEntity(生物)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| width | double | 宽度 |
| length | double | 长度 |
| height | double | 高度 |
- 使用方式:
entity.getLivingEntitiesInBox(5.0, 10.0, 3.0) - 返回值: List<LivingEntity>(范围内的生物列表)
getLivingEntitiesInRing
- 说明: 获取环形范围内的生物实体(内圈到外圈之间)
- 对象: LivingEntity(生物)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| innerRadius | double | 内半径 |
| outerRadius | double | 外半径 |
- 使用方式:
entity.getLivingEntitiesInRing(5.0, 10.0) - 返回值: List<LivingEntity>(范围内的生物列表)
getNearestLivingEntity
- 说明: 获取最近的生物实体
- 对象: LivingEntity(生物)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| maxDistance | double | 最大搜索距离 |
- 使用方式:
entity.getNearestLivingEntity(20.0) - 返回值: LivingEntity(最近的生物,没有则返回null)
玩家信息语句 (PlayerInfo)
isAfterJump
- 说明: 检查玩家是否在跳跃后的时间窗口内
- 对象: Player(玩家)
- 参数: 无
- 使用方式:
player.isAfterJump() - 返回值: boolean
isSprinting
- 说明: 检查玩家是否正在疾跑
- 对象: Player(玩家)
- 参数: 无
- 使用方式:
player.isSprinting() - 返回值: boolean
isSneaking
- 说明: 检查玩家是否正在潜行
- 对象: Player(玩家)
- 参数: 无
- 使用方式:
player.isSneaking() - 返回值: boolean
isFlying
- 说明: 检查玩家是否正在飞行
- 对象: Player(玩家)
- 参数: 无
- 使用方式:
player.isFlying() - 返回值: boolean
getFood
- 说明: 获取玩家的饥饿值
- 对象: Player(玩家)
- 参数: 无
- 使用方式:
player.getFood() - 返回值: int(0-20)
getChargeTime
- 说明: 获取玩家的蓄力时间
- 对象: Player(玩家)
- 参数: 无
- 使用方式:
player.getChargeTime() - 返回值: double
isInvincibleTag
- 说明: 检查玩家是否处于无敌状态
- 对象: Player(玩家)
- 参数: 无
- 使用方式:
player.isInvincibleTag() - 返回值: boolean
getState
- 说明: 获取玩家的当前状态ID
- 对象: Player(玩家)
- 参数: 无
- 使用方式:
player.getState() - 返回值: double
玩家消息语句 (PlayerMessage)
showTitle
- 说明: 向玩家显示标题
- 对象: Player(玩家)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| title | String | 主标题 |
| subtitle | String | 副标题 |
| fadeIn | int | 淡入时间(tick) |
| stay | int | 停留时间(tick) |
| fadeOut | int | 淡出时间(tick) |
- 使用方式:
player.showTitle("主标题", "副标题", 10, 70, 20) - 返回值: 无
sendMessage
- 说明: 向玩家发送聊天消息
- 对象: Player(玩家)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| message | String | 消息内容 |
- 使用方式:
player.sendMessage("Hello World!") - 返回值: 无
MythicMobs集成 (MythicMob)
castMythicMobSkill
- 说明: 使对象释放MythicMobs技能
- 对象: LivingEntity(生物)
- 参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| name | String | 技能名称 |
| power | float | 技能强度 |
- 使用方式:
entity.castMythicMobSkill("FireBall", 1.0) - 返回值: 无
对象类型说明
| 对象类型 | 说明 |
|---|---|
| LivingEntity | 所有生物实体(包括玩家、怪物等) |
| Player | 仅限玩家 |
时间单位说明
- tick: Minecraft 的基本时间单位,1秒 = 20 tick
