Код (Ванилла скрипт)

sk9zist :l

Исправился
981
18
157
Как можно понять данный код? Ну не код, а скрипт (ванильный, обычный майнкрафтовский)
И вот, как можно узнать что здесь делаеться и как. Код естественно не мой.
Java:
execute as @a[scores={Freeze=1..5}] at @s run execute as @e[type=!arrow,type=!armor_stand,tag=!ACheck] at @s run data merge entity @s {NoGravity:0b,NoAI:0b}
execute as @a[scores={Freeze=5..}] at @s run execute as @e[type=!arrow,type=!armor_stand,tag=!ACheck] at @s run data merge entity @s {NoGravity:1b,NoAI:1b,Motion:[0f,0f,0f]}

execute as @a[scores={Freeze=1..}] at @s run execute as @e at @s run tag @e[type=arrow] add StopArrow


scoreboard objectives add Starrow dummy
scoreboard players add @e[tag=StopArrow] Starrow 1
execute as @e[scores={Starrow=1}] at @s run summon item ~ ~ ~ {PickupDelay:9999,Tags:["ACheck"],NoGravity:1b,Item:{id:"minecraft:stick",Count:1b,tag:{CustomModelData:1,Motion:[0f,0f,0f]}}}
execute as @e[scores={Starrow=1}] at @s run data modify entity @e[tag=ACheck,limit=1,distance=0..2] Item.tag.Rotation set from entity @s Rotation
execute as @e[scores={Starrow=1}] at @s run data modify entity @e[tag=ACheck,limit=1,distance=0..2] Item.tag.Motion set from entity @s Motion
execute as @e[scores={Starrow=1..5}] at @s run data merge entity @s {Motion:[0f,0f,0f],NoGravity:1b}


#execute as @e[scores={Starrow=1}] at @s run data modify storage 1 Motion set from entity @s Motion
#execute as @e[scores={Starrow=5}] at @s run data merge entity @s {Motion:[0f,0f,0f],NoGravity:1b}


execute as @a[scores={Freeze=1}] at @s run execute as @e[type=arrow] at @s run data merge entity @s {NoGravity:0b}
execute as @a[scores={Freeze=1..}] at @s run execute as @e[type=arrow] at @s run data modify entity @s Rotation set from entity @e[tag=ACheck,limit=1,distance=0..2] Item.tag.Rotation
execute as @a[scores={Freeze=1}] at @s run execute as @e[type=arrow] at @s run data modify entity @s Motion set from entity @e[tag=ACheck,limit=1,distance=0..2] Item.tag.Motion
execute as @a[scores={Freeze=0}] at @s run kill @e[type=item,tag=ACheck]
#execute as @a[scores={Freeze=1..5}] at @s run execute as @e[type=arrow] at @s run data modify entity @s Motion set from storage 1 Motion
#execute as @a[scores={Freeze=1..5}] at @s run execute as @e[type=arrow] at @s run data merge entity @s {NoGravity:0b}
 

ReyMagos

Тег-бомбастер
412
7
121
Ну прочитай статьи по датапакам. И про новые команды в 1.14. Там всё очень хорошо расписано.
 
17
1
Фига тут глэкокод. Как датапакер, могу сказать:

1) Никогда не писать 2 execute в 1 команде, это вершина глэкства

2)Все команды с однотипными селекторами вынести в другую функцию и вызывать от этого селектора один раз
(типо есть код
execute as @a[tag=a] run say pig
execute as @a[tag=a] run say pig1
execute as @a[tag=a] run say pig2
execute as @a[tag=a] run say pig3


можно вынести все команды say в функцию
say pig
say pig1
say pig2
say pig3


и вызвать

execute as @a[tag=a] run function <функция>

так маин не будет лишний раз проходиться по списку сущностей и выбирать нужную, а сделает это 1 раз.

3) Не использовать data merge(есть конечно случаи, когда можно, но они очень редки), лучше data modify

4) Не добавлять создание скорбордов в тик, их надо добавлять в лоад

А вообще тут идет подобие заморозки(выполнена кстати тоже глэкско, могу переделать на нормальный код если надо).



Вообще если прям не шаришь, но хочешь начать, то можешь посмотреть ZeroCaty, он снимал понятные гайды по этому всему, причем на русском языке. Там же у него можешь найти дискорд сервер, где есть каналы с помощью по датапакам/ресурспакам. Там же впринципе можешь и меня найти.
(Если что это не реклама)
 

sk9zist :l

Исправился
981
18
157
Сверху