-
Постов
50 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
События
Весь контент TheDarkRU
-
Если от прямой поверхности блока, то из 180 вычитаешь текущий угол для каждой из осей и потом точку от угла считаешь(sin(180-angX) cos(180-angY)). Можно ещё на -1 умножать, тогда в обратную сторону полетит xd
-
А, у клаудвульфа есть ролик на эту тему
-
Тогда просто рейкастом делай. От игрока вызываешь функцию, которая сама себя вызывает, каждый раз смещаясь на 1 блок вверх. execute positioned ~ ~1 ~ run function ... + блок проверяет, если там не воздух, то над игроком чё то есть
-
С помощью скрипта генерируешь предикат, где проверяются все блоки над игроком. "condition": "minecraft:location_check" и в offsetY числа вставляешь
-
Есть 2 варианта. 1.) Проверять все блоки над игроком с помощью рейкаста(~ ~1 ~) 2.) Создать предикат, где будут проверяться все вплоть до 255 высоты блоки над игроком.
-
CanPlaceOn:["minecraft:acacia_planks"]
-
Можно создать falling_block, внутри которых будут слизни. Добавляешь слизней с игроком в одну команду и отключаешь им коллизию. Можно ещё через шалкеры/лодки попробовать
-
А, я его с контейнерами перепутал. Inventory тогда. execute as @a unless data entity @s Inventory[{Slot:102b}] run effect give @s minecraft:speed 1 0 true
-
execute as @a unless data entity @s Items[{Slot:102b}] run effect give @s minecraft:speed 1 0 true
-
Potion:"minecraft:water"
-
Есть несколько способов. Можно постоянно записывать координаты игрока в скорборд(x1,z1), создать задачу minecraft.custom:minecraft.walk_one_cm и смотреть, если она не равна нулю, то вызываем функцию, где идёт запись координат игрока уже в другой скорборд(x2,z2) и обнуление задачи на ходьбу. Потом просто x2-x1, z2-z1 Можно ещё через Motion проверять, если Motion[0] или Motion[2] не равны нулю, значит игрок сдвинулся с места.
-
"Кники" - книга? Можно попробовать создать модификатор предмета, который будет задавать nbt книге, где будет нужный текст. item_modifiers\book.json => [ { "function": "minecraft:set_nbt", "tag": "{pages:['{\"text\":\"Click on me\",\"color\":\"dark_green\"}']}" } ] В clickEvent твоей книги вызываешь команду item modify, которая будет модифицировать предмет в выбранном слоте. Но насколько я знаю, GUI обновляется только в момент открытия, поэтому есть вероятность, что пока игрок не откроет книгу заново, текст не изменится.
-
Достаточно сложно. Можно попробовать сделать следующим образом: Считать смещение игрока по 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 и тд... Но будет большая погрешность. А вообще, не советую заниматься этим, поскольку майнкрафт не предоставляет нормального способа.
-
execute as @e[type=minecraft:item] store result entity @s Item.Count byte 1 run data get entity @s Item.Count 0.999 - Убирает 1 предмет из стака. Майнкрафт будет округлять в меньшую сторону. Если тебе нужно убрать произвольное кол-во предметов, то сначало надо будет записать его в скорборд, а потом записывать обратно.
