Top.Mail.Ru
Ответы
Аватар пользователя
3 месяца назад
от

Дуэль и пвп в майнкрафт 1.16.5

Здравствуйте! Делаю свою карту с играми на двоих. Сейчас занялся ПвП битвой, а в голове представления как это сделать нет. Собственно, мне нужно чтобы игрок выбрал себе команду, а другой выбрал другую, после чего их телепортировало на подготовленную мной арену, где они уже сражаются. Какой командой можно сделать выбор команд, и как при начале битвы выдавать оружие и броню? 1.16.5 ванила, без модов и плагинов. GPT-шеры, идите мимо.

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
3мес

Чисто фактически сделать такое можно. Это несложно, но процесс довольно трудоемкий. Попробую описать максимально кратко. Смотри. Арена уже готова?
Окей. Если будешь использовать две, то можно технически расположить их по цветам. Потом шерсть добавим.

12
 /team add red 
/team add blue 

Ну и для команд

12
 /team modify red color red 
/team modify blue color blue 

А дальше можешь поставить два блока, например, красную шерсть и синюю шерсть, и повесить на них команды. Можешь поставить красную шерсть и использовать команду в командном блоке или через setblock.

12
 /execute as @p[tag=!chosen] run team join red @s 
/tag @p add chosen 

Для синей шерсти

12
 /execute as @p[tag=!chosen] run team join blue @s 
/tag @p add chosen 

Ставим счетчик... для 1 на 1 это будет вот так

1
 /execute if score red members matches 1.. if score blue members matches 1.. run function start_duel 

Потом эту функцию надо будет создать.
Создай файл start_duel.mcfunction в папке functions своего мира
Вот сам код функции

1234567891011121314151617181920
 
/tp @a[team=red] X Y Z facing X2 Y2 Z2 
/tp @a[team=blue] X3 Y3 Z3 facing X4 Y4 Z4 

/give @a[team=red] diamond_sword 
/give @a[team=red] diamond_chestplate 
/give @a[team=red] diamond_leggings 
/give @a[team=red] diamond_boots 
/give @a[team=red] diamond_helmet 
 
/give @a[team=blue] diamond_sword 
/give @a[team=blue] diamond_chestplate 
/give @a[team=blue] diamond_leggings 
/give @a[team=blue] diamond_boots 
/give @a[team=blue] diamond_helmet 
 
/effect give @a[team=red] resistance 5 4 true 
/effect give @a[team=blue] resistance 5 4 true 

/tag @a remove chosen 

Ну тут думаю понятно. ХУZ - координаты для красных, X3 Y3 Z3 - для синих
Оружие можешь дать любое, ну это и сам понимаешь.
Теперь нужно же узнать кто победил

1
 /execute unless entity @a[team=blue] run function red_win 
1
 /execute unless entity @a[team=red] run function blue_win 

Ну и всё.
А дальше сам решай, как поступить. Если нужно сообщение о победе, то создай две функции: red_win.mcfunction и blue_win.mcfunction
Для красной

123
 /tellraw @a {"text":"красная команда внезапно победила","color":"red"} 
/tp @a X Y Z 
/team leave @a 

Для синей

123
 /tellraw @a {"text":"синяя команда зачем-то победила:(","color":"blue"} 
/tp @a X Y Z 
/team leave @a 

Тут /tp @a X Y Z - это зона ожидания
Ну и для рестарта через reset_game.mcfunction

12345678
 
/team leave @a 
 
/tag @a remove chosen 
 
/clear @a 
 
/effect clear @a 

Всё. Конец.
Если хош, чтоб система работала автоматически, юзай циклические командные блоки, первый блок проверяет, выбрали ли оба игрока команды, второй блок проверяет, кто победил, третий блок очищает состояние после боя.
Вроде все объяснил