Skip to content

libraries

ChenCMD edited this page Feb 17, 2021 · 47 revisions

乱数ライブラリ

疑似乱数生成

乱数を取得します

使い方

execute store result ... run function lib:random/

乱数として生成される値は0~65535までの範囲です。

注: このライブラリはもやんのせいでfunction内以外から実行すると6しか取得できません。function内で実行する分には問題ないからバグ報告しないでね☆

# 25%の確率で「excellent!」,50%の確率で「great」,25%の確率で「miss」と出力するコマンド
    # 疑似乱数取得
        execute store result score $Random Temporary run function lib:random/
    # ほしい範囲に剰余算
        scoreboard players operation $Random Temporary %= $100 Const
    # メッセージ出力
        execute if score $Random Temporary matches 00..24 run say excellent!
        execute if score $Random Temporary matches 25..74 run say great
        execute if score $Random Temporary matches 75..99 run say miss
    # リセット
        scoreboard players reset $Random Temporary

固定確率predicates

指定した確率でtrueを返すpredicateです。

使い方

execute if predicate lib:random_pass_per/<確率>

@a[predicate=lib:random_pass_per/<確率>

確率に指定可能な値は1 ~ 99までの範囲です。

# 30%の確率で「pass!」と出力するコマンド
    execute if predicate lib:random_pass_per/30 run say pass!

攻撃元Entity探索実装

そのtickにそのプレイヤー攻撃したEntityを特定する実装です。

使い方

execute as @e[type=#lib:living,type=!player,tag=AttackingEntity,distance=..150] if score @s AttackingEntity = @a[tag=this,limit=1] AttackingEntity

# 攻撃してきたEntityが「attack!」と出力するコマンド
    execute as @e[type=#lib:living,type=!player,tag=Attackeingntity,distance=..150] if score @s AttackingEntity = @a[tag=this,limit=1] AttackingEntity run say attack!

攻撃先Entity探索実装

そのtickにそのプレイヤー攻撃したEntityを特定する実装です。

使い方

execute as @e[type=#lib:living,type=!player,tag=AttackedEntity,distance=..150] if score @s AttackedEntity = @a[tag=this,limit=1] AttackedEntity

# 攻撃してEntityが「hurt!」と出力するコマンド
    execute as @e[type=#lib:living,type=!player,tag=AttackedEntity,distance=..150] if score @s AttackedEntity = @a[tag=this,limit=1] AttackedEntity run say hurt!

死亡チェックpredicate

対象のプレイヤーが死亡中の場合trueを返すpredicateです。

使い方

execute if predicate lib:is_death

@a[predicate=lib:is_death

# 生存者のみが「alive!」と出力するコマンド
    execute as @a unless predicate lib:is_death run say alive!
    execute as @a[predicate=!lib:is_death] run say alive!

天候チェックpredicate

天候が指定した天候の場合trueを返すpredicateです。

使い方

execute if predicate lib:weather/is_<sunny|raining|thundering>

# 天候が雨の場合のみ「rain!」と出力するコマンド
    execute if predicate lib:weather/is_raining run say rain!

ディメンションチェックpredicate

Work In Progress...

Clone this wiki locally