Щербатый бесстыдник Опубликовано 15 мая, 2025 Поделиться Опубликовано 15 мая, 2025 Цель такая - сделать возможность призывать сущностей привязанных к определённому игроку. Так что-бы это работало в мультиплеере и можно было устраивать зарубы с использованием армий нежити или что-то типо того. Пока-что механизм работает так: Один кусок механизма проверяет есть ли рядом с игроком яйцо, и если его нет, то он его спавнит и пихает в него значение скорборда игрока. При этом я даже не могу проверить отсутствие по близости яйца с идентичным скорбордом, проверяю отсутствие обычного яйца, что в теории может поломать механизм цикличный///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, хочу обойтись без датапаков (может перехочу) Ссылка на комментарий Поделиться на другие сайты Поделиться
SHpriс Опубликовано 11 октября, 2025 Поделиться Опубликовано 11 октября, 2025 хм Щербатый бесстыдник 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
SHpriс Опубликовано 12 октября, 2025 Поделиться Опубликовано 12 октября, 2025 12 часов назад, ArtemLog2 сказал: хм вылетело из головы что хотел скачать БЕСИТ! Щербатый бесстыдник 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
GhostoFBU Опубликовано 12 октября, 2025 Поделиться Опубликовано 12 октября, 2025 Здесь нужен датапак. При спавне моба: 1. Игрок записывает свой айди в фейк игрока 2. Моб получает айди с фейк игрока. Теперь у моба и игрока одинаковые айди scoreboard players operation #id id = @s id execute summon minecraft:pig run scoreboard players operation @s id = #id id Функция выполнятся от имени моба: 1. Моб записывает свой айди в фейк игрока 2. Телепортируется к игроку, у которого совпадают айди scoreboard players operation #search id = @s id tp @s @a[predicate=test:match_id,limit=1] Предикат для сравнения айди: { "condition": "minecraft:value_check", "value": { "type": "minecraft:score", "target": "this", "score": "id" }, "range": { "min": { "type": "minecraft:score", "target": { "type": "minecraft:fixed", "name": "#search" }, "score": "id" }, "max": { "type": "minecraft:score", "target": { "type": "minecraft:fixed", "name": "#search" }, "score": "id" } } } Щербатый бесстыдник 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Щербатый бесстыдник Опубликовано 12 октября, 2025 Автор Поделиться Опубликовано 12 октября, 2025 8 часов назад, GhostoFBU сказал: Предикат для сравнения Не знал что так можно, всё делал этой штукой, но показанное в видосе это геморрой какой то для такого простого действия как телепортация. Спасибо что поделился Ссылка на комментарий Поделиться на другие сайты Поделиться
Shomen Опубликовано 13 октября, 2025 Поделиться Опубликовано 13 октября, 2025 20 часов назад, GhostoFBU сказал: Здесь нужен датапак. При спавне моба: 1. Игрок записывает свой айди в фейк игрока 2. Моб получает айди с фейк игрока. Теперь у моба и игрока одинаковые айди scoreboard players operation #id id = @s id execute summon minecraft:pig run scoreboard players operation @s id = #id id Функция выполнятся от имени моба: 1. Моб записывает свой айди в фейк игрока 2. Телепортируется к игроку, у которого совпадают айди scoreboard players operation #search id = @s id tp @s @a[predicate=test:match_id,limit=1] Предикат для сравнения айди: { "condition": "minecraft:value_check", "value": { "type": "minecraft:score", "target": "this", "score": "id" }, "range": { "min": { "type": "minecraft:score", "target": { "type": "minecraft:fixed", "name": "#search" }, "score": "id" }, "max": { "type": "minecraft:score", "target": { "type": "minecraft:fixed", "name": "#search" }, "score": "id" } } } а разве нельзя записывать uuid игрока прямо в моба? Ссылка на комментарий Поделиться на другие сайты Поделиться
PhoenixTechu Опубликовано 13 октября, 2025 Поделиться Опубликовано 13 октября, 2025 1 час назад, Shomen сказал: а разве нельзя записывать uuid игрока прямо в моба? по идее нет, потому что выдаст ошибку Ссылка на комментарий Поделиться на другие сайты Поделиться
GhostoFBU Опубликовано 13 октября, 2025 Поделиться Опубликовано 13 октября, 2025 2 часа назад, PhoenixTechu сказал: по идее нет, потому что выдаст ошибку Можно, у сущностей есть NBT-тег data, это как компонент custom_data для предметов, туда можно записывать любую дату, например, как в данном случае - UUID игрока 3 часа назад, Shomen сказал: а разве нельзя записывать uuid игрока прямо в моба? Можно, но что легче сравнивать и оптимизированней: массив чисел и работа с NBT данными или сравнение чисел в скорборде? PhoenixTechu 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
В теме 8 сообщений
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти