[INACTIVE] CrowdControl 0.21 - Simple Creature Control [798]

Discussion in 'Inactive/Unsupported Plugins' started by NathanWolf, Feb 11, 2011.

  1. Offline

    NathanWolf

    @WinSock has taken over CrowdControl!

    Please see the new thread, here.

    He has written it as a new plugin from the ground up, integrating features from the old CC as well as his own MobControl (cool things like modifying creature behaviors!)

    I'm excited about it, and glad to be focused solely on Magic now :)

    Thanks! It was fun, as always.
     
    fifth and davispuh like this.
  2. Offline

    Jamie

    You sir are on fire. Thank you, yet again. Keep up the great work!
     
  3. Offline

    Shoot

    This would be win... very much win.
     
  4. Offline

    Cubox

    This is epic! Marry me!
     
  5. Offline

    NathanWolf

    Glad you guys are interested, as always!

    So, we're waiting on creature_spawn event handling to be accepted into Bukkit at this point.

    The plugin is skeletal, waiting to go. Persistence should make it dead easy to track a list of mob spawn rates per world per mob type, add a few console commands, and we should be good to go.

    Now... as for giants and such. At least, first-round, I'm only going to be blocking spawning. So, you'll give a rate of like 1 ghast per minute or whatever, and I'll make sure that no more than that many get spawned.

    Actively spawning enemies at random locations (or catching an enemy spawn and replacing it with a different type) can probably come later- though we'll see how much steam I've got for this plugin- I'm starting to get spread pretty thin ;)
     
  6. Offline

    Brad811

    Haha well crud, just a few minutes ago I posted a thread with a plugin I just finished that removes whichever monsters you want but in a work-around way (bMobs). I do like your per-world idea though.
     
  7. Offline

    NathanWolf

    I imagine your work-around way is probably really similar to what I did with /nuke- you are just killing them all off at a regular interval using bukkitscheduler or a playermove event?

    I do need it to be multiworld, so if you wanted to get bMobs multi-world compliant, maybe there won't need to be a CrowdControl... ;)
     
  8. Offline

    Cubox

    Maybe you guys should work together and create the ultimate mob control plugin :D
     
  9. Offline

    NathanWolf

    Definitely a good idea... If someone's willing to start with what I've got, either now or when I get it working, that'd be awesome, too :)
     
  10. Offline

    Brad811

    Actually I think mine's a little more crude than that, haha. Mine works by killing them as soon as they target any player. So they can exist in the world, they just can't hurt you or try to come near you.

    I'm trying to do something similar to your method now, but I'm having a little trouble with BukkitScheduler...
     
  11. Offline

    NathanWolf

    Ha! Great minds...

    This is the first thing I tried for my plugin, but apparently ghasts don't fire that event! :\
    --- merged: Feb 13, 2011 1:38 AM ---
    Here's the issue I'm waiting on

    Putting this here partly so I don't need to keep finding it, and partly so you can go "Like" it or vote for it or whatever you do to get the magic to happen :)
     
  12. Offline

    Nijikokun

    I created this for my server a long time ago :D if you want some ideas from the things I have in mine just let me kno ~
     
  13. Offline

    NathanWolf

    Definitely! Are you planning on bringing it back as a Bukkit plugin once the API support is there?
     
  14. Offline

    Brad811

    Well I got the timer thing working, updated the plugin to v0.2, also includes more monsters.
    Yeah, ghasts don't trigger the onTarget event. The timer thing gets rid of them within a second or two, though.

    I'd be interested in hearing what you've got for some new ideas!
     
  15. Offline

    Etsijä

    Yes, please, this plugin is very much on my waiting list!
     
  16. Offline

    Don Redhorse

    well I would really welcome a plugin which would allow which mobs are spawned in which world... I don't even care about how much mobs... just on and off..
     
  17. Offline

    EvilSeph

  18. Offline

    oliverw92

    Lol I missed this thread :p I just started working on a plugin earlier today that replicates the actual minecraft spawning algorithm. I'm almost done with the basics of it, just finishing up with the actual spawning of mobs before testing it for accurateness etc.

    Am I right in saying your method is going to revolve around letting any mob spawn, then instantly removing it (once the event is there obviously)? I considered this, however I then thought why actually create the mob in the first place? In a way it is a waste of resources considering you are just going to delete it straight after.

    I'm hoping to build this into a world management plugin once done, will see how it goes first though :)

    Out of interest have you got a working method of spawning mobs in this yet? I've been searching the API for a while now and haven't been able to find a single method of creating a mob - how are you going about this (if you have yet)?
     
  19. Offline

    Kane

    I would love to see some how someday a way to change the spawn% and prevent there being so many spawns. Till some how spawns become less laggy hehe.
     
  20. WoW, how badly i need this right now!
     
  21. Offline

    NathanWolf

    First release! Thanks, @EvilSeph and @ssman44 (that may or may not be your name here, I dunno....)!!

    Now that we have a creature_spawn (you will need a very up to date CraftBukkit to run CrowdControl!), I can prevent spawning of ghasts- which is exactly what this plugin does right now, nothing more.

    Well, I did bring nuke over from NetherGate as a little treat- but I it doesn't work on ghasts right now :\
     
  22. Offline

    Cubox

    You're my hero. Thank you.
    Donated a small amount of dollars. Will donate some more for a fully working crowd control.
     
  23. Offline

    NathanWolf

    Wow, really?? Thanks!!

    I need to check that jar... you might be the first ;)

    It'll certainly be fully working soon- prolly tomorrow barring any complications....

    Well, as "fully" as a I have planned for now, anyway :D
    --- merged: Feb 17, 2011 7:37 AM ---
    Oooh, guess you were not the first- earthiverse (I think) beat you to it. :D

    I can't recall who that is (forgive me!), or what I made that he liked- but that you both very, very much!

    It's super appreciated.
     
  24. I can not use this until these plugins gets updated for the new bukkit system:

    1. movecraft
    2. controllerlbock
    3. towny
    4. pushblock
    5. voxelsniper
    6. worldedit

    Im also considering donating later if this plugin will work when the new craftbukkit is used on servers.

    A small request would be where, at what block and altitude the mobs can spawn and how many, or percentage and max mobs per chunk.
     
  25. Offline

    NathanWolf

    Bummer. :(

    I'm sure they'll get on it, it's hard to keep up with Bukkit API changes sometimes.

    I just outlined this to WinSock, who is also working on this (we'll probably get together, or he'll take over CrowdControl, or I'll kill it, or something- as appropriate), so here are my main plans for CrowdControl:

    Basically, here's what I wanted to do, in a nutshell:

    MobControl data. This object specifies a MobType- I have an enum for this, but there is (newly) one in Bukkit now. I haven't tried persisting it directly yet, Bukkit does some strange things with enums- but, generally, an enum with a simple int id is directly persistable, no markup required.

    Anyway, MobControl would also have a WorldData attached to it, and a list of ControlRule datas.

    ControlRule is the part I'm still a bit hazy on. I'm thinking it would have a % chance (float number from 0 to 1) and a MobType, which can be null.

    Each time an entity spawns in a world, CrowdControl would look up all the MobControl data relevant to that world. It would then go through the ControlRule list, "rolling the dice" for each one. If it gets a hit, it cancels spawning of that entity, and replaces it (same Location) by spawning a new entity (or not, if the MobType of the ControlRule is null).

    I think this will be a super flexible starting point for CrowdControl, that's basically where I was going to leave it.

    I have code written to spawn entities as well, but again that's newly available directly in Bukkit- so I can take advantage of it there, and will.

    At this point, I'll probably call it quits on CrowdControl, at least for quite a while- my stack needs to unwind. Nethergate, Wand and Spells need some love.
    --- merged: Feb 18, 2011 10:23 PM ---
    Oh, and to be clear- lots of tech talk up there.

    As admins, you'll just have a console UI, like I always do.

    If you need some sort of bulk import support, you may have to learn a little SQL :)
    --- merged: Feb 20, 2011 10:14 AM ---
    0.13 Released!

    This is the first release where things are starting to get really cool!

    Check the OP, I updated- you can now control mob spawning per-type, per-world. You can set up multiple rules, with percentages on each, to randomly cancel mob spawning, and optionally replace mobs with other mobs.

    Pretty cool!

    I can't wait to set up that Planet Full of Creepers now.... :D
     
  26. Offline

    Kane

    NathanWolf, So could we do large scales aka full world changes.

    Say cows,pigs,sheep spawn 100%. and say this takes 10% cpu power for fun.

    Could I change it to 10% make it more rare for fun and also the cpu would end up being 1%? This could be one amazing and powerful system. Remove Skeletons and hell arrows I think alone cause most of the npc lag.

    Thinking future anyways. Id like to see my server have 3 worlds.

    pvp/pve normal (public)
    pvp/pve nether (public)
    build server no pvp/pve (whitelisted)
     
  27. Offline

    NathanWolf

    Right! That's the idea... I actually just turned monsters back on (mine.elmakers.com), and I'm about to go set it up so that all my creepers turn into various things....

    The system is actually really flexible and powerful. I need to add some more commands- some way to move rules up and down in the list, or even effectively view the rules lists, are really needed.

    Because they are lists! Each time you "control" a particular mob type in a world, it makes a new rule and puts it on the list. Rules are processed in order. So, I plan on doing this:

    Code:
    /crowd control creeper 10 slime
    /crowd control creeper 5 pigzombie
    /crowd control creeper
    I'm hoping what this will do is remove all creepers from my world, with a 10% chance of spawning a slime instead and, failing that, a 5% chance of spawning a pigzombie.

    I'll come back and let you know how it works out!
     
  28. Offline

    Kane


    Nice looking forward to the results. I think this will work wonders and be great once I get upgraded to 1.2 well I guess 1.3 now and add multi worlds. Still nervous :)
     
  29. Offline

    NathanWolf

    Not sure what version numbers those are :) All my plugins are going to require a really current version of CraftBukkit now, there was a constructor change that affected them all...
    --- merged: Feb 20, 2011 11:27 AM ---
    Seems to have worked! I just pushed 0.14, which has a few minor fixes from my testing, and also fixes "nuke" which I broke.

    Oh, by the way... GiantZombie is coming! I have a pull request into Bukkit to add the type... at which point, my world is definitely going to be getting a 1% chance of giant zombie action!
    --- merged: Feb 21, 2011 5:07 AM ---
    0.16 Released!

    Here's the new feature list:
    • GIANTS! mobtype "giant".
    • "/crowd list rules <mobtype> <world>" : A new command that lists all the rules you've got set. You can narrow down the list by mobtype or world
    • "/crowd list population <mobtype> <world>" : Check in on your crowds :) Lists number of creatures in a world by type.
    • All CrowdControl commands now take an optional "world" parameter at the end
    • "none" is now an acceptable "mobtype" if you want to disable a mob completely. This is still the default behavior, but now you may have to use "none" to get to the world parameter without doing a replacement. Hope that makes sense :)
    • All CrowdControl commands are now available as server consome commands- you can manage your crowds, list the numbers, and even nuke your populations- all from on high as the all-knowing server console.
    Overall, it's a pretty great update, I think :D
     
  30. Offline

    darkcammo

    Hey! First off, this is a great plugin! You might consider merging some of the features with Mob Control by WinSock. This plugin would be all powerful at that point :)

    This plugin is EXACTLY what I was looking for, and if I can get it working properly I'd be happy to make a donation.

    Now that being said, I seem to be having some issues. I am running the absolute latest version of CraftBukkit but this plugin still seems to be failing. I started a world with only TimeShift as the only other plugin, to enable endless night. I used the in game commands to replace Spiders, Creepers, and Skeletons all with Zombies. All replacements at 100%. It confirmed that they would be replaced, however letting the server run for a while I am still getting upwards of 20+ spiders and skeletons. I guess it could be underground mob spawners but it seems unlikely. The Creeper replacement seems to be working fine, the most I've seen is 1 Creeper when I nuke.

    Any help would be greatly appreciated.
     

Share This Page