Skillz
Stats - made by Lolmewn
Description
This plugin adds Skills to your server. With skills, the player has a goal to work towards to, and get rewarded for playing actively. You can also use these skills as requirement for a rank-up, for example. Gaining levels can also make you more powerful, but not overpowered.
Commands and permissions
Command | Permission node | Description |
/skills | skillz.skills | See your skill levels |
/skills page <pagenumber> | skillz.skills | View other pages of your skills (Not yet implemented) |
/skills <Player> | skillz.skills.other | Shows skills of another player (Not yet implemented) |
/skills check <skillname> | skillz.check | Checks when you level up (Not yet implemented) |
/skills top | View the top players for every skill (Not yet implemented) | |
/skills reset | skillz.reset.self | Reset your skills (Not yet implemented) |
/skills reset <Player1> <Player2> etc | skillz.reset.other | Reset other player's skills (Not yet implemented) |
Default Skills
There are a couple of basic skills. To give an idea of what they do, I'll take the Mining skill as example and walk you through the config.
#name of the skill name: Mining #description of the skill, will be used later for more in-depth commands. description: Level up your mining skill to unlock new features, like breaking new blocks and using new tools. #default XP-gain multiplier multiplier: 1 #whether or not this skill is enabled at all enabled: true #send a message to everyone that a player has leveled up. You can change the message below broadcastLevelup: true #blocks used by this skill, either for gaining XP, blocking until a certain level, or blocking items until a certain level. blocks: #the stone block gets associated with this skill. You can find a list with all possible itemnames here: https://hub.spigotmc.org/stash/projects/SPIGOT/repos/bukkit/browse/src/main/java/org/bukkit/Material.java#84 STONE: # get 1 XP for breaking a stone block. You level up when your XP is higher than level^2*10 (so to get level 3, you need 40 xp) xp: 1 COBBLESTONE: xp: 0.5 #you can only start mining cobblestone from Mining level 5. level: 5 tool_level: #only for breaking blocks #you can't use a Diamond pickaxe until you are level 5 DIAMOND_PICKAXE: 5 #Special abilities that randomly happen, usually with a higher chance of happening as the player gets to a higher level. special: #get double drops every now and then doubleDrops: #whether or not this special is enabled enabled: true #what the chance is of getting a double drop, in percentages (from 0-100) chance: "%level%/3" #when a double drop happens, send the player a message notifyPlayer: true doubleXp: enabled: true chance: "%level%" notifyPlayer: false messages: levelup: - '&3Congratulations %player%! You leveled up your %name% skill.' - '&6Your skill level is now %newlevel%' broadcast: - '&3%player% leveled up his %name% skill! He is now level %newlevel%' needsHigherLevelBlock: "You can't break this block! %name% level required: %level%" needsHigherLevelTool: "You can't use this tool yet! %name% level required: %level%" itemsDroppedOnGround: "Your inventory was full, causing your item rewards to be dropped on the ground!" doubleDrop: "Your block had a double drop! How lucky you are." doubleXp: "Your block dropped double XP! How lucky you are." #rewards for leveling up rewards: #some items you get. Separated by ; for multiple items. 89,4 means 4 glowstone (will use material name in a newer version), 17,2,1 means 2 wood with data-type 1 (so Spruce wood). items: 89,4;17,2,1 #money you get for leveling up. Nice incentive for working towards a levelup. money: 100
Basic Skills
There are a few basic skills you can train:
Name | How to gain XP |
---|---|
Acrobatics | Fall and get hurt |
Archery | Hit players or animals with your arrows |
Digging | Dig dirt, sand, grass or gravel |
Mining | Mine blocks, get XP |
Swimming | Suffocate in water |
Swords Combat | Hit players or animals with your sword |
Woodcutting | Chop trees |
A Video about it
Source
https://gitlab.com/lolmewn/Skillz
API
Hook into the API to get player levels, XP, add new Skills, and more! Click here to see the API
I've been using your 5.6 beta and I've noticed when it saves everyone's skills, it does so in a folder called "player", located inside the "skillz" folder. This is fine while the server is running. However, it loads everyone's skills from a folder called "players" (also located in the skillz folder) after I have shut my server down and started it back up. Is this because it's a beta?
Other than that, it works great.
more detail: Total duration: 451.505 ms / 500 ticks Average duration: 0.903 ms/tick Event count: 8 Task count: 0 Plugin: Skillz
@Hans6666
Maybe it does too much checking, or in a way that's not efficient. I will look into this, 451 ms is abnormal.
HUGE performance problem! it does not happen all the time..maybe all 10-30min i get a huge lag on my server... nolagg says this: http://img849.imageshack.us/img849/412/combergerkillerbukkitno.png
blockbreakevent does take 451. ms o.0
please fix this!! im using flatfile..could this be the problem? hmm i dont think so..but i will try mysql
edit: after disabling all skills which has to do with block placing/mining etc the laggs are GONE
when you level up do those skills actually become stronger?
@ThatGuy45
That is weird. Please make a ticket with your config file and the server log at startup and shutdown.
Mine still aren't saving. I do /save-all, then /skills save, (then a few other plugins), then /stop or /reload, and when everyone joins again their levels are at zero?
@ThatGuy45
They're automatically being saved, so if you shut down the server correctly, they should save just fine.
The levels reset when you reset the server how do you save them
@mima19
You can make one yourself of course, I am currently in progress of developing one.
Is there a way i could show them on a webpage?
@Hans6666
Did you even look at the config? There is a line for that.
a localization would be great for example to translate the "player leveled up in xxx"
@OVAGI
That can be done with a small calculation. (lvl - 1) ^ 2 * 10 = XP needed. For example, level 2 needs 10 xp (9xp is level 1, 10xp is level 2). Level 200 would then be 396010 XP
@MRCartm0n
I know it's doable with PEX, not sure with GroupManager (should work though). Take a look at this: https://github.com/PEXPlugins/PermissionsEx/wiki/Advanced-permissions-setup#wiki-pex-multiworld-inhertiance You can set it per-world. So if you only want to enable it in one world, just add it to that world only.
Could you include a level exp table, so i could see how much exp it takes to get to level say 200
I can't do that because my worlds are all mirroed with the main world (where pvp is disabled) and when I stop that now people wont have the same groups as in the other world. We use a rank up plugin which can only rank up global. Isn't it possible to add a permission like skillz.use.*world* ?
Using GroupManager btw.
@MRCartm0n
This is the permission node: skillz.skill.<skillname> You can give them skillz.skill.* if you want them to be able to level up everything available. Do note: This does require a setting to be set to true (the one I stated below). Add the permission node to the world you want it to apply on, and you'll be fine ;)
How can I give them permission for one world only? Can't see any permission that does that :S
@MRCartm0n
Only give them permissions for a certain world (do note, permsForAllLevels or something in the config must be set to true)