Перейти к содержанию

Вопрос-ответ по командам Minecraft


Рекомендуемые сообщения

В теме 76 сообщений

15 часов назад, Кио сказал:

А каким образом это реализовать с точными координатами? С data storage не работал, поэтому был бы благодарен готовой команде  или хотя бы её шаблону.

# Запись данных
# Из нужного игрока берём по очереди корды x,y,z и сохраняем во временную "переменную"
execute as Player store result storage minecraft:test tmp.x double 1 run data get entity @s Pos[0]
execute as Player store result storage minecraft:test tmp.y double 1 run data get entity @s Pos[1]
execute as Player store result storage minecraft:test tmp.z double 1 run data get entity @s Pos[2]
# Из временного хранилища в конец записываем словарь с тремя элементами: x,y,z
# Получится что-то вроде такого массива [{x:1.24d,y:123.45d,z:235.43d},{x:2.24d,y:124.47d,z:235.43d},{x:8.24d,y:43.45d,z:235.43d},{x:39.24d,y:13.45d,z:25.43d}]
# За секунду туда добавляется 20 значений.
data modify storage minecraft:test frames append from storage minecraft:test tmp
 
# Второй вариант (Чуть сложнее, но возможно легче по нагрузке)
# Очищаем tmp
data modify storage minecraft:test tmp set value []
# Из нужного игрока берём по очереди корды x,y,z и теперь сохраняем как массив, а не словарь значений
execute as Player run data modify storage minecraft:test tmp append from entity @s Pos[0]
execute as Player run data modify storage minecraft:test tmp append from entity @s Pos[1]
execute as Player run data modify storage minecraft:test tmp append from entity @s Pos[2]
# Теперь такой же массив как в первом, будет выглядеть как массив из массивов [[1.24d,123.45d,235.43d],[2.24d,124.47d,235.43d],[8.24d,43.45d,235.43d],[39.24d,13.45d,25.43d]]
data modify storage minecraft:test frames append from storage minecraft:test tmp
 
# Чтение данных 
# Теперь чтобы прочитать этот массив нужно использовать в цикле итерацию (перечисление) через массив.
# Вместо Bot я так понял будет селектор сущности (Зомби или стойка брони)
# Тут я беру корды, записанные в хранилище, и вставляю их в сущность
# (Этот вариант чтения подходит для второго варианта записи)
# Для первого просто нужно заменить frames[0][0] на frames[0].x , frames[0][1] на frames[0].y,  frames[0][2] на frames[0].z  
execute as Bot run data modify entity @s Pos[0set from storage minecraft:test frames[0][0]
execute as Bot run data modify entity @s Pos[0set from storage minecraft:test frames[0][1]
execute as Bot run data modify entity @s Pos[0set from storage minecraft:test frames[0][2]
# Из массива "кадров анимации" я беру первый массив и добавляю его в конец
data modify storage minecraft:test frames append from storage minecraft:test frames[0]
# Потом так как у нас теперь два одинаковых массива, первый я удаляю
data remove storage minecraft:test frames[0]
 
# Небольшое дополнение
# Пока дописывал верхнюю часть понял что можно записывать данные гораздо проще (Получится массив из второго варианта)
# Этой строчкой я сразу беру данные из игрока и добавляю их в конец массива
# Не знаю почему я сразу об этом не подумал :D
execute as Player run data modify storage minecraft:test frames append from entity @s Pos
 
# P.S: В майне это не проверял работает или нет т.к. писал в редакторе кода.
# Это по факту готовый вариант записи/чтения движений игрока покадрово. (Со скоростью 20 кадров в секунду)
Ссылка на комментарий
Поделиться на другие сайты

Привет, я командой выпускаю несколько стрел одновременно, типа дробовика, но если стрелять в сущность, мешает тег HurtTime, дающий непробиваемость после урона, у моба убрать его наверно можно, но у игрока нет, знаешь как его убрать?

Ссылка на комментарий
Поделиться на другие сайты

9 часов назад, MrDimon8582- сказал:

Привет, я командой выпускаю несколько стрел одновременно, типа дробовика, но если стрелять в сущность, мешает тег HurtTime, дающий непробиваемость после урона, у моба убрать его наверно можно, но у игрока нет, знаешь как его убрать?

У игрока - никак. Это исправили только в Combat Test.

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...
13.02.2020 в 17:31, shurik204 сказал:
# Запись данных
# Из нужного игрока берём по очереди корды x,y,z и сохраняем во временную "переменную"
execute as Player store result storage minecraft:test tmp.x double 1 run data get entity @s Pos[0]
execute as Player store result storage minecraft:test tmp.y double 1 run data get entity @s Pos[1]
execute as Player store result storage minecraft:test tmp.z double 1 run data get entity @s Pos[2]
# Из временного хранилища в конец записываем словарь с тремя элементами: x,y,z
# Получится что-то вроде такого массива [{x:1.24d,y:123.45d,z:235.43d},{x:2.24d,y:124.47d,z:235.43d},{x:8.24d,y:43.45d,z:235.43d},{x:39.24d,y:13.45d,z:25.43d}]
# За секунду туда добавляется 20 значений.
data modify storage minecraft:test frames append from storage minecraft:test tmp
 
# Второй вариант (Чуть сложнее, но возможно легче по нагрузке)
# Очищаем tmp
data modify storage minecraft:test tmp set value []
# Из нужного игрока берём по очереди корды x,y,z и теперь сохраняем как массив, а не словарь значений
execute as Player run data modify storage minecraft:test tmp append from entity @s Pos[0]
execute as Player run data modify storage minecraft:test tmp append from entity @s Pos[1]
execute as Player run data modify storage minecraft:test tmp append from entity @s Pos[2]
# Теперь такой же массив как в первом, будет выглядеть как массив из массивов [[1.24d,123.45d,235.43d],[2.24d,124.47d,235.43d],[8.24d,43.45d,235.43d],[39.24d,13.45d,25.43d]]
data modify storage minecraft:test frames append from storage minecraft:test tmp
 
# Чтение данных 
# Теперь чтобы прочитать этот массив нужно использовать в цикле итерацию (перечисление) через массив.
# Вместо Bot я так понял будет селектор сущности (Зомби или стойка брони)
# Тут я беру корды, записанные в хранилище, и вставляю их в сущность
# (Этот вариант чтения подходит для второго варианта записи)
# Для первого просто нужно заменить frames[0][0] на frames[0].x , frames[0][1] на frames[0].y,  frames[0][2] на frames[0].z  
execute as Bot run data modify entity @s Pos[0set from storage minecraft:test frames[0][0]
execute as Bot run data modify entity @s Pos[0set from storage minecraft:test frames[0][1]
 execute as Bot run data modify entity @s Pos[0set from storage minecraft:test frames[0][2]
# Из массива "кадров анимации" я беру первый массив и добавляю его в конец
data modify storage minecraft:test frames append from storage minecraft:test frames[0]
# Потом так как у нас теперь два одинаковых массива, первый я удаляю
data remove storage minecraft:test frames[0]
 
# Небольшое дополнение
# Пока дописывал верхнюю часть понял что можно записывать данные гораздо проще (Получится массив из второго варианта)
# Этой строчкой я сразу беру данные из игрока и добавляю их в конец массива
# Не знаю почему я сразу об этом не подумал :D
execute as Player run data modify storage minecraft:test frames append from entity @s Pos
 
# P.S: В майне это не проверял работает или нет т.к. писал в редакторе кода.
# Это по факту готовый вариант записи/чтения движений игрока покадрово. (Со скоростью 20 кадров в секунду)

Привет! Это Notepad++ ? Как сделать такое же оформление как у тебя? Помоги пожалуйста. 

Ссылка на комментарий
Поделиться на другие сайты

27.03.2020 в 07:50, 31sasha31 сказал:

Привет! Это Notepad++ ? Как сделать такое же оформление как у тебя? Помоги пожалуйста. 

Это Visual Studio с дополнением Datapack Helper

Ссылка на комментарий
Поделиться на другие сайты

  • 2 месяца спустя...
13.02.2020 в 03:13, shurik204 сказал:

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

Привет,  мне бы не помешала помощь с призывом тнт на месте игрока, который держит что-то. (при помощи командного блока) 

Короче, человек, держит предмет в руках, по клику (или чему-то другому) активируется тригер, который спавнит на месте игрока тнт.

Если это возможно, ответь пожалуйста.;)

Версия 1.15.2

Ссылка на комментарий
Поделиться на другие сайты

Привет,  мне бы не помешала помощь с призывом тнт на месте игрока, который держит что-то. (при помощи командного блока) 

Короче, человек, держит предмет в руках, по клику (или чему-то другому) активируется тригер, который спавнит на месте игрока тнт.

Если это возможно, ответь пожалуйста.;)

Версия 1.15.2

Ссылка на комментарий
Поделиться на другие сайты

01.06.2020 в 08:22, SK8ER сказал:

Привет,  мне бы не помешала помощь с призывом тнт на месте игрока, который держит что-то. (при помощи командного блока) 

Короче, человек, держит предмет в руках, по клику (или чему-то другому) активируется тригер, который спавнит на месте игрока тнт.

Если это возможно, ответь пожалуйста.;)

Версия 1.15.2

ПКМ можно отслеживать по удочке с морковкой.
Создаём задачу отслеживать нажатия на удочку

scoreboard objectives add UseStick minecraft.used:minecraft.carrot_on_a_stick

Эта отслеживает нажатие (В цикличный КБ поставь например)

execute as @a if score @s UseStick matches 1.. run say 1234
# Вместо say напиши свою команду. 

Обязательно после этой команды нужно обнулять всем этот счёт

scoreboard players set @a UseStick 0

Ну вот и всё. Если хочешь отслеживать нажатия именно на тнт, то лучший вариант удочку с морковкой во вторую руку ложить игроку через replaceitem и через ресурспак сделать её невидимой (Без текстуры например).

P.S: Спамить нет смысла. Я обычно раз в день захожу на форум. 

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

скажите как за спавнить сущность сразу с тегом?

и ещё 1 вопрос: можно ли какнибуть взаимодействовать с верстаком командой /data merge?

версия 1.15.2

Ссылка на комментарий
Поделиться на другие сайты

11 минут назад, NecRoZ сказал:

скажите как за спавнить сущность сразу с тегом?

и ещё 1 вопрос: можно ли какнибуть взаимодействовать с верстаком командой /data merge?

версия 1.15.2

1. summon zombie ~ ~ ~ {Tags:["Tag1","Tag2","Tag3"]}
2. Добавлять или удалять из него предметы - нет т.к. это не блок-сущность

Ссылка на комментарий
Поделиться на другие сайты

Ребята, всем привет, мы с другом начали делать карту в стиле RPG и столкнулись с очень большой проблемой, у нас не как не получается настроить дроп с мобов, кто знает как это сделать пожалуйста отпишитесь в вк: https://vk.com/pozziclan

Ссылка на комментарий
Поделиться на другие сайты

12 часов назад, PozziTiv4ik сказал:

Ребята, всем привет, мы с другом начали делать карту в стиле RPG и столкнулись с очень большой проблемой, у нас не как не получается настроить дроп с мобов, кто знает как это сделать пожалуйста отпишитесь в вк: https://vk.com/pozziclan

loot_tables используй
Вот генератор нормальный есть: https://misode.github.io/loot-table/

Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, NecRoZ сказал:

как командой summon призвать предмет

а всё я сам понял

Ну ок ¯\_(ツ)_/¯

Ссылка на комментарий
Поделиться на другие сайты

5 часов назад, Bigdan сказал:

как выдать мнаша алаказов!!!

Если я правильно понял "как выдать много алмазов"

/give твой ник minecraft:diamond число (вроде так, я /give не использую)

Ссылка на комментарий
Поделиться на другие сайты

  • 3 недели спустя...
12.02.2020 в 20:02, Andrey105 сказал:

нужно на спавн ну если каждий раз делать тп надо сразу чтоб он там спавнился

Просто сделай цикличный командный блок и там пропиши spawnpoint @a 123 123 123 (123 это координаты)

Таким образом у тебя постоянно для всех игроков будет ставиться там спавнпоинт. Чтобы в чате не флудило, пропиши /gamerule CommandBlockOutput false 

Ссылка на комментарий
Поделиться на другие сайты

execute at @a[nbt={Inventory:[{id:"minecraft:ender_pearl",Count:5}]}] run clear @p minecraft:ender_pearl 5

скажите где ошибка и как сделать так, чтобы команда работала и на игроках, у которых больше 5 предметов?

Ссылка на комментарий
Поделиться на другие сайты

 

21 час назад, YuNiVaLiX сказал:

Как сделать чтобы за выпущенной стрелой шел след из определенных блоков?

execute at @e[type=minecraft:arrow] positioned ^ ^ ^-0.5 run setblock stone

Должно работать. Если стрела попадает в блоки позади неё, увеличь дистанцию позади стрелы (-0.5 замени на -0.7 например).

Ссылка на комментарий
Поделиться на другие сайты

Шалом, кастомный дроп с блоков делается при помощи loottable, или надо через execute @p run give @p block все прописывать? Если через последнее, то как указать шанс на выпадение предмета с блока, а так же количество предметов. К примеру с Угольной руды падает minecraft:cobblestone с шансом в 80% и 1-3 minecraft:coal.

Понял, что при разбивании блока можно спаунить entity относительно сломанного блока на ~0 ~1 ~0 или ~0 ~0 ~0, а с него через луттэйбл прописать дроп. Но не будет ли это дополнительной нагрузкой?

Изменено пользователем GetS7op
Дополнено
Ссылка на комментарий
Поделиться на другие сайты

И.... у меня не призывается иллюзионист. Ну вот, с помощью команды я не проверял, но мне нужно яйцо призыва. И написал такую команду: 

/give @p spawn_egg 1 0 {EntityTag:{id:"minecraft:illusion_illager",CustomName:"Иллюзионист",CustomNameVisible:1,Health:200,Attributes:[{Name:"generic.maxHealth",Base:200},{Name:"generic.attackDamage",Base:4}],HandDropChances:[2F,2F],HandItems:[{id:"minecraft:cake",tag:{display:{Name:"Праздничный торт",Lore:["Не похож на праздничный"]}},Count:1},{}]}}

 И когда я спавню его яйцом, то он попросту не спавнится. Как сделать так, чтобы он заспавнился?

Ссылка на комментарий
Поделиться на другие сайты

11 часов назад, Delazar сказал:

И когда я спавню его яйцом, то он попросту не спавнится. Как сделать так, чтобы он заспавнился?

У иллюзора не такой ID насколько я помню. Найди через команду summon иллюзора и замени в команде ID моба.

Ссылка на комментарий
Поделиться на другие сайты

7 минут назад, shurik204 сказал:

У иллюзора не такой ID насколько я помню. Найди через команду summon иллюзора и замени в команде ID моба.

а какой ID? Illusionist?

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...