Ну вот допустим у меня есть переменная i = 0, я хочу чтобы при убийстве моба к i пребавлялось 20 и при перезаходе оставалось 20 и это все отображалось на экран. Я сделал:
в предмете:
public boolean hitEntity(ItemStack par1ItemStack, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase)
{
if(par3EntityLivingBase instanceof EntityPlayer){
if(((EntityPlayer) par3EntityLivingBase).getCurrentEquippedItem() != null && ((EntityPlayer) par3EntityLivingBase).getCurrentEquippedItem().getItem() == armorness.ObsidianGoldenKnife) {
if(par3EntityLivingBase.isPotionActive(armorness.Cooldown) == false){
par2EntityLivingBase.setDead();
armorness.i = armorness.i + 20;
par3EntityLivingBase.addPotionEffect(new PotionEffect(armorness.Cooldown.id, 20*60, 0));
par1ItemStack.damageItem(1, par3EntityLivingBase);
}
else{
((ICommandSender) par3EntityLivingBase).addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Cooldown!"));
}
}
}
return false;
}
Gui:
@SubscribeEvent(priority = EventPriority.NORMAL)
public void EventHandler(RenderGameOverlayEvent event){
if(event.isCancelable() || event.type != ElementType.EXPERIENCE){
return;
}
GL11.glDisable(GL11.GL_LIGHTING);
ScaledResolution sr = new ScaledResolution(Minecraft.getMinecraft(), Minecraft.getMinecraft().displayWidth, Minecraft.getMinecraft().displayHeight);
int width = sr.getScaledWidth();
int heigh = sr.getScaledHeight();
drawString(Minecraft.getMinecraft().fontRenderer, EnumChatFormatting.GOLD + "Gold " + armorness.i, width/2, heigh-35, 65535);
}
а куда тут нбт пихать и вообще как незнаю.
[merge_posts_bbcode]Добавлено: 25.09.2015 02:14:38[/merge_posts_bbcode]
как NBT в гуи отобразить?
[merge_posts_bbcode]Добавлено: 25.09.2015 02:15:06[/merge_posts_bbcode]
У меня что то вроде получается:
public boolean hitEntity(ItemStack par1ItemStack, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase)
{
if (!par1ItemStack.hasTagCompound()) par1ItemStack.setTagCompound(new NBTTagCompound());
NBTTagCompound nbt = par1ItemStack.getTagCompound();
if (nbt != null) {
if (!nbt.hasKey("i")) nbt.setInteger("i", 0);
if (nbt.hasKey("i"))
if(par3EntityLivingBase instanceof EntityPlayer){
if(((EntityPlayer) par3EntityLivingBase).getCurrentEquippedItem() != null && ((EntityPlayer) par3EntityLivingBase).getCurrentEquippedItem().getItem() == armorness.ObsidianGoldenKnife) {
if(par3EntityLivingBase.isPotionActive(armorness.Cooldown) == false){
par2EntityLivingBase.setDead();
int i = nbt.getInteger("i");
i = i + 20;
par3EntityLivingBase.addPotionEffect(new PotionEffect(armorness.Cooldown.id, 20*60, 0));
par1ItemStack.damageItem(1, par3EntityLivingBase);
}
else{
((ICommandSender) par3EntityLivingBase).addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Cooldown!"));
}
}
}
}
return false;
}
}