- 12
- 0
Недавно возникла проблема с изменением здоровья игрока. Банально - максимально выводит и использует только 1024. Не больше.
Меняю в апдейте игрока его макс. хп по формуле:
Вывожу на экран при рендере хп:
Получаю в игре:
Есть ли способ задать большее, чем 1024 здоровье игроку? Возможно SharedMonsterAttributes не совсем для этого подходят?
Меняю в апдейте игрока его макс. хп по формуле:
Код:
public void update(EntityPlayer player)
{
if (player.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).getBaseValue() < (20 + ((this.level - 1) * 4.096F) * (2.048F * (this.level-1))) {
player.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(20 + ((this.level - 1) * 4.096F) * (2.048F * (this.level-1)));
}
}
Вывожу на экран при рендере хп:
Код:
if (e.getType() == RenderGameOverlayEvent.ElementType.HEALTH) {
FontRenderer font = this.mc.fontRenderer;
ScaledResolution res = new ScaledResolution(this.mc);
int width = res.getScaledWidth();
int height = res.getScaledHeight();
double percent = this.mc.player.getHealth() / this.mc.player.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).getBaseValue();
String str = String.format("%.0f/%.0f", new Object[] { this.mc.player.getHealth() + this.mc.player.getAbsorptionAmount(), (float) this.mc.player.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).getBaseValue() });
if (font.getStringWidth(str) > 79) {
str = String.format("%.0f", new Object[] { (float) (this.mc.player.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).getBaseValue() + this.mc.player.getAbsorptionAmount()) });
}
rect(width / 2 - 91, height - 40, 81, 9, 2130706432);
rect(width / 2 - 90, height - 39, 79, 7, 1056964608);
rect(width / 2 - 90, height - 39, (int)(percent * 79.0D), 7, -1073807360);
string(str, width / 2 - 90, height - 39, 16777215);
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
this.mc.getTextureManager().bindTexture(ICONS);
e.setCanceled(true);
} else {}
Есть ли способ задать большее, чем 1024 здоровье игроку? Возможно SharedMonsterAttributes не совсем для этого подходят?