Skip to content
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#> asset:artifact/1555.shift_change/give/1.trigger
#
# 神器の取得処理の呼び出し時に実行されるfunction
#
# @within tag/function asset:artifact/give

execute if data storage asset:context {id:1555} run function asset:artifact/1555.shift_change/give/2.give
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
#> asset:artifact/1555.shift_change/give/2.give
#
# 神器の作成部 ここでID等を定義する
#
# @user
# @within function asset:artifact/1555.shift_change/give/1.trigger

# 神器の説明や消費MPなどをここで設定する。
# 最後にasset:artifact/common/giveを実行することで入手可能。

# 神器のID (int) スプレッドシートの値を入れる
data modify storage asset:artifact ID set value 1555
# 神器のベースアイテム
data modify storage asset:artifact Item set value "minecraft:carrot_on_a_stick"
# 神器の名前 (TextComponentString)
data modify storage asset:artifact Name set value '[{"text":"シフト","color":"#0E82E8","bold":true},{"text":"チェンジ","color":"#C9A410"}]'
data modify storage asset:artifact Lore set value ['{"text":"サーバー内のランダムな味方1名と位置を入れ替える","color":"white"}']
# 消費アイテム ({Item: TextComponent, Count: int, Extra?: TextComponent}) (オプション)
# data modify storage asset:artifact ConsumeItem.Item set value '{"translate":"item.minecraft.stick"}'
# data modify storage asset:artifact ConsumeItem.Count set value 1
# data modify storage asset:artifact ConsumeItem.Extra set value
# 使用回数 (int) (オプション)
data modify storage asset:artifact RemainingCount set value 5
# 神器を発動できるスロット (string) Wikiを参照
data modify storage asset:artifact Slot set value "mainhand"
# 神器のトリガー (string) Wikiを参照
data modify storage asset:artifact Trigger set value "onClick"
# 神器の発動条件 (TextComponentString) (オプション)
# data modify storage asset:artifact Condition set value
# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション)
# data modify storage asset:artifact AttackInfo.Damage set value [0,0]
# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション)
# data modify storage asset:artifact AttackInfo.AttackType set value [Physical,Magic]
# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション)
# data modify storage asset:artifact AttackInfo.ElementType set value [Fire,Water,Thunder,None]
# 攻撃に関する情報 -防御無視 (boolean) Wikiを参照 (オプション)
# data modify storage asset:artifact AttackInfo.BypassResist set value
# 攻撃に関する情報 -範囲攻撃 (string) Wikiを参照 (オプション)
# data modify storage asset:artifact AttackInfo.IsRangeAttack set value
# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション)
# data modify storage asset:artifact AttackInfo.AttackRange set value
# MP消費量 (int)
data modify storage asset:artifact MPCost set value 30
# MP必要量 (int) (オプション)
# data modify storage asset:artifact MPRequire set value
# MP回復量 (int)
# data modify storage asset:artifact MPHealWhenHit set value
# 神器のクールダウン (int) (オプション)
data modify storage asset:artifact LocalCooldown set value 200
# 種別クールダウン ({Type: string, Duration: int}) (オプション)
# data modify storage asset:artifact TypeCooldown.Type set value
# data modify storage asset:artifact TypeCooldown.Duration set value
# グローバルクールダウン (int) (オプション)
# data modify storage asset:artifact SpecialCooldown set value
# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション)
# data modify storage asset:artifact DisableCooldownMessage set value
# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション)
# data modify storage asset:artifact DisableMPMessage set value
# 破壊時の音を鳴らさないかどうか (boolean) (オプション)
# data modify storage asset:artifact DisableBreakSound set value
# 扱える神 (string[]) Wikiを参照
data modify storage asset:artifact CanUsedGod set value "ALL"
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
# data modify storage asset:artifact CustomNBT set value {}

# 神器の入手用function
function asset:artifact/common/give
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#> asset:artifact/1555.shift_change/register
#
# 神器プールへの登録処理
#
# @within tag/function asset:artifact/register

data modify storage asset:artifact RarityRegistry[2] append value [1555]
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#> asset:artifact/1555.shift_change/trigger/1.trigger
#
# 指定したイベントタイミングで実行されるfunction
#
# @within tag/function asset:artifact/**

# storage asset:idのmainhandに装備している神器のIDが入っているので比較し、~/2.check_condition.mcfunctionを実行する
execute if data storage asset:context id{mainhand:1555} run function asset:artifact/1555.shift_change/trigger/2.check_condition
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#> asset:artifact/1555.shift_change/trigger/2.check_condition
#
# 神器の発動条件をチェックします
#
# @within function asset:artifact/1555.shift_change/trigger/1.trigger

# 神器の基本的な条件の確認を行うfunction、成功している場合CanUsedタグが付く
function asset:artifact/common/check_condition/mainhand

# 他にアイテム等確認する場合はここに書く
# 自身がワープ可能か
execute if entity @s[tag=CanUsed] if entity @s[predicate=lib:is_ban_tp_area] run tellraw @s {"text":"不思議な力が転送を妨害した。","color":"dark_aqua"}
execute if entity @s[predicate=lib:is_ban_tp_area] run tag @s remove CanUsed
# そもそも他人がいるか
execute if entity @s[tag=CanUsed] unless entity @a[tag=!this] run return run tellraw @s [{"text": "おや?このサーバーにはあなたしかいないようですよ?","color": "gray"}]
execute unless entity @a[tag=!this] run tag @s remove CanUsed
# 入れ替え可能なプレイヤーがいるか
execute if entity @s[tag=CanUsed] unless entity @a[tag=!this,predicate=!lib:is_ban_tp_area] run return run tellraw @s [{"text": "皆さんは今立て込んだ状況のようです...時間をおいて再度お試しください","color": "gray"}]
execute unless entity @a[tag=!this,predicate=!lib:is_ban_tp_area] run tag @s remove CanUsed
# CanUsedタグをチェックして3.main.mcfunctionを実行する
execute if entity @s[tag=CanUsed] run function asset:artifact/1555.shift_change/trigger/3.main
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#> asset:artifact/1555.shift_change/trigger/3.main
#
# 神器のメイン処理部
#
# @within function asset:artifact/1555.shift_change/trigger/2.check_condition
#> private
# @private
#declare tag 177.Changed
#declare tag 177.ChangeMarker


# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う
function asset:artifact/common/use/mainhand

# ここから先は神器側の効果の処理を書く
# 念のためtagとmarkerを削除
tag @a remove 177.Changed
kill @e[type=marker,tag=177.ChangeMarker]

# 入れ替え対象を決定
tag @r[tag=!this,predicate=!lib:is_ban_tp_area] add 177.Changed

# 対象の場所にマーカー設置
execute at @a[tag=177.Changed,limit=1] run summon marker ~ ~ ~ {Tags:["177.ChangeMarker"]}

# マーカー自身の向きを、対象のプレイヤーの向きと同期する
execute as @e[type=marker,tag=177.ChangeMarker,limit=1] at @s rotated as @a[tag=177.Changed,limit=1] run tp @s ~ ~ ~ ~ ~

# 対象を自身の場所・向きへtp
tp @a[tag=177.Changed,limit=1] ~ ~ ~ ~ ~

# 自分をマーカー(対象が元いた場所・向き)にテレポートさせる
execute at @e[type=marker,tag=177.ChangeMarker,limit=1] rotated as @e[type=marker,tag=177.ChangeMarker,limit=1] run tp @s ~ ~ ~ ~ ~

# 1. 自分の場所でパーティクルと音を鳴らす
particle minecraft:reverse_portal ~ ~1 ~ 0.5 1 0.5 0.05 40 normal @a
playsound minecraft:item.chorus_fruit.teleport player @a ~ ~ ~ 1.0 1.0 0

# 2. 対象の場所でパーティクルと音を鳴らす
execute at @a[tag=177.Changed,limit=1] run particle minecraft:reverse_portal ~ ~1 ~ 0.5 1 0.5 0.05 40 normal @a
execute at @a[tag=177.Changed,limit=1] run playsound minecraft:item.chorus_fruit.teleport player @a ~ ~ ~ 1.0 1.0 0

# マーカーを削除する
kill @e[type=marker,tag=177.ChangeMarker]

# 味方のターゲットタグを外してリセットする
tag @a remove 177.Changed
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"values": [
"asset:artifact/1555.shift_change/trigger/1.trigger",
"asset:artifact/1332.bebebeam/trigger/1.trigger",
"asset:artifact/1306.will_o_wisp/trigger/1.trigger",
"asset:artifact/1144.cradle_of_azure_moon/trigger/1.trigger",
Expand Down Expand Up @@ -177,4 +178,4 @@
"asset:artifact/2001.staff_of_the_willless/trigger/1.trigger",
"asset:artifact/0019.scripture/trigger/1.trigger"
]
}
}
1 change: 1 addition & 0 deletions Asset/data/asset/tags/functions/artifact/give.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"values": [
"asset:artifact/1555.shift_change/give/1.trigger",
"asset:artifact/1534.drop_in_the_bucket/give/1.trigger",
"asset:artifact/1366.shaved_ice_melon/give/1.trigger",
"asset:artifact/1365.shaved_ice_blue_hawaii/give/1.trigger",
Expand Down
1 change: 1 addition & 0 deletions Asset/data/asset/tags/functions/artifact/register.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"values": [
"asset:artifact/1555.shift_change/register",
"asset:artifact/1534.drop_in_the_bucket/register",
"asset:artifact/1365.shaved_ice_blue_hawaii/register",
"asset:artifact/1366.shaved_ice_melon/register",
Expand Down
Loading