-
Постов
1 060 -
Зарегистрирован
-
Посещение
-
Победитель дней
12
Тип контента
Профили
Форумы
События
Весь контент Щербатый бесстыдник
-
execute as @a[nbt={SelectedItem:{components:{"minecraft:custom_data":{Tags:["1"]}}}}] at @s give @p minecraft:carrot_on_a_stick[minecraft:custom_data={Tags:["1"]}] В общем, я пользуюсь этими командами, для того чтобы выдать предмет с тегом и проверить его, у игрока в руке. Мне нужно проверить этот же предмет, но в другом слоте, например в -106. Я искал инфу на форуме, но находил только варианты не работающие на моей версии. Синтаксис команды я вообще не понимаю, по этому сам не вдуплил. Помогите.
-
execute as @a[gamemode=survival] at @s if entity @a[distance=0.0..,limit=1,gamemode=survival] run (всегда активный, цикличный) После run напиши любую команду какую хочешь и она будет срабатывать если в одном измерении будут одновременно находиться 2 игрока в режиме выживания. Я просто не помню как КБ активировать другими блоками, по хорошему это надо через дату наверное делать, но я не очень шарю, по этому только этот огрызок команды дам. Если прям очень надо, то после run напиши fill (координата) (координата) minecraft:redstone_block и тогда он будет ставить редстоун блоки между двумя координатами.
-
вообще, можно ли использовать селекторы в книгах, я знаю что можно вывести ник игрока в tellraw, но мне нужно что-нибудь, что может сохранить ник игрока, даже после того как игрок выйдет. Про скорборд знаю, но хотелось бы что-нибудь материальное по типу книги, предмета, моба на крайняк или даже таблички
-
У меня карта, сильно завязанная на рандомном луте. Рандомизацию лута я сделал достаточно простую — Сундук копируется, потом разрушается, вещи из него высыпаются в случайном направлении. А потом, самые ближайшие из выпавших предметов телепортируются к воронкам командой Execute as @e[tupe=item,sort=nearest,limit=9] at @s run tp @s 123 123 123 (может не прям такая команда) Под воронкой их ловит сундук, из сундука предметы копируются в инвентарь игрока. Моя проблема в том, что при таком раскладе предметы рандомизируются только по одной штуке на слот, а если мне нужно закинуть туда стак блоков или 16 яблок, то мне приходится обломиться, потому-что механизм сразу даёт дуба, из-за того что воронки слишком медленно сосут, а весь процесс не должен длиться дольше 3-х секунд. Проблема была бы решена — Если воронки были быстрее; Если можно было перемещать выпавшие предметы сразу в инвентарь игроку, в обход воронок; Если я мог бы взять инвентарь игрока (где все предметы в количестве одной штуки) и многократно выдать игроку его же инвентарь так чтобы предметы стакнулись. Я пытался так сделать командой item и командой loot но чёт не вышло; Ну или на крайняк если бы появился более совершенный способ рандомизации предметов, но без лут таблиц и дропа мобов. На данный момент проблема решена тупым способом. После того как запускается катка, я проверяю есть ли у игрока блок, и если есть, даю ему ещё 63 блока. Но такой способ мне не нравится потому-что для каждого нового добавленного мной предмета приходится ставить в цепь новый блок. А я хочу чтобы предметы получаемые в катке можно было легко настроить под себя не копаясь в блоках. В общем, жду советов, версия 1.21.1
-
Хз, в первые слышу чтобы команду для ворлдт эдита в командный блок запихивали. А что касается ограничений ванильного clone, их можно на новых версиях изменить с помощью gamerule. Про моды не знаю. Можно спросить, для чего тебе нужно копировать такой большой кусок территории? Мне кажется можно найти другой способ это сделать
-
Можно посчитать разрушения определённого блока, например белой шерсти Objective add название minecraft.mined:minecraft.white_wool Но посчитать разрушение любых блоков, увы, нельзя.
-
С идеями не помогу, но картой ты меня заинтриговал)), кинь ссылку когда она выйдет. Редко увидишь боссов не представляющих собой зомбаря с мильоном хп
-
Сначала сделай скорборд /scoreboard objectives add Dialog minecraft.custom:minecraft.talked_to_villager (пропиши в чат) Если хочешь ВЕДАТЬ, то пропиши и следующую команду и нажми на жителя (любого) /scoreboard objectives setdisplay sidebar Dialog (тоже в чат) /scoreboard objectives setdisplay sidebar (чтобы отменить предыдущее) Теперь когда ты нажимаешь на жителя тебе прибавляется 1 значение в только что созданный скорборд. Далее упомянутым тобой execute, нужно проверить есть ли у игрока это значение. И если оно есть вывести в чат ему желанный текст. Чтобы красиво отформатировать текст можно воспользоваться tellraw генераторами execute as @a[scores={Dialog=1..}] at @s run tellraw @s "текст который житель должен говорить" (цикличный, всегда активный, стрелка должна указывать на следующий) execute as @a[scores={Dialog=1..}] at @s run scorboard scoreboard players set @s Dialog 0 (цепной, всегда активный, стрелка в сторону от предыдущего) Но все жители при таком варианте будут говорить одно и тоже. По этому тебе нужно распихать им теги или что-то в этом роде, чтобы фильтровать одного жителя от другого. Я предлагаю такой вариант - Первая команда активирует игрока начавшего диалог [scores={Dialog=1..}], имеющего жителя [type=minecraft:villager] на расстоянии 7ми блоков [distance=..7] с уникальным тегом [tag=BrrBrrPatapim] и если находит, то выводит ему текст конкретно для жителя с конкретно этим тегом. Следующая команда отличается только тегом и наверное сообщением для игрока. Последняя команда как и в предыдущем варианте просто чистит скорборд диалога чтобы игроку не спамило в чат. execute as @a[scores={Dialog=1..}] at @s if entity @e[type=minecraft:villager,tag=BrrBrrPatapim,distance=..7] run tellraw @s "я брр брр патапим" (цикличный, всегда активный) execute as @a[scores={Dialog=1..}] at @s if entity @e[type=minecraft:villager,tag=GlorboFrutodrillo,distance=..7] run tellraw @s "я глорбо фрутодрилло" (цикличный, всегда активный) execute as @a[scores={Dialog=1..}] at @s run scorboard scoreboard players set @s Dialog 0 (цепной, всегда активный) Единственная проблема в том что моя команда не проверяет жителя по которому нажали, она просто ищет жителя рядом с игроком в момент когда игрок получил единицу скорборда, а это значит что механизм может лагать если 2 разных жителя будут рядом в тот момент когда игрок нажмёт по одному из них. Ему просто может выдать не тот текст. Это 100% можно как-то исправить но мне лень думать. Если не узнаешь как, то просто поставь жителей подальше друг от друга Чтобы дать жителю тег подлети к нему вплотную и впиши в чат эту команду: /tag @e[type=minecraft:villager,distance=..3] add GlorboFrutodrillo (в место GlorboFrutodrillo можешь писать любые нужные тебе теги) таким образом если тыкнуть по жителю находясь рядом с жителем с тегом "BrrBrrPatapim" в чат тебе напишет "я брр брр патапим", а если рядом будет "GlorboFrutodrillo" то в чат напишет "я глорбо фрутодрилло". А ещё вопросы по командным блокам лучше в эту часть форма задавать, там больше шансов что ответят (ответят лучше чем я)
-
Я вижу один способ: Поместить внутрь блока сущность и спавнить частицы от неё. Для этого нужно задетектить установку блока. Для этого я создаю скорборд который будет прибавлять значение каждый раз когда игрок будет ставить белую шерсть. /scoreboard objectives add UsedWool minecraft.used:minecraft.white_wool (прописать 1 раз в чат) /scoreboard objectives setdisplay sidebar UsedWood (не обязательно, но для наглядности можешь прописать и это) /scoreboard objectives setdisplay sidebar (чтобы отменить предыдущую шнягу) Дальше я проверяю если ли значение в скорборде игрока и если есть, спавню шалкеров по направлению взгляда игрока. К сожалению я не знаю как определить точный блок куда нужно поставить шалкера, так-что придётся заспавнить одновременно 6 шалкеров в ряд по направлению взгляда игрока. Для этого нужно 6 раз написать в КБ одну и туже команду с одной лишь изменённой координатой. В самом конце нужно поставить КБ который будет отчищать скорборд от значения которое туда прибавилось после того как игрок поставил блок: execute as @a[scores={UsedWood=1..}] at @s run summon minecraft:shulker ^ ^1.6 ^1 {Invulnerable:1b,NoAI:1b,Tags:["Particle"],active_effects:[{id:invisibility,duration:-1,show_particles:0b},{id:glowing,duration:-1,show_particles:0b}]} (Цикличный, всегда активный, стрелка на следующий КБ) execute as @a[scores={UsedWood=1..}] at @s run summon minecraft:shulker ^ ^1.6 ^2 {Invulnerable:1b,NoAI:1b,Tags:["Particle"],active_effects:[{id:invisibility,duration:-1,show_particles:0b},{id:glowing,duration:-1,show_particles:0b}]} (Цепной, всегда активный, стрелка в сторону от предыдущего КБ) execute as @a[scores={UsedWood=1..}] at @s run summon minecraft:shulker ^ ^1.6 ^3 {Invulnerable:1b,NoAI:1b,Tags:["Particle"],active_effects:[{id:invisibility,duration:-1,show_particles:0b},{id:glowing,duration:-1,show_particles:0b}]} (Цепной, всегда активный, ВСЕ стрелки в одну сторону) execute as @a[scores={UsedWood=1..}] at @s run summon minecraft:shulker ^ ^1.6 ^4 {Invulnerable:1b,NoAI:1b,Tags:["Particle"],active_effects:[{id:invisibility,duration:-1,show_particles:0b},{id:glowing,duration:-1,show_particles:0b}]} (Цепной, всегда активный, стрелки) execute as @a[scores={UsedWood=1..}] at @s run summon minecraft:shulker ^ ^1.6 ^5 {Invulnerable:1b,NoAI:1b,Tags:["Particle"],active_effects:[{id:invisibility,duration:-1,show_particles:0b},{id:glowing,duration:-1,show_particles:0b}]} (Цепной, всегда активный, стрелки) execute as @a[scores={UsedWood=1..}] at @s run summon minecraft:shulker ^ ^1.6 ^6 {Invulnerable:1b,NoAI:1b,Tags:["Particle"],active_effects:[{id:invisibility,duration:-1,show_particles:0b},{id:glowing,duration:-1,show_particles:0b}]} (Цепной, всегда активный, стрелки) execute as @a[scores={UsedWood=1..}] at @s run scoreboard players set @s UsedWood 0 (Цепной, всегда активный, УСЛОВНЫЙ) после этого нужно поставить КБ который будет проверять находятся ли шалкер в блоке белой шерсти и если находится то он будет спавнить партиклы execute as @e[tag=Particle] at @s if block ~ ~ ~ minecraft:white_wool run particle minecraft:block white_wool ~ ~ ~ 0.3 0.3 0.3 0.1 20 normal (Цикличный, всегда активный) дальше делай ещё один блок который будет искать лишних шалкеров (только 1 из шести шалкеров нам нужен) и когда найдёт убьёт их. execute as @e[tag=Particle] at @s unless block ~ ~ ~ minecraft:white_wool run tp @s ~ ~-500 ~ (Цикличный, всегда активный) таким образом когда игрок ставит блок белой шерсти механизм это видит и спавнит по направлению его взгляда линию из шалкеров, лишние шалкеры тут-же умирают и остаётся только тот который находится внутри нужного блока. Рядом с этим шалкером мы и спавним партиклы. Если не нравится свечение шалкера замени duration:-1 на duration:1. Шалкера я кстати выбрал только потому-что он размером ровно в 1 блок и стоит идеально по центру. И рас уж пошла такая пляска то можно ещё проверять находятся ли игрок рядом с этим чудо-блоком и делать с ним всякие приколы: execute as @e[tag=Particle] at @s run execute as @a[distance=..10] at @s run title @s actionbar "вы в области функционального блока" (если игрок находится рядом с блоком, ему пишет сообщение) execute as @e[tag=Particle] at @s unless entity @a[distance=..10] run fill ~ ~ ~ ~ ~ ~ minecraft:red_wool (Если игрок отошёл на 10 блоков, то блок заменяется на красный, типа дизактивация) execute as @e[tag=Particle] at @s run execute as @a[distance=..10] at @s run effect give @s minecraft:regeneration 1 1 true (Даёт эффект пока игрок рядом с блоком) Если хочешь сделать окружность из партиклов вокруг функционального блока чтобы разметить границу его области например то делай вот так: execute as @e[tag=Particle] at @s if block ~ ~ ~ minecraft:white_wool run particle block_marker barrier ^ ^0.5 ^10 0 0 0 0.1 1 normal (цикл, активный) execute as @e[tag=Particle] at @s if block ~ ~ ~ minecraft:white_wool run tp @s ~ ~ ~ ~22.5 ~ (цикл, активный) Я это делал на версии 1.21 но насколько я помню эти команды не менялись. Если будут не работать то не парься, пиши, разберёмся))
-
У меня есть механизм делающий деш как в ультракиле, забинженный на приседание)) Но что касается механик связанных с сущностями и направлением их движения, тут я не силён. Можешь дать немного больше инфы про то какого рода атаки ты хочешь отражать? Если это упомянутые ранее фаерболы, то их можно отбивать и без излишней модификации. А если нужно чтобы сущность летела в сторону атакующего я обычно разворачиваю её в сторону нужного игрока и телепортирую по направлению её взгляда execute as @e[type=minecraft:fireball] at @s run tp @s ^ ^ ^1 facing entity @p execute as @e[type=minecraft:fireball] at @s run - ищёт любой фаербол и выполняет последующие команды от его лица ^ ^ ^1 - телепортирует по координатам относительно направления взгляда сущности, то есть 1 блок вперёд facing entity @p - телепортирует игрока взглядом на ближайшего игрока Но с фаерболами это очень хреново работает, он будет двигаться очень дёргано, даже если телепортировать его на 0.01. Если делать так с нормальными мобами то ещё ладно. А ещё если телепортировать уже выпущенный фаербол, то его будет пытаться уносить не в ту сторону. Ещё с селекторами нужно будет заморочиться, чтобы он летел не к ближайшему игроку а к игроку который его выпустил изначально, а это отдельный вид геморроя выяснять какой моб к какому игроку привязан. Тем не менее нужно больше инфы. На скольких игроков режим рассчитан и обладают ли игроки различными тегами, скорбордами или находятся в разных командах?
-
делаю приват на командах. Мне нужно задетектить разрушение блоков. Я знаю что скорбордом можно считать разрушение игроком конкретного блока, но я не нашёл возможность сделать такое для всех блоков. Сделать execute if blocks тоже нельзя, так как это не ЦеЛеСоОбРаЗнО (лагать будет, карта большая) версия 1.21.1
-
Если делать это с невменяемым количеством КБ, то можно копировать предметы из инвентаря игроков скачала в сундуки, потом обратно игрокам но наоборот. Ещё удобнее использовать для этого эндерчест Копирует первый слот хотбара в первый слот эндерчеста игроков: /execute as @a[tag=1] at @s run item replace entity @s enderchest.0 from entity @s hotbar.0 /execute as @a[tag=2] at @s run item replace entity @s enderchest.0 from entity @s hotbar.0 Копирует первый слот эднер честа первого игрока в хотбар второго игрока и наоборот: /execute as @a[tag=1] at @s run item replace entity @s hotbar.0 from entity @a[tag=2] enderchest.0 /execute as @a[tag=2] at @s run item replace entity @s hotbar.0 from entity @a[tag=2] enderchest.0 Чтобы копировать в сундук: item replace block ~ ~1 ~ container.0 from entity @a[tag=1] hotbar.0 целый инвентарь копировать воистину геморройно, но в принципе результат того стоит. У меня такая мини игра была)
-
Цель такая - сделать возможность призывать сущностей привязанных к определённому игроку. Так что-бы это работало в мультиплеере и можно было устраивать зарубы с использованием армий нежити или что-то типо того. Пока-что механизм работает так: Один кусок механизма проверяет есть ли рядом с игроком яйцо, и если его нет, то он его спавнит и пихает в него значение скорборда игрока. При этом я даже не могу проверить отсутствие по близости яйца с идентичным скорбордом, проверяю отсутствие обычного яйца, что в теории может поломать механизм цикличный///execute as @a[tag=BombardiroСroсodilo] at @s unless entity @e[distance=..1,type=egg,tag=BombardiroСroсodilo] run summon egg ~ ~ ~ {NoGravity:1b,Tags:["BombardiroСroсodilo"]} цепной условный///execute as @e[tag=BombardiroСroсodilo,type=egg] at @s run scoreboard players operation @s ID = @p[tag=BombardiroСroсodilo] ID Потом я проверяю как далеко от яйца находится его владелец. Если он близко, то телепортирую яйцо (ещё ближе). А если он далеко то я его удаляю, тем самым генерирую для игрока новое яйцо. цикличный///execute as @e[type=minecraft:egg,tag=BombardiroСroсodilo] at @s if score @s ID = @p[tag=BombardiroСroсodilo,distance=1..] ID run kill @s цикличный///execute as @e[type=minecraft:egg,tag=BombardiroСroсodilo] at @s if score @s ID = @p[tag=BombardiroСroсodilo,distance=..1] ID run tp @s @p[tag=BombardiroСroсodilo] Если подытожить, то я не телепортирую яйцо к его владельцу как хотелось бы, а телепортирую его к ближайшёму игроку, а в случае если оно теряется, генерирую его заново. Мне такой расклад не очень нравится, но что-то менее костыльное я из себя выдавить не смог. Нужен совет о том что с этим делать, версия 1.21.1, хочу обойтись без датапаков (может перехочу)
-
возможно глупость скажу, но самый лучший рандомайзер в майнкравте это раздатчик, если запихнуть в него 2 шалкера то он с одинаковой вероятностью будет их ставить. Потом можно будет проверить наличие шалкеров на координате командой execute. Чтобы шалкеры в раздатчике не заканчивались его можно копировать в начале цикла командой clone execute if block 1 1 1 minecraft:red_shulker_box run weather thunder execute if block 2 2 2 minecraft:blue_shulker_box run weather clear
-
Есть такой фрагмент команды - @a[nbt={Inventory:[{Slot:102b,id:"minecraft:stone"}]}] run say 1 который находит игроков с камнем в определённом слоте. Но я не могу найти ID 5-ти слотов для крафта в GUI игрока (не в верстаке) Идея вообще такая - Проверить наличие определённых предметов в 4-рёх слотах для крафта и если они правильные то удалить их и выдать игроку что-нибуть крутое. Кароче кастомный крафт вещей сделать
