[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. This seems cool, downloaded and tested it. The thing is that the powers are a little too much - I'd like to give my players a few unique quirks but nothing as powerful as this. I'd love to see a config file where you could alter what levels of the power are available (for example, acrobatics 1 seems perfect in my mind - acrobatics 4 is far too powerful for my game).

    Great work anyways, a big thumbs up!
     
  3. Offline

    sirrus86

    One of the added features for v3.2 is a power config file that'll allow you to modify certain mechanics of most of the powers. Acrobat is already done, and includes an option to set the maximum jump boost.

    Also some news for everyone else: S86 Powers v3.1 has just been tested on a server running a Bukkit 1.3.1 development build and works perfectly, so there may be no need for a seperate compatibility release.
     
  4. Offline

    peaceiscloser

    Does this mean that v3.2 will be released for 1.2.5?
     
  5. Offline

    OrangeCrush

    Hello again, I'm here with another question xD How do you craft a PolarBlade? It says that it requires a gold sword and snow materials, is this something that you craft or do you need to do something else? I think this goes for multiple of the "Blade" abilities.
     
  6. Offline

    sirrus86

    Yes, though it will be tested against 1.3.1 as well. It should work for both.
    Polar Blades are made using the following assortment on a crafting table:

    SN = Snowball, SB = Snow Block, GS = Gold Sword
    Weak Polar Blade:
    SN, SN, SN
    SN, GS, SN
    SN, SN, SN
    Strong Polar Blade:
    SB, SB, SB
    SB, GS, SB
    SB, SB, SB

    This is the only power with its own recipe.
     
  7. Lovely! I'm looking forward to this! :)
     
  8. Offline

    OrangeCrush

    At leaset on 1.3.1 the crafting recipes don't work. What is this supposed to produce? If it's a whole new items or something then this plugin would require spout, and I'm NOT getting spout. Also I think that the SoulShatter ability is a little bit OP, could you make it so that it only does that for a certain amount of time, even if the player dosn't reach light? It's very hard to reach light with that large amount of knockback it causes. Also could you please explain how the leveling works? Maybe add a command to see your levels for Aggresive Passive and Defensive?

    Edit: In 1.3.1 the Thunder Bow ability crashes the server when using it multiple times in a short time span. This is with dev version 1.3.1-R0.1/#2290
     
  9. Offline

    Chalkie

    Hi sirrus86, I love the plugin but I seem to have a problem with a couple of things.
    Neutralizing an area with the neutralizer beacon or a region causes powers to turn off and on with the sound of glass breaking (spamed)

    [​IMG]

    Using the skill aquaphile in water spams an error in console.

    Code:
    2012-08-04 23:13:44 [WARNING] Task of 'S86 Powers' generated an exception
    at me.sirrus86.S86_Powers.Powers.Passive.Aquaphile$1.run(Aquaphile.java:89)
    at me.sirrus86.S86_Powers.Powers.Passive.Aquaphile.access$4(Aquaphile.java:156)
    at me.sirrus86.S86_Powers.Powers.Passive.Aquaphile.squidPacket(Aquaphile.java:165)
    To anyone using this plugin it works great with SimpleCommandSigns + HiddenCommandSigns. You are able to Set a sign up with something like Choose PyroBow then add a command to activate it then another command show the power info and add the permission(s86powers.set.self) for a second.
    This means people can have the power with out seeing the command or having access to the command which makes it much more fairer out in pvp as they have to come back to change their skills.
     
  10. Offline

    sirrus86

    Nice, I stopped getting emails about new messages... Sorry for not responding!
    The crafting recipe is supposed to give you a gold sword with sharpness. It's a power I made fairly lightweight, and haven't tested much the past few months.

    Version 3.2 will allow you to modify powers. SoulShatter can be configured to have a shorter duration and not require the player to reach light.

    By levels I'm assuming you mean like powers that say "[lvl 30+] do something". This refers to your player's experience level, as in the green bar above your hotbar.

    I'm not surprised spamming Thunder Bow can crash the server; there was an old glitch where if you were level 30+ and shot an arrow using Thunder Bow into an unrendered chunk, it would cause lightning to strike non-stop at the edge of the chunk. It didn't crash the server but anyone near it would eventually lag out. I'll take a look at it.
    The beacon spam has been reported and is (assumed) fixed in the upcoming version. The code for beacons relies on fairly accurate server tick timings though, so if your server has any tick lag this can still be an issue.

    Packets have not been my strong point with this plugin XD The "turning into a rideable squid" part of Aquaphile is being removed for the next version, so this error will no longer occur. I may reimpliment rideable-squid-form in a future update.

    And awesome idea with the command signs! I've received requests to include a similar feature in the plugin and intend to in a future update, in the meantime this is an excellent alternative.
     
  11. Offline

    Chalkie

    Thanks for the response, also brawler is messing up.

    2012-08-04 23:53:02 [WARNING] Task of 'S86 Powers' generated an exception
    at me.sirrus86.S86_Powers.Powers.Offense.Brawler$1.run(Brawler.java:44)
    java.lang.NullPointerException
     
  12. Offline

    sirrus86

    Of course it is! *sigh* Alright I'll take a look at it :p, thanks for reporting it.
     
  13. Offline

    Chalkie

    Yea, besides that working lovely on my server, your're welcome to come on as well (New server :) although I am sure you run your own.
     
  14. Offline

    sirrus86

    I appreciate the offer, I may come by sometime. I can't run my own server as my ISP doesn't seem to allow external access to my IP, but I'm an admin on another server, merp.mooo.com:25555. I actually originally built this plugin for the server.
     
  15. Offline

    peaceiscloser

    Oh man, the wait for 3.2 to be approved by BukkitDev is agonizing!
     
  16. Offline

    Chalkie

    Another bug a server member reported (in b4 fk off reply XD) using Ender finesse rapidly gives you extra Perls.
     
  17. Offline

    mikehl

    come on bukkitdev >.< ... accept it!
     
  18. Offline

    sirrus86

    It's up now! Go get it!
    Yep, Ender Soul does too unfortunately... If you look straight up, throw a pearl, then "catch it", you'll get an extra pearl. Right now pearls are refunded once the plugin realizes it's being used for teleportation, as in causing damage to the user and no other entities. Problem is when you throw it at yourself, you're technically damaging yourself twice. I'll get it fixed.
     
  19. Offline

    OrangeCrush

    Chalkie I actually do the same thing :p Players spawn in a bedrock room where they choose their powers and hit a confirmation sign, that sign turns them into a different PEX rank and teleports them to the 'member' spawnpoint :D It works really well.

    There is a glitch with the PickPocket ability and essentials 'InvSee' ability, I was testing out the PickPocket, and when I was putting the items back into the players inventory using InvSee, I got kicked because of an 'Internal Server Error' Reply back if you want the log.


    Edit: Also how do you view powers? /powers info power [name of power] no longer works, and /powers info does not work either. Please look into this ASAP thanks!

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

    sirrus86

    Yes I would definitely appreciate the error log, although 'Internal Server Error' seems to be fairly common lately (I get them when I attack slimes and magma cubes. No idea why).

    The command structure was changed, as there were complaints of it being too difficult or extensive. To view power info you now just type /powers power [name of power]. I updated the BukkitDev page with the updated commands.
     
  21. Offline

    Chalkie

    Tried 3.2 for a little be before reverting back to 3.1 (Only due to not thinking there was a /powers info command)

    N Beacons still are not working (Spamming). Not sure how you coded it, but is it possible to code it in a way where if you enter the region that player is "removed" form the database (Just puts a comment # next to their name in the config) and if they are not in the region removes it. Checks would happen every 15 seconds to stop people coming in and out of the area fast resulting in the config being spammed.

    I thought of a few possible skills.

    Heavy Blow
    Tag: HeavyBlow
    Type: Passive
    Description: Every 20 seconds you swing extra hard resulting in 2 extra hearts of damage as well as dazing the enemy for 5 seconds (Use the potion effect of confusion on the enemy)

    Fiery Dash
    Tag: FieryDash
    Type: Offense
    Description: Whilst blocking with a iron sword dash forward 8 spaces then release a fire wave 3 radius wide. This skill has a 30 second cooldown. This skill is best used with the Fire Aura skill. (Use the same mechanic that Aquaphile uses in the water)

    Earth Quake
    Tag: EarthQuake
    Type: Offense
    Description: Use left click with a wooden sword releases a wave of dirt around you damaging anyone near you, uses 5 dirt every time with a 30 seconds cooldown. (Use the same principle as the Eldruin but shoots around you in a 3 raduis with dirt blocks and consumes dura and 5 dirt)

    Static Discharge
    Tag: StaticDischarge
    Type: Defense
    Description: When being attacked, your attacker has a 3% chance to get struck by lightning, the chance goes up to 8% if you are using the passive skill SuperCharger.

    Water Whip
    Tag: WaterWhip
    Type: Offense
    Description: Using bare hands you are able to shoot a line of water (4 blocks long) at an enemy for 2 damage, requires a bucket with water in your inventory. If you are in water whilst doing it the damaged is increased to 3.5 and length to 6. 5 Second cooldown.
     
  22. Offline

    sirrus86

    Beacons - I like how you're thinking. Here's what it literally does: Every server tick (0.05 seconds) all beacons do a check for players within a given radius. Any players they find, they check if they have powers. If they do, they disable that player's powers by disabling the s86powers.enable permission on that player for 5 server ticks (0.25 seconds). If the player previous had s86powers.enable, they get the particles and message. If not, they get nothing. Every 0.05 seconds the permission is set false for 0.25 seconds until they leave the area, after which the permission change wears off and the player is notified.

    Think of it like this: When driving down a road, start counting down from ten every time you pass a road stripe. If you maintain speed, you'll never make it to zero. But if for some reason your car slows down or stops, you won't pass the stripes fast enough before you make it to zero.

    Fortunately I thought of this before releasing v3.2, so you have a way to hopefully correct it until I can get a better fix. In the plugins/S86 Powers folder should be a file called pConfig.yml. One of the first lines after the comments is NeutralizerBeacon, under that is a line that says minimum-duration. It should say 5t. Erase the 5t and replace it with something like 1s (1 second), then try it out again. If this fixes your issue, the problem was probably tick lag. If not... my bad! Either way I'll work on getting a fix in the next version.

    Heavy Blow - I like it! Added to the list.

    Fiery Dash - Again, awesome idea! Added.

    Earth Quake - ...You're good at this. Added.

    Static Discharge - You got it, added.

    Water Whip - I love it! Added.

    ...No really, you're good at this.
     
  23. Offline

    peaceiscloser

    Is it possible to just have every power use a PEX-style permission node? Like, s86powers.use.aquaphile gives them the ability to use the power?

    I had some ideas for powers while playing Super Smash Bros.

    Entity Grab (or as I like to call it, Butterfingers)
    Tag: EntityGrab
    Type: Offense
    Description: Shift-rightclicking another player/entity while right next to them freezes them in place for about 3 seconds. Shift-rightclicking them again launches them in whatever direction you're facing. Cooldown set in config so that players don't abuse it.

    Power Shield
    Tag: PowerShield
    Type: Defense
    Description: Right-clicking while holding an iron ingot (or other item) gives you split second invincibility. Use of Power Shields consumes the item.

    Rapid Spin
    Tag: RapidSpin
    Type: Offense
    Description: Shift-blocking with a sword spins you around and knocks back entities. 10 second cooldown.

    Boomerang
    Tag: Boomerang
    Type: Defense
    Description: Left-Clicking with a wooden hoe throws it out like a boomerang, stunning entities in its path. Boomerang returns to player in a few seconds. Uses up durability, has a cooldown on use identical to how long the boomerang is active.

    (PK) Starstorm (lol EarthBound)
    Tag: Starstorm
    Type: Offense
    Description: Left-clicking with a diamond causes Ghast fireballs to rain down from the sky around you, targeting all nearby opponents. 1 minute cooldown.

    Double Jump
    Tag: DoubleJump
    Type: Passive
    Description: Crouching while jumping in the air boosts you up about 3 blocks. Doesn't allow jumping again until you reach the ground.

    Limited Wings
    Tag: LimitedWings
    Type: Passive
    Description: Able to use creative-mode flight in survival mode, but only for about 5-10 seconds, before it deactivates (with fall protection). Must reach the ground before you can use it again.

    Also, is it possible to change GunBlade so that it only fires arrows if there are no players/mobs in like, a 3 block radius? I don't want to be wasting arrows when they're right next to me.

    I'm totally going to use Fiery Dash as a Falcon Kick.
     
  24. Offline

    sirrus86

    Actually it wouldn't be that hard to add a permission clause. I'll see about getting it implemented.

    Entity Grab - Doable, added.

    Power Shield - Actually Holy Shield does this, except using glowstone by default. You can change which item it required, the duration, and the cooldown in the power config though.

    Rapid Spin - While the trigger and spinning effect are unique, Pulse has the same effect on entities.

    Boomerang - Now this would be a feat. Launching an entity away from the player is easy, but since gravity makes entities constantly descend it's hard to make it return before hitting the ground. But hey, I like a challenge. Added.

    Starstorm - That would be BEASTLY. I've found that ghast fireballs are incredibly inaccurate though, but that may be what balances this power. Added.

    Double Jump - Doable, added.

    Limited Wings - Actually someone beat you to this one :p

    Gunblade - I can add an option to the power config for minimum range.

    Loving all the power requests, and by all means keep em coming, but just FYI I now have 28 power requests to do. I'm going to try to do them first-come, first-server except for some cases where the power is highly anticipated or incredibly unique. Once the power config and fixing the existing powers for 1.3 is done, power requests will be my main focus until I've completed most or all of them.
     
  25. Offline

    peaceiscloser

    Well, I figured you had a lot, I just wanted to make sure my ideas went on the list before the list got too full xD Sorry. Anyway, v3.2 has been working very smoothly for me on both 1.3 and 1.2.5, so excellent work Sirrus!
     
  26. Offline

    EnisThenis

    Hey, I recently installed the plugin but having no luck populating the powers database. I'm using PEX, placed the jar file into plugins. Restart server, the s86 folder got created and the 2 files are there, fine. I've done /powers list powers in game but it only returns
    "---------------------------", I've also tried adding the permissions to PEX but no luck.
    Any idea what I'm doing wrong?
     
  27. Offline

    sirrus86

    You're not doing anything wrong. Actually, the blame is on me; the commands changed and I didn't change the info on this page to reflect that. To get a list of powers, the new command is '/powers power'. You can also just type '/powers' from the console or in-game to see all of the commands available.
     
  28. Offline

    EnisThenis

    Thanks for the quick reply sirrus. Will give it a go now.

    Yep working no problem, thanks again.
     
  29. Offline

    Chalkie

    Player was blood bending today (Spaming it ofc) killed the server.

    Code:
    2012-08-07 05:25:26 [SEVERE] Could not pass event PlayerInteractEntityEvent to S86 Powers
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:460)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:979)
        at net.minecraft.server.Packet7UseEntity.handle(SourceFile:33)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:229)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113)
        at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78)
        at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:567)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:459)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
    Caused by: java.lang.OutOfMemoryError: PermGen space
        at sun.misc.Unsafe.defineClass(Native Method)
        at sun.reflect.ClassDefiner.defineClass(Unknown Source)
        at sun.reflect.MethodAccessorGenerator$1.run(Unknown Source)
        at sun.reflect.MethodAccessorGenerator$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.reflect.MethodAccessorGenerator.generate(Unknown Source)
        at sun.reflect.MethodAccessorGenerator.generateMethod(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302)
        ... 10 more
    Are you able to add a cooldown message like other skill so they at least don't spam it as much.
     
  30. Offline

    sirrus86

    A cooldown would increase the amount of time before this happens, but it could still happen eventually. Unfortunately I'm still new to coding Java (and in turn, plugins), and I believe this to be the side effect of that.

    I'll see about recoding part of this power to lower the memory demands. I can also add a cooldown to the power config that you can increase if needed.
     
  31. Offline

    mikehl

    idea:
    jesusism: can walk on water and lava and when holding a water bottle and hitting a configurable block (probably gold) will make it some random potion

    ps: im not being christian to all you people who might think im promoting christianity, I myself am atheist, just thought it a good idea.

    you already did add a cooldown to bloodbend, i just configured it like 15 min ago. I wanted bloodbend to be used more often and have longer time instead of just once every 30 secs

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

Share This Page