So I decided to shamelessly steal Conrad's template to make things some degree of uniform.
Automated Bounty Plugin
So. What have I made? Well, as the title implies, it's a plugin that allows you to place bounties on people in game. I've created a bunch of default settings for it and I'll explain those below. I actually really pushed myself yesterday to get this out before then, spent literally all day trying to get the demo up and running but set back after set back prevented me from doing so. (See footer notes ^^)
I am making this a separate thread from my normal bulk posting due to the nature of it. While being rather simple, it's a big change. I need some feedback! ^^
So What Is It?(<-- Good Joke)
Simple Explanation: This plugin enables you to bounty certain characters in game without having to direct people to the forums. I see this as making the entire bounty system more viable as very few people seem to post individual bounties on the forums these days (from what I can tell). With the entire process being easier I aim to see more Freelancers/Bounty Hunters going out and making claims.
The processes is simple. Someone makes a '/bounty new' and then people will be informed* about the creation of the bounty and it will be added to the list. From then on things go on as normal, until a hunter comes along to claim it. Then the plugin kicks in and crosschecks the killer with the list of bounties. If the guy had a bounty on him, it checks that his killer was a valid hunter (aka right ID). If both are true it will lower the claimable counter by 1, and give you the payout.
What are the rules for these claims? Well there aren't many. There is a minimum and maximum value that can be placed on each target and the bounty placed must be within be placed within that range. You can specify how many times the bounty can be claimed (must be at least once). You must also provide an inRP reason for the bounty as part of the plugin.
*see features or demo.
Limitations
Before we go any further I should go over the limitations I have discovered / created during my time on this plugin.
Firstly (the most obvious one), when placing a bounty you are restricted to one name. Say for example we dislike someone, Core|Sexy.Nodviet - So we run "/bounty new Core|Sexy.Nodviet 1 10000000 No one can be more beautiful than me."
In this instance we place a bounty on Core|Sexy.Nodviet for 10,000,000 credits, that is claimable once - with the reason of "No one can be more beautiful than me." All fine then? Well what if he then logs Core|Sexy,Nodviet ? There isn't a bounty on a guy with a comma on his ship, only a dot. There isn't really anything we can do about this, the only solution is to put up more bounties.
Secondly, due to the way the plugin works, there is an inherently obvious bug. If you rename yourself while there is a bounty on your head you can simply evade it. The game looks for when someone of your name dies, and then checks if the guy that killed them was a valid ID for claiming bounties. However, changing your name skips the first step. I did think of a few solutions to this problem, but rather than implementing them without asking first, I thought I'd put it to the floor and hear you guys thoughts on the matter.
Solution 1: Make it against the rules and class it as 5. Cheating/Exploiting - Self-explanatory, but less than optimal.
Solution 2: Lock renaming while someone has a bounty on their head - If they can't rename, no bug.
Solution 3: Other Suggestions (I'm hope to ideas).
Thirdly, this is something I didn't mention in the demo. When going in for the kill the same rule that the event plugin is in effect. This means if you die via suicide (e.g. planet/sun dive) you'll rob someone off the kill. There is nothing that can be done about this, it's Freelancer. If this plugin did get in game, this would no doubt come under 5.6. (While I talk about the event plugin a bit, I didn't even look at the source of it when making this plugin. Go figure.)
Bounty Commands
/bounty new - Creates a new bounty. Type the command without any parameters for usage.
/bounty list - Creates a dialouge box with pagination, like on the PoB plugin. Currently looking into have it sorted by most profitable bounties.
/bounty add - Add more money to an existing bounty you've created.
/bounty help (or just /bounty) - Creates a little help menu with all these commands in there. You can run any command for usage.
/bounty remove - Remove a bounty you've placed and get your money back. (Minus processing fee)
/bounty me - Find out if YOU have a bounty
Other Features
(If something has the '(optional)' flag, it means that it can be enabled/disabled by Admins)
You must have the required funds for all possible claims before the listing will be submitted. Any bounties left unclaimed are returned to you after.
- To elaborate on this: if you submit a bounty on someone claimable for 10 times, costing paying out 10 million each time, the game will subtract 102 million from you. If that bounty was only claimed once, you will be given back 90 million.
Possible to set a minimum rank for people to set bounties, preventing people from simply creating accounts to mass post bounties.
Possible to set a duration of days that a bounty will remain active for. 30 by default. If the bounty expires with claims still active on it, the remaining funds will be returned.
Possible to set a min/max bounty amount so bounties must be kept within a certain price range. (2 million and 20 million respectively)
Possible to set a processing fee. This would not be refunded for a bounty listing, unlike the others (but it is static). It is two million by default.
There is no limit to the amount of bounties one user can post.
A reason must be provided with every bounty, and I personally think that the reason must be kept inRP.
I've made sure certain systems are ignored by the bounty system, so getting kills in Conn wont ruin your bounty listings.
(Optional) Announce to Sirius whenever a bounty is claimed.
(Optional) Announce to Sirius whenever a bounty is posted.
(Optional) Point out to a user when they login if they have an active bounty on their head.
(Optional) Announce to Sirius when someone with a bounty logs in. (I am personally against this one, but including it anyway)
Plans
So where do we go from here? Well The plugin is for all intents and purposes considered finished, and just requires fine tuning and community feedback. I am, however, looking into Discovery API integration to make a forum based stats available. This would also include the things I talked about ages and ages ago, when I get around to it.
All I need to do for this is work out how to use JSONBuddy to export the right data from the game and then we can have a live list of all the bounties available, right here integrated into the forums!
Video
This is a demo for all intents and purposes. Anything is open to change if people have good idea or reasoning.
Few notes on the video:
- I say "for convenience" and "for testing purposes" or variants more times than I can count.
- Sombra will mostly likely comment on my voice : <
- I do make a couple mistakes in the demo, but everything works as intended. As I mention, my memory isn't the best ^^
- I spent 19 hours recording, rendering, and uploading.
- I repeat myself. A lot.
(30 or so min record, failed attempts, bad software bugs. Rendering caused "MACHINE_CHECK_EXCEPTION" on my PC 11 times during render, think I got hardware failure. Uploading at unstable 100 KB/s took 12 hours.)
With all that in mind, I had a lot of fun making it. More fun on the demo than the actual plugin, but Freelancer limitations get in the way. Though, I did write a good 80% of the plugin at once and only had one error during testing! (discounting what you see inside the demo, those are oversights and have since been fixed)
I am more than willing to discuss this and find better
~Happy Hunting.