Minecraft-Java-Edition

我怎樣才能讓激流與引導和忠誠相結合?

  • March 25, 2021

標題包含它的核心。我想像它的工作方式是:

  • 當不在水/雨中時,激流不會阻止你投擲三叉戟,而是沒有效果。
  • 激流在實際使用時會抵消引導的效果(以及忠誠度,因為激流幾乎可以做到這一點)。因此,在水/雨中,僅應用激流效果。否則,將應用引導和忠誠度。

在此期間,其他幾個附魔更新檔(例如節肢動物的懲戒和禍害與較低級別的銳利兼容和應用,和/或保護附魔的類似方法)將不勝感激,激流/引導/忠誠是不過對我來說最優先的業務。

無論是通過命令還是通過模組,如果必須,我會滿足於任何方式。不過,我不喜歡發明輪子。

我開發了一個數據包,可以將激流、引導和忠誠組合在一起。Anvils 可以與激流結合使用,但前提是您沒有下雨並且先應用激流;不過,附魔表不會將它們一起應用。

數據包可在此處下載。

使用的概念

  • 我使用Bruno Rodrigues 的答案中的命令來檢測天氣。如果你查看函式文件,命令將在 (0, 255, 0) 處召喚一個盔甲架並使用它檢查天氣。
summon armor_stand ~ ~ ~ {Invulnerable:1b,Invisible:1b,Fire:32766s,CustomName:'"rain"'}
execute as @e[limit=1,name=rain,nbt={Fire:0s}] at @s run scoreboard players set $rain trident_inRain 3
execute as @e[limit=1,name=rain,nbt={Fire:0s}] at @s run data modify entity @s Fire set value 30000
execute as @e[name=rain] if score $rain trident_inRain matches 1.. run scoreboard players remove $rain trident_inRain 1
  • 我使用Bruno Rodrigues的另一個答案來檢查玩家是否暴露在雨中。這項技術涉及檢查您上方的所有方塊是否都是空氣。我設置命令在 (0, 0) 列切一個洞,然後測試玩家:
fill 0 2 0 0 255 0 minecraft:air
execute as @a at @s if blocks ~ ~1 ~ ~ 255 ~ 0 2 0 all run ...
  • 我使用了一種技術,通過物品的傳說來顯示物品上的假數據CanPlaceOn/數據,並將其修改為顯示假附魔。CanDestroy當使用者不在雨中時,激流附魔會從附魔列表中移除,並通過傳說添加一個假激流附魔。
  • 我使用玩家庫存修改來修改玩家庫存數據。這涉及一個特殊的戰利品表,可在此處下載。
loot replace entity @p hotbar.0 1 mine 0 0 0 stick{drop_contents:1b}

如果您在使用此數據包時遇到任何問題,請在 GitHub 上創建問題,而不是在下面發表評論!

引用自:https://gaming.stackexchange.com/questions/379903