[FUN/RPG] S86 Powers v4.3.0 - Give players unique powers [1.5.2-R0.1]

Discussion in 'Archived: Plugin Releases' started by sirrus86, Jul 21, 2012.

  1. Offline

    sirrus86

    S86 Powers is a plugin that allows server operators and admins to give players unique powers. (More info coming soon

    Setup

    When S86 Powers is first loaded a config file will be created in your server's plugins/S86 Powers directory. This file will contain a database of players and beacons (more on that later). This file should never need to be directly edited; doing so may cause undesirable effects.

    Once the plugin is loaded for the first time, the player database will be empty. In order for players to have powers, they will first need powers assigned to them.

    The first thing you'll want to do is get a list of what powers are included. To do this, you can type the command /powers power.
    [​IMG]
    This will populate a full list of all powers in the power database. The powers are all color-coded by their type. Powers in yellow are passive perks. These are generally powers which trigger automatically under certain conditions. Powers in red are offensive abilities. These are powers which usually require a trigger and are primarily meant to damage an opponent in some way. Finally, powers in blue are defensive abilities. These powers also usually require a trigger, but are primarily meant to increase the user's chances of survival rather than hurt or hinder an opponent.

    Of course, knowing the name and type for a power doesn't help much, you need to know what it does. To get more detailed information on a power, you can use the command /powers info power [name]. For example, to see info on the power Acrobat, you would type the command /powers power acrobat, which would display this:
    [​IMG]
    This gives detailed information on the specified power. This information includes the full name of the power, the power's type, a description of what the power does, and a list of players currently using the power.

    Let's say for example a player on your server named sirrus86 has taken these steps already and has decided he really wants the Acrobat power. By default only server operators can actually set powers to players, so it's now up to you (assuming you're an operator) to assign the Acrobat power to sirrus86. Fortunately, this is done in a single command: /powers player sirrus86 acrobat.
    [​IMG]
    As you can see, sirrus86 didn't previously exist in the players database, so he was added to it automatically. He now has Acrobat set as his passive power.

    Chances are, even when following the above steps, sirrus86 won't be able to use Acrobat just yet. To prevent abuse, powers will only enable under a certain set of circumstances:
    • The player must have the permission node s86powers.enable set to true.
    • The player must be in survival mode
    Once these conditions are met, they're good to go.

    Powers can be added at any time to any player, however they may only have one passive, one offensive, and one defensive power at a time. Setting a new power to a player who already has a power of the same type will overwrite it. For example, after giving sirrus86 Acrobat, he changes his mind and decides he wants Diversion. You give him Diversion using the same command, /powers player sirrus86 diversion, but because it's also a passive power, Acrobat will be removed and replaced with Diversion. On the other hand, if sirrus86 decides he wants Pulse, he can have it and still retain his passive power.

    More Info

    The latest version of S86 Powers, as well as more info, can be found on BukkitDev.

    Requests

    Got an idea for a power that isn't included? Send me a message, or leave a post below.
     
  2. Offline

    Chalkie

    Even with the cooldown option provided it still is spamable, that is why I was asking for a more "hard coded" cool down.

    @Sirrus in 3.2 it seems to create 2 power configs, 1 in the plugin folder (Where the .jar is located) and one in the S86 Powers folder.

    Also the skills that need and Item to use and has the option to change the item will still show the default item in the info, maybe if the item to activate it is changed it will update in the info as well?

    Once again thanks for all the hard work :)
     
  3. Offline

    sirrus86

    Heh it's a good power idea, I'm just concerned how touchy some players might be about a power like this. I'm also atheist, but I respect other peoples' beliefs. For fear of offending anyone I unfortunately won't be adding this power. But do not let this discourage you from coming up with other ideas!
    Sounds like what you're looking for is a cooldown between uses, not just a cooldown on a given victim. I can get this coded in.

    As for the duplicate configs, good catch; the one in the plugins folder was probably saved before the plugins/S86 Powers folder was created. I've added a conditional where the plugin's folder must be created first before it attempts to save the file, this should prevent duplicate files. In any case the plugin will only read from the one in the S86 Powers folder.

    The item usage (along with cooldown and other config options) don't change in the power's info because the power info is pulled from a yml file embedded in the jar file. Until recently I didn't know how to make it so the information pulled from the yml file could be customized, but I'll see about getting this implemented in the near future.
     
  4. Offline

    Chalkie

    Me again (yea I know lol), one of my classes I made with your skills is a rogue which uses Nether Clock for stealth but makes the class Very OP. The problem with the skill is you can not melee or shoot arrows at some one vanished and they can attack you so I propose.
    Attacking De-cloaks you and that there's a 8 seconds cool down between cloaking.
     
  5. Offline

    sirrus86

    Yeah, that does sound overpowered... I'll see about getting that implemented.
     
  6. Offline

    Chalkie

    3.2.1
    - Neutralizers work perfectly (as far as I can tell)
    - When using the new mob catcher class I get the following error when trying to release the monster when throwing it.
    Code:
    2012-08-09 06:03:27 [WARNING] Task of 'S86 Powers' generated an exception
    java.lang.NoSuchMethodError: org.bukkit.World.spawnEntity(Lorg/bukkit/Location;Lorg/bukkit/entity/EntityType;)Lorg/bukkit/entity/Entity;
        at me.sirrus86.S86_Powers.Powers.Defense.MobCatcher$1.run(MobCatcher.java:66)
        at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:126)
        at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:533)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:459)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
    I believe it may be due to me running a 1.2.5 server? (Spawn mobs is set to true in the powers config)
     
  7. Offline

    EnisThenis

    Hi again,

    Majority of powers are working, but any of them involving explosions don't seem to do anything such as Blastwave and Volatility. I've looked through server config and explosions aren't denied. Is there any work around or am I missing something?

    EDIT: Nevermind, my fault. They don't work while in gamemode 1, switched to survival and working no problems.

    However I can't seem to get Soulshatter to work? The pearl gets destroyed but there's no change in light.
     
  8. Offline

    reded88

    thanks for such a wonderful mod, the power ideas are creative and impacts the way i play minecraft heavily, in a good way. keep up the good work.
     
  9. Offline

    sirrus86

    Yeah, this error is because you're running it in 1.2.5. Versions 3.2.1 and beyond will be for 1.3.1 only, so you may lose the functionality of some powers.
    Bukkit doesn't have any method that I know of to reduce the light level of an area, so SoulShatter instead looks for light sources and temporarily changes them into non-lighting blocks. It's not very effective outside, and will only affect torches, glowstone and redstone lamps.
    I'm glad you're enjoying it! Thanks for the feedback!
     
  10. Offline

    peaceiscloser

    Oh my gosh, you added the permission thing I asked for. This is absolutely golden. Thank you Sirrus! This'll make things go so much more smoothly now!
     
  11. Offline

    sirrus86

    I know right, it's like I listen to you guys or something!
     
  12. Offline

    Chalkie

    Seems to be one minor problem with Neutralizers, if a person no powers and enters a region with it enabled it spams that their powers have returned. Also you are a class on my server :)
    [​IMG]
     
  13. Offline

    sirrus86

    Ah always something... players with no powers aren't supposed to be affected whatsoever by neutralizers. Probably an oversight, I'll see about getting it fixed.

    And I'm a class?! That's awesome! On the server I play on I'm infamous for being the server mole; in survival I dig to bedrock then expand into a giant underground base, complete with farms and mob towers (basically several layers of canal-style mob traps stacked on top of each other). I'd say the class you're attributing me to is VERY appropriate!
     
  14. Offline

    mikehl

    what! you can make signs now! cool!
     
  15. Offline

    Chalkie

    No that is a mash up of 3 plugins, you click the class sign and it gives you perm to add the 3-4 skills of that class and a custom suffix then it removes the perms. (all within a second) gives me the freedom of making the classes I want with what ever S86 powers I want, the only draw back is setting the codes/permissions for the signs.
     
  16. Offline

    sirrus86

    Not yet, but I have received requests for sign and economy support. Temporary powers (another part of the same request) are already implemented for v3.2.2.
     
  17. Offline

    matthew21164

    Hi sirrus,

    Just saw your plugin on the first page of the plugin list, (probably because it's so new?) and it looks awesome. Just reading through these 4 pages makes me see how much you care about your users and incorporate their requests! I hope to start using your plugin in my sever right now, and I'm just glad that at least one plugin author uses something other than IRC :D .

    Just as a random question, what inspired you to make the squid-riding bit of aquafile which has caused so much trouble for you?

    Just wondering, could you explain what code you used for the sign? I'm thinking of implementing that sort of class system into my sever too. Obviously not exactly the same, but can you give examples such as, "To give [Insert power here] you would use [Sign code here] etc. Thanks

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

    sirrus86

    Good question, and I apologize if the answer's a bit longer than you expected :p.

    Aquaphile's original concept was by a player named bobby16may. He's well-known on our server as a huge fan of hockey, and unsurprisingly requested ice and water related powers. Aquaphile originally was simply to be able to breathe underwater. However as other powers became more complex, Aquaphile remained a very simple, and soon underwhelming power. This changed slightly later, when the underwater speed effect was added.

    Soon I started getting repetitive power requests, and at the time S86 Powers did not support multiple users using the same power, so I created a list of what kinds of power effects had yet to be requested. There were no powers that made use of squids, so bobby requested to incorporate this into Aquaphile. He also mentioned that, while it was great to have unlimited air underwater, he couldn't bring his friends down there with him.

    I started making some connections and ideas. At the time I hadn't figured out monster pathfinding so squid would wind up useless in most capacities. Bobby wanted to allow those near him underwater to also have unlimited air, but this would force him to pass up on the increased speed. So the question was, how do I add squid into his power somehow, and still allow his friends to stay near him when he's racing around underwater?

    Suddenly it was obvious: turn him into a rideable squid.
     
  19. Offline

    Chalkie

    Sure,

    So you will need S86 powers
    SimpleCommandSigns
    HiddenCommandSigns

    First of Think of a class, the example I will be using is Vampire with the skill Vampirism and Darkregen.

    Now you place the sign and make its a SimpleCommandSign (By default I belive it is [SCS] on the first line (you can change this in the config (I changed mine to class)) then on the sign put something like "Become a Vampire".

    Now you need to add the hidden command on the sign so type in chat;
    /hcs create "/powers player %p -d" "/powers player %p vampirism -o" "/powers player %p darkregen -o"
    Press enter and click the sign.
    So you know have told the signs that first command you want it to run is "/powers player %p -d" this removes all previous powers from the player, then you tell it to add the new powers ("/powers player %p vampirism -o" "/powers player %p darkregen -o")

    Now you have to tell the sign what permissions to give the player whilst the commands activate so type;
    /hcs addperms "s86powers.*"
    Press enter and click the sign.
    Now you have told the sign what permissions to give the player before the commands are run but to remove them after the commands are finished. (About a second)

    Notes:
    Players will need to have the permissions
    scsigns.use
    s86powers.enable
    This is so they can use the signs and powers.

    You use the -0 on the end of a skill in case you create a class that has more then one type of skill (Example 2 defensive's)

    You can add as many skills as you want but you may need to manually add more in the HiddenCommands Config file since MC Chat only allow a certain amount of characters.
     
  20. Offline

    sirrus86

    I'm impressed, you've figured out my plugin down to a science!

    I just wanted to note that "s86powers.*" is not a permission I've implemented, so depending on the permission plugin the wildcard may not work. If not, you can probably swap it for "s86powers.admin" to achieve a similar result.
     
  21. Offline

    Chalkie

    Correct, forgot to add not all Permissions use wildcard like PEX. (Derp)
     
  22. Offline

    matthew21164

    Thanks Chalkie, that's really going to help me set up classes :D

    Haha, yes I see how that came around. I guess you didn't realise all the trouble it would be in the end huh?
    Thanks for responding.
     
  23. Offline

    ThaCreep3r

    Nice Plugin Like ! ;)
    Keep Up the good work!
     
  24. Offline

    matthew21164

    Just installed the plugin on my sever:), works fine, and the only issue I had (Phasewalk spamming speed effect) was just due to lag on my side. I thought I saw an ability other than Aquafile that let's you breath underwater though(sorry I can't remember the name)... Is there really one or am I getting confused?:eek:
     
  25. Offline

    sirrus86

    Yes, Water Barrier also allows underwater breathing.
     
  26. I have a couple of ideas for powers:
    Lightning Speed: Player can teleport a certain distance. When teleported to target there is a lightning bolt strike where they are. (Could use an item like lapis or something)
    Dash: Use a feather to dash forward. Could have a short countdown before re-use.
    (Also Powertheft so far hasn't worked for Bloodbend or soulshatter. No need to rush the fix though. Great plugin!)
     
  27. Offline

    sirrus86

    Both good ideas, I'll see about getting them added.

    PowerTheft is a tricky power to get working, from a coding standpoint it looks fine but it's yet to work in testing. I intend to revisit it and get it working again at some point.
     
  28. Offline

    matthew21164

    Hi again, thought up a few powers, how many did you say were in the to-do list again?;)

    All of these ideas come from the basis of pre-detection, and giving you time to react. The last one has an aspect of not facepalming as soon as you die:).

    Perception/Radar-eyes (choose the name you think is best)
    Type: Passive
    Effect: When a mob is within 30 blocks, it warns you, something like "You catch a glimpse of something shadowy in the distance" then when a mob is within 15 blocks, it warns you "You hear a [Mobname] nearby" with [Mobname] being the name of the mob. It could also do the same for players but "You see a person in the distance" and "[Playername] comes into sight". Thought of it when ambushed by a creeper the other day :p .

    Slateskin/Golemblood (once again, choose the name you think is best)
    Type: Passive
    Effect: Gives you an extra virtual 2 hearts, but when I say "hearts" I mean hits, eg. Something which would do say 8 hearts of damage does none. So when a mob (or player) hits you a message says "1 block remaining" then "Your skin/protective aura cracks".

    Organizer/Inventorizer (Guess what? Choose again!)
    Type: Passive
    Effect: If killed by any means, you keep 100% of your inventory on the floor, and (if this isn't to hard to code) [Lvl 15+] it all lands in one pile together. It also means your inventory items cannot be destroyed by explosion damage for 5 seconds afterwards.

    The last one I'm not sure about, do you lose a bit of your inventory when you die normally? I always feel like it (and definitely lose some items) so I'm not sure:confused:. If you always keep 100% anyways replace the keep 100% bit with the ability to automatically equip new amour from your inventory and new tools if they break. I know a client mod can do this, but it is nice having it severside :). Keep the [Lvl 15+] bit and the explosion bit though if it isn't to hard to code.

    Sorry for expanding your list further, what's the progress on coding? How long do you usually put into coding the plugin in a week?

    P.S. Sorry for asking more questions after just apologizing, lol.
     
  29. Offline

    sirrus86

    Perception - Currently Sonar checks for nearby players, I'd probably add the ability to check for nearby monsters rather than create a new power.

    Slateskin - So like you take no damage from a certain number of attacks, with a cooldown? Sounds good, I'll see about adding it.

    Organizer - Yes, normally when you die all of your inventory drops. Drops are fragile though, and are destroyed by fire, lava, and explosions. Items can't be put in a single pile unless they're the same type though. I could play around with this and make a decent effect though.

    Coding - I spend maybe one to three hours a day coding. I make a point to put my personal and work life first, so I'm only coding during downtime. A given power can take between an hour and a few days to create. Other requested features, depending on coding complexity, can take longer. For example, once I decided to make the plugin public, I had to recode all of the powers as well as the command interface, which took two weeks. Integrating the pConfig into powers has been an ongoing project since v3.1.0 came out, and is still less than 50% complete.

    I like these kind of questions, by all means keep em coming.
     
  30. Offline

    matthew21164

    Yeah, I saw sonar just now (/facepalm) But I still prefer the, "within 30 blocks" "within 15 blocks format. Also, maybe Organizer could just make all items invunerable? (a.k.a despawn them for 10 seconds) then spawn back one of the items in the inventory, then when you pick it up, it gives all the items originally there (a.k.a putting it all in one stack?)

    I'm once again, glad you are so devoted to your plugin and your users, good luck!
     
  31. Offline

    vashvhexx

    Anyway, just a few suggestions:
    I have so many more :p


    - Ender skills = weakness to rain and water added to balance. Weak attack against players with pumpkins

    - vampires= add weakness to undead killing powers/ holiness

    - Creeper blood= creepers follow you naturally

    Electrified-
    Charged like a creeper when blocking with a gold sword. Being attacked causes lightning bolt to hit attacker.

    FireEater-
    right clicking on fire with your bare hands restores hunger/hp, 2 secs of invincibilty

    HolyGround-
    Digging in the ground with a Golden Hoe creates a temp 3x 3 square of glowstone that heals players, kills undead/ hurts vampires.

    HolyWater-
    Throwing buckets of water kills undead.

    CookieShell:
    When you eat a cookie, being attacked consumes any cookies in your inventory. 1 heart = one cookie. Cooldown.

    DragonSlayer:
    AoE slashes, makes the sword and player ignite when used (just visual) and makes the enderdragon noise. Extra damage to enderdragon. 30: has a chance to stun.

    Timebomb:
    Holding a Clock, rightclicking an enemy while sneaking places a timebomb on it. Explodes after 20 secs. Consumes 1 clock.

    PigFencer:
    Using a wooden sword, a chance is added to spawn a pig with each strike. (Makes other pig abilities usable)

    HealWand:
    Using a golden hoe, attacking a player heals them instead of hurting them. Extra damage to undead/ vampires At level 30: Slows undead. Vampires

    Werewolf:
    Turn into a wolf at night (or full moon?) Wolf form gets speed, can restore hunger by feeding on mobs/ animals/ players/ extra damage too. Can force transform at night by eating zombie meat. Weakness to iron weapons. Cannot use iron weapons/ armor/ walk on ironblocks.

    WindWalker:
    Allows walking on air blocks while sprinting. Reduces fall damage. Sprinting on land causes a gust of wind that blows away players.
    Horseman:
    Allows the mounting of any animal, gives player control and increases movespeed by 2x. Can use bows while mounted and when sniping on the mount, the animal auto walks.
    FrozenBlood:
    Creates snow/ice where you walk. Crouching on Snow disguises you as a Snow Golem. Hunger does not drop on snow. Eating snowballs heals you. Fire weakness.
     

Share This Page