Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
64555b9
ミニエルダーガーディアン大体完成
Lapis-LJA Jun 3, 2026
74faae6
[Effect 11, 61] 水耐性低下デバフを作成
Lapis-LJA Jun 3, 2026
49c069b
移動しない問題を修正
Lapis-LJA Jun 3, 2026
6eb92da
Blessless以上の難易度で水耐性低下デバフを付与するように
Lapis-LJA Jun 3, 2026
28091ec
デバフの効果時間と付与間隔を延長
Lapis-LJA Jun 3, 2026
ebd74de
[Mob 323] ミニエルダーガーディアンLv3を継承可能に
Lapis-LJA Jun 3, 2026
edee260
[Mob 324] ミニエルダーガーディアンを作成
Lapis-LJA Jun 3, 2026
83ed5d6
そもそも攻撃中ならsuper.tickをしないように
Lapis-LJA Jun 3, 2026
f4c3e17
AttackMode -> IsAttackMode
Lapis-LJA Jun 3, 2026
02f6500
registerにコメントを追記
Lapis-LJA Jun 3, 2026
c8b72c9
名前に色を設定
Lapis-LJA Jun 3, 2026
c99ddde
特定条件下でエラーが出る問題を修正
Lapis-LJA Jun 3, 2026
2757107
デバフの効果時間を調整
Lapis-LJA Jun 3, 2026
0853a0e
補正が正常に消えない問題を修正
Lapis-LJA Jun 3, 2026
54b91da
正常にプレイヤーの目を狙うように
Lapis-LJA Jun 3, 2026
265c323
追尾処理を修正
Lapis-LJA Jun 4, 2026
cee334a
不要コメントを削除
Lapis-LJA Jun 6, 2026
a5267cd
Merge branch 'master' into dev/lapis_mob323
Lapis-LJA Jun 19, 2026
936dbed
付与条件を採掘速度Lv2が10秒以下に変更
Lapis-LJA Sep 3, 2026
e17d56b
デバフをregisterで定義できるように
Lapis-LJA Sep 3, 2026
ea3eec0
毎tickのけぞりをしないように
Lapis-LJA Oct 28, 2026
db5f2a2
コメントミスを修正
Lapis-LJA Oct 28, 2026
04c6056
particleの座標を修正
Lapis-LJA Oct 28, 2026
ab57afa
計算を1度しか行わないように
Lapis-LJA Oct 28, 2026
bdbb1cc
Merge branch 'master' into dev/lapis_mob323
Lapis-LJA Oct 28, 2026
38a3eb4
:bug: 呪いの計算をEffectごとに一度にまとめ全員へ付与
Lapis-LJA Oct 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#> asset:effect/0011.defense_water_debuff/_/end
#
# Effectの効果の終了時に実行されるfunction
#
# @within tag/function asset:effect/end

execute if data storage asset:context {id:11} run function asset:effect/0011.defense_water_debuff/end/
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#> asset:effect/0011.defense_water_debuff/_/given
#
# Effectが付与された時に実行されるfunction
#
# @within tag/function asset:effect/given

execute if data storage asset:context {id:11} run function asset:effect/0011.defense_water_debuff/given/
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#> asset:effect/0011.defense_water_debuff/_/re-given
#
# Effectが上書きされた時に実行されるfunction
#
# @within tag/function asset:effect/re-given

execute if data storage asset:context {id:11} run function asset:effect/0011.defense_water_debuff/re-given/
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#> asset:effect/0011.defense_water_debuff/_/register
#
#
#
# @within tag/function asset:effect/register

execute if data storage asset:context {id:11} run function asset:effect/0011.defense_water_debuff/register
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#> asset:effect/0011.defense_water_debuff/_/remove
#
# Effectが神器や牛乳によって削除された時に実行されるfunction
#
# @within tag/function asset:effect/remove

execute if data storage asset:context {id:11} run function asset:effect/0011.defense_water_debuff/remove/
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#> asset:effect/0011.defense_water_debuff/end/
#
# Effectの効果が切れた時の処理
#
# @within function asset:effect/0011.defense_water_debuff/_/end

# 削除
function asset:effect/0011.defense_water_debuff/modifier/remove
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#> asset:effect/0011.defense_water_debuff/given/
#
# Effectが付与された時の処理
#
# @within function asset:effect/0011.defense_water_debuff/_/given

# 付与
function asset:effect/0011.defense_water_debuff/modifier/add
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#> asset:effect/0011.defense_water_debuff/modifier/add
#
#
#
# @within function
# asset:effect/0011.defense_water_debuff/given/
# asset:effect/0011.defense_water_debuff/re-given/

# 補正を付与する
data modify storage api: Argument.UUID set value [I;1,3,-1,0]
data modify storage api: Argument.UUID[2] set from storage asset:context originID
execute store result storage api: Argument.Amount double -0.10 run data get storage asset:context Stack 1
data modify storage api: Argument.Operation set value "multiply"
function api:modifier/defense/water/add
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#> asset:effect/0011.defense_water_debuff/modifier/remove
#
#
#
# @within function
# asset:effect/0011.defense_water_debuff/end/
# asset:effect/0011.defense_water_debuff/re-given/
# asset:effect/0011.defense_water_debuff/remove/

# 補正を削除する
data modify storage api: Argument.UUID set value [I;1,3,-1,0]
data modify storage api: Argument.UUID[2] set from storage asset:context originID
function api:modifier/defense/water/remove
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#> asset:effect/0011.defense_water_debuff/re-given/
#
# Effectが上書きされた時の処理
#
# @within function asset:effect/0011.defense_water_debuff/_/re-given

# 削除
function asset:effect/0011.defense_water_debuff/modifier/remove
# 付与
function asset:effect/0011.defense_water_debuff/modifier/add
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#> asset:effect/0011.defense_water_debuff/register
#
# Effectのデータを指定
#
# @within function asset:effect/0011.defense_water_debuff/_/register

# ExtendsSafe (boolean) (default = false)
data modify storage asset:effect ExtendsSafe set value true
# ID (int)
data modify storage asset:effect ID set value 11
# 名前 (TextComponentString)
data modify storage asset:effect Name set value '{"text":"水属性被ダメージ上昇"}'
# 説明文 (TextComponentString[])
data modify storage asset:effect Description set value ['{"text":"水属性被ダメージが上昇する"}']
# 効果時間 (int) (default = API || error)
# data modify storage asset:effect Duration set value
# スタック (int) (default = API || 1)
# data modify storage asset:effect Stack set value
# 効果時間の操作方法 (default = API || "replace")
# data modify storage asset:effect DurationOperation set value
# スタックの操作方法 (default = API || "replace")
# data modify storage asset:effect StackOperation set value
# 最大効果時間 (int) (default = 2147483647)
# data modify storage asset:effect MaxDuration set value
# 最大スタック (int) (default = 2147483647)
data modify storage asset:effect MaxStack set value 100
# 悪い効果か否か (boolean)
data modify storage asset:effect IsBadEffect set value true
# 死亡時のエフェクトの処理 (default = "remove")
# data modify storage asset:effect ProcessOnDied set value
# 消すのに必要なレベル (int) (default = 1)
data modify storage asset:effect RequireClearLv set value 1
# エフェクトをUIに表示するか (boolean) (default = true)
# data modify storage asset:effect Visible set value
# エフェクトのスタックををUIに表示するか (boolean) (default = true)
# data modify storage asset:effect StackVisible set value

# フィールド
# data modify storage asset:effect Field set value {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#> asset:effect/0011.defense_water_debuff/remove/
#
# Effectが削除された時の処理
#
# @within function asset:effect/0011.defense_water_debuff/_/remove

# 削除
function asset:effect/0011.defense_water_debuff/modifier/remove
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#> asset:effect/0061.defense_water_debuff/_/register
#
#
#
# @within tag/function asset:effect/register

execute if data storage asset:context {id:61} run function asset:effect/0061.defense_water_debuff/register
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#> asset:effect/0061.defense_water_debuff/register
#
# Effectのデータを指定
#
# @within function asset:effect/0061.defense_water_debuff/_/register

# 継承 (int)
data modify storage asset:effect Extends append value 11
function asset:effect/extends
# ID (int)
data modify storage asset:effect ID set value 61
# 消すのに必要なレベル (int) (default = 1)
data modify storage asset:effect RequireClearLv set value 2
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#> asset:mob/0323.mini_elder_guardian/_index.d
# @private

#> tag
# @within function asset:mob/0323.mini_elder_guardian/tick/event/curse/**
#declare tag DebuffTarget
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#> asset:mob/0323.mini_elder_guardian/death/
#
# Mobの死亡時の処理
#
# @within function asset:mob/alias/323/death

# サウンド
playsound minecraft:entity.elder_guardian.death hostile @a ~ ~ ~ 1.5 1.4
playsound minecraft:entity.elder_guardian.death_land hostile @a ~ ~ ~ 1.5 1
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#> asset:mob/0323.mini_elder_guardian/hurt/
#
# Mobのダメージ時の処理
#
# @within function asset:mob/alias/323/hurt

# サウンド
playsound minecraft:entity.elder_guardian.hurt hostile @a ~ ~ ~ 2 1.4

# HurtTime
data modify storage asset:context this.HurtTime set value 20
data modify entity @s NoAI set value 0b
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
#> asset:mob/0323.mini_elder_guardian/register
#
# Mobのデータを指定
#
# @within function asset:mob/alias/323/register

# 継承(オプション)
data modify storage asset:mob Extends append value 2003
function asset:mob/extends
# 他のモブに継承されることを許可するか (boolean) (オプション)
data modify storage asset:mob ExtendsSafe set value true
# 継承されることを前提とした、抽象的なモブであるかどうか(boolean)
data modify storage asset:mob IsAbstract set value false
# ID (int)
data modify storage asset:mob ID set value 323
# Type (string) Wikiを参照
data modify storage asset:mob Type set value "Enemy"
# 干渉可能か否か (boolean)
data modify storage asset:mob Interferable set value true
# 名前 (TextComponentString) (オプション)
data modify storage asset:mob Name set value '{"text":"ミニエルダーガーディアン","color":"#5e69d9"}'
# Mobの説明文 (TextComponentString[]) (オプション)
data modify storage asset:mob Lore set value ['{"text":"ちっさいエルダーガーディアン。","color":"white"}','{"text":"小さくても火力は高いし、しっかり呪う能力も健在である。","color":"white"}']
# 武器
# メインハンド (Compound(Item)) (オプション)
# data modify storage asset:mob Weapon.Mainhand set value
# オフハンド (Compound(Item)) (オプション)
# data modify storage asset:mob Weapon.Offhand set value
# 武器ドロップ率 ([float, float]) (オプション)
# data modify storage asset:mob WeaponDropChances set value
# 防具
# 頭 (Compound(Item)) (オプション)
data modify storage asset:mob Armor.Head set value {id:"minecraft:stick",Count:1b,tag:{CustomModelData:20619}}
# 胴 (Compound(Item)) (オプション)
# data modify storage asset:mob Armor.Chest set value
# 脚 (Compound(Item)) (オプション)
# data modify storage asset:mob Armor.Legs set value
# 足 (Compound(Item)) (オプション)
# data modify storage asset:mob Armor.Feet set value
# 防具ドロップ率 ([float, float]) (オプション)
# data modify storage asset:mob ArmorDropChances set value
# 体力 (double) (オプション)
data modify storage asset:mob Health set value 1500
# 攻撃力 (double) (オプション)
# data modify storage asset:mob AttackDamage set value
# 防御力 (double) (オプション) // 被ダメージがある程度大きい場合1ptにつき0.8%カット、小さい場合1ptにつき約4%カット 20pt以上は頭打ち
# data modify storage asset:mob Defense set value
# 特殊防御力 (double) (オプション) // 4pointにつきダメージを大きく減らす
# data modify storage asset:mob SpecialDefense set value
# 移動速度 (double) (オプション)
data modify storage asset:mob Speed set value 0.08
# 索敵範囲 (double) (オプション)
# data modify storage asset:mob FollowRange set value
# ノックバック耐性 (double) (オプション)
# data modify storage asset:mob KnockBackResist set value
# 属性倍率 // 1.0fで100% 最低でも25%は軽減されずに入る
# 物理倍率 (float) (オプション)
# data modify storage asset:mob Resist.Physical set value
# 魔法倍率 (float) (オプション)
# data modify storage asset:mob Resist.Magic set value
# 火倍率 (float) (オプション)
# data modify storage asset:mob Resist.Fire set value
# 水倍率 (float) (オプション)
data modify storage asset:mob Resist.Water set value 0.7
# 雷倍率 (float) (オプション)
data modify storage asset:mob Resist.Thunder set value 1.4
# フィールド

# ダメージ
data modify storage asset:mob Field.Damage set value 5.5f
# 呪い(採掘速度低下)クールダウン
# 召喚されてからNtick後にデバフを付与したいため、初期値は0とはしない
data modify storage asset:mob Field.CurseCooldown._ set value 160
data modify storage asset:mob Field.CurseCooldown.Max set value 800
# 旋回力
data modify storage asset:mob Field.Rotate set value 3000
# 疑似HurtTime
data modify storage asset:mob Field.HurtTime set value -1
# 攻撃モード
data modify storage asset:mob Field.IsAttackMode set value false

# 採掘速度低下
# スタック
# 基礎値
data modify storage asset:mob Field.Debuff.A.Stack.Base set value 3
# 難易度比例部分
data modify storage asset:mob Field.Debuff.A.Stack.Difficulty set value 0
# 効果時間
# 基礎値
data modify storage asset:mob Field.Debuff.A.Duration.Base set value 0
# 難易度比例部分
data modify storage asset:mob Field.Debuff.A.Duration.Difficulty set value 200

# 水耐性低下
# スタック
# 基礎値
data modify storage asset:mob Field.Debuff.B.Stack.Base set value -2
# 難易度比例部分
data modify storage asset:mob Field.Debuff.B.Stack.Difficulty set value 1
# 効果時間
# 基礎値
data modify storage asset:mob Field.Debuff.B.Duration.Base set value 0
# 難易度比例部分
data modify storage asset:mob Field.Debuff.B.Duration.Difficulty set value 200
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#> asset:mob/0323.mini_elder_guardian/summon/
#
# Object召喚処理の呼び出し時に実行されるfunction
#
# @within asset:mob/alias/323/summon

# 元となるEntityを召喚する
summon zombie ~ ~ ~ {Silent:1b,IsBaby:0b,NoAI:1b,Tags:["MobInit","ProcessCommonTag","AlwaysInvisible","AlwaysSlowFall"],DeathLootTable:"minecraft:entities/elder_guardian"}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#> asset:mob/0323.mini_elder_guardian/tick/
#
# Mobのtick時の処理
#
# @within asset:mob/alias/323/tick

# 疑似HurtTimeによるのけぞり管理
execute unless data storage asset:context this{HurtTime:-1} store result storage asset:context this.HurtTime int 0.9999999999 run data get storage asset:context this.HurtTime
execute if data storage asset:context this{HurtTime:0} run data modify entity @s NoAI set value 1b
execute if data storage asset:context this{HurtTime:0} run data modify storage asset:context this.HurtTime set value -1

# 呪い(採掘速度低下)
execute store result storage asset:context this.CurseCooldown._ int 0.9999999999 run data get storage asset:context this.CurseCooldown._
execute if data storage asset:context this.CurseCooldown{_:0} run function asset:mob/0323.mini_elder_guardian/tick/event/curse/
execute if data storage asset:context this.CurseCooldown{_:0} run data modify storage asset:context this.CurseCooldown._ set from storage asset:context this.CurseCooldown.Max

# 付近にプレイヤーがいたら攻撃待機
execute if entity @p[gamemode=!spectator,distance=..8] run data modify storage asset:context this.IsAttackMode set value true

# 攻撃モード
execute if data storage asset:context this{IsAttackMode:true} run function asset:mob/0323.mini_elder_guardian/tick/event/attack/

# 遠くに離れたら攻撃モード終了
execute if data storage asset:context this{IsAttackMode:true} unless entity @p[gamemode=!spectator,distance=..15] run function asset:mob/0323.mini_elder_guardian/tick/event/attack/reset

# 攻撃中でない && HurtTime中ではない、ならsuper.tick
execute if data storage asset:context this{IsAttackMode:false,HurtTime:-1} run function asset:mob/super.tick
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#> asset:mob/0323.mini_elder_guardian/tick/event/attack/
#
#
#
# @within function asset:mob/0323.mini_elder_guardian/tick/

# Tick加算
scoreboard players add @s General.Mob.Tick 1

# プレイヤーのターゲティング
execute if score @s General.Mob.Tick matches 0..39 anchored eyes facing entity @p[gamemode=!spectator,distance=..64] eyes positioned ^ ^ ^-100 rotated as @s positioned ^ ^ ^-500 facing entity @s eyes positioned as @s anchored feet positioned ^ ^ ^ run tp @s ^ ^ ^ ~ ~
execute if score @s General.Mob.Tick matches 40.. anchored eyes facing entity @p[gamemode=!spectator,distance=..64] eyes positioned ^ ^ ^-100 rotated as @s positioned ^ ^ ^-1500 facing entity @s eyes positioned as @s anchored feet positioned ^ ^ ^ run tp @s ^ ^ ^ ~ ~

# 照射開始動作
execute if score @s General.Mob.Tick matches 40 anchored eyes positioned ^ ^ ^1 positioned ~ ~-0.1 ~ run function asset:mob/0323.mini_elder_guardian/tick/event/attack/start

# レーザー照射
execute if score @s General.Mob.Tick matches 40..159 anchored eyes positioned ^ ^ ^ run function asset:mob/0323.mini_elder_guardian/tick/event/attack/laser/

# 攻撃終了後、ちょっと泳ぐ
execute if score @s General.Mob.Tick matches 160..240 run function asset:mob/call.m {method:"get_speed"}
execute at @s if score @s General.Mob.Tick matches 160..240 run function asset:mob/call.m {method:"rotate"}
execute at @s if score @s General.Mob.Tick matches 160..240 run function asset:mob/call.m {method:"move"}

# 攻撃動作終了
execute if score @s General.Mob.Tick matches 240.. run function asset:mob/0323.mini_elder_guardian/tick/event/attack/reset
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#> asset:mob/0323.mini_elder_guardian/tick/event/attack/laser/
#
#
#
# @within function asset:mob/0323.mini_elder_guardian/tick/event/attack/

# 予告の黄色レーザー
execute if score @s General.Mob.Tick matches 40..100 run function asset:mob/0323.mini_elder_guardian/tick/event/attack/laser/yellow

# 判定発生開始サウンド
execute if score @s General.Mob.Tick matches 100 run playsound minecraft:entity.guardian.attack hostile @a ~ ~ ~ 2

# 攻撃の緑レーザー
execute if score @s General.Mob.Tick matches 100..160 run function asset:mob/0323.mini_elder_guardian/tick/event/attack/laser/green

# レーザーの音
execute if score @s General.Mob.Tick matches 100..160 run function asset:mob/0323.mini_elder_guardian/tick/event/attack/laser/sound
Loading
Loading