Свой сервер
Предмет со способностью: посох по правому клику
Огненный шар, молния, телепорт, взрыв, прыжок или эффект — по правому клику, с перезарядкой. Выберите способность, вид и имя предмета — и скачайте датапак для Minecraft 1.21.9 — 26.3. Без модов и плагинов.
Способность
Шар гаста летит, куда вы смотрите, и взрывается.
Сила взрыва
1 — как у шара гаста, 4 — как у динамита.
Перезарядка
Как выглядит
Цвет имени
Предмет
Датапак · 1.21.9 — 26.3Огненный шар
Правый клик — огненный шар, перезарядка 3 с
Выдать себе — командой или функцией /function wand_fireball:give
/give @s minecraft:carrot_on_a_stick[minecraft:custom_data={wand:"fireball"},minecraft:item_model="minecraft:blaze_rod",minecraft:item_name={"text":"Огненный шар","color":"gold","italic":false},minecraft:unbreakable={},minecraft:enchantment_glint_override=true]Что внутри архива — 10 файлов
data/minecraft/tags/function/load.json
Тег load: игра зовёт эти функции при загрузке мира и после /reload.
{
"values": [
"wand_fireball:load"
]
}
data/minecraft/tags/function/tick.json
Тег tick: эти функции идут каждый тик — 20 раз в секунду.
{
"values": [
"wand_fireball:tick"
]
}
data/wand_fireball/function/load.mcfunction
При загрузке мира: счёт кликов удочкой и счёт перезарядки.
scoreboard objectives add wand_fireball dummy
scoreboard objectives add wand_fireball_used minecraft.used:minecraft.carrot_on_a_stick
scoreboard objectives add wand_fireball_cd dummy
data/wand_fireball/function/tick.mcfunction
Каждый тик: перезарядка тает, клик — к способности.
scoreboard players remove @a[scores={wand_fireball_cd=1..}] wand_fireball_cd 1
execute as @a[scores={wand_fireball_used=1..}] at @s run function wand_fireball:use
data/wand_fireball/function/use.mcfunction
Клик удочкой: наш ли это предмет, прошла ли перезарядка.
scoreboard players set @s wand_fireball_used 0
execute unless items entity @s weapon.mainhand minecraft:carrot_on_a_stick[minecraft:custom_data~{wand:"fireball"}] unless items entity @s weapon.offhand minecraft:carrot_on_a_stick[minecraft:custom_data~{wand:"fireball"}] run return 0
execute if score @s wand_fireball_cd matches 1.. run return run title @s actionbar {"text":"Перезарядка…","color":"gray"}
scoreboard players set @s wand_fireball_cd 60
playsound minecraft:entity.blaze.shoot player @a ~ ~ ~
function wand_fireball:cast
data/wand_fireball/function/cast.mcfunction
Способность: огненный шар.
function wand_fireball:aim
execute anchored eyes positioned ^ ^ ^1.5 summon minecraft:fireball run function wand_fireball:launch
data/wand_fireball/function/aim.mcfunction
Взгляд игрока — разница двух точек у глаз, в тысячных блока.
execute anchored eyes positioned ^ ^ ^ summon minecraft:marker run function wand_fireball:mark {n:0}
execute anchored eyes positioned ^ ^ ^1 summon minecraft:marker run function wand_fireball:mark {n:1}
scoreboard players operation #dx wand_fireball = #x1 wand_fireball
scoreboard players operation #dy wand_fireball = #y1 wand_fireball
scoreboard players operation #dz wand_fireball = #z1 wand_fireball
scoreboard players operation #dx wand_fireball -= #x0 wand_fireball
scoreboard players operation #dy wand_fireball -= #y0 wand_fireball
scoreboard players operation #dz wand_fireball -= #z0 wand_fireball
data/wand_fireball/function/mark.mcfunction
Макрос: координаты маркера — в счёт, маркер убрать.
$execute store result score #x$(n) wand_fireball run data get entity @s Pos[0] 1000
$execute store result score #y$(n) wand_fireball run data get entity @s Pos[1] 1000
$execute store result score #z$(n) wand_fireball run data get entity @s Pos[2] 1000
kill @s
data/wand_fireball/function/launch.mcfunction
Снаряд летит по взгляду.
execute store result entity @s Motion[0] double 0.001 run scoreboard players get #dx wand_fireball
execute store result entity @s Motion[1] double 0.001 run scoreboard players get #dy wand_fireball
execute store result entity @s Motion[2] double 0.001 run scoreboard players get #dz wand_fireball
data merge entity @s {ExplosionPower:1b,acceleration_power:0.1d}
data/wand_fireball/function/give.mcfunction
/function wand_fireball:give — выдать себе предмет.
give @s minecraft:carrot_on_a_stick[minecraft:custom_data={wand:"fireball"},minecraft:item_model="minecraft:blaze_rod",minecraft:item_name={"text":"Огненный шар","color":"gold","italic":false},minecraft:unbreakable={},minecraft:enchantment_glint_override=true]
Как применить
- Скачайте датапак
Распаковывать не нужно: игра читает его прямо из zip.
- Положите в мир
В одиночной игре — saves/<мир>/datapacks, на сервере — world/datapacks. Потом /reload.
- Возьмите предмет
Командой /give из результата или /function wand_fireball:give — нужны читы или права оператора.
- Кликайте
Правой кнопкой в любую сторону — в воздух тоже. Предмет может лежать и во второй руке.
Что нужно знать
- Внутри — удочка с морковкой. Только её правый клик игра считает в воздух, без блока и моба: по этому счёту пак и узнаёт клик. Вид — любой предмет игры, компонент item_model.
- Посохи не мешают друг другу. У каждой способности своё пространство имён (wand_fireball): соберите огненный посох и посох молний — оба пака встанут рядом.
- Луч — до 64 блоков. Молния, телепорт и взрыв бьют в первый блок или моба на линии взгляда.
- Взрыв ломает блоки, если правило mob_griefing включено. Для спавна и чужих построек выключите его или берите силу 1.
Предмет с атрибутами без датапака — генератор атрибутов, своё зачарование — датапак зачарования.
Частые вопросы
Как сделать посох с огненным шаром в Майнкрафте?
Выберите «Огненный шар», вид и имя, скачайте датапак и положите в папку datapacks мира. Предмет выдаёт /give из результата — правый клик пускает шар.
Как сделать предмет с правым кликом без модов?
Датапаком: внутри — удочка с морковкой в облике любого предмета. Её клик игра считает статистикой, и пак по нему запускает способность.
Можно ли поставить несколько посохов сразу?
Да: у каждой способности своё пространство имён, и паки огненного шара, молнии и телепорта работают в одном мире рядом.
