ivyy Опубликовано 1 декабря, 2024 Поделиться Опубликовано 1 декабря, 2024 Мне нужно сделать рандомайзер который выдает число от 1 до 3 с равным шансом(в скорборд), как мне это сделать? Ссылка на комментарий Поделиться на другие сайты Поделиться
Rozy Опубликовано 1 декабря, 2024 Поделиться Опубликовано 1 декабря, 2024 1 час назад, gasihup сказал: Мне нужно сделать рандомайзер который выдает число от 1 до 3 с равным шансом(в скорборд), как мне это сделать? какая версия? Ссылка на комментарий Поделиться на другие сайты Поделиться
ivyy Опубликовано 1 декабря, 2024 Автор Поделиться Опубликовано 1 декабря, 2024 21 минуту назад, NecRoZ сказал: какая версия? 1.20.4 Ссылка на комментарий Поделиться на другие сайты Поделиться
quark-gluon plasma Опубликовано 1 декабря, 2024 Поделиться Опубликовано 1 декабря, 2024 4 hours ago, gasihup said: 1.20.4 https://minecraft.wiki/w/Commands/random https://minecraft.wiki/w/Commands/execute#Store_subcommand Rozy 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
ч1мпл Опубликовано 2 декабря, 2024 Поделиться Опубликовано 2 декабря, 2024 В 01.12.2024 в 15:26, DasGortyCH сказал: https://minecraft.wiki/w/Commands/random https://minecraft.wiki/w/Commands/execute#Store_subcommand википедии? кто ими пользуется? Ссылка на комментарий Поделиться на другие сайты Поделиться
OldBendy Опубликовано 23 марта, 2025 Поделиться Опубликовано 23 марта, 2025 Люди которые хотят углубиться в тему, а не смотреть поверхностные обзоры например Ссылка на комментарий Поделиться на другие сайты Поделиться
Mr.horse Опубликовано 1 мая, 2025 Поделиться Опубликовано 1 мая, 2025 1. Создайте Scoreboard Objective: /scoreboard objectives add random dummy Это создаст цель (objective) с именем «random» и типом «фиктивная». Тип «фиктивная» означает, что мы сами будем устанавливать значения для этой цели. 2. Запустите рандомизатор: mcфункция # run_random.mcfunction scoreboard players set #roll random 0 # Сбрасываем предыдущий результат execute positioned ~ ~ ~ run data modify storage minecraft:global random.result set value 0 # Очищаем предыдущее значение execute positioned ~ ~ ~ run function minecraft:random_number # Запускаем функцию для генерации случайного числа execute store result score #roll random run data get storage minecraft:global random.result # Получаем результат 3. Функция генерации случайного числа (minecraft:random_number): Создайте файл data/minecraft/functions/random_number.mcfunction (или в своем неймспейсе). Внутри файла: data modify storage minecraft:global random.result set value 1 # Устанавливаем базовое значение scoreboard players set #rand random 0 # Сброс переменной execute as @e[type=minecraft:area_effect_cloud, limit=1] at @s run kill @s # Удаление Area Effect Cloud (если осталась) summon area_effect_cloud ~ ~ ~ {Duration:1,Effects:[{Id:14,Amplifier:0,Duration:1,ShowParticles:0b}],Tags:["random_cloud"]} # Создание облака, которое будет генерировать число execute as @e[type=minecraft:area_effect_cloud,tag=random_cloud,limit=1] run { data modify storage minecraft:global random.result append value 1 # Шанс 33% получить 1 execute if score #rand random matches 0 run { data modify storage minecraft:global random.result append value 2 # Шанс 33% получить 2 data modify storage minecraft:global random.result append value 3 # Шанс 33% получить 3 } } 4. Объяснение: scoreboard players set #roll random 0: Обнуляет ваш счетчик. execute positioned ~ ~ ~ run data modify storage minecraft:global random.result set value 0: Сбрасывает прошлый результат. execute positioned ~ ~ ~ run function minecraft:random_number: Запускает функцию random_number. execute store result score #roll random run data get storage minecraft:global random.result: Получает результат из Storage и записывает его в scoreboard. minecraft:random_number.mcfunction: data modify storage minecraft:global random.result set value 1: Устанавливает начальное значение в 1. execute as @e[type=minecraft:area_effect_cloud, limit=1] at @s run kill @s: Удаляет предыдущие Area Effect Cloud (для надёжности). summon area_effect_cloud ~ ~ ~ {Duration:1,Effects:[{Id:14,Amplifier:0,Duration:1,ShowParticles:0b}],Tags:["random_cloud"]}: Спавнит облако. execute as @e[type=minecraft:area_effect_cloud,tag=random_cloud,limit=1] run data modify storage minecraft:global random.result append value 1 # Шанс 33% получить 1: Добавляет в список “1”. execute if score #rand random matches 0 run {: Случайным образом получает два числа из списка (2 и 3). data modify storage minecraft:global random.result append value 2: Добавляет 2. data modify storage minecraft:global random.result append value 3: Добавляет 3. 5. Как использовать: После выполнения run_random.mcfunction у игрока с именем #roll на табло «случайное» будет значение 1, 2 или 3. Чтобы проверить это, используйте команду: /scoreboard players get #roll random Как это работает, если вам интересно (подробнее): minecraft:globalХранилище: используется для временного хранения данных. В данном случае для хранения результата рандома. Облако с эффектом области: Облака могут содержать случайные эффекты, которые игра генерирует на основе вероятностей. Важно: run_random.mcfunction (запускает генерацию). minecraft:random_number.mcfunction (содержит логику рандома). minecraft:global (Namespace для хранилища). Тестирование: запускайте run_random.mcfunction много раз и проверяйте результаты, чтобы убедиться, что распределение примерно равномерное (1/3 вероятности для каждого числа). Производительность: для больших объемов генерации случайных чисел оптимизируйте этот код. Если вам нужно очень много, можно создать более сложную систему. Улучшения: Можно добавить возможность менять диапазон. Учтите, что это не идеально равномерно. Minecraft часто округляет числа, поэтому добиться идеальной равномерности сложно, но для большинства задач этого достаточно. если помог пожалуйста Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
В теме 7 сообщений
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти