Jump to content

[1.12.1] Modifying damage from custom weapons


MidnightBree

Recommended Posts

So, I'd like to set my custom weapons to do a random amount of damage between X and Y.  What should I do with the original code in order to make this work?
By default, the code only seems to accept a fixed value of damage.
 

public static final ToolMaterial WEAPON_DRAGON = EnumHelper.addToolMaterial("weapon_dragon", 8, -1, 3.0F, 5.0F, 0);


(Also, not entirely necessary, but I'm still trying to get into all this coding business, so if you wouldn't mind explaining what your code suggestion does, it would help me a lot.)

Link to comment
Share on other sites

Well...you'd need a custom sword class, you can't do this with just the tool material enum.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

I tried that, but I think I made a mistake with the code somewhere.


 

package orescape.mod.objects.tools;

import net.minecraft.item.Item;
import net.minecraft.item.ItemSword;

public class DragonLong extends ItemSword
{

	public DragonLong(Item.ToolMaterial material) {
		super(material);

		@Override
		this.attackDamage = randomWithRange(1, 20);
		{
			   float range = Math.abs(max - min) + 1;     
			   return (float)(Math.random() * range) + (min <= max ? min : max);
			}
	}

}

 

Link to comment
Share on other sites

The reason we're saying to learn Java is that you literally wrote nonsense. You need more help than telling you how to change the damage, you need to learn where to put the @Override and braces and how to invoke a method from another class. 

 

I personally recommend learning Java from a book because video tutorials will tempt you to skip the important basics like the fundamental structure of the code blocks. But you don't need a big "Java for Dummies" book. Instead I recommend "Java In Easy Steps" https://www.amazon.com/Java-easy-steps-Covers/dp/1840787538

 

That book is very inexpensive, is not very thick, and gets to all the important parts quickly without being overly boring.

Edited by jabelar

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • im just coping the properties from the glass block whit no occlusion and the  "render_type": "translucent",             public static final RegistryObject<Block> GLASS_PANEL = registerBlock(             "glass_panel",             () -> new panel_pglass(BlockBehaviour.Properties.ofFullCopy(Blocks.GLASS_PANE).noOcclusion(),                     """                     {                     "name":"glass_panel",                     "en_us_lang" : "Glass Panel",                     "es_es_lang" : "Panel De Vidrio",                     "north": "minecraft:block/glass",                     "crafthing_input_c0": "minecraft:glass",                     "cutthing_input_c0": "minecraft:glass",                     "no_drop" : "true"                     }                     """, crear_archivos_glass             ) );           {             "credit": "Made with Blockbench",                 "ambientocclusion": "true",                 "render_type": "translucent",             "elements": [                 {                     "name": "panel",                     "from": [0, 0, 0],                     "to": [16, 16, 4],                     "faces": {                         "north": {"uv": [0, 0, 16, 16], "texture": "#north"},                         "east": {"uv": [12, 0, 16, 16], "texture": "#east"},                         "south": {"uv": [16, 0, 0, 16], "texture": "#south"},                         "west": {"uv": [0, 0, 4, 16], "texture": "#west"},                         "up": {"uv": [16, 16, 0, 12], "texture": "#up"},                         "down": {"uv": [16, 4, 0, 0], "texture": "#down"}                     }                 }             ],   the thing whit this that rain and snow cannot be see trough the block   
    • you need a damage source and use it to hurt the entity thing   DamageSource damagesource;                 //damagesource = level.damageSources().playerAttack((Player) le);//.trident(le, thing);                 damagesource = level.damageSources().mobAttack(player);                 if (thing.hurt(damagesource, damage)) {                     thing.setLastHurtMob(player);                 }    
    • Hellow good days  i have a custome block dead adventurer shaped i use to spawn mobs  but the mobs i spawn has no equipment zombies without nothing and skeletons without bows     minecraft has a series of json files organizing items and block by categories  then there is the minecraft:data/minecraft/tags/items/swords.json   {   "values": [     "minecraft:diamond_sword",     "minecraft:stone_sword",     "minecraft:golden_sword",     "minecraft:netherite_sword",     "minecraft:wooden_sword",     "minecraft:iron_sword"   ] }   and i got mi own json file with the mines /home/usuario/workspace/1.20.4/mercmod/src/main/resources/data/minecraft/tags/items/swords.json {   "values": [     "minecraft:stick",     "mercmod:knife_steel",     "mercmod:sword_steel",     "mercmod:warhammer_steel",     "mercmod:battleaxe_steel",     "mercmod:crowbar",     "mercmod:lance_steel"   ] }   ############################ i wanna use this files, read them, randomly select one and set it for the mob mainhand i spawning    i wanna do something like  ArrayList<String> list = ItemTags.SWORDS.something_getKeys();       data/minecraft/tags/items/arrows.json data/minecraft/tags/items/axes.json data/minecraft/tags/items/hoes.json data/minecraft/tags/items/pickaxes.json data/minecraft/tags/items/shovels.json data/minecraft/tags/items/swords.json
    • https://mclo.gs/GkmIjij  Please, help
    • the world capability works for the current world and its different for every dimension  sound like what you need  the only thing is you cannot access data from a diferent world things like reading a data of the overworld from the nether would nwork
  • Topics

  • Who's Online (See full list)

    • There are no registered users currently online
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.