Итак, вот так выглядит сама формула:
формула для расчета здоровья мобов
Теперь для каждого значения в формуле нам нужно создать событие в системе счета игровых событий для того, чтобы при помощи скорборд определять эти значения в игре или начислять в эти значения очки.
1. Событие для значения фактического здоровья:
/scoreboard objectives add ActH dummy
2. Событие для предыдущего здоровья моба6
/scoreboard objectives add PreH dummy
3. Событие, определяющее наносимый игроком урон мобу:
/scoreboard objectives add DTake dummy
4. Событие для числа 100:
/scoreboard objectives add 100 dummy
5. Событие для максимального здоровья моба, которое у него может быть по умолчанию:
/scoreboard objectives add MaxH dummy
еще создадим событие, в котором игра будет считать урон, нанесенный игроком мобу. В этом событии критерий damageDealt сам будет считать наносимый игроком урон. Это значение и будет основополагающим для всех остальных расчетов в формуле.
6. /scoreboard objectives add Dp stat.damageDealt
и установим сразу же 100 очков для созданного события с именем 100 фиктивному игроку, которого также назовем цифрой 100
7. /scoreboard players set 100 100 100
Итак, все необходимые события для подсчета данных в формуле мы задали. Теперь организуем командами саму механику подсчета данных, чтобы игра их считала и выводила результат на индикатор
/scoreboard players tag @e[type=!Player,r=20] add Indicator
/scoreboard players operation @e[tag=Indicator,r=5] DTake += @p Dp
3. Далее нам нужно сразу сбросить очки урона игрока в событии на нанесение им урона мобу. Это нужно для того, чтобы количество его очков с каждым тактом дальше не прибавлялось мобу в событие урона. Т.е игрок нанес урон мобу ударом, количество нанесенного урона игроком прибавилось к урону моба один раз после удара. Очки нанесенного урона игроком сбросились, их больше нет и они больше не прибавляются с каждым игровым тактом в событие урона мобу. Если мы этого не сбросим очки, то нанесенный ударом игрока урон будет плюсоваться мобу каждый такт, даже если игрок его больше не трогает, так как вся наша схема подключена по цепи к генератору импульсов, который создает первый командный блок, находящийся в режиме повторения.
/scoreboard players reset @a[score_Dp_min=1] Dp
4. Следующей командой мы у мобов с тэгом Indicator удаляем этот тэг, чтобы у моба не было этого тэга. Так как он будет снова даваться после десяти тактов только мобу, получившему урон, и именно мобу с этим тэгом будет вновь прибавляться в событие очки урона, полученные от игрока.
/scoreboard players tag @e[tag=Indicator] remove Indicator
5. Теперь всем мобам в радиусе 20 блоков от игрока откроем счет в событиях на предыдущее и на максимальное здоровье моба. Счет мы устанавливаем затем, что нам нужны значения в этих событиях у мобов, чтобы подставлять их в формулу. Счет мы задаем путем прибавления всем мобам в радиусе 20 блоков от игрока по нулю очков в этих событиях. Это очень удобно. С одной стороны этими командами мы открываем счет мобам в этих событиях, а с другой стороны в последствии эти команды не будут влиять на изменения этих значений, так как прибавляют по нулю очков. И поэтому мы можем без последствий влиять на этот счет другими нужными командами и событиями.
/scoreboard players add @e[type=!Player,r=20] PreH 0
/scoreboard players add @e[type=!Player,r=20] MaxH 0
6. Далее при помощи команды мы выполняем первое действие в формуле: вычитаем из предыдущего здоровья моба полученный им урон и получаем фактическое здоровье моба после удара по нему
7. Далее сразу сбрасываем значение полученного мобом урона, чтобы оно постоянно не вычиталось из предыдущего здоровья моба PreH
/scoreboard players reset @e[score_DTake_min=1,type=!Player] DTake
/scoreboard players tag @e[score_PreH_min=1,type=!Player] add percent
9. После этого мобам с этим тэгом устанавливаем очки в событии ActH (фактическое здоровье моба) равным количеству очков в событии PreH (предыдущее здоровье моба).
/scoreboard players operation @e[r=0,c=1,type=!Player] ActH = @e[r=0,c=1,type=!Player] PreH
/scoreboard players operation @e[r=0,c=1,type=!Player] ActH *= 100 100
11. Далее у моба с тэгом percent делим фактическое здоровье, которое он имеет в данным момент на максимальное значение здоровье, которое у него было при спауне по умолчанию либо которое было задано при спауне командой.
/scoreboard players operation @e[r=0,c=1,type=!Player] ActH /= @e[r=0,c=1,type=!Player] MaxH
12. И также следующей командой мы удаляем у моба с тэгом percent этот тэг
[b]/scoreboard players tag @e[tag=percent] remove percent
scoreboard players set @e[type=zombie,score_MaxH=0,score_MaxH_min=0] Maxh 200
scoreboard players set @e[type=zombie,score_PreH=0,score_PreH_min=0] PreH 200
Как прибавить хп мобу майнкрафт
ХП – сокращенно от англ. «Health Power», что фактически значит «жизненная мощь».
ХП в майнкрафте это фактически количество очков жизней, которое и является индикатором здоровья, по которому можно судить на что вы собственно теперь готовы. Находится данный индикатор в нижней центральной части экрана и представлен набором определенного количества сердечек (в сандартном наборе, так как есть моды, которые показывают количество очков жизни несколько иначе).
Индикатор жизненной энергии в майнкрафт
При этом следует учесть, что одно сердечко фактически является 2 очками жизни, т.е. на индикаторе находятся 10 сердечек из чего с помощью нехитрых математических манипуляций можно понять, что у вас на данный момент 20 ХП.
В результате удачной атаки враждебного моба из вашего индикатора жизней будет вычитаться величина, равная силе атаки (на уменьшение этого числа будет влиять одетая броня и различные положительные эффекты).
Это очень удобно, так как можно вовремя сообразить, что пора делать ноги – в противном случае гибель будет неминуема или же напротив – понять, что на противника здоровья еще хватит.
Как восстановить ХП — это довольно просто, однако, есть некоторые факторы, т.е. насколько скоро вам необходимо восполнение, если есть достаточно времени, то постепенно шкала жизни будет восстанавливаться сама, при условии, что вы не голодны или более «динамичный» способ — использование золотого яблока или зачарованного золотого яблока(линк), которые дают временный эффект регенерации, в результате которого жизни будут восполняться гораздо быстрее.

