Posted February 14, 20223 yr How to increase Mob Health and Max Health over 1024? I heard that it need to use Mixin. how to use Mixin???? I use 1.18.1. I found 1.18.1 mixin for 9hours.. What is the way that increase All Mob Health and Max Health over 1024 (use Mixin). Increasing health/maxhealth should be done only once when Mob spawn. Im not goot at Forge Mod developing.... (I've almost only developed bukkit plugins) I hope you kindly let me know. (also Im not goot at English sorry.....) Edited February 15, 20223 yr by IPECTER miss
February 14, 20223 yr Author 5 minutes ago, diesieben07 said: Mixin is not something that is supported. If you really do need a higher max health value, you need to modify the MAX_HEALTH attribute, because its maximum value is 1024. You can use reflection to change it, no need to use coremodding. reflection?
February 14, 20223 yr Author 55 minutes ago, diesieben07 said: It's a Java feature that (among other things) lets you access and modify private fields. However I just noticed that in this case it might be better to use an AccessTransformer, because the field in question (RangedAttribute#maxValue) is also final. hmm.... It's getting harder. How can you modify the health and maxHealth of all mobs 100 times(maxhealth * 100) using AccessTransformer? sorry for asking a lot of questions..
February 15, 20223 yr Author 11 hours ago, diesieben07 said: AccessTransformer is not something that will do that. AccessTransformer can just make that field non-final so you can increase the maximum possible value. Then you can use EntityJoinWorldEvent to add a transient AttributeModifier (AttributeMap#addTransientAttributeModifiers) that increases the max health. Thank you for the explanation. I'll try it and ask you again if there's anything difficult.
February 15, 20223 yr Author 17 hours ago, diesieben07 said: AccessTransformer is not something that will do that. AccessTransformer can just make that field non-final so you can increase the maximum possible value. Then you can use EntityJoinWorldEvent to add a transient AttributeModifier (AttributeMap#addTransientAttributeModifiers) that increases the max health. hmm.. too hard this is my code, but Cant make Maxhealth up 1024.... @SubscribeEvent public void onMobSpawn(EntityJoinWorldEvent e) { if (e.getEntity() instanceof Mob) { Mob mob = (Mob) e.getEntity(); mob.getAttribute(Attributes.MAX_HEALTH).setBaseValue(mob.getAttribute(Attributes.MAX_HEALTH).getBaseValue() * 100); mob.setHealth(mob.getHealth() * 100); } }
February 15, 20223 yr Author I couldn't do anything. I don't know how to set the maximum value of Attributes.MAX_HEALTH. Can you show us the code as an example? I've been looking for it for hours, but it's hard alone.
February 15, 20223 yr Author 42 minutes ago, diesieben07 said: Do not use setBaseValue, add an attribute modifier. Show where you set the maximum value of Attributes.MAX_HEALTH. "add an attribute modifier."? addTransientModifier()? or addPermanentModifier()? else?
February 15, 20223 yr Author 3 minutes ago, diesieben07 said: Have you added the access transformer? addTransientModifier is the correct one, because you re-add the modifier every time the entity joins. I'm creating a mod that set MaxHealth to MaxHealth*100 when only once mob spawned.
February 15, 20223 yr Author 1 hour ago, diesieben07 said: Have you added the access transformer? addTransientModifier is the correct one, because you re-add the modifier every time the entity joins. I complete to add AT (build.gradle) then.. What should i do?
February 15, 20223 yr Author 13 minutes ago, diesieben07 said: Now in FMLCommonSetupEvent#enqueueWork to set maxValue for Attributes.MAX_HEALTH. @SubscribeEvent public void on(FMLCommonSetupEvent e) { e.enqueueWork(Attributes.MAX_HEALTH()??????); } hmm...
February 15, 20223 yr Author Can you tell me just this time? I've never seen anything like that before. supplier? Edited February 15, 20223 yr by IPECTER
February 15, 20223 yr Author 16 minutes ago, diesieben07 said: If you do not know how to set a field, you need to learn basic Java before modding. @SubscribeEvent public void on(FMLCommonSetupEvent e) { e.enqueueWork(() -> Attributes.MAX_HEALTH); } hmm.. it is my best
February 15, 20223 yr Author 1 hour ago, diesieben07 said: Now in FMLCommonSetupEvent#enqueueWork to set maxValue for Attributes.MAX_HEALTH. hmm... e.enqueueWork(() -> Attribute.MAX_HEALTH.getDefaultValue) = 1234567890 ?
February 15, 20223 yr Author 12 minutes ago, diesieben07 said: If you need multiple hours to assign a value to a field you seriously need to go and learn Java basics first before attempting to mod. These are absolutely required essential prerequisites. I've made a lot of plugins, but it's almost the first mod. I don't understand well about the current work and the supplier. I feel like I'm missing something. Edited February 15, 20223 yr by IPECTER
February 15, 20223 yr Author 54 minutes ago, diesieben07 said: You have made "a lot of plugins", but you've never assigned a value to a field before...?! ..... I use JAVA since 2 years ago... but... I mean... I cant understand How to use what e.equeueWork(HERE).. hmm... I cant explain using English that my think well... or.. I might be not able to understand your comments... Edited February 15, 20223 yr by IPECTER
February 15, 20223 yr Author What I want to know is what should be written in parentheses of equeueWork() If I say something weird, please tell me. The translator isn't perfect either. Edited February 15, 20223 yr by IPECTER
February 15, 20223 yr https://stackoverflow.com/questions/25192108/what-is-the-breakdown-for-javas-lambda-syntax
February 15, 20223 yr Author 2 minutes ago, loordgek said: https://stackoverflow.com/questions/25192108/what-is-the-breakdown-for-javas-lambda-syntax oh thx understand!
February 15, 20223 yr Author Therefore e.enqueueWork(() -> { Attribute.MAX_HEALTH.maxValue = 10000000;1 }); !!!! Ill try it morning Edited February 15, 20223 yr by IPECTER
February 15, 20223 yr this is an example where i replace the AttributeValue Note: this code requires this AT (version 1.18.1)
February 15, 20223 yr Author 3 minutes ago, Luis_ST said: this is an example where i replace the AttributeValue Note: this code requires this AT (version 1.18.1) holly.... thank you very much
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.