PvPReward
Version 1.9.0
NOTE: This plugin requires you have Vault enabled on your server
This plugin adds to PvP, in addition to any items that may be dropped, players also steal money from the players they kill. The amount stolen is configurable.
Money can also be taken from a Player when they die.
Features:
- Supports all major Economies and Permission Plugins thanks to Vault
- You can change what command this plugin uses by editing the plugin.yml (found inside the plugin jar file)
- MultiWorld support (Disable rewards and/or death tolls in specific Worlds)
- Configurable properties
- Custom messages
- KDR Leaderboard
- Several methods of determining amount of money lost/stolen (percent, flat rate, etc...)
- Add Players to a specific Permission Group if they kill too many other Players
- Option of having tombstones to hold items instead of players dropping items (Beta feature)
- Configurable combat time
- Optional penalties for logging or teleporting while in combat
- Broadcast when a Player Combat Logs
Permission Nodes:
- pvpreward.getreward = Needed to steal money from another Player
- pvpreward.givereward = Needed to have money stolen from you
- pvpreward.ignoredeathtoll = Do not pay Death Toll when you die
- pvpreward.reset = Needed to reset any Player's Kills/Deaths/Karma
Commands:
User Commands:
() indicates a required field.
If Player is not specified, then the command sender is used
- /pvp outlaws - Lists current Outlaws
- /pvp karma (Player) - Lists the Karma level of the specified Player
- /pvp kdr (Player) - Lists the Kill/Death ratio of the specified Player
- /pvp rank (Player) - Lists the KDR rank of the specified Player
- /pvp top (Amount) - Lists the top ranked KDRs
Admin Commands:
[] indicates a required field.
- /pvp reset - Lists the Admin reset commands
- /pvp reset kdr - Sets your kills and deaths to 0
- /pvp reset kdr [Player] - Sets the specified Player's kills and deaths to 0
- /pvp reset kdr all- Sets everyone's kills and deaths to 0
- /pvp reset karma - Sets your Karma Level to 0
- /pvp reset karma [Player] - Sets the specified Player's Karma Level to 0
- /pvp reset karma all- Sets everyone's Karma Level to 0
Karma Description:
Most of these setting are configurable
Picture + Written Description by riuthamus
Scene01:
Bob and Jacob have done nothing, all stats are base:
- KARMA POINTS: 0
- DROP PERCENT: 10%
- 500 COINS IN ACCOUNT
Scene02: Bob attacks and kills Jacbob, this will do the following things:
- Bob will gain 2 karma points
- Jacob will lose 1 karma point ( if he is at 0, it will stay at 0 )
- Bob's chance for drop of gold will be increased by a 2% modifier if his karma is less than 50
- If the chance for drop of coins from Jacob ( the killed ) is a success, a random value ( default range of 0%-5% ) will be taken from Jacob's bank account
Scene03: Bob has been bad, and has killed lots of people and now has 48 karma. He kills Jacob again, the following things occur.
- Bob will gain 2 karma points putting him over the 50 karma making him an outlaw
- Jacob will lose 1 karma point ( cannot go below 0 )
- Bob's chance for drop of gold will be increased to 100% since he is considered an ( outlaw ) and still gains +2 karma
- If the chance for drop of coins from Jacob ( the killed ) is a success, a random value (default range of 0%-5% ) will be taken from Jacob's bank account
Scene04: Jacob kills bob after bob has 52 karma, the following occurs:
- Bob will lose 1 point of karma taking him down to 51
- Bob is still an outlaw so he has 100% chance of drop of gold/coins
- Jacob WILL NOT earn karma points because he killed an outlaw
If the modifier is set to 20, whenever an outlaw kills a non-outlaw, he gets 20% more coin on top of the rewards he already would have gotten (if he successfully gets the drops in the first place). Likewise, if the modifier was set to 150, he'd get 150% more coin.
Now, more in-depth and complex mode: The modifier increases after certain karma thresholds. For example: You have set your options in the config file as follow: karmaThreshold: 10, outlawModifier: 2, modifierMax: 50
With this, every 10 karma after 50 (60, 70, 80, etc.) will grant the outlaw a 2% bonus to all drops stolen. After it reaches 50% extra drops stolen, it stops increasing (as based on the modifierMax variable). It seems complex, and it's probably not for everyone, but it'd be cool in my opinion.
(All of that is amount of coin stolen, not the rate at which they drop them, to make it clear!)
Tutorials:
Setup (Config settings):
RewardType may be any of the following:
- Karma
- FlatRate
- Range
- Percent
- PercentRange
- PercentKDR
All other settings depend on what the reward type is set to.
Karma:
This type has the most features, It is explained at the bottom of this page, the settings are as follows:
- Percent - The base percentage for calculating whether there will be a drop
- Amount - The amount of Karma needed to be considered an Outlaw
- High - The maximum percentage that could be taken from a killed players account
- Low - The minimum percentage that could be taken from a killed players account
- OutlawModifier - Outlaws steal an additional x%
- KarmaThreshold - Increase OutlawModifier every x kills
- ModifierMax - OutlawModifier will not go beyond x
FlatRate:
The Killer will always steal a specific amount from the killed, the settings are as follows:
- Amount - The amount of money that will be stolen upon each murder
- All other settings don't matter
Range:
The Killer will steal an amount of money within a given range, the settings are as follows:
- High - The maximum amount that could be taken from a killed players account
- Low - The minimum amount that could be taken from a killed players account
- All other settings don't matter
Percent:
The Killer will steal a certain percent of the killed players total balance, the settings are as follows:
- Percent - The percent of money that will be taken from a killed player account
- All other settings don't matter
PercentRange:
The Killer will steal a percent of money within a given range, the settings are as follows:
- High - The maximum percent that could be taken from a killed players account
- Low - The minimum percent that could be taken from a killed players account
- All other settings don't matter
PercentKDR:
The Killer will steal an percent of money based on the two players KDRs. You receive a higher percent from players with a higher KDR (formula is killedKDR/killerKDR). This percent is taken from the killed players total balance. No settings are used.
Video:
Coming soon!
@ravand
Not sure I follow. Where do you want the money to be taken from? Whichever has more (between Faction bank and pocket)?
@Codisimus
It should be KDR percentage based, if someone is going to abuse the faction to steal the money from he will get to a point when his KDR is so low, that he wont take much.
You can make it like only 5+% can be taken and nothing below it
EDIT1: Or you can make it so the pocket and the faction bank get compared, if the amount in the pocket is higher than in the factions bank, money should be taken from the pocket, if not both have bank accounts have to pay (but factions limited to 5%+)
EDIT2: *deleted* never mind i was just too stupid to forget permissions^^
@ravand
I got a responee from the dev so now I just need to know exactly wut you are looking for.
How much money should be taken from the Faction's bank vs. the player's pocket? You should know that with this addition if I were to get into a large faction I could "steal" nearly all the money from the bank.
@Codisimus
Any news about the Faction API?
@Codisimus
Thanks for considering my idea! I am very sure that your plugin will go to the next level if it has factions support :P
@ravand
I can't find an API for Factions, I have contacted them about it.
@jaketampere
That looks like a BOSEconomy error. My plugin attempts to deduct money from an account of the Player when they log off, apparently BOSEconomy does not support modifying accounts of offline Players.
I have been very happy with PVP reward, also my players using 1.4.7
But now I saw the first crash
00:20:12 [SEVERE] Could not pass event PlayerQuitEvent to PvPReward v1.9.0
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)
at net.minecraft.server.v1_4_R1.PlayerList.disconnect(PlayerList.java:209)
at net.minecraft.server.v1_4_R1.PlayerConnection.a(PlayerConnection.java:717)
at net.minecraft.server.v1_4_R1.NetworkManager.b(NetworkManager.java:295)
at net.minecraft.server.v1_4_R1.PlayerConnection.d(PlayerConnection.java:113)
at net.minecraft.server.v1_4_R1.ServerConnection.b(SourceFile:39)
at net.minecraft.server.v1_4_R1.DedicatedServerConnection.b(SourceFile:30)
at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:598)
at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224)
at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494)
at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427)
at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849)
Caused by: java.lang.NullPointerException
at org.bukkit.craftbukkit.v1_4_R1.CraftServer.getPlayer(CraftServer.java:326)
at cosine.boseconomy.BOSEconomy.setPlayerMoney(BOSEconomy.java:391)
at net.milkbowl.vault.economy.plugins.Economy_BOSE7.depositPlayer(Economy_BOSE7.java:105)
at com.codisimus.plugins.pvpreward.Econ.giveMoney(Econ.java:77)
at com.codisimus.plugins.pvpreward.PvPRewardListener.onPlayerQuit(PvPRewardListener.java:188)
at sun.reflect.GeneratedMethodAccessor175.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
... 14 more
@Codisimus
Well easy to solve this problem: Do a cooldown on someone killing another guy over and over again. And the more often someone gets killed (kdr system) the less money he is going to give. So for example lets say you do a cooldown of 1 hour on someone killing another guy over and over again the guy with the LOW kdr is not going to give much money anway
EDIT:
Instead of doing the above thing i would like to introduce this to you:
Suggestion: Alot of players (including me) use Factions for their servers to put fuel into the whole PvP flow and i would strongly suggest to add a factions percentage KDR solution.
Why?: People can simply store all their money into the faction bank and avoid the pvp reward/penalty system. This can be easily abused by carrying around 0$ all the time.
Solution: If someone is in a faction and dies both their money balances and the faction balance should be seized in order to compensate the PvP reward. This is also a good way for people to be picky about which people they add to their faction and therefor putting even more fuel into the whole PvP flow
@ravand
I have not added this yet bc ppl could easily farm the plugin for free money.
Is there a way to get rewarded from pvp without "stealing" the money from the killed player and instead get a fixed amount + percentkdr ?
@jaketampere
I suggest leaving that setting blank, groups don't work correctly on all permission plugins.
I would need a help to fill correctly this configuration
##If these fields are not blank, Outlaws will be put into the OutlawGroup
##Once they are no longer Outlaws, Players will be put into the Group they were$
OutlawGroup=
What value there should be set?
What happens if I do not set anything ?
I use craftbukkit 1.4.7 on my server.
Works for Craftbukkit 1.4.7! I tested it ;)
@shahiem99
I haven't tested it in a while... it should work. You can try it out and I will fix any bugs you come across.
Hi, Does this Plugin work for CraftBukkit 1.4.7 ?
-Shahiem99
does anyone have a alternative to this plugin?
I'm getting this error message each time a player joins.
2012-12-30 06:15:38 [SEVERE] Could not pass event PlayerJoinEvent to PvPReward v1.9.0 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at net.minecraft.server.v1_4_6.PlayerList.c(PlayerList.java:156) at net.minecraft.server.v1_4_6.PlayerList.a(PlayerList.java:95) at net.minecraft.server.v1_4_6.PendingConnection.d(PendingConnection.java:130) at net.minecraft.server.v1_4_6.PendingConnection.c(PendingConnection.java:45) at net.minecraft.server.v1_4_6.DedicatedServerConnectionThread.a(DedicatedServerConnectionThread.java:44) at net.minecraft.server.v1_4_6.DedicatedServerConnection.b(SourceFile:29) at net.minecraft.server.v1_4_6.MinecraftServer.r(MinecraftServer.java:598) at net.minecraft.server.v1_4_6.DedicatedServer.r(DedicatedServer.java:224) at net.minecraft.server.v1_4_6.MinecraftServer.q(MinecraftServer.java:494) at net.minecraft.server.v1_4_6.MinecraftServer.run(MinecraftServer.java:427) at net.minecraft.server.v1_4_6.ThreadServerApplication.run(SourceFile:849) Caused by: java.lang.NullPointerException at com.codisimus.plugins.pvpreward.PvPRewardListener.onPlayerJoin(PvPRewardListener.java:119) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ... 14 more
@tarahere81
Well you shouldn't have single quotes surrounding your settings like in line 18
here is my config :
http://pastebin.com/QHgTCPr9
no messages being sent. The only message we get is when a player logs during combat they pay 100 feathers (money).
the /pvp command doesn't bring up the help menu. seems that /command is reserved for battlearena. *Oops i need to talk to my co-admin i remember he changed the command for that and i cannot remember what it is .