AttributeComponent
在属性脚本中使用AttributeComponent中的方法(函数)。
应当在onLoad中使用的
Java
//返回值:Unit
//描述:设置属性触发时的提示消息 [replaceAttack] 为是否替换 Attack 属性提示语。如果 [replaceAttack] 为 True 那属性触发时 Attack 攻击提示则不会显示。当属性内有设置 message 时,属性第一次注册会在 attribute.yml 生成对应配置
attr.setMessages(List<String> messages, Boolean replaceAttack)
//返回值:Unit
//描述:设置属性提示消息
attr.setMessages(List<String> messages)
//返回值:Unit
//描述:设置属性公式。当属性内有设置 formula 时,属性第一次注册会在 attribute.yml 生成对应配置
attr.setFormula(String formula)
//返回值:Unit
//描述:是否跳过过滤,跳过的话不管属性值是否 >0.0 都会触发,否则只有玩家属性值 >=1.0 是才会触发
attr.setSkipFilter(Boolean skip)
//返回值:Unit
//描述:忽略此次属性处理事件取消状态,无论是否取消都必定执行
attr.setIgnoreCancelled(Boolean flag)
//返回值:Unit
//描述:属性是否异步执行,部分方法无法通过异步执行(例如 Player.setWalkSpeed ),这里可以将属性设为非异步执行
attr.setAsync(Boolean flag)
//返回值:Unit
//描述:实时更新状态修改
attr.setSyncUpdateState(Boolean sync)
//返回值:Unit
//描述:无
attr.setCustomTrigger(String name)
不应当在onLoad中使用的
JavaScript
//返回值:Boolean
//描述:此次是否为远程攻击伤害
attr.isProjectileDamage(AttributeHandle handle)
//返回值:Double
//描述:获取此次攻击蓄力强度 (1.0~100.0)。该方法会根据玩家原版攻击蓄力机制削弱伤害 (攻击间隔越快伤害越低)。仅对玩家生效
attr.getDamageIntensity(AttributeHandle handle)
//返回值:AttributeData
//描述:获得实体的属性数据
attr.getData(LivingEntity entity, AttributeHandle handle)
//返回值:Array<Number>
//描述:获得实体某一属性的属性值数据
attr.getAttributeValue(LivingEntity entity, String defaultAttributeName, AttributeHandle handle)
//返回值:Array<Number>
//描述:获得实体当前属性的属性值数据
attr.getAttributeValue(LivingEntity entity, AttributeHandle handle)
//返回值:Number
//描述:获取实体某一属性的随机值。调用该方法会将所获取的属性值储存至临时数据,相当于自动调用 storageValue() 方法
attr.getRandomValue(LivingEntity entity, String defaultAttributeName, AttributeHandle handle)
//返回值:Number
//描述:获取实体当前属性的随机值。调用该方法会将所获取的属性值储存至临时数据,相当于自动调用 storageValue() 方法
attr.getRandomValue(LivingEntity entity, AttributeHandle handle)
//返回值:Number
//描述:获取实体此次属性处理事件对对方所造成的伤害。attacker / killer 则为攻击者所造成的伤害 (例如 物理伤害)。entity 则为被攻击者的反击伤害 (例如 反弹伤害)
attr.getDamage(LivingEntity entity, AttributeHandle handle)
//返回值:Unit
//描述:设置实体此次属性处理事件对对方所造成的伤害
attr.setDamage(LivingEntity entity, Double value, AttributeHandle handle)
//返回值:Unit
//描述:增加实体此次属性处理事件对对方所造成的伤害
attr.addDamage(LivingEntity entity, Double value, AttributeHandle handle)
//返回值:Unit
//描述:减少实体此次属性处理事件对对方所造成的伤害
attr.takeDamage(LivingEntity entity, Double value, AttributeHandle handle)
//返回值:Unit
//描述:增加实体此次属性处理事件对某个属性的属性值。[defaultAttributeName] 为注册属性时的默认名 (非服务器修改后的名字)
attr.addAttribute(LivingEntity entity, String defaultAttributeName, Double value, AttributeHandle handle)
//返回值:Unit
//描述:减少实体此次属性处理事件对某个属性的属性值。[defaultAttributeName] 为注册属性时的默认名 (非服务器修改后的名字)
attr.takeAttribute(LivingEntity entity, String defaultAttributeName, Double value, AttributeHandle handle)
//返回值:Unit
//描述:设置实体此次属性处理事件对某个属性的属性值。[defaultAttributeName] 为注册属性时的默认名 (非服务器修改后的名字)
attr.setAttribute(LivingEntity entity, String defaultAttributeName, Double value, AttributeHandle handle)
//返回值:Unit
//描述:取消实体此次属性处理事件对某个属性的触发。[defaultAttributeName] 为注册属性时的默认名 (非服务器修改后的名字)
attr.cancelAttribute(LivingEntity entity, String defaultAttributeName, AttributeHandle handle)
//返回值:Unit
//描述:将属性值储存至临时数据,用于 message 提示所显示的属性值。[init] 是否为初始值,防止调用 getRandomValue() 后导致储存值错误
attr.storageValue(Pair<String, Double> pair, Boolean init, AttributeHandle handle)
//返回值:Unit
//描述:与 Pair<String, Double>.storageValue(init: Boolean) 方法相同,但不会初始化数据值,会直接增加上去
attr.storageValue(Pair<String, Double> pair, AttributeHandle handle)
//返回值:Unit
//描述:Java 请使用该方法储存,与 Pair<String, Double>.storageValue(init: Boolean) 方法相同
attr.storageValue(Data<String, Double> data, Boolean init, AttributeHandle handle)
//返回值:Unit
attr.storageValue(Data<String, Double> data, AttributeHandle handle)
//返回值:Unit
//描述:JavaScript 请使用该方法储存,与 Pair<String, Double>.storageValue(init: Boolean) 方法相同
attr.storageValue(String placeholder, Double value, Boolean init, AttributeHandle handle)
//返回值:Unit
attr.storageValue(String placeholder, Double value, AttributeHandle handle)
//返回值:Unit
//描述:取消此次属性处理事件的处理,相当于此次所有属性都不处理,也不会受到伤害
attr.setCancelled(Boolean flag, AttributeHandle handle)
//返回值:Boolean
//描述:判断此次是否忽略取消
attr.isIgnoreCancelled()
//返回值:Boolean
//描述:几率触发
attr.chance(Double value)
//返回值:Double
//描述:获取属性公式计算后的值。[defaultFormula] 为默认的公式,因为 1.7.10 与 Mohist 核心不支持自定义公式。当不支持自定义公式时将通过默认公式取值
attr.getFormulaValue(AttributeHandle handle, () -> Double defaultFormula)
//返回值:Double
attr.getCombatPower(Array<Number> value)
//返回值:String
//描述:通过 属性默认名 返回属性的变量
attr.toPlaceholder(String input)
//返回值:String
//描述:通过 属性默认名 获取 服务器内修改后的属性名
attr.toServerName(String input)