[MECH/RPG] CursedLands v0.9 - Hell is infecting the Earth! [953]

Discussion in 'Inactive/Unsupported Plugins' started by Exote, Jun 24, 2011.

  1. Offline

    Exote

    CursedLands - Hell is infecting the Earth!:
    Version: v0.9

    This plugin is half-inactive while I try to work out a better way of handling the curse over time. In the mean time I suggest you have a look at my other plugin: ScarredLands which does most of the same things but without the cursing over time (and admin just scars an area at a time with commands) but it also has better curing mechanics which make it more fun :D

    Long have I been suspicious of Mobspawners, there is something unnatural or other-worldly about them. We have all seen them. They spit mobs at us, warping them in from hell. But this time around things were different, Hell itself seems to be following the mobs through these little rifts between our worlds...

    Mobspawners and netherrack will convert everything (the blocks you choose to be able to be cursed) around them over time. Oh and the netherrack will set you on fire if you walk on it...

    A quick warning

    To get a good sized curse area, as far as eye can see in each direction with far view distance, this plugin has to handle A LOT of blocks, I mean hundreds of thousands...

    I am still trying to find a good way of saving and processing the blocks (How the hell does Notch do it?!) Anyway keep this in mind and make sure your server can handle it.

    With this new version the way the plugin checks which blocks should spread has changed, this makes it faster and causes less server lag, however the temporary downside is that any netherrack/mobspawner/soulsand that is placed before the curse zone has been activated will not register as part of the curse, this is also true if blocks are changed while the plugin is disabled. Working on a scanner command that updates the active curse blocks in an area.

    Protection blocks have now been added due to popular request. Goldblocks by default. These blocks stop to curse advancing into those areas. If there are netherrack blocks already inside the protection radius then they will not be removed but they wont spread any more. These are very useful to put down before you use seeds.

    When mobspawners are created by the netherrack (not ones you put down yourself) they are given a random mob to spawn from the list you can set in the config file. At the moment you need to use capitals in the mob names, as shown in the default config.yml.

    Features
    • Netherrack spreads over time
    • Mobspawners generate netherrack around them
    • Netherrack burns to walk on
    • Netherrack sets fire to trees and wool
    • Push back netherrack with seeds
    • Protect regions with Gold blocks
    • Water turns to lava
    • Save command
    Download CursedLands v0.9

    Video Overview
    If you want to listen to me ramble on a bit while giving you a brief view of what this plugin does. I will make some more detailed videos when I have finalised a few ideas. (Already a bit out of date)


    Also KuroSnow did a nice demonstration which is a bit more up to date:

    http://www.youtube.com/watch?v=nD8Q12noBqg

    Setup
    Well to start with you run around a bit until you find a nice area you want to infect. We will need to map out the boundaries that the curse can spread to. To do this run to one corner of the square and type:

    Code:
    /setcurse 1
    And as expected run to the opposite corner and type:

    Code:
    /setcurse 2
    Or you can set the boundaries of your curse zone using:

    Code:
    /setcurseradius [radius]
    This will select a square area with your current position as the center and with a distance of [radius] to each edge (if the radius of a square makes any sense at all...)

    Once you are happy with the area you have selected, and keep in mind that it will occupy the entire vertical space between the two selected points, type:

    Code:
    /createcurse [cursename]
    And the curse is ready to attack...
    To set it going, place a mobspawner somewhere (or just some netherrack), and sit back and watch it spread over everything.

    If you want to see a list of the active curses:

    Code:
    /curselist
    and to delete one, rendering nether harmless again:

    Code:
    /removecurse [cursename]
    You can save the curses to database at any time, be warned it will take a while, check the server log/ command window for info about the number of blocks it is saving etc.

    Code:
    /savecurse
    Permissions

    I will default to OP when it cannot find the permissions plugin.
    • - cursedlands.create (create new curse zones)
    • - cursedlands.remove (remove curse zones)
    • - cursedlands.save (save all curse zones)
    • - cursedlands.noBurn (player wont set fire on curse)
    Settings
    There are a couple of settings in the config.yml file:
    • CurseBlockPhaseOneId - the id number of the material of the first phase of the curse (normally soulsand)
    • CurseBlockPhaseTwoId - the id number of the material of the second phase of the curse (normally netherrack)
    • ProtectionBlockId - the id number of the material that is used as a protection block against the curse
    • CurseDelay - the delay in seconds for each step of the spread
    • BlocksBurn - a list of block id numbers separated with spaces to show the blocks that will burn when touching netherrack.
    • BlocksCurse - a list of block id numbers, space separated, that will convert to nether when cursed.
    • MobSpawns - a list of mobs that will spawn from mobspawners
    • SpreadPercentage - probability that a block will spread to the adjacent
    • NetherIgnitesPlayer - Does netherrack burn to stand on (only inside the curse areas)
    • NetherrackBurnsMaterials - Whether netherrack sets fire to wool or logs that it touches (inside curse area)
    The general idea is for people to try and defend and expand their base. netherrack can be converted back into normal materials with the use of seeds. When you use seeds on the netherrack it will turn back into dirt, stone iron ore or gold ore (based on probability).

    The use of this plugin along side other plugins such as worldedit/worldguard and mobbounty could result in some interesting gameplay. Use worldedit/guard to select an area, and save it, so it can be rolled back after the game is over (time limit/everyone dead) then use some method of counting the number of mob kills etc.

    Just some ideas. I would love to hear if anyone has any interest in this kind of plugin. And let me know what else is needed.

    Changelog:
    Show Spoiler

    Version 0.9
    • Now using SQLite instead of flat files
    • Lots of little changes with the way the curses save
    • Added permissions for not getting fire damage and saving the curses
    Version 0.8
    • Water now changes to Lava!!
    • Enable/Disable config for water to lava
    Version 0.7
    • Put curse blocks that are inactive (nothing to curse around them) to sleep, greatly improving size of curse area possible
    • Fixed protection blocks when changing protection radius (I hope)
    Version 0.6
    • Plugin now defaults to only allow Op use when it can't find permissions
    • Can set the materials of the curse
    • Can set the materials of the protection block
    Version 0.5
    • Added configuration as to what the mobspawners spawn
    Version 0.4
    • Added protection blocks (goldblocks)
    • Added a protection radius to settings
    • Improved performance bit more (although the protection blocks reduce performance so it's about the same :p)
    Version 0.3
    • Added the radius command for setting curse areas
    • New curse spread tracking (much faster, less server load)
    • Can now set what block burn/convert to netherrack
    Version 0.2
    • Added basic permissions
    • Netherrack burns trees and wool
    • Fixed seeds not being used bug
    • Able to remove curse areas

    Feel free to give it a go.
    Download CursedLands v0.9

    If you liked the plugin feel free to donate a bit of pocket change :) It will help me to develop this into something awesome.
    [​IMG]
     
    kahlilnc, Crash, Sroxah and 2 others like this.
  2. Offline

    SystexPro

    Seems cool, i might try it :p
     
  3. Offline

    Kane

    Fun plugin. I do suggest allowing the player just to enable worldwide spread ;) Make it fun
     
  4. Offline

    Exote

    I thought about allowing people to do that, but imagine if you left the server running for a week or so. The curse would have spread 100's/1000's of blocks from the start point. And with every new block of nether the plugin and your sever have go through another iteration of the loop to test to see if that block should spread.

    Also the curse spreads downwards/upwards too, all I am saying is that you wouldn't want this to run with no boundaries. But depending on your server's power, you could set the boundaries to be pretty large before you notice things slowing down.

    This is mainly what I am trying to test at the moment. To see if the average server can handle a reasonable sized curse zone.
     
  5. Offline

    Cybird

    Just put it on my test server. Going to unleash this secretly on the RPG Server and have people crap there pants. I did find that if you have a couple of cursed zones operating at the same time it seems to cause 'Server Can't Keep Up' Errors. BUT if you have 1 HUGE area it seems to be fine

    Tested it with a 100% Spread rate at 5sec intervals. Test server is not the stongest hardware either so it looks good.
    A feature I would like to see later is to set what blocks it will consume and what blocks it wont.

    Right now i would have liked it to burn the bookcases, beds and such of the demo town I infected with it.

    Awesome job keep it up

    Another useful feature would be to allow you to List the curse zones (perhaps with the co0ordinates) and a Delete command. (I assume there is one but I could not find it :) )

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

    Exote

    Sorry added them in 0.2 but forgot to write them up here.

    /removecurse [name]

    /curselist
     
  7. Offline

    Cybird

    hehe excellent
    just tried a MASSIVE area... a good 1000+ radius and unfortunatly once I had created the curse the server froze and I had to force a shutdown. ^_^ it is to be expected...
     
  8. Offline

    Exote

    Thanks a lot for the testing!

    That seems to be similar to what I found. However I just found a neat way to cut out around 50% of the processing if I can get it to work. :p Just out of curiosity what sort of size area did you test?

    And yes the next version will have lots more setting for things like how each block gets affected. And the probabilities of converted nether becoming various things.

    Anyway thanks for the feedback, glad you like it. :D

    Yup, done that myself many times in testing. Remove the CursedLands folder in plugins and everything is cool. :p

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

    Cybird

    I actually had 3 areas.

    1 was about 40x40
    2 was aviut 60x60
    3 was around 120x120 BUT was also overlapping area 1 and 2. That could have been an issue
     
  10. Offline

    Mercury

    Few things to add.
    • Is is possible to spawn pigman on infected area?
    • Can you use "setborder" (radius) technique instead of cuboid when selecting area?
    • When water gets infected maybe you can turn it into lava or make damage to player?
    • When placing X blocks near infection, make it stop spreading?
    • blacklist blocks e.g glass wont be changed.
    Sorry I am terraria fan :)
     
  11. Offline

    XInstinctX

    Nice always wanted something like this like infection of the land and things

    You could have it where like there is a 1% chance of it spawning a mob spawner as it infects

    But it kinda crashes the server so i wont be using :(( But its a great idea im still gonna have it in my plugin folder.

    Could you make a single player version that will be cool.
     
  12. Offline

    Exote

    Coalore turns to mobspawner at the moment ;)

    As I mentioned above, working on allowing people to choose what blocks do when they hit the curse
     
  13. Offline

    XInstinctX

    I edited it :D
     
  14. Offline

    Exote

    • Pigmen - maybe would have to look into what event I could use to spawn them/ if not maybe just randomly over time.
    • Radius - Will probably do this, but as a square not a circle, minecraft circles do my head in.
    • Water to lava - Not sure would probably cause a massive mess of obsidian - will look into it.
    • Protection blocks - You sir shall have your sunflowers. (something rare though...)
    • Blacklist - Already exists but fixing other stuff before I publish.
    Terraria is amazing, that plus maybe starcraft zerg were what sparked the idea.
     
  15. Offline

    Exote

    Added a few new commands and settings.

    Main update was the performance. from my testing it seems to be a great improvement, however as expected the server does start to slow down when the number of cursed blocks build up.

    Would be cool if some others could give it a quick test to see what sort of sizes they can run before you notice reduced performance :)
     
  16. Offline

    XInstinctX

    Huge Improvement in performance di it with 30x30 no lag at all and this isnt a dedicated server :D
     
  17. Offline

    mrfeellingless

    when i try to create a curse i get these errors?

    Code:
    [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'setcurseradius' in plugin CursedLands v0.3
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:37)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:129)
        at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:298)
        at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:725)
        at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:691)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:684)
        at net.minecraft.server.Packet3Chat.a(Packet3Chat.java:32)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:223)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:451)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:361)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    Caused by: java.lang.NoClassDefFoundError: com/nijiko/permissions/PermissionHandler
        at me.exote.cursedlands.SetCurseRadiusCommand.onCommand(SetCurseRadiusCommand.java:28)
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
        ... 12 more
    Caused by: java.lang.ClassNotFoundException: com.nijiko.permissions.PermissionHandler
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:36)
        at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:24)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 14 more
    some help?

    ps: i really see some future in this plugin :D and soon ill have a professional server at i3d.net, so ill try some 2k+ radius ;)
     
  18. Offline

    Exote

    I may be wrong but that looks like there is a problem with permissions, maybe i didn't handle it properly. Seems to have thrown an exception that I wasn't expecting.

    Do you have permissions?

    Looks like I will have to sort out handling for people that don't have that.

    EDIT:

    Yeah just removed permissions myself and it game me the same error. I need to read the permissions files better and find out how to make it default to OP or something.

    I'll work on that.

    Sorry :p (but seriously get permissions :D)
     
  19. Offline

    mrfeellingless

    yea i have it on my server. But i always plug it out when i try new plugins XD

    oh and the idea of Mercury, protection blocks are really nice. You should make it something like a gold cross, because then you can make some RP temples which "block" the curse with good energy.
     
  20. Offline

    NeonJ

    This seems very.. Terraria-esque.

    I like.
     
  21. Offline

    mrfeellingless

    The corruption, before we know it we have eater of souls XD
     
  22. Offline

    XInstinctX

    Well i just let it out on my whole world and no lag I did the radius to 5000 and now it looks like the nether :D
     
  23. Offline

    Exote

    5000? nice! I would call my update an improvement then :p But even so you must have a pretty powerful server. I got lag long before that point.

    Added a very brief video to show what the plugin does. Missed a few things out, but as long as you don't mind me rambling on a bit, it should give you an idea about what to expect from the plugin. I'll make a better video when I get a cool server and zone set up with it and make a proper mini-game out of it.

    Started work on the mechanics behind getting certain kinds of block to prevent nether spread, so expect that in a couple of days also.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 17, 2016
  24. Could it change water into lava ? :)

    Nice plugin !
     
  25. Offline

    Exote

    Quick update, added protection blocks that will prevent the curse in a radius around them (radius editable via config file). Enjoy :p
     
  26. Offline

    Cybird

    Ill test again tonight and let you know :)
     
  27. Offline

    Exote

    Yup, I'm working on water to lava cursing, got it planned out. Hope to get that and sort out how mobs behave on netherrack(burn normal mobs/spawn some nether ones randomly) soon.
     
  28. Offline

    mrfeellingless

    Ill test out the protection blocks. :D

    Could you make the mobspawners in the cursed area spawn user-select mobs instead of pigs?
     
  29. Offline

    XInstinctX

  30. Offline

    colin8696909

    really cool but i'v been thinking what if you made water turn into lava so its like the nether.

    (to deal with the lava water mix you could have it affect large amounts of water at ones. but still move slowly.)
     

Share This Page