[MECH/FUN][INACTIVE] TheBlackPlague v0.2.5 - Start a plague and watch it spread [1185]

Discussion in 'Inactive/Unsupported Plugins' started by Everdras, Jul 23, 2011.

  1. Offline

    Everdras

    The Black Plague:
    1. Start plague
    2. Watch it spread
    3. ???
    4. Profit.

    Version: 0.2.5


    Features:
    • Simulates a plague
    • Can start/end plague by command (default at load: plague is off).
    • Can infect and cure players by command
    • Can adjust 90% of things you would want to adjust with it. When you see X, Y, Z, etc below, it means YOU can pick the number. Defaults are listed in the "Options" section.
    • Plague is started 'naturally' by a player being within X blocks of a zombie upon its death AND has a chance when simply being damaged by a zombie.
    • Plague is cured by only one means: death. (Or maybe you could give the cure command to a priest class or something, and have them bind the command to a stick... who knows.) Note: death to anything but the plague does not cure the plague. You must die by a plague tick to remove it.
    • Plague does X damage every Y seconds, and every time it does damage it spreads to anyone within Z blocks.
    • Supports Permissions 3, but does not require it. Nodes listed below.
    Download: JAR - Fully updated, thread safe, and imbued with my own blood sweat and tears.
    Source: GoogleCode

    Permission Nodes:
    Show Spoiler

    • BlackPlague.toggle - /bp on & /bp off
    • BlackPlague.infect - /bp infect playername
    • BlackPlague.cure - /bp cure playername
    • BlackPlague.options - all 'options' commands



    Usage:
    Show Spoiler

    • /bp on - turns the plague on
    • /bp off - turns the plague off
    • /bp infect playername - infects the player whose name is playername with the plague.
    • /bp cure playername - cures the player whose name is playername from the plague.
    Note: Commands that require a player's name are case-sensitive and the name must be fully typed out.


    Options:
    Show Spoiler

    • /bp interval serverticks | sets the time between ticks. 20 server ticks = 1 second. Note: if your logs are outputting the "can't keep up!" message from too many players being on, then it may be less than 20 ticks per second. I can't change anything about that.
    • /bp damage halfhearts | damage done per tick, in half hearts. So if you want the tick to do 8 hearts, set it to 16
    • /bp playerdist blocks | distance at which you will be infected by another player
    • /bp zombiedist blocks | distance at which a zombie will infect you as it 'explodes' (dies)
    • /bp zombiechance percent | % chance a zombie will infect you on attack (45 = 45%)
    • /bp explodechance percent | % chance a zombie will infect you on death (45 = 45%)
    My suggestions:
    • Don't set damage below 0, or to be super huge*.
    • Don't set time to be negative. It can be hours, if you want, but this would make the damage a bit easy to eat through. Just don't pass 9.223 quintillion server ticks.
    • Don't set distances to be negative or to be super-huge**.
    • Don't set percents to be negative or over 100.
    *Over 2.147 billion
    **Over say, 50-100.


    Changelog:
    v0.2.5-
    • Rewrite complete- thread safe!
    v0.2.0-
    • Can set interval, damage, % chances to infect on zombie attack and explode, and distances at which zombies and players will infect people.
    • Zombies attacking you will now infect you too.
    v0.1.0-Initial Release

    TODO:
    -Use 'smart' player name matching. I.e. can type out the first part of someone name for a command, and it will 'autocomplete' it for you. I think this is implemented...?
    -carriers
    -flatfile config
    -exposed method to infect



    KNOWN ISSUES:
    -Uses non-thread safe API. I'll need to do a rewrite of a lot of the code. Fixed.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 17, 2016
    kahlilnc and Noppoly like this.
  2. Offline

    Everdras

    Did you download it since the fix I applied for the person above?

    If so, then darnit, I still haven't fixed it. Let me look into it.

    Ok, I just realized I was modifying a list as I was parsing through it. Not sure how I didn't notice this before.

    Should work now.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 17, 2016
  3. Offline

    Clockwork

    Quick Reply - will test it now and let you know. Thanks.
     
  4. Offline

    Rellac

    @Everdras So..

    Looked much into cure blocks? ;)
     
  5. Offline

    Clockwork

    Seems to have fixed it, but a lot of my players remain infected when they die, despite being the only infected ones on the server or being far enough away not to get infected by other players.
     
  6. Offline

    Everdras

    Dying to things that aren't the plague will not remove it from you.

    I can patch that in.

    Not sure if anyone pays much attention to it, but the latest few .jars should be a tad bit larger than the last few. I'm working on "CureBlockListener.java" at the moment. ;)
     
  7. Offline

    Clockwork

    Thanks. No need to patch it, I just know they need to die from the plague now :) Looking forward to the cure block.
     
  8. Offline

    Everdras

    Alright, I have a stable build of 3.0 set to the download link right now. It's a release candidate at the moment. Here's a summary...

    Added:
    • Cure blocks are implemented and work. "/bp cureblocks add" adds a block, "/bp cureblocks remove" removes one, "/bp cureblocks check" tests if the block is a cureblock or not. Permissions node is "BlackPlague.cureblocks" and controls adding and removing. To use the commands, look at the block you want to make a cure block and type the command. You need to be within 3 blocks of it. Ignores air, but not water.
    • Dying for any reason by any cause removes your infection.
    • Small efficiency and internal naming changes. Nothing visibly changed here though.

    I have a few issues that I am aware of:
    • For some reason, even looking directly into the sky (so it's only air blocks) will report a successful block addition. Unconfirmed if a block is actually added.
    • Some things may be missing echoes. Like, if you type a command or do something like clicking a cure block, it should report back to you success or failure. If I forgot to give something an echo, you'll do the action, and nothing (tangible) will happen (i.e. you may be sitting there wondering if it worked or not, since you were never told what the result was.) If you notice something like this, post it here.
    • Incorrectly formatting some commands may not gracefully terminate them. (I.e. instead of saying "you typed that wrong" it will just say "an internal error occurred..." and print an error report to the logs).

    Things I plan to resolve/change:
    • If a cure block is destroyed, the only way to remove it is to put the block back and then remove it like that. It's also seemingly possible to "lose" a cure block in that you'll make it, then forget where it is. This will require a small rework to fix, and may/likely will alter how the data is stored. As such, when I update, your lists of cure blocks will likely be wiped. So, don't go making a shitton of them yet :3
    • ^ To fix this, I'm probably going to make it similar to how WorldGuard manages regions- let you name them, then save the names and let you manage them in a list format. An interim solution may be to let you remove them based on their hashcode (the number in parentheses when typing /bp cureblocks check).

    Final note: Normally, I'dve not posted this till it was all ready, but I accidentally replaced the live .jar with the 3.0 one when moving them to my dropbox. So, enjoy a little beta preview. Expect a polished version by the end of the weekend.
     
  9. Offline

    Jastro

    update for 1185 pls! :D
     
  10. Offline

    Everdras

    It's in the works. Permissions 3.x is dead, so I'm balking at figuring out what I'm going to switch over to.

    Mk, it should* work for 1.8.1. Starting my own testing now.

    EDIT: It works for 1.8.1, but I had to turn off the cure blocks for now, as it was making weird errors that will take a bit of digging to fix.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 17, 2016
  11. Offline

    Jastro

    I use permissionEX i think its the best plugin for permissions
     
  12. Offline

    Everdras

    Right now I'm using the default bukkit permissions API.
     
  13. Offline

    Everdras

    As-is, I'm planning on discontinuing support for this plugin. I've lost a lot of enthusiasm for the project, and my own server is requesting that I work on a larger-scale plugin for our own use.

    The current download link will stay alive for at least a week, and will break when I get around to cleaning out my public Dropbox folder. Which may never actually happen.

    Apologies.
     
  14. Offline

    colony88

    Video?
     
  15. Offline

    Moe041991

    I'd like to work with the source code, but iam not sure where to get it at googlecode. I cant find it :D
     
  16. Offline

    slayerdude

    how do i bind the black plague cure command to a gold ingot using powertool.
    i used /pt bp cure while holding the iron ingot.
    but when i tried to use it it said /bp cure playername
     
  17. Offline

    Everdras

    This is not related to my plugin, try googling for the documentation on how to use powertool.
     

Share This Page