Inactive [RPG/ECON] ExpSkills 0.8.3 - buy/rent Skills, Perks and Permissions [1.2.5-R2.0]

Discussion in 'Inactive/Unsupported Plugins' started by Syd, Feb 7, 2012.

  1. Offline

    Syd

    ExpSkills v0.8.3 - buy/rent Skills, Perks and Permissions


    Use BukkitDev, this thread is (as the title might suggest) inactive - the project not.​

    Version: 0.8.3
    Download: 0.8.3 (jar) <- permalink
    Source Code: GitHub

    Lastest Dev Build: Download (Updated: 5/27/2012)
    Dev Build Chancelog (open)

    0.8.4_beta1
    • fixed NPE in /exp rented
    Register: Download
    Vault: Download

    If you want to support me:
    [​IMG]

    ExpSkills is a Plugin which allows you to buy Skills (i.e. Permission nodes) with money and/or Skillpoints using common Economy Plugins through Register and the vanilla Experience System of Minecraft, which was added in 1.8.

    Features:
    • buy or rent permission nodes/groups with money and or skillpoints (using Vault/Register and a mix between vanilla and own experience system)
    • let players buy skills after a skilltree
    • let players only buy skills if they have enough playtime or not too much skills
    • show your current experience, level and playtime
    • define your own level formula
    • changed orbdrop/xp loss on player death to the amount of xp he collected to the next level
    • powerfull admin commands to grant, revoke and reset skills and xp of a player
    • translate the languagefile if needed
    Supported/Requried Plugins:
    Economy: all plugins which are supported by Register or Vault, depending on which you are using.
    If you dont want to use economy features set use_economy: in config.yml to false.

    Permissions:
    Full supported: PermissionsEX,bPermissions
    partial supported: Built-In Permission (no groups), Permissions 3.x (no group_earn), PermissionsBukkit (no group_need)

    If you want support for another Permissions Plugin please tell me. (Using Vault as Permissions Provider is planned)

    Usage
    Commands:
    expskills.use - Commands
    /exp help [command] - get Commandlist or more advanced help for a command
    /exp stats [player] - show your/anothers current stats
    /exp list <page> [filter] - list all avaible skills
    /exp info <skill> - get information about a specific skill
    /exp buy <skill> - buy a skill
    /exp rent <skill> [time] - rent a skill for the given time, time can't be higher then 'renttime:'
    /exp current - show's the skills you already bought
    /exp rented - show's the skills you already rented
    expskills.admin - Commands
    /exp <set/add> <player> <xp/level/skill> <amount> - add/set stats of a player
    /exp current <player> - get current skills of a player
    /exp revoke/grant <player> <skill> - grant/revoke skill
    /exp reset <player> [total/level] - resets the player's skills, levels or both

    Permission Nodes:expskills.use - use this Plugin as user (help, stats, list, info, buy)
    expskills.current.others - the player can use /exp current <player>
    expskills.rented.others - the player can use /exp rented <player>
    expskills.admin - use this Plugin as admin (all commands)
    expskills.admin.add - permissions for /exp add
    expskills.admin.set - permissions for /exp set
    expskills.admin.reset - permissions for /exp reset
    expskills.admin.grant - permissions for /exp grant
    expskills.admin.revoke - permissions for /exp revoke

    Config:
    config.yml (open)
    Code:
    general:
        skillpoint_modifier: 2.0 #how much Skillpoints you gain per Level
        currency: Dollar #name of your currency
        use_skilltree: true #want to use the skilltree?
        use_economy: true #want to use economy features?
        formula: 0 #which formula should be used -> 0 = 1.0.0 formula, 1 = 1.8. formula,
    #2 = own formula after y=ax⁴+bx³+cx²+dx+e where x is the level and y the experience.
        formula_a: 0 #for formula: 2
        formula_b: 0
        formula_c: 0
        formula_d: 0
        formula_e: 0
        skill_cap: 0 #max number of skills, a player can buy 0 = unlimited
        updatetime: 300 #every how many seconds the rent's are updated
    skills: #Skill section
        testskill: #the key of this skill
            name: testskill #Display name of you skill
            description: Just an example #a short text for /xp list
            info: Haha #a more advanced info for /xp info <skill>
            cost_type: both #what is charged - money/skillpoints/both - only for /exp list and /exp info
            skillpoints: 2 #how many skillpoints are charged for this skill
            money: 1000 #how much money is charged for this skill
            permissions_need: #the needed permissions to buy this skill
                - 'foobar.bar'
            permissions_earn: #the earned permissions when buying this skill
                - 'foo.bar'
                - 'bar.foo'
            groups_need: #the player needs to be in this group to buy this skill
                - builder
            groups_earn: #the player gets this group when he buy this skills
                - mod
                - admin
            revoke_need_groups: false #revokes all groups_need groups after buying this skill
            level_need: 0 #the level needed to buy this skill
            time: 60 #the playtime in seconds which are needed to buy this skill
            buyable: true #is this skill buyable
            rentable: true #is this skill rentable
            rentcost: 100 #how much money is charged for renting this skill at max
            rentcost_min: 50 #how much money will be charged at least when renting this skill
            rentdiscount: true #will the player get a discount when he uses a lower time
            renttime: 300 #the default and max renttime for this skill (no discount if you rent for lesser time)
            categories: #for /xp list <page> <filter> use
                - 'example'
    version: '0.8.3'
    

    skilltree.yml (open)

    Code:
    skilltree:
        skill0:
            skill_need_type: or #or/all - how many skills are needed
            skill_need: #list of skills which are needed to buy this skill
                - 'skill1'
            skill_illegal: #list of skills which block this skill
                - 'skill2'
            skill_possible: #for /xp info
                - 'foofoo'
    

    <player>.yml (open)
    Code:
    #this file keeps track of bought skills, extra skillpoints and saves EXP
    skills: #current skills of the player
    - testskill
    - mining
    - godmode
    skillpoints: 10 #bonus skillpoints for this player
    experience: 10 #experience value saved to prevent a MC bug
    extra_skills: 0 #raises the skill_cap of a single player - currently without command
    donotchange: 1328621266671 #used for time measurement
    onlinetime: 2846944 #playtime in ms
    


    To-Do List/Road-Map
    Known Issues
    Improvements
    • add skillcap info to /exp stats
    Features
    • more extended rental of skills
    • grant skills on time
    • some statistic fun (0.9)
    • MySQL support (?)
    • Spout (?)
    Changelog
    Version 0.8.3 (5/25/2012)
    • added per command permissions
    • changed Permissions implementation
    • changed that rented skills are only checked for online players
    • changed skillname check to be case insensitive
    • fixed critical bug in Skills per World feature
    • fixed possible bug in skilltree need_type
    • fixed NPE in rented skills check
    • fixed a possible RTO error
    • fixed a missing space char
    Version 0.8.2
    • updated to CraftBukkit-1-1-R7
    • added worlds: <list> node for skills to buy skills only for special worlds
    • added rentcost, rentdiscount, rentcost_min and rentable/buyable nodes for skills
    • added change_expdrop: true/false value in configfile to disable the orbdrop and exp saving (compatibility)
    • added "/skill" and "/skills" alias for "/exp"
    • added Vault Permission Support (untested)
    • fixed a possible conflict between Vault and Register
    • fixed error in "already own skill" check
    • fixed a few NPEs
    Version 0.8.1 (2/8/2012)
    • fixed NPE on startup
    Version 0.8.0 (2/7/2012)
    • updated to CraftBukkit-1.1-R3 (#1846)
    • general code cleanup and refactoring of source code
    • added Vault Economy Support
    • added playtime counter and playtime as requirement for skills
    • added rental of skills
    • added customizable languagefile
    • added message on levelup
    • updated support for bPermissions - it should work with all features now!
    • updated support for PermissionsBukkit - only group_need is not supported as of now
    • updated /exp list -> "/exp list all" or "/exp list <filter>" all shows you all skills no matter if it's buyable for you
    • updated /exp reset -> "/exp reset level" resets only level and exp, "/exp reset total" resets exp and skills, "/exp reset" resets only skills
    • updated 'cost_type:', it does only matter for "/exp list" and "/exp info" anymore. It will now always take the amounts of money/skillpoints given in the config
    • removed the skill0, skill1, skillx limitation, you can now name you skills as you want
    • fixed /exp list to show only buyable skills now
    • fixed a bug in /exp reset which could cause lag
    • maybe a few more fixes due the cleanup
    Version 0.7.0_RC2 (12/13/2011)
    • fixed bug with skill_cap
    Version 0.7.0_RC1 (12/13/2011)
    • built against CraftBukkit #1597 - MC Version 1.0.1
    • added independent level calculation method. See config section for further details.
    • added level_need node for skillsa
    • added revoke_need_groups: true/false node
    • added first try for automatic config updates
    • added skill cap and a "extra_skills" value in player config
    • updated /exp grant/revoke to no longer work with non existing skills
    • updated all commands from /xp to /exp, as /xp is a now a vanilla command
    • removed /exp add/set <player> totalxp
    • fixed /exp revoke to work as intended
    • fixed CRITICAL Typo in Skilltree
    • fixed CRITICAL bug in cost_type: both skills
    • fixed small bug in /exp current <player>
    • fixed some NPE
    • maybe something i forgot to mention here
    older changes (open)

    Version 0.6.4 (11/16/2011)
    • fixed bug with skillpoints
    • fixed /xp help list
    • fixed /xp list <page> filter does not work
    • some changes in PEX to use global permissions, not per world (you may need to update your players permissions)
    Version 0.6.3 (11/6/2011)
    • fixed bug in Register when using iConomy
    Version 0.6.2 (11/6/2011)
    • fixed bug in groups implementation
    Version 0.6.1 (11/6/2011)
    • quickfix for some NPE's
    Version 0.6 (11/6/2011)
    • bPermissions support
    • added group support (PEX/bPerm)
    • added /xp reset <player>
    • more checks against NPE's
    • added XP to next Level display to /xp stats
    Version 0.5 (10/22/2011)
    • fixed a bug in Skilltree implementation
    • fixed bug in /xp list
    • added /xp grant command
    • added /xp revoke command
    • added /xp current <player> for admins
    • added "use_economy" confignode
    • updated to CraftBukkit #1337
    • updated to Register 1.5
    Version 0.4 (10/9/2011)
    • updated to CraftBukkit #1240
    • fixed NPE in /xp info
    • advanced /xp info output for Skilltrees
    • first try in Bukkit built-in Permission
    • added /xp reload command
    • added preferred_economy config node
    Version 0.3.1 (10/3/2011)
    • fixed bug when skilltree was disabled
    Version 0.3 (10/3/2011)
    • bought skill will not be shown in /xp list
    • workaround for logout on death XP bug
      -> when a player lost his XP due a bug he needs to relog or to die and his XP are resettet to the amount in config file
    • first try for Skilltree function
    Version 0.2 (9/29/2011)
    • Updated /xp info to show the price
    • implemented /xp current
    • list categories with /xp help list
    • grant/revoke skillpoints with /xp <add/set> <player> skill <amount>
    • cleaned up some dirty code
    Version 0.1 (9/27/2011)
    • initial release
     
    kahlilnc likes this.
  2. Offline

    md_5

    Syd Looks good, R4 please
     
  3. Offline

    Syd

    done
     
  4. Offline

    md_5

    BUT WAIT! R7 is out, please tag me when you update
     
  5. Offline

    Syd

    @md_5
    Done + Update to 0.8.2
     
  6. Offline

    md_5

    Approved
     
  7. Offline

    milo34

    Idk if i setup the Config mod wrong but i Get a red error message when i try to use a command "An internal Error has occured whilt attempting to preform this command" I have it turned on for Econemy, but i have this Command set to work with Experiance as it was intented to be a Test command

    Is it possible that you could do a Video demo on fully setting this us as im sure i have all the values correct XD im sure i got this right You have a dam demo in here explaining what everything does aswell as a Test command in the Config
    Thanks for reading i hope that im just having a slow moment and failing to set this up right
     
  8. Offline

    Syd

    @milo34
    Which version are you using? Could you please post the error from the console?
    It would help me to find and fix the error.

    Also check if you set use_skilltree: to true, while the skilltree.yml is empty, this was one of the most common errors.

    About a video: I´ll try to make one, but it could take a while...
     
  9. Offline

    milo34

    Syd
    Lemmy know if u need a help with the video
    Remember to Wright out a Script I found that thats the best way to cut down on time and make
    Your tutorial make sence and totaly Anti Childish

    CMD prompt error is gone After a Redownload, Im still unupdated from Craftbukkit-1.2.3-R0.1 The Previous Recomended Build i beleave
    when i do the command /EXP List i dont get anything besides 2 lines of -'s
    TestSkill never seems to go's away even after i deleate it from the Config.YML file
    when i do my command /EXP rent TPToken It says Skill Not Found (No Error Message)
    I get the same error message when i try and Rent or Buy any command even TestSkill


    Im Using bPermissions Incase that makes a diffrence

    -- Ideas and other errors i have encountered trying to use plugin --
    1. SINGLE USE for a Perchused Permission - Fantastic for /TP for a 1 time use to another player
    *2. Better explinations as to what the Command does when using /EXP - That will Help admins
    3. If the Command fails for some reason Provide a possible reason why other then Skill not found - Cuz /EXP list is part of ur Plugins commands not a Skill, Though what u do is a skill
    *4. Add command /EXP Skills and /EXPSkills or somthing like that- Because /EXP may conflict with many scripts and is just easyer to remember :D as its the name of the script

    5. Add some color to your script man Lol the ideas totaly bad ass and the /EXP help dont seem to reflect that

    Lemmy know if you need any help or want any more Constructive Critisysum - milo34
     
  10. Offline

    Syd

    @milo34
    When you try to buy a skill, consider to keep upper and lowercase.
    If tells you "skill not found" it means no name: entry fits to the given String. If there is another reason why you can't buy the skill, it'll tell you, too. Try "/exp list <page>" all see all defined skills.

    The immortal testskill is already fixed in the dev version.

    Singe use permission are not planned yet, as it would require a completly different system than buying/renting skills.
    A alias is already added -> /skills
    Colors... I´ll add some soon.^^

    And a better explaination is also planned, I´ll look...

    And constructive critism is always wanted.^^
     
  11. Offline

    milo34

    Uper and lower case yea lol i renamed it and it says i just dont have enough playtime, but i have it set to Skillpoints i was under the impression that it would come outa me EXP bar

    Umm Really, Is Java that much of a bitch? i would have assumed that Allow till used then resets to like a value of 0 would have been easyer to create then Timed events

    /EXP list still only shows me 2 ---------------------- lines in blue none of the commands i have listed.

    other then that with a few more changes im sure that ill be able to get this working, Thanks for all the help man
     
  12. Offline

    Syd

    @milo34
    Check your time: node's in your config, its higher than your playtime, so it wont be shown in /exp list.

    The onetimepermissions have nothing to do with Java, it's more bukkit as it don't tell me when a another plugin checks a permission node, what means I can't determine when a Permission is needed.
    However, it would be possible to commands, as I can listen to them.
     
  13. Offline

    kahlilnc

    Keep it up
     
  14. Offline

    Gridlock777

    I want to use this plugin in conjunction with McMMO. Donors get unrestricted access to McMMO abilities. Members need to "rent" the abilities via your plugin. However, it seems that even if they get the mcmmo.ability.* from your plugin they still do not gain access to the abilities? Here's a pastebin of the config: http://pastebin.com/s4ri8NpD
     
  15. Offline

    Syd

    @Gridlock777
    Use the dev version, it should fix the bug.
     
  16. Offline

    milo34

    Ill give it a try, And let u know if the Time node change did the trick for the users of the server Thx again bro
     
  17. Offline

    Gridlock777

    2012-03-20 19:40:21 [SEVERE] java.lang.NullPointerException
    2012-03-20 19:40:21 [SEVERE]at com.syd.expskills.funcs.revokeSkill(funcs.java:853)
    2012-03-20 19:40:21 [SEVERE]at com.syd.expskills.RentingManager.update(RentingManager.java:24)
    2012-03-20 19:40:21 [SEVERE]at com.syd.expskills.ExpSkills$1.run(ExpSkills.java:101)
    2012-03-20 19:40:21 [SEVERE]at org.bukkit.craftbukkit.scheduler.CraftWorker.run(CraftWorker.java:34)
    2012-03-20 19:40:21 [SEVERE]at java.lang.Thread.run(Unknown Source)


    This is constantly spamming my server log.
     
  18. Offline

    Syd

  19. Offline

    Gridlock777

    Your dev build that you told me to use that fixed the McMMO renting problems I was having.
     
  20. Offline

    Syd

    Ah okay. Please download the lastest dev version, it should fix it.
    Thank you for your report. :)
     
  21. Offline

    Gridlock777

    It seems that after putting that dev build in it stops the spamming on the server log, but after a few minutes the server gets a RTO error. That's it. Troubleshoot after troubleshoot, I finally figured it was your plugin. I'll be happy to help test with you.
     
  22. Offline

    Syd

    I really need to rewrite this plugin from scratch...
    I´ll maybe upload a new version, which hopefully fixes the RTO.
     
  23. Offline

    okami13

    Is it possible to use "Heroes" skills with your plugin?
     
  24. Offline

    Syd

    As long as Heroes uses Permission Node to distribute skills: yes.
     
  25. Offline

    milo34

    Plz be sure 2 add messages letting users know when their rental has expired XD and if ur actualy remaking this amazing idea plz throw in or think up a way for single use of a command
    I cant w8 to get my public server finished this mod will open so many doors and really make economy stuff feel so much more fun


    Still insain over the single use idea it rly is a must for commands like /Tp or to discurage Locking other players doors with lwc Hell its even practicle for use of region tools or loading schematics or load outs
    Im hoping that thats perswasive :)
     
  26. Offline

    El_Fluffy

    Umm Do you have skype? I would need some help!! If you are able to help just tell me!
    -El_Fluffy
     
  27. Offline

    Syd

    @El_Fluffy

    Sorry, I only use Steam, Xfire and MSN.
    What is you problem?
     
  28. Offline

    El_Fluffy

    We have a few problems. This is what I would like to be done:
    1) they play in a Mob Arena until they collect enough xp to get to level 20 in /exp stats
    2) they do /exp buy Deadmeat. (Deadmeat is the skill we're calling it)
    3) this allows them to do two thing:
    - get the prefix "Deadmeat"
    - get the permission "mobarena.classes.deadmeat"
    Both of these can be done by promoting the player to the group Deadmeat (in my permission plugin.)
    I just need to know how to promote them to the group Deadmeat after they buy the exp skill.
    I am using the permission plugin permissionsEX.
    I also want them to do /exp buy Survivalist after they reach level 40 and to change the prefix to "survivalist" and to also add the permission "mobarena.classes.survivalist"
    And so on for a few more levels.
    Thanks for you support.
     
  29. Offline

    Syd

    At first you should, as you already figured out, define it as a PEX group with the prefix and permissions.

    The skill entries in the config.yml should like something like this:
    Code:
     
    survivalist:
        name: survivalist
        description: Some blabla
        info: another bla
        cost_type: skillpoints
        skillpoints: 0
        money: 0
        groups_need:
        - deadmeat
        groups_earn:
        - survivalist
        revoke_need_groups: true
        level_need: 40
        buyable: true
        rentable: false
    
    Just change it for every skill, as you need it.
    I hope it's understandable...^^
     
  30. Offline

    El_Fluffy

    Ok ty...... Would it cost money for you to do custom plugins on my server?

    I put that code into the config.yml... reloaded the server, and when I do /exp buy survivalist, it won't upgrade me to the survivalist group. I am still in the deadmeat group. Thanks for all your help and responding quickly.

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

Share This Page