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

Потеря очков при смерти вместо инвентаря


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

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

Здравствуйте! Создали задачу, сделали магазин, очки статистики являются валютой, всё хорошо - всё работает.

Появилась идея, чтобы игрок при смерти терял определённое количество очков (Денег) и сохранял инвентарь. Естественно если денег не хватает, то игрок теряет инвентарь.

Подскажите пожалуйста, есть ли такая возможность? Если есть, то как вё это правильно прописать?

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

29 минут назад, Shomen сказал:

в процентах?

Нет. определенное кол-во, например 1000.  Допустим: у игрока 1547 очков. При смерти у него списывается 1000 очков и сохраняется инвентарь. Если у игрока 547 очков, то при смерти он теряет инвентарь.

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

сделай для всех сохранение инвентаря

при смерти если игроку не хватает очков то очищай инвентарь

если хватает то списывай очки

 

 

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

5 минут назад, Shomen сказал:

сделай для всех сохранение инвентаря

при смерти если игроку не хватает очков то очищай инвентарь

если хватает то списывай очки

 

 

А как сама команда выглядеть должна?

Магазин выглядит следующим образом:

Первый командный блок - /execute as @a[distance=..4,scores={Coints=40..}] at @s run scoreboard players remove @p Coints 40. Импульсный, безусловный, нужен сигнал.

Второй командный блок - /give @p minecraft:beetroot 1. Цепной, условный, всегда активный.

К сожалению мало кто объясняет смысл всех значений, так что я только третью часть этих команд понимаю((

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

3 минуты назад, Catherine сказал:

Первый командный блок - /execute as @a[distance=..4,scores={Coints=40..}] at @s run scoreboard players remove @p Coints 40. Импульсный, безусловный, нужен сигнал.

выполнить от игроков [в промежутке меньше 4, с задачей Count 40 и более] относительно этого же игрока команду (команда)

as - кто будет исполнителем команды

distance - игроки в промежутке относительно командного блока(так как изначально он выполняет команду и относительно него выполняется команда, так же работает с игроками)

score - я думаю понятно

at - относительно цели по координатам, @s обозначает исполнителя, а так как до это исполнителем был указаны игроки, то команда будет выполнятся относительно них

в первой команде лучше использовать @s вместо @p

а во вторую добавить часть с execute из первой и так же использовать @s вместо @p

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

4 часа назад, Shomen сказал:

выполнить от игроков [в промежутке меньше 4, с задачей Count 40 и более] относительно этого же игрока команду (команда)

as - кто будет исполнителем команды

distance - игроки в промежутке относительно командного блока(так как изначально он выполняет команду и относительно него выполняется команда, так же работает с игроками)

score - я думаю понятно

at - относительно цели по координатам, @s обозначает исполнителя, а так как до это исполнителем был указаны игроки, то команда будет выполнятся относительно них

в первой команде лучше использовать @s вместо @p

а во вторую добавить часть с execute из первой и так же использовать @s вместо @p

Не скажу, что всё стало понятно, но уже есть с чем разбираться))) Благодарю. Буду пробовать. 

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

В 12.02.2023 в 13:17, Shomen сказал:

сделай для всех сохранение инвентаря

при смерти если игроку не хватает очков то очищай инвентарь

если хватает то списывай очки

 

 

Как написать условие (при смерти)? У меня инвентарь чистится постоянно, циклично((((

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

9 минут назад, Shomen сказал:

счётчик создай который смерти считает

Была такая мысль. Создана такая задача. Но тогда нужно как-то обнулять этот счетчик. Как это сделать?

13 минут назад, Shomen сказал:

счётчик создай который смерти считает

А нет такой возможности с if?

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

3 минуты назад, Catherine сказал:

Но тогда нужно как-то обнулять этот счетчик. Как это сделать?

просто как команду в конце списка

execute if score (игрок) death matches 1.. if ... run (команда 1)

... 

execute if score (игрок) death matches 1.. if ... run (команда n) 

execute if score (игрок) death matches 1.. if ... run (обнуление счётчика)

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

2 минуты назад, Shomen сказал:

просто как команду в конце списка

execute if score (игрок) death matches 1.. if ... run (команда 1)

... 

execute if score (игрок) death matches 1.. if ... run (команда n) 

execute if score (игрок) death matches 1.. if ... run (обнуление счётчика)

Меня осенило... ничего не получится(( это же командный блок всегда должен быть прогружен

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

1 час назад, Catherine сказал:

Меня осенило... ничего не получится(( это же командный блок всегда должен быть прогружен

А возможно сделать, чтобы у игрока списывались очки или чистился инвентарь, когда он возрождается? Или команда будет работать на всех, кто возрождается и тех кто просто мимо прошел?

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

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

при смерти если игроку не хватает очков то очищай инвентарь

2 КБ и нажимная плита на точке спавна, по принципу магазина.

Первый КБ - команда как и в магазине

Второй - /execute as @a[scores={Coints=..999}] at @s run clear

(Смерть стоит 1000 очков)

Всё работает до момента, пока у игрока не остаётся менее 2000 очков. Если счет 2000 и более - просто списывается 1000. Если 1999, то списывается 1000 очков и чистится инвентарь.

Как исправить?

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

17 часов назад, Catherine сказал:

Меня осенило... ничего не получится(( это же командный блок всегда должен быть прогружен

делай в датапаке

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

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

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

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

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

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

Войти

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

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

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