[MECH] Legacy Xp - Customize your levels [Formatted]

Discussion in 'Archived: Plugin Requests' started by UltraFaceguy, Jul 19, 2012.

  1. Offline

    UltraFaceguy

    Plugin category: MECH

    Suggested name: LegacyXP

    Description: There are plugins to allow your damage and health to increase as your level rises, one of which is used on my server. When you disable Xp lost on death, and disable enchantment exp cost, people eventually end up at a fairly high level, 100 and up. But there seems to be an annoying fact about Xp: it does not increase if difficulty to level past somewhere around 100! Seeing this, the upcoming 1.3 update, and the desire of many server owners to customize exp on their server, I devised this king of Xp level plugins!

    What I want: A plugin that allows players to customize the exp required to level on their servers with configuration option for disallowing players to level up past a certain level. This one is quite difficult to explain, so an example config will suffice.
    Code:
    # Determine the type of equation used for leveling
    Type: Flat/exponential
     
    # Determine number at which the player does not level farther.
    cap: 250
     
    # Options for flat rate. Initial is the amount of Xp required to go from level 0 to 1, while rate
    # is the amount this number increases, per level. In the example, level 0 to 1 would be 10 xp,
    # 1 to 2 would be 12, an so on.
    flat-initial: 10
    flat-rate: 2
     
    # Options for exponential leveling. Ideally, an equation would be used as defined by the config,
    # but I'm not sure how easy this would be to implement. Defaults to Minecraft's default.
    equation: 10+level^1.5
    Ideas for commands: None. Purely mechanical.

    Ideas for permissions: None.

    When I'd like it by: ASAP, though I can live without it.

    Additional details: Please ask if you have any questions on what I mean by the example config, I understand that this isn't the easiest of concepts to understand/explain
     
  2. Offline

    armtutorials

    Good idea! I wish there was a plugin like this! Hope someone makes it! Keep giving details, it will help the creators be like: OMG THAT IS A COOL IDEA! (abandon old plugin)
     
  3. Offline

    UltraFaceguy

    Well, glad to see you a very exited about this! With the customization of rates one could also control how often items are enchanted, or perhaps make low level enchants easy to obtain (around level 20) but have the difficulty spike up around level 30-40. Really there are many ways you can use this mechanic, I as surprised nothing like it existed already (that I could find)
     
  4. This seems like a good idea, but there are a couple design issues I see.
    1. Equations can be difficult to implement into a program, so a third party library is the only way it would be practical to implement your last request.
    2. There is no internal settings for the EXP required per level. Therefor, an additional value for EXP would need to be stored (and could be resource heavy due to that)

    I might mess around with the idea for a bit and see what I come up with.
     
  5. Offline

    UltraFaceguy

    Alright, thanks! When you put it that way though, it does seem tough. Best of luck :D
     
  6. Offline

    LexLaiden

  7. I took a look at your plugin, but I think it is different. The way I understand your plugin, is that it keeps an accumilation of all xp ever earned. This idea, on the other hand, simply modifies the experiance required per level.

    I think I can get the fomulas to work by running user-made or pre-provided javascript code.

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

    UltraFaceguy

    Hrm. Alright, Its not very Java-y but 5+(level^1.2) seems like it would be a fit for me... Though I was hoping for a more universal plugin, not so much a 'only applies to Faceguy' plugin. If you can get it to work however, I will gladly accept it.

    Oh and implementation of levelcap possible?
     
  9. The way I imagine it:
    * User installs plugin and nothing is different.
    * Goes into program folder and sees a .js file called "levelFormula.js"
    * Opens file and sees helpful comments that lead him to a simple, easy to read formula
    * Modifies formula to his/her liking, saves, types in a reload command (or reboots server)
    * New level system is in place.

    Javascript can be very simple to use.
    A formula file would look like:
    Code:
    function formula(level) //This function will be called when the plugin wants to know how much experience is required for a particular level
    {
      /*
        Below is a formula for establishing how much experience is required for a certain level
        In Javascript, there are many helpful mathematical functions to help you with creating
        your own brilliant formula.
        The following is just a selection of the available operators and functions
        ---------------------------------------------------------------------------------
        x + y    | Adds together numbers
        x - y    | Finds the difference.
        x * y    | Multiplies the numbers.
        x / y    | Divides the numbers.
        pow(x, y) | Finds x to the y power
      */
      var requiredExperience = 5 + pow(level, 1.2);
      return requiredExperience; //This tells the program what your formula established.
    }
    Levelcap is very easy :)

    Once this plugin is made, I will be happy to show you a large list of easy to use tutorials that explains its use quite well.
     
    UltraFaceguy likes this.
  10. Offline

    se1by

    You could easily read the formula from a yml file.
    I would read the string, a little bit of substing, split and regex magic and it's done.
     
  11. It's not as simple as it sounds. Imagine a use wants three different formulas based on level, then the best way to do this is with JavaScript.
     
  12. Offline

    UltraFaceguy

    I've actually been using ExperienceMod since it became outdated... Your guess is as good as mine :/
     

Share This Page