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.
@Mayhem777
No, but it would be easy to add. I just have to get this computer configured with that stuff.
@oopomopoo
Can you set "verbose" to true in the config, please? That should give me more details.
Also, I take it "America" is your world? Is the capitalization correct?
I'm really confused. I have it loaded and set up, but the damage values are not added. The DOS window shows the damage and armor is loaded properly, but in game the tools still do the normal amount of damage.
The plugins I'm using currently are: Boseconomy, Citizens, Globalshop, MobBountyReloaded, MobHealth. Mobs, Monster Apocalypse, Narrowtuxlib, Pluginmetrics, Showcase. I have no idea if something is interfering with it or what's going on.
I know it's not working because the armor gives the default value, same as weapons. I've tested both in number of hits to kill a zombie as well as Mobhealth. The wooden sword does 4 damage and takes 5 hits to kill a zombie with 20 health. This is a small portion of the text file;
(Server name is America. Yeah!) damages: America: WOODEN_SWORD: 1.5 STONE_SWORD: 2 IRON_SWORD: 3
armor: America: LEATHER_HELMET: 0.5 CHAINMAIL_HELMET: 1
Can i change de damage from snowballs?
So far so good on 1.6.6!
@Zefram
Huh?
SVN version work now~~
expect Change durability
It seems there's an issue with 1.6.5. I will try to replicate it. In the meantime, please use 1.6.3. (the main 1.6.5 fix should have applied anyways)
@jeremybombed You can't have external updaters. It makes sense: if you update from an external source, anyone could throw anything up, and in this way, the developer (or someone who gains unauthorized access) could give you a virus. Not that I would do that, but you don't know that and Bukkit doesn't know that, at least not that they're willing to bet your computer's safety on.
Edit: I isolated the problem. The plugin was reading from fall.equation rather than fall.expression. I will have a fix up as soon as I get rid of my unfinished updates.
Edit2: Successfully updated. Now just wait for Bukkit Dev to approve >.> You can always download the latest version from my SVN at http://vacuum-changedamage.googlecode.com/svn/trunk/resources/jars/stable, but those versions may not have been bukkit approved.
Why in the world is the updater not allowed? VoxelUpdater does it...
I deleted the folder with the config and it still does it:
6:02:55 PM [INFO] [ChangeDamage] Loading fall expression 6:02:55 PM [SEVERE] Error occurred while enabling ChangeDamage v1.6.5 (Is it up to date?) vacuum.changedamage.equations.element.ElementFormatException: Illegal element: at vacuum.changedamage.equations.ExpressionParser.parsePostfix(ExpressionParser.java:60) at vacuum.changedamage.ChangeDamagePlugin.loadFall(ChangeDamagePlugin.java:243) at vacuum.changedamage.ChangeDamagePlugin.reload(ChangeDamagePlugin.java:195) at vacuum.changedamage.ChangeDamagePlugin.onEnable(ChangeDamagePlugin.java:180) at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:215) at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:337) at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:381) at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:256) at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:238) at net.minecraft.server.MinecraftServer.t(MinecraftServer.java:381) at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:368) at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:197) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:432) at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
I am getting the exact same error as Zeluboba....it was fine a few minutes ago and now its broken I dont get it. Heres my config:
pvponly: false verbose: false research: true armor: default: CHAINMAIL_BOOTS: 8 CHAINMAIL_CHESTPLATE: 13 CHAINMAIL_HELMET: 8 CHAINMAIL_LEGGINGS: 11 fall: expression: d 3 - a 0 * + damages: default: DIAMOND_SWORD: 9 expression: critical: i i 2 / 2 + rand * fl + weakness: i 2 w << - strength: i 3 s << +
I actually don't want to mess with the fall or damage expressions, if I can just prevent that from loading completely I would.
@Zeluboba
Did you put two spaces in? ElementFormatException usually displays a cause, but, seeing as there are no causes, I assume that it's because the cause was there there was no cause. The ExpressionParses reads between the spaces, and if you have two spaces, there's nothing between the spaces, which confuses it. I'll have to fix that nuisance, along with all the other ones.
2012-07-04 01:05:32 [SEVERE] Error occurred while enabling ChangeDamage v1.6.5 (
Is it up to date?)
vacuum.changedamage.equations.element.ElementFormatException Illegal element:
at vacuum.changedamage.equations.ExpressionParser.parsePostfix(Expressio
nParser.java:60
at vacuum.changedamage.ChangeDamagePlugin.loadFall(ChangeDamagePlugin.ja
va:243)
at vacuum.changedamage.ChangeDamagePlugin.reload(ChangeDamagePlugin.java
:195)
at vacuum.changedamage.ChangeDamagePlugin.onEnable(ChangeDamagePlugin.ja
va:180)
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:215)
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader
.java:337)
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManage
r.java:381)
at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:256)
at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:238
)
at net.minecraft.server.MinecraftServer.t(MinecraftServer.java:381)
at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:368)
at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:197)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:432)
at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
@DCWH
You don't have a value for your expressions, it seems. Try deleting your damages.expression node and letting it remake itself.
@Zefram
This is because you have an empty node in the armor configuration, specifically an empty world.
@UltrafaceGuy
There were some delays with 1.6.4 that ended up making me remove my prototype autoupdater. (Bukkit Dev policy is that all autoupdaters can only use Bukkit Dev servers)
@Zefram
I don't think that's me. I always use ex.printStackTrace(), not System.out.println(ex);
can you hide this spam?
thanks
19:55:15 [SEVERE] java.lang.ClassCastException
19:55:17 [SEVERE] java.lang.ClassCastException
19:55:19 [SEVERE] java.lang.ClassCastException
19:55:21 [SEVERE] java.lang.ClassCastException
19:55:22 [SEVERE] java.lang.ClassCastException
19:55:24 [SEVERE] java.lang.ClassCastException
I totally forgot to update to 1.6.5 and have just been using 1.6.3 with a changed critical expression :>
[SEVERE] Error occurred while enabling ChangeDamage v1.6.5 (Is it up to
date?)
java.lang.NullPointerException
at vacuum.changedamage.ChangeDamagePlugin.loadArmor(ChangeDamagePlugin.j
ava:319)
at vacuum.changedamage.ChangeDamagePlugin.reload(ChangeDamagePlugin.java
:193)
at vacuum.changedamage.ChangeDamagePlugin.onEnable(ChangeDamagePlugin.ja
va:180)
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:215)
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader
.java:337)
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManage
r.java:381)
at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:256)
at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:238
)
at net.minecraft.server.MinecraftServer.t(MinecraftServer.java:381)
at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:368)
at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:197)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:432)
at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
@Zefram
Thanks. That was a bug in the updater (which was by default both hidden and disabled; this was caused during the decision to see if it updates or not) that was kind of silly. Bukkit asked me to remove the updater, so that doesn't matter anyways. Just download 1.6.5 when it comes up.
bukki 1.2.5 R4
[SEVERE] Error occurred while enabling ChangeDamage v1.6.3 (Is it up to
date?)
java.lang.NullPointerException
at vacuum.changedamage.ChangeDamagePlugin.update(ChangeDamagePlugin.java
:438)
at vacuum.changedamage.ChangeDamagePlugin.onEnable(ChangeDamagePlugin.ja
va:50)
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:215)
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader
.java:337)
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManage
r.java:381)
at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:256)
at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:238
)
at net.minecraft.server.MinecraftServer.t(MinecraftServer.java:381)
at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:368)
at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:197)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:432)
at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
@UltrafaceGuy
All of the defaults in the config are the defaults in the code :D