Перейти к содержанию

Как после смерти игрока изменить режим игры с выживания на спектатора и обратно?


Рекомендуемые сообщения

В теме 9 сообщений

Здравствуйте! Я делаю свой режим в майнкрафт на командных блоках (да, я немного сумасшедший), и столкнулся с проблемой. Мне нужно, чтобы после смерти игрок становился спектатором, а через некоторое время возрождался снова в выживание. Т.к. редим будет многопользовательским, мне нужно чтобы переход в режим спектатора не затрагивал других игроков. Если дополнительно напишите какой тип командного блока использовать(импульсный, цикличный или цепной), то буду очень благодарен. Заранее, спасибо!

Ссылка на комментарий
Поделиться на другие сайты

Следующее пишем в чат:

/scoreboard objectives add <название> deathCount (создаём скорборд)

/scoreboard objectives setdisplay sidebar <название> (чтобы включить отображение скорборда)

/scoreboard objectives setdisplay sidebar (чтобы выключить отображение)

/scoreboard objectives remove <название> (если надо будет удалить)

/scoreboard players reset * <название> (чтобы отчистить скорборд)

Далее для наглядности советую тебе умереть. После возрождения в твой скорборд должна прибавиться единичка. Потом отчисть скорборд и приступай к командным блокам

 

Следующее пишем в цикличный командный блок:

execute as @a at @s if score @s <название> matches 1.. run scoreboard players add @s <название> 1 (типо таймер)

execute as @a at @s if score @s <название> matches 1200 run scoreboard players reset @s <название> (сбрасывает таймер когда будет 1200 тиков)

 

execute as @a[gamemode=!creative] at @s unless score @s <название> matches 1.. run gamemode survival @s

execute as @a[gamemode=!creative] at @s if score @s <название> matches 1.. run gamemode spectator @s

 

Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, Sench_mp4 сказал:

Следующее пишем в чат:

/scoreboard objectives add <название> deathCount (создаём скорборд)

/scoreboard objectives setdisplay sidebar <название> (чтобы включить отображение скорборда)

/scoreboard objectives setdisplay sidebar (чтобы выключить отображение)

/scoreboard objectives remove <название> (если надо будет удалить)

/scoreboard players reset * <название> (чтобы отчистить скорборд)

Далее для наглядности советую тебе умереть. После возрождения в твой скорборд должна прибавиться единичка. Потом отчисть скорборд и приступай к командным блокам

 

Следующее пишем в цикличный командный блок:

execute as @a at @s if score @s <название> matches 1.. run scoreboard players add @s <название> 1 (типо таймер)

execute as @a at @s if score @s <название> matches 1200 run scoreboard players reset @s <название> (сбрасывает таймер когда будет 1200 тиков)

 

execute as @a[gamemode=!creative] at @s unless score @s <название> matches 1.. run gamemode survival @s

execute as @a[gamemode=!creative] at @s if score @s <название> matches 1.. run gamemode spectator @s

 

Зачем в каждый execute добавлять at @s если он ни как не используется? Это лишняя нагрузка

Ссылка на комментарий
Поделиться на другие сайты

43 минуты назад, garmxd сказал:

Зачем в каждый execute добавлять at @s если он ни как не используется? Это лишняя нагрузка

блин, внатуре затупил чтото. Вот адаптированный варик
scoreboard players add @a{scores={<название>=1..}} <название> 1

scoreboard players reset @a{scores={<название>=1200}} <название>

gamemode survival @a{gamemode=!creative,scores={<название>=1..}}

Ссылка на комментарий
Поделиться на другие сайты

3 часа назад, Sench_mp4 сказал:

Следующее пишем в чат:

/scoreboard objectives add <название> deathCount (создаём скорборд)

/scoreboard objectives setdisplay sidebar <название> (чтобы включить отображение скорборда)

/scoreboard objectives setdisplay sidebar (чтобы выключить отображение)

/scoreboard objectives remove <название> (если надо будет удалить)

/scoreboard players reset * <название> (чтобы отчистить скорборд)

Далее для наглядности советую тебе умереть. После возрождения в твой скорборд должна прибавиться единичка. Потом отчисть скорборд и приступай к командным блокам

 

Следующее пишем в цикличный командный блок:

execute as @a at @s if score @s <название> matches 1.. run scoreboard players add @s <название> 1 (типо таймер)

execute as @a at @s if score @s <название> matches 1200 run scoreboard players reset @s <название> (сбрасывает таймер когда будет 1200 тиков)

 

execute as @a[gamemode=!creative] at @s unless score @s <название> matches 1.. run gamemode survival @s

execute as @a[gamemode=!creative] at @s if score @s <название> matches 1.. run gamemode spectator @s

 

самые подробные ответы только у тебя)

Ссылка на комментарий
Поделиться на другие сайты

Привык слишком к большому количеству проверок, позабыл что можно и без execute в редких случаях обойтись)

Ссылка на комментарий
Поделиться на другие сайты

15 минут назад, PhoenixTechu сказал:

самые подробные ответы только у тебя)

спасибо бро, я у тебя всему учился)

Ссылка на комментарий
Поделиться на другие сайты

Спасибо за решение, но к сожалению оно у меня не работает. Возможно я что-то неправильно написал

В 07.11.2025 в 14:33, Sench_mp4 сказал:

блин, внатуре затупил чтото. Вот адаптированный варик
scoreboard players add @a{scores={<название>=1..}} <название> 1

scoreboard players reset @a{scores={<название>=1200}} <название>

gamemode survival @a{gamemode=!creative,scores={<название>=1..}}

 

В 07.11.2025 в 11:26, Sench_mp4 сказал:

Следующее пишем в чат:

/scoreboard objectives add <название> deathCount (создаём скорборд)

/scoreboard objectives setdisplay sidebar <название> (чтобы включить отображение скорборда)

/scoreboard objectives setdisplay sidebar (чтобы выключить отображение)

/scoreboard objectives remove <название> (если надо будет удалить)

/scoreboard players reset * <название> (чтобы отчистить скорборд)

Далее для наглядности советую тебе умереть. После возрождения в твой скорборд должна прибавиться единичка. Потом отчисть скорборд и приступай к командным блокам

 

Следующее пишем в цикличный командный блок:

execute as @a at @s if score @s <название> matches 1.. run scoreboard players add @s <название> 1 (типо таймер)

execute as @a at @s if score @s <название> matches 1200 run scoreboard players reset @s <название> (сбрасывает таймер когда будет 1200 тиков)

 

execute as @a[gamemode=!creative] at @s unless score @s <название> matches 1.. run gamemode survival @s

execute as @a[gamemode=!creative] at @s if score @s <название> matches 1.. run gamemode spectator @s

 

 

Ссылка на комментарий
Поделиться на другие сайты

# Создай задачи
scoreboard objectives add death_count deathCount
scoreboard objectives add death_timer dummy
 
# Цикл
gamemode spectator @a[scores={death_count=1..}]
scoreboard players set @a[scores={death_count=1..}] death_timer 600
scoreboard players reset @a[scores={death_count=1..}] death_count
 
scoreboard players remove @a[scores={death_timer=1..}] death_timer 1
gamemode survival @a[scores={death_timer=0}]
scoreboard players reset @a[scores={death_timer=0}] death_timer

Где 600 - подставь своё значение

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...