-
Notifications
You must be signed in to change notification settings - Fork 6
libraries
kaputina edited this page Feb 24, 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指定した確率で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!その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!その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!対象のプレイヤーが死亡中の場合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!天候が指定した天候の場合trueを返すpredicateです。
execute if predicate lib:weather/is_<sunny|raining|thundering>
# 天候が雨の場合のみ「rain!」と出力するコマンド
execute if predicate lib:weather/is_raining run say rain!Work In Progress...
実行Entity(type=!player)の視点方向に$VectorMagnitude*0.01Block分のMotionを付与します at,rotatedと併用してください
function lib:motion/
# 5m以内のEntityに1Blcok分の視点方向のMotionをかけるコマンド
scoreboard players set $VectorMagnitude 100
execute as @e[type=!player,distance=..5] at @s run function lib:motion/
# 5m以内のEntityが自分めがけて飛んでくるコマンド
scoreboard players set $VectorMagnitude 500
execute as @e[type=!player,distance=..5] at @s facing entity @p feet run function lib:motion/