ChangeDamage
ChangeDamage by FalseVacuum
NOTE: I don't play MineCraft anymore. Please don't ask for new features. They're not going to happen.
Sorry guys, updates are *very* slow! I don't play MineCraft, and I'm super busy with other things. I do enough coding every day.... I would be thrilled to have someone to which to pass on the torch!
Up for takeover! PM me for details.
Features
- Item/weapon damage
- Arrow damage
- Critical damage
- Strength effect
- Weakness effect
- Separate world configurations for damage output (all of the above features)
- Armor protection
- Fall damage (including armor protection during falling)
- Permission to decide if item/weapon damage changes based on the dealer. This also affects critical damage and the weakness and strength effects.
- Ability to configure item/weapon damage output for PvP only or for both PvP and PvE
- Default configuration so that you can avoid playing with things you don't understand yet.
- Responsive development team—I usually get back to you within 24 hours, and I get right on to bug reports.
- Open source
Overview
ChangeDamage is a plugin which allows you to change the damage an item does or the amount armor protects you. For example, you may want to make diamond swords more overpowered than they already are, increasing damage output to 20 (10 hearts). Or maybe you may want to nerf those OP diamond swords, so you decrease the damage output to 5 (2.5 hearts). Maybe, just for grins and giggles, you want the flower to do 200 damage. However you want it, that's how you can do it. You can also change the damage points of a piece of armor. You could buff the unobtainable chain armor, whilst nerfing the overpowered diamond armor!
So what ChangeDamage does is it allows you to change the damage output of any item. You can choose if this applies to PvP only or if this works for PvE. EvP will not be affected (for example, Zombie Pigmen's gold sword's damage output will be constant). It also changed the damage points of a piece of armor.
Commands
The current commands are:
- /changedamage reload - Reload the plugin
- /changedamage release - Disable the plugin (unload it, so you can remove it/replace it)
Future commands may include options to modify damage output of weapons from commands instead of from the text file
Config
- pvponly - true/false - If false, ChangeDamage will affect player versus entities (PvE) in addition to PvP. If true, ChangeDamge will only affect PvP
- verbose - true/false - If true, ChangeDamage will send you all sorts of useless spam messages that help me debug issues. Don't set this to true unless you know what you are doing.
- research - true/false - If true, ChangeDamage will occasionally print out some notes for me. Please report these notes if you get them. They will be marked "[ChangeDamage] [Research]" and will appear in the console. This is to investigate the possibility of adding critical hit support.
- damages - See "Damages", then see "Projectiles"
- armor - See "Armor Points"
- damages.expressions - Allows you to input an equation for how much damage a critical hit does. Variable 'n' is the amount of damage done by the player, rounded down to the nearest even number. Use the subnodes of "damages.expressions" "strength", "weakness", and "critical" to affect damage output for strength effect, weakness effect, and critical damage, respectively. See "Expressions"
- fall - Allows you to decide fall damage. Only activated when the player falls more than 3 blocks. Variable 'd' is the distance fallen, rounded down to the nearest integer. Variable 'a' is the total armor points of the player. Use node "fall.expression" to specify damage. See "Expressions"
Permissions
The permissions nodes for this plugin are:
- vacuum.changedamage - Gives access to /changedamage
- vacuum.changedamage.damage - Default enabled. Disable to make damage output changes not be affected for this player.
Upcoming features
Color scheme:
- In progress
- Suggested
- Completed
These are features I want to add but have not yet done so:
- Change durability
- Armor color
- Mob effects when wearing certain armors (maybe)
- Automatic updating
- Modify enchantment power
- Change potion power
- Potion effect when attacking
PLEASE make suggestions. If it's something easy, you can be sure to find it in the next update!
Bugs
Color scheme:
- Unresolved
- Resolved but not in the current version
- Resolved
Bugs:
- ClassCastException caused by killing Ender Crystals
- Cannot use non-armor pieces as armor (causes an error when falling)
- NPE in arrow calculation
- Arrow permissions weren't working
- Critical damage didn't work
- When performing a critical hit, damage output was reducing
- The fall damage expression was being read from the wrong node
Download
To download the Bukkit approved version, click the "Download" link on the top right hand side of the page.
To download stable versions click here.
-
View User Profile
-
Send Message
Posted Jun 28, 2012@UltrafaceGuy
I don't like this solution, but it should work: http://vacuum-changedamage.googlecode.com/svn/trunk/resources/jars/ChangeDamageExperimental.jar
The only other solution is to have separate priorities. I'll work on implementing that nwo.
-
View User Profile
-
Send Message
Posted Jun 28, 2012@UltrafaceGuy
Up at the top, where it says "Overview" "Files", etc, It says "Subscriptions". Enable comment/file notifications to get an email when the project updates.
Anyways, I'm home now, so I'll get to work seeing if I can find a cleaner work around.
-
View User Profile
-
Send Message
Posted Jun 28, 2012@falsevacuum
I'd gladly test it out. I don't get home myslef for another two, so it'll only be an hour wait anyways. Subscriptions? What do you mean? I'm actually fairly new to owning a bukkit account (Or rather using one).
-
View User Profile
-
Send Message
Posted Jun 28, 2012@UltrafaceGuy
You'd be willing to test? :D That makes my life a lot easier. Plus, Bukkit can be quite slow to upload. I don't get home for another 3 and a half hours or so, so no need to check for another 4 hours at least.
Also, subscriptions + obsessive email checking helps a lot.
-
View User Profile
-
Send Message
Posted Jun 28, 2012You weren't kidding when you said fast o_o
Thank you very much, I'll let you know if it works when you update it. You also might want to just do a dropbox in the comments and not a release at first, I'll keep checking here all day and I could confirm if it works or not before you upload to bukkit dev ;D
-
View User Profile
-
Send Message
Posted Jun 28, 2012@UltrafaceGuy
Although I don't like doing it, I can set the EventPriority to LOW, which will solve the issue, I think.
I'm going to try and see if there's a way to dynamically set the priority to LOW based on the user's preference, otherwise I'll just set it to LOW, but not LOWEST (in case another plugin conflicts with this one). Both are NORMAL priority, so whoever loads first gets the first call, and in this case, LevelsPlus loads first.
I'll update the plugin when I get home (no source code here, because I use a different computer for work and I don't like mixing things up on different computers)
-
View User Profile
-
Send Message
Posted Jun 28, 2012Love the plugin, and it woudl REALLY be perfect for what I want to do, but it doesn't seem to work with my leveling plugin of choice, http://dev.bukkit.org/server-mods/levels-plus/ .
See the problem is, it adds on the damage to the weapon well enough, but AFTER the Levels+ calculater. Basically your damage multiplier is based on exp level, so lets make a hypothetical situation:
I make shears hit 6 damage with your plugin. I hit another player. Levels+ calculates the multiplier for the shears as its default value, 1 dmg, THEN your plugin adds on 5 dmg. So that 5 dmg gets no multiplier!
Normally I'd just assume the two won't work together, but by the looks of his source code, it takes in the total damage and multiplies it. I think that if you are modifying the same damage variable, this is more of a priority thing.
Anyways, if theres any chance they can work together, that would be amazing. What do you think?
-
View User Profile
-
Send Message
Posted Jun 26, 2012Big update coming tomorrow (I already wrote it, I just don't want to have to deal with documenting it today). You can check out the source here: http://code.google.com/p/vacuum-changedamage/.
-
View User Profile
-
Send Message
Posted Jun 15, 2012@ninja8077
Thanks! Also, what version of Bukkit were you using?
-
View User Profile
-
Send Message
Posted Jun 15, 2012Um I got the "research" message in the console.
"We believe a critical hit happened. Please alert the developer." So I am. the message said, "net.minecraft.server.EntityHuman, b"
-
View User Profile
-
Send Message
Posted May 31, 2012@Luxius96
Cool, this is what I was looking for, but I'm not sure if what triggered it was a critical hit.
-
View User Profile
-
Send Message
Posted May 30, 201230.05 22:43:06 [Server] INFO [ChangeDamage] [Research] Please alert the developer!net.minecraft.server.EntityHuman, attack
30.05 22:43:06 [Server] INFO [ChangeDamage] [Research] We believe a critical hit happened. Please alert the developer.
-
View User Profile
-
Send Message
Posted May 30, 2012@Luxius96
Use any one of these: (-1 means "use what MineCraft says", which happens to be 9 for diamond sword)
OR
OR
OR
-
View User Profile
-
Send Message
Posted May 29, 2012how can i give diamond sword default attack?
-
View User Profile
-
Send Message
Posted May 29, 2012@Luxius96
How do you mean? If you want to add items, simply use their IDs or modify items.txt. If you want to change armor protection, just use the ID or change items.txt (the item must extend ItemArmor). Or something else?
-
View User Profile
-
Send Message
Posted May 28, 2012Can you add support for mod equivalent exchange and IC2? <3<3
-
View User Profile
-
Send Message
Posted May 28, 2012@IceAndBlood
I have a question though: seeing as durability bars are client side, how important is the bar?
-
View User Profile
-
Send Message
Posted May 28, 2012@Ratkoon
I would agree. Adding in durability would be great. Total control over weapons and armor would make this plugin even more useful, even though it already is very.
-
View User Profile
-
Send Message
Posted May 27, 2012New build, 1.4.0 is out!
Sadly, no big updates, but some work on critical damage is being done. There's a new option in the config, "research". Please leave it to "true" unless it starts spitting out a lot of stuff. If and when you receive a message preceded by "[ChangeDamage] [Research]", please copy and paste the message to this page in a comment. If you have a description of what caused it, that would be amazing.
I also resolved the null pointer caused by arrows when no arrow damage was defined.
Thanks a lot!
-
View User Profile
-
Send Message
Posted May 27, 2012It looks like critical damage won't happen. I stumbled upon the code for it on line 746 of EntityHuman.java in method attack(net.minecraft.server.Entity), Craft build 1.2.5-R2.0. The bad news is that it is entirely hard coded into the server, so you can't modify it or intercept it, and it is random, so you can't extrapolate and find the original damage.
The only way I can think of to do it is to inject my own random object, and as I'm writing that, it might just work...
I hope I get this done before I leave!