Гефест Опубликовано 22 июня Поделиться Опубликовано 22 июня Здрасте мне нужен счетчик смерти у команды RED и BLUE чтоб у них они были разными и отображались в табе /scoreboard objectives setdisplay list deathCount RED если у этой команды будет 80 смертей то она проигрывает и выходит команда (Но как мне сделать чтоб у всех игроков которые состоят в этой команде сделать общее количество смертей? Если 1 один умирает то и 1 смерть дается всем) Можно так сделать? Ссылка на комментарий Поделиться на другие сайты Поделиться
щерБАНский Опубликовано 22 июня Поделиться Опубликовано 22 июня scoreboard objectives add teamDeaths dummy scoreboard objectives add deathCount deathCount scoreboard players reset @a[scores={deathCount=1..}] deathCount execute as @a[scores={deathCount=1..},team=BLUE] run scoreboard players add @a[team=BLUE] teamDeaths 1 execute as @a[scores={deathCount=1..},team=RED] run scoreboard players add @a[team=RED] teamDeaths 1 scoreboard players set @a teamDeaths 0 execute if score @a[team=RED,limit=1] teamDeaths matches 80.. run say 123 scoreboard players set @a teamDeaths 0 execute if score @a[team=BLUE,limit=1] teamDeaths matches 80.. run say 123 Ссылка на комментарий Поделиться на другие сайты Поделиться
Щербатый бесстыдник Опубликовано 22 июня Поделиться Опубликовано 22 июня Не хочу душнить, но если ты один раз научишься скорбордам, то у тебя больше не будет вопросов https://minecraft-inside.ru/forum/topic/155041-scoreboard-гайд-113/ Для нашей задачи нужно создать скорборд который будет считать смерти, для этого пишем: /scoreboard objectives add SuperGay deathCount SuperGay это имя, я его выбрал по приколу, оно может быть любым deathCount это тип, он определяет то что игрок будет получать очко после смерти Чтобы проверить, отобрази скорборд при помощи команды: /scoreboard objectives setdisplay Теперь умри. Тебе в скорборд должно прибавиться очко (оставь, позже пригодится), это будет работать для всех игроков. Но хранить важные для игры числа в игроках не очень удобно, так как игроки могут выйти из игры. К тому же нам нужно хранить смерти в виде одного числа, для удобство проверки. Для того чтобы сделать по крутому пиши следующие 2 команды: /scoreboard players set *Dead_Red SuperGay 0 /scoreboard players set *Dead_Blue SuperGay 0 Ты создал что-то вроде переменных, мы можем записывать в них любые числа и делать с ними любые математические операции. При этом мы можем не бояться что в игру зайдёт игрок с таким же ником и всё нам сломает, потому что ников с символом * не бывает. Кароч ты меня понял. Теперь давай научимся проверять игроков с числами в скорборде. Если у тебя есть очко за смерть, то пиши эту команду: /execute as @a if score @s SuperGay matches 1.. run give @s minecraft:red_wool Если выдалась шерсть, значит всё работает. matches 1.. - обозначает что число равняется единице, а .. значит что числа побольше тоже подойдут. То есть проверка пройдёт если у игрока скорборд >= 1. Ещё можно использовать более умную версию этой команды, проверять через селектор, вот так: /execute as @a[scores={SuperGay=1}] run give @s minecraft:red_wool @a обозначает что следующий текст будет от лица всех игроков, а @s обозначает от первого лица. Например: /execute as @a[team=Red] run give @s minecraft:red_wool - команда проиграется от лица КРАСНЫХ игроков и выдаст шерсть им всем /execute as @a run give @s[team=Red] minecraft:red_wool - команда проиграется от лица ВСЕХ игроков, но выдаст шерсть только красным Если объединить всё что мы узнали ранее то мы получим такую команду: execute as @a[team=Red] if score @s SuperGay matches 1.. run scoreboard players reset @s SuperGay Она переводится примерно так - Если игрок в красной команде имеет число >= единицы то ему чистится скорборд. Теперь нам надо чтобы сразу после этой команды, производилась ещё одна, для этого ставим сверху цикличный, всегда активный, условный, блок и пишем в нём следующее: scoreboard players add *Dead_Red SuperGay 1 execute as @a[team=Red] if score @s SuperGay matches 1.. run scoreboard players reset @s SuperGay Важно чтобы стрелки блоков смотрели в одну сторону. Теперь когда игрок в красной команде будет умирать, в переменную *Dead_Red будет прибавляться число. Тоже самое повтори с синей командой. Теперь когда у нас есть считалка, мы можем сделать проигрывание команды после достижения 80 очков. execute if score *Dead_Red SuperGay matches 80.. run say игра закончилась, синие победили Rozy и Anton1290347856 1 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Гефест Опубликовано 22 июня Автор Поделиться Опубликовано 22 июня Спасибо все работает! Ссылка на комментарий Поделиться на другие сайты Поделиться
щерБАНский Опубликовано 22 июня Поделиться Опубликовано 22 июня 7 минут назад, Гефест сказал: Спасибо все работает! а тебе на какую версию? Ссылка на комментарий Поделиться на другие сайты Поделиться
Гефест Опубликовано 22 июня Автор Поделиться Опубликовано 22 июня Еще помощь нужна можно сделать так если Боссбар закончился то та команда кто больше сделала смертей проиграла (воспоизводиться команда) Сам боссбар можете неписать)) 1.20.1 Ссылка на комментарий Поделиться на другие сайты Поделиться
щерБАНский Опубликовано 22 июня Поделиться Опубликовано 22 июня 1 час назад, Гефест сказал: Еще помощь нужна можно сделать так если Боссбар закончился то та команда кто больше сделала смертей проиграла (воспоизводиться команда) Сам боссбар можете неписать)) 1.20.1 ну просто когда у боссбара значение 0. Проверяй у кого больше значение и выполняй команду Ссылка на комментарий Поделиться на другие сайты Поделиться
Гефест Опубликовано 23 июня Автор Поделиться Опубликовано 23 июня Как мне это проверить? Ссылка на комментарий Поделиться на другие сайты Поделиться
щерБАНский Опубликовано 23 июня Поделиться Опубликовано 23 июня 11 минут назад, Гефест сказал: Как мне это проверить? ну если боссбар привязан к скорбоарду то вот так execute if score t time matches 0 run say 123 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
В теме 9 сообщений
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти