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

TheDarkRU

Пользователи
  • Постов

    50
  • Зарегистрирован

  • Посещение

Весь контент TheDarkRU

  1. Если от прямой поверхности блока, то из 180 вычитаешь текущий угол для каждой из осей и потом точку от угла считаешь(sin(180-angX) cos(180-angY)). Можно ещё на -1 умножать, тогда в обратную сторону полетит xd
  2. Жесть, 300iq Tags - массив тегов у сущностей. Если тебе тупо метка предмета нужна, то проще логическую переменную сделать tag1:1b,tag2:1b,tag3:1b
  3. Чел ты.... /give @s minecraft:stone{test:1b} Проверка на нажатия возможна только у предметов с ивентом на клик(удочки и т.д.), либо через костыль с жителем/лавомеркой
  4. Тогда просто рейкастом делай. От игрока вызываешь функцию, которая сама себя вызывает, каждый раз смещаясь на 1 блок вверх. execute positioned ~ ~1 ~ run function ... + блок проверяет, если там не воздух, то над игроком чё то есть
  5. С помощью скрипта генерируешь предикат, где проверяются все блоки над игроком. "condition": "minecraft:location_check" и в offsetY числа вставляешь
  6. testfor @e[предмет из рамки] В чём прикол на этих древних версиях сидеть?
  7. Есть 2 варианта. 1.) Проверять все блоки над игроком с помощью рейкаста(~ ~1 ~) 2.) Создать предикат, где будут проверяться все вплоть до 255 высоты блоки над игроком.
  8. Создать датапак, заменяющий лут блока на твой кастомный loottable. https://minecraft.fandom.com/wiki/Data_pack
  9. Можно создать falling_block, внутри которых будут слизни. Добавляешь слизней с игроком в одну команду и отключаешь им коллизию. Можно ещё через шалкеры/лодки попробовать
  10. А, я его с контейнерами перепутал. Inventory тогда. execute as @a unless data entity @s Inventory[{Slot:102b}] run effect give @s minecraft:speed 1 0 true
  11. execute as @a unless data entity @s Items[{Slot:102b}] run effect give @s minecraft:speed 1 0 true
  12. Ванильными способами - никак. Блоки не сохраняют NBT когда их ставишь(за исключением блоков-сущностей).
  13. По другому никак. Ну, разве что если свой функционал трезубцу в датапаке не сделать.
  14. В теории можно костылём. Если кто-то из участников команды держит в руке трезубец, то включаем дождь, потом через 0.5 секунд отключаем его и включаем снова.
  15. Есть несколько способов. Можно постоянно записывать координаты игрока в скорборд(x1,z1), создать задачу minecraft.custom:minecraft.walk_one_cm и смотреть, если она не равна нулю, то вызываем функцию, где идёт запись координат игрока уже в другой скорборд(x2,z2) и обнуление задачи на ходьбу. Потом просто x2-x1, z2-z1 Можно ещё через Motion проверять, если Motion[0] или Motion[2] не равны нулю, значит игрок сдвинулся с места.
  16. "Кники" - книга? Можно попробовать создать модификатор предмета, который будет задавать nbt книге, где будет нужный текст. item_modifiers\book.json => [ { "function": "minecraft:set_nbt", "tag": "{pages:['{\"text\":\"Click on me\",\"color\":\"dark_green\"}']}" } ] В clickEvent твоей книги вызываешь команду item modify, которая будет модифицировать предмет в выбранном слоте. Но насколько я знаю, GUI обновляется только в момент открытия, поэтому есть вероятность, что пока игрок не откроет книгу заново, текст не изменится.
  17. Достаточно сложно. Можно попробовать сделать следующим образом: Считать смещение игрока по xz(из новой позиции вычитать старую). Записать в скорборд рысканье камеры(горизонтальный поворот). Допустим, камера игрока смотрит под углом 90 градусов, игрок смещается по одной из координат. Берём разницу в координатах за единичный радиус окружности(игрок может смотреть на все 360 градусов). Соотношение поворота камеры и нажатие определённых клавиш постоянно, значит, можно попробовать вычислить нажатие определённой из них. Находим синус и косинус(аппроксимируем их) рысканья, умножаем полученные значения на разницу в координатах, которую мы нашли до этого, получаем гипотенузу. Складываем получившиеся значения и получаем постоянное соотношение сдвига игрока в пространстве. Мы нашли сдвиг только по одной из осей, для обнаружения всех 4-х кнопок этого недостаточно. Вычитаем из рысканья игрока 90 градусов, дабы получить ещё один диапазон значений, но уже в другой четверти "круга"(вспоминаем про 360 градусов). Повторяем все выше описанные операции уже с новым значением рысканья. Получаем диапазоны значений для каждой из клавиш - WD, AS. Далее остаётся просто поиграться с коэффициентами, дабы наш результат можно было привести к конкретному диапазону. Можно ещё попроще сделать, сделать кучу проверок на на то, в какую часть света смотрит игрок и куда он сдвигается: execute if ... matches 0..90, 90..180, 180..270, 270..360 ... if score @s dX matches 0..1, -1..0 ... if score @s dZ 0..1 -1..0 и тд... Но будет большая погрешность. А вообще, не советую заниматься этим, поскольку майнкрафт не предоставляет нормального способа.
  18. execute as @e[type=minecraft:item] store result entity @s Item.Count byte 1 run data get entity @s Item.Count 0.999 - Убирает 1 предмет из стака. Майнкрафт будет округлять в меньшую сторону. Если тебе нужно убрать произвольное кол-во предметов, то сначало надо будет записать его в скорборд, а потом записывать обратно.
×
×
  • Создать...