Counter 计数器

AttributeData 类内部对象

获取 Counter 主控对象:

AttributeData data = ...
data.getCounter() //主控对象

创建新的计数器:

ItemCounterResetType 类型:
DEFUALT 该类型的计数器需要手动重置记录值
DEATH 该类型的计数器在玩家死亡时会重置记录值
AttributeData data = ...
AttributeCounter counter = data.getCounter() //主控对象
counter.getCounter("计数器名称", ItemCounterResetType.DEFUALT) //计数器

计数器相关方法:

/**
 * 更新计数器记录数值
 * [update] 数值 [default] 默认值(即该计数器未操作过时的默认值)
 */
 fun updateValue(update: Double, default: Double): Double
 
 /**
  * 设置计数器记录数值
  * [value] 数值
  */
 fun setValue(value: Double): Double
 
 /**
  * 设置计数器文本记录
  * [update] 文本
  */
fun updateContent(update: String): String

/**
 * 获取计数器记录数值
 * [default] 默认值(即该计数器未操作过时的默认值)
 */
fun getValue(default: Double): Double

/**
 * 获取计数器记录文本
 * [default] 默认值(即该计数器未操作过时的默认值) 
 */
fun getContent(default: String): String

/**
 * 重置计数器记录数值
 */
fun resetValue()

/**
 * 重置计数器记录文本
 */
fun resetContent()

JavaScript 中使用计数器示例:

以下例子使用 KILLER 脚本类型作为示例

var priority = 1
var combatPower = 1.0
var attributeName = "KILLER_ATTRIBUTE"
var attributeType = "KILLER"
var placeholder = "KILLER_ATTRIBUTE"

function onLoad(attr){
  return attr
}

function runKiller(attr, killer, entity, handle) {
  //获取击杀者的 AttributeData 对象
  var data = attr.getData(killer, handle)
  //获取创建一个名为 reaper_count 的计算,重置类型为 DEATH 死亡时重置
  var counter = data.counter.getCounter("reaper_count", "DEATH")
  
  //更新计数器值 +1 默认值为 0
  var value = counter.updateValue(1, 0)
  //判断计数器计数值是否大于等于 3 次
  if (value >= 3) {
    //重置计数器值
    counter.resetValue()
    killer.sendMessage("§a§lKILLER_ATTRIBUTE 触发")
  } else {
    killer.sendMessage("§a§lKILLER_ATTRIBUTE §f§l" + value + "/3")
  }
}

最后更新于