Molang/函数表达

来自Minecraft基岩版开发Wiki

数学函数[编辑]

名称
描述
math.abs(value) value的绝对值。
math.acos(value) value的反余弦值。
math.asin(value) value的反正弦值。
math.atan(value) value的反正切值。
math.atan2(y,x) y/x的反正切值。
math.ceil(value) 将value向上取整。
math.clamp(value,min,max) 将value限定在最小值(min)到最大值(max)之间。
math.cos(value) value的余弦值。
math.die_roll(num,low,high) 返回num个随机数的总和,每个值的范围在最低(low)到最高(high)范围之间(注:生成的随机数不是像一般骰子那样的整数,若为此,请使用math.die_roll_integer)。
math.die_roll_integer(num,low,high) 返回num个随机整数的总和,每个值的范围在最低(low)到最高(high)范围之间。
math.exp(value) 计算value以e为底数的指数函数。
math.floor(value) 将value向下取整。
math.hermite_blend(value)
math.lerp(start,end,t) 返回[start,end]域以t(t值只能在0~1之间)为比例算出的差值。
math.lerprotate(start,end,0_to_1)
math.ln(value) value的自然对数。
math.max(A,B) 返回A和B中的最大值。
math.min(A,B) 返回A和B中的最小值。
math.min_angel(value) 将value(角度)最小化到[-180,180)的范围(单位:度)。
math.mod(value,denominator) 返回value除以denominator(分母)后的余数。
math.pi 返回常量π的浮点数形式。
math.pow(base,exponent) 返回base(底数)的exponent(指数)次幂。
math.random(low,high) 最低(low)到最高(high)范围内的随机数(注:随机数不包含low)。
math.random_integer(low,high) 最低(low)到最高(high)范围内的随机整数(注:随机整数包含low和high)。
math.round(value) 将value四舍五入取整。
math.sin(value) value的正弦值。
math.sqrt(value) value的平方根。
math.trunc(value) 截短法取整。

查询函数[编辑]

查询函数是布尔表达式,允许您查询引擎在不同情况下拥有的值。它们可以用在Molang表达式中。可用于控制位置,纹理,动画等内容。

例如:

"position": [ 0.0, "query.is_baby ? -8.0 : 0.0", "query.is_baby ? 4.0 : 0.0" ]

查询函数清单[编辑]

名称
描述
query.above_top_solid 返回位于输入坐标正上方最高固体方块的高度。
query.actor_count 返回上一帧中渲染的活动对象的数量。
query.all 如果其他全部参数与第一个参数结果相同,则返回1.0,否则返回0.0。
query.all_animations_finished 如果当前动画控制器下的所有动画至少播放了一次则返回1.0,否则返回0.0。
query.all_tags 返回物品或方块所具有的所有指定标签
query.anim_time 返回动画自开始以来的时间(以秒为单位),如果动画未被调用则返回0.0。
query.any 如果其他任意参数与第一个参数结果相同,则返回1.0,否则返回0.0
query.any_animation_finished 如果当前动画控制器下的任意动画至少播放了一次则返回1.0,否则返回0.0。
query.any_tag 返回物品或方块所具有的任意指定标签。
query.approx_eq 如果所有参数都在0.000000之内,则返回1.0,否则返回0.0。
query.armor_color_slot 将盔甲栏编号作为参数,并返回所查询的盔甲栏中盔甲的颜色。
query.armor_material_slot 将盔甲栏编号作为参数,并返回所查询的盔甲栏中盔甲的材料类型。
query.armor_texture_slot 将盔甲栏编号作为参数,并返回所查询的盔甲栏中盔甲的纹理类型。
query.average_frame_time 以秒为单位返回过去n帧中的平均每帧的时间。
query.block_face 返回点击方块的面。(向下 = 0.0,向上 = 1.0,北 = 2.0,南 = 3.0,西 = 4.0,东 = 5.0,未定义 = 6.0)
query.block_property 返回所查询的方块属性的值。
query.block_neighbor_has_all_tags 查询方块边上的某个块(根据填入的x,y,z)所有tag是否等于填入的那个tag,如果是,返回1.0,否则返回0.0
query.block_neighbor_has_any_tag 查询方块是否有tag等于填入的tag,如果是,返回1.0,否则返回0.0
query.blocking 如果实体正在搬运或放置方块(例如末影人),则返回1.0,否则返回0.0。
query.body_x_rotation 若对活动对象调用,则返回活动对象身体的x轴旋转角度,否则返回0.0。
query.body_y_rotation 若对活动对象调用,则返回活动对象身体的y轴旋转角度,否则返回0.0。
query.bone_aabb 返回轴对其的骨骼边界框作为结构体
query.bone_origin 返回骨骼的初始枢轴作为结构体
query.bone_rotation 返回骨骼的初始旋转角度作为结构体
query.camera_distance_range_lerp 以任意顺序取两个距离,并根据相对于这两个距离范围之间的相机距离返回对应数值。
query.camera_rotation 返回相机的旋转角度。
query.can_climb 如果实体可以攀爬,则返回1.0,否则返回0.0。
query.can_damage_nearby_mobs 如果实体可以对附近的生物造成伤害,则返回1.0,否则返回0.0。
query.can_fly 如果实体可以飞行,则返回1.0,否则返回0.0。
query.can_power_jump 如果实体可以蓄力跳跃,则返回1.0,否则返回0.0。
query.can_swim 如果实体可以游泳,则返回1.0,否则返回0.0。
query.can_walk 如果实体可以行走,则返回1.0,否则返回0.0。
query.cape_flap_amount 返回披风的飘起程度。
query.cardinal_facing 返回玩家当前的面部朝向。
query.cardinal_facing_2d 返回玩家当前面部在2D平面上的朝向。
query.cardinal_player_facing 返回玩家当前的面部朝向。
query.combine_entities 将来自所有参数的任何有效实体引用组合到单个数组中。注意:不保留顺序,并且会删除重复值和无效值。
query.count 计数读取该内容包含的值的数量(将数组计为它们包含的元素数;非数组计为1)。
query.current_squish_value 返回当前实体的压缩值,如果没有意义,这返回0.0。
query.day 返回当前存档中度过的天数。
query.debug_output 开发构建调试日志中输出一个Molang表达式运算的值。
query.delta_time 以秒为单位返回自上一帧以来的时间。
query.distance_from_camera 返回此活动对象或粒子发射器的基部到相机的距离
query.effect_emitter_count 返回被调用方粒子类型的活跃粒子发射器总数。
query.effect_particle_count 返回被调用方粒子类型的活跃粒子总数。
query.equipment_count 返回活动对象携带的装备数量。
query.equipped_item_all_tags 根据指定槽位以及欲查询的物品标签,如果被查询槽位中的装备拥有欲查询的所有标签,则返回1.0,否则返回0.0。
query.equipped_item_any_tag 根据指定槽位以及欲查询的物品标签,如果被查询槽位中的装备拥有欲查询的任意标签,则返回1.0,否则返回0.0。
query.equipped_item_is_attachable 如果此物品是附着物,则返回1.0,否则返回0.0。
query.eye_target_x_rotation 如果有意义,则返回实体眼部的X轴旋转角度,否则返回0.0。
query.eye_target_y_rotation 如果有意义,则返回实体眼部的Y轴旋转角度,否则返回0.0。
query.facing_target_to_range_attack 如果实体正在进行范围攻击,则返回1.0,否则返回0.0。
query.frame_alpha 返回AI渲染两帧之间的时间刻度比率。
query.get_actor_info_id 返回活动对象的数字ID。
query.get_animation_frame 返回动画当前帧,如果无意义,则返回0.0
query.get_default_bone_pivot 获取指定骨骼朝向枢轴的指定轴。
query.get_locator_offset 获取指定定位器偏移量的指定坐标轴。
query.get_root_locator_offset 获取根模型指定定位器偏移量的指定坐标轴。
query.ground_speed 返回实体的对地速度(单位为米每秒)。
query.has_any_family 如果实体拥有欲查询的任意家族名称,则返回1.0,否则返回0.0。
query.has_armor_slot 将盔甲栏编号作为参数,如果实体在欲查询的盔甲栏中有盔甲,则返回1.0,否则返回0.0
query.has_biome_tag 查询方块放置目标原点位置的生物群系是否具有指定的标签。
query.has_block_property 如果相关方块有指定的方块属性,则返回1.0,否则返回0.0。
query.has_cape 如果玩家有披风,则返回1.0,否则返回0.0。
query.has_collision 如果实体有碰撞箱,则返回1.0,否则返回0.0。
query.has_gravity 如果实体受重力影响,则返回1.0,否则返回0.0。
query.has_owner 如果实体有主人ID,则返回true,否则返回false。
query.has_rider 如果实体有乘骑者,则返回1.0,否则返回0.0。
query.has_target 如果实体有目标,则返回1.0,否则返回0.0。
query.head_roll_angel 如果有意义,则返回实体头部的翻滚角旋转度数,否则返回0.0
query.head_x_rotation 如果有意义,则返回实体的N个头的X轴旋转角度,否则返回0.0。
query.head_y_rotation 如果有意义,则返回实体第N个头的Y轴旋转角度,否则返回0.0。
query.health 返回当前实体的生命值,如果调用该实体的生命值没有意义,则返回0.0。
query.heightmap 获取高度图。
query.hurt_direction 返回此活动对象的伤害方向,否则返回0.0。
query.hurt_time 返回此活动对象的伤害时间,否则返回0.0。
query.in_range 如果第一个参数介于第二个参数(最小值)和第三个参数(最大值)之间,则返回1.0,否则返回0.0。
query.invulnerable_ticks 如果有意义,则返回实体剩余的无敌时间(单位为游戏刻),否则返回0.0。
query.is_admiring 如果实体羡慕你手上的物品,则返回1.0,否则返回0.0
query.is_alive 如果实体正存活着,则返回1.0,否则返回0.0。
query.is_angry 如果实体处于愤怒状态,则返回1.0,否则返回0.0。
query.is_attached_to_entity 如果活动对象附着在实体上,则返回1.0,否则返回0.0。
query.is_avoiding_block 如果实体正在避开方块,则返回1.0,否则返回0.0。
query.is_avoiding_mobs 如果实体正在躲避生物,则返回1.0,否则返回0.0。
query.is_baby 如果实体处于幼年,则返回1.0,否则返回0.0。
query.is_breathing 如果实体正在呼吸,则返回1.0,否则返回0.0。
query.is_bribed 如果实体为玩家服务则返回1.0,否则返回0.0
query.is_carrying_block 如果实体拿着方块,则返回1.0,否则返回0.0。
query.is_casting 如果实体正在施法,则返回1.0,否则返回0.0。
query.is_celebrating 如果实体正在庆贺,则返回1.0,否则返回0.0。
query.is_celebrating_special 如果实体正在特殊庆贺,则返回1.0,否则返回0.0。
query.is_charged 如果实体变为闪电苦力怕,则返回1.0,否则返回0.0。
query.is_charging 如果实体正在充能,则返回1.0,否则返回0.0。
query.is_chested 如果实体装配有箱子,则返回1.0,否则返回0.0。
query.is_critical 如果实体发生暴击,则返回1.0,否则返回0.0。
query.croaking 如果实体正在蛙鸣,则返回1.0,否则返回0.0。
query.is_dancing 如果实体正在跳舞,则返回1.0,否则返回0.0。
query.is_delayed_attacking 如果实体处于攻击状态,则返回1.0,否则返回0.0。
query.is_digging 如果实体正在挖掘,则返回1.0,否则返回0.0。
query.is_eating 如果实体正在进食,则返回1.0,否则返回0.0。
query.is_eating_mob 如果实体正在吞噬其他实体,则返回1.0,否则返回0.0。
query.is_elder 如果实体处于成年,则返回1.0,否则返回0.0。
query.is_emoting 如果实体正在播放表情,则返回1.0,否则返回0.0。
query.is_enchanted 如果活动对象已附魔,则返回1.0,否则返回0.0。
query.is_fire_immune 如果实体对火焰免疫,则返回1.0,否则返回0.0。
query.is_first_person 如果实体处于第一人称视角,则返回1.0,否则返回0.0。
query.is_ghost 如果实体处于死亡状态,则返回1.0,否则返回0.0。
query.is_gliding 如果实体正在滑动,则返回1.0,否则返回0.0。
query.is_grazing 如果实体正在吃方块,则返回1.0,否则返回0.0。
query.is_idling 如果实体处于闲置状态,则返回1.0,否则返回0.0。
query.is_ignited 如果实体被点燃,则返回1.0,否则返回0.0。
query.is_illager_captain 如果实体是袭击队长,则返回1.0,否则返回0.0。
query.is_in_contact_with_water 如果实体与任何水源(水、雨或喷溅药水)接触,则返回1.0,否则返回0.0。
query.is_in_love 如果实体正在发情,则返回1.0,否则返回0.0。
query.is_in_ui 如果实体正在UI中,则返回1.0,否则返回0.0。
query.is_in_water 如果实体处于水中,则返回1.0,否则返回0.0。
query.is_in_water_or_rain 如果实体处于水中或中,则返回1.0,否则返回0.0。
query.is_interested 如果实体感兴趣,则返回1.0,否则返回0.0。
query.is_invisible 如果实体处于隐身状态,则返回1.0,否则返回0.0。
query.is_item_equipped 返回主手或副手是否持有物品
query.is_jumping 如果实体正在跳跃,则返回1.0,否则返回0.0。
query.is_laying_down 如果实体处于躺下的状态,则返回1.0,否则返回0.0。
query.is_laying_egg 如果实体正在产卵(例如海龟]]),则返回1.0,否则返回0.0。
query.is_leashed 如果实体被栓绳牵引,则返回1.0,否则返回0.0。
query.is_levitating 如果实体正在漂浮,则返回1.0,否则返回0.0。
query.is_moving 如果实体正在移动,则返回1.0,否则返回0.0。
query.is_name_any 可有一个或多个参数,如果实体的名称是任意参数,则返回 1.0,否则返回 0.0。
query.is_on_fire 如果实体着火了,则返回1.0,否则返回0.0。
query.is_on_ground 如果实体正处于地面上,则返回1.0,否则返回0.0。
query.is_on_screen 如果实体在屏幕相机内,则返回1.0,否则返回0.0。
query.is_onfire 如果实体着火了,则返回1.0,否则返回0.0。
query.is_orphaned 如果实体是孤儿,则返回1.0,否则返回0.0。
query.is_owner_identifier_any 返回父活动对象标识符是否为指定的任意字符串。
query.is_persona_or_premium_skin 如果此玩家拥有角色或付费皮肤,则返回1.0,否则返回0.0。
query.is_powered 如果实体已充能,则返回1.0,否则返回0.0。
query.is_pregnant 如果实体怀孕了,则返回1.0,否则返回0.0。
query.is_ram_attacking 如果实体正在使用随机攻击,则返回1.0,否则返回0.0。
query.is_resting 如果实体在休息,则返回1.0,否则返回0.0。
query.is_riding 如果实体正处于骑乘状态,则返回1.0,否则返回0.0。
query.is_roaring 如果实体正在咆哮,则返回1.0,否则返回0.0。
query.is_rolling 如果实体正在翻滚,则返回1.0,否则返回0.0。
query.is_saddled 如果实体拥有鞍,则返回1.0,否则返回0.0。
query.is_scared 如果实体受到惊吓,则返回1.0,否则返回0.0。
query.is_selected_item 如果玩家选中了物品栏中的物品,则返回1.0,否则返回0.0。
query.is_shaking 如果实体正在颤抖,则返回1.0,否则返回0.0。
query.is_shaking_wetness 如果实体正在抖水,则返回1.0,否则返回0.0。
query.is_sheared 如果实体拥有minecraft:is_sheared组件则返回1.0,否则返回0.0。
query.is_shield_powered 如果有意义,则实体有激活的能量盾时返回1.0,否则返回0.0。
query.is_silent 如果实体静默,则返回1.0,否则返回0.0。
query.is_sitting 如果实体坐着,则返回1.0,否则返回0.0。
query.is_sleeping 如果实体正在睡觉,则返回1.0,否则返回0.0。
query.is_sneaking 如果实体正在潜行,则返回1.0,否则返回0.0。
query.is_sneezing 如果实体正在打喷嚏,则返回1.0,否则返回0.0。
query.is_sprinting 如果实体正在冲刺,则返回1.0,否则返回0.0。
query.is_stackable 如果实体是可堆叠的,则返回1.0,否则返回0.0。
query.is_stalking 如果实体正在潜近目标,则返回1.0,否则返回0.0。
query.is_standing 如果实体站立,则返回1.0,否则返回0.0。
query.is_stunned 如果实体处于昏迷状态,则返回1.0,否则返回0.0。
query.is_swimming 如果实体在游泳,则返回1.0,否则返回0.0。
query.is_tamed 如果实体被驯服,则返回1.0,否则返回0.0。
query.is_transforming 如果实体在转化,返回1.0,否则返回0.0。
query.is_using_item 如果实体正在使用一个物品,则返回1.0,否则返回0.0。
query.is_wall_climbing 如果实体在爬墙,则返回1.0,否则返回0.0。
query.item_in_use_duration 返回此物品被使用的最高持续时间(以秒为单位),如果没有意义,则返回0.0。
query.item_is_charged 如果物品被充能,则返回1.0,否则返回0.0。
query.item_max_use_duration 如果有意义,则返回此物品可被使用的最大时间,否则返回0.0。
query.item_remaining_use_duration 返回此物品的剩余使用时间(以秒为单位),如果没有意义,则返回0.0。
query.item_slot_to_bone_name 返回实体映射到对应槽位的骨骼名称。
query.key_frame_lerp_time 返回前一关键帧和后一关键帧之间的比率。
query.last_frame_time 返回最后一帧的时间(以秒为单位)。
query.last_hit_by_player 如果实体的上一次受伤由玩家造成,则返回1.0,否则返回0.0。
query.lie_amount 返回实体的躺下程度。
query.life_span 返回实体的有限生命周期,如果其生命周期无限,则返回0.0。
query.life_time 返回此动画开始以来的持续时间(以秒为单位)。
query.lod_index 以0为基准值返回活动对象到相机预设距离范围的对应值。
query.log 内容日志输出当前表达式的值。
query.main_hand_item_max_duration 返回主手物品的最大使用时间,如果没有意义,则返回0.0。
query.main_hand_item_use_duration 返回主手物品的使用时间,如果没有意义,则返回0.0。
query.mark_variant 返回实体的变种标记,如果没有意义,则返回0.0。
query.max_durability 查询物品最大耐久值,如果没有意义,则返回0.0。
query.max_health 查询实体最大生命值,如果没有意义,则返回0.0。
query.max_trade_tire 如果有意义,则返回此实体的最大交易层级,否则返回0.0。
query.maximum_frame_item
query.minimum_frame_time
query.model_scale 返回此实体的缩放比例,如果没有意义,则返回0.0
query.modified_distance_moved 返回实体修改过的移动方向,如果没有意义,则返回0.0
query.modified_move_speed 返回实体更改过的移速,如果没有意义,则返回0.0
query.moon_brightness 返回月亮当前亮度,如果没有意义,则返回0.0
query.moon_phase 返回月亮当前的阶段,如果没有意义,则返回0.0
query.movement_direction 查询实体运动方向,如果没有意义,则返回0.0
query.noise 获取柏林噪声类型。
query.on_fire_time 查询实体着火时间,如果没有意义则返回0.0。
query.out_of_control 查询实体是否失控,如果没有意义,则返回0.0。
query.player_level 返回实体的等级,否则返回0.0。
query.position 返回实体在世界中的绝对坐标。它根据一个参数来返回对应轴的坐标,0代表x轴,1代表y轴,2代表z轴。
query.position_delta 返回实体上一帧的相对位移。它接收一个参数来返回对应轴的坐标,0代表x轴,1代表y轴,2代表z轴。
query.previous_squish_value 返回实体当前的压缩值,如果没有意义,则返回0.0。
query.remaining_durability 返回物品的剩余耐久度
query.roll_counter 返回实体的翻滚计数器。
query.rotation_to_camera 返回瞄准相机_(游戏系统)所需的对应轴旋转角度。
query.shake_angel 如果有意义,则返回实体的摇晃角度角度,否则返回0.0。
query.shake_time 返回实体的摇晃时间。
query.shield_blocking_bob 返回副手盾牌在阻挡被击中时应该向下平移的量。
query.sit_amount 返回实体的当前坐下程度。
query.skin_id 返回实体的皮肤ID。
query.sleep_rotation 返回玩家睡在床上应该旋转的角度。
query.sneeze_counter 返回实体的喷嚏计数器。
query.spellcolor 返回指定实体的魔咒颜色结构体
query.standing_scale 返回实体站立程度的度量。
query.structural_integrity 返回活动对象的完整性,否则返回0.0。
query.swell_amount 返回实体的膨胀程度。
query.swelling_dir 如果有意义,则返回实体的膨胀方向,否则返回0.0。
query.swim_amount 返回当前实体正在游泳的程度。
query.tail_angel 如果有意义,则返回实体尾巴的旋转角度,否则返回0.0。
query.target_x_rotation 如果实体有目标,则返回对准目标的X轴旋转角度,否则返回0.0。
query.target_y_rotation 如果实体有目标,则返回对准目标的Y轴旋转角度,否则返回0.0。
query.texture_frame_index 返回经验球的图标层级。
query.time_of_day 返回当前实体所在维度的时间。
query.time_stamp 返回当前存档的时间戳。
query.total_emitter_count 返回世界上活跃的粒子发射器总数。
query.total_particle_count 返回世界上活跃的粒子总数。
query.trade_tier 如果有意义,则返回实体的交易层级,否则返回0.0。
query.unhappy_counter 返回实体的好感度。
query.variant 返回实体的变种层级。
query.vertical_speed 返回实体向上或向下的速度(以秒为单位),正数为向上。
query.walk_distance 返回实体的行走距离。
query.wing_flap_position 如果有意义,则返回实体的鞘翅位置,否则返回0.0。
query.wing_flap_speed 如果有意义,则返回实体的鞘翅速度,否则返回0.0。
query.yaw_speed 返回实体的偏航速度。

实验性查询函数清单[编辑]

名称
描述
query.actor_property
query.biome_has_all_tags 如果实体所在生物群系或指定坐标的生物群系包含提供的所有标签则返回1.0,否则返回0.0。
query.biome_has_any_tag 如果实体所在生物群系或指定坐标的生物群系包含提供的任意标签则返回1.0,否则返回0.0。
query.block_has_all_tags
query.block_has_any_tag
query.block_neighbor_has_all_tags
query.block_neighbor_has_any_tag
query.bone_orientation_matrix
query.bone_orientation_trs
query.client_input_type 根据当前客户端使用的操作方式返回mouse(鼠标),touch(触屏),gamepad(手柄)或motion_controller(运动传感器)。
query.cooldown_time
query.cooldown_time_remaining
query.get_nearby_entities 返回当前实体周围筛选出的实体,它接收两个参数,其中第二个参数为缺省参数。第一个指代长度距离,第二个指代实体的命名空间:标识符。
query.get_nearby_entities_except_self 返回当前实体周围筛选出的不包括自己的实体,它接收两个参数,其中第二个参数为缺省参数。第一个指代长度距离,第二个指代实体的命名空间:标识符。
query.get_ride 如果该实体正在乘骑某实体,则返回被乘骑的实体,否则返回0.0。
query.get_riders 以数组的形式返回该实体的乘骑者。
query.has_actor_property
query.has_player_rider 如果实体被玩家乘骑,则返回1.0,否则返回0.0。
query.is_attached 如果一个活动对象附着于另一个活动对象上,则返回1.0(例如被持有或被穿戴),否则返回0.0。
query.is_cooldown_type
query.relative_block_has_all_tags 根据相对实体坐标,如果该方块拥有所有指定的标签,则返回1.0,否则返回0.0。
query.relative_block_has_any_tag 根据相对实体坐标,如果该方块拥有任意指定的标签,则返回1.0,否则返回0.0。
query.scoreboard 返回当前实体的计分板信息,它接受一个参数用来指代记分项。
query.self 返回当前实体。
query.target 返回当前实体目标(如果存在)。

已弃用函数[编辑]

名称
类型
弃用版本
描述
替代函数
query.cardinal_block_face_placed_on 查询函数 返回点击方块的面。 query.block_face
query.get_equipped_item_name 查询函数 返回实体手持物品的名称,如果无意义,则返回0.0。
query.get_name 查询函数 如果有意义,则返回实体的名称,否则返回0.0。 query.is_name_any
query.overlay_alpha 查询函数
query.owner_identifier 查询函数 返回一串父类实体拥有的附命名空间标识符字符串,常用来判断物品持有者的类型。 query.is_owner_identifier_any