02.001.Counter using only NBT - MCJE-Tech-Community/Datapack-WIki GitHub Wiki

⏲️ NBTのみを用いたカウンター

NBTのみを用いて1073741760から2147483520まで範囲のカウンターを作ることができます。 範囲内であればカウンターを1増加させたり1減少させたりできます。

スコアボードを使いたくない場合や、ストレージ内のNBTを書き換える際にスコアボードを経由するのを避けたい場合に有用です。

実装例

  • #> initialize.mcfunction
    data modify storage _ counter set value 1073741760
    
  • #> increment.mcfunction
    
    # counterが2147483520を上回るとincrementで1だけ増加しなくなってしまうので、それを防止する。
    execute if data storage _ {counter: 2147483520} run return 0
    
    # counterが1073741760以上かつ2147483520以下の場合のみ、counterを1増やすことができる
    execute store result storage _ counter int 1.0000000009313226 run data get storage _ counter
    
  • #> decrement.mcfunction
    
    # counterが1073741760を下回るとincrementで増加させられなくなるので、それを防止する。
    execute if data storage _ {counter: 1073741760} run return 0
    
    # counterが1以上の場合のみ、counterを1減らすことができる
    execute store result storage _ counter int 0.9999999999999999 run data get storage _ counter