Class Changing Restrictions [V1.3.1]

Discussion in 'JS Plugins In Development' started by Geowil, Dec 4, 2017.

  1. Geowil

    Geowil Veteran Veteran

    Messages:
    43
    Likes Received:
    17
    First Language:
    English
    Primarily Uses:
    RMMV
    Hello everyone, I have decided to start releasing my RMXP script conversions to MV for others to use. This will be the first of many. So, down to brass tacks.

    ====Terms of Use====
    Free for any use (non-commercial or commercial) just request that you credit me somehow.


    ====Plugin Informataion====

    Current Version: 1.3.1
    Dependencies: None
    Known Conflicts: None, but see GitHub readme page for list of aliased and overridden functions
    Demo: Geowil_ClassChangeDemo.rar
    Project: Geowil_ClassChangeDemoProject.rar
    Github Page (latest versions will be in working branch): Github Page



    ====Screenshots====
    These are attached.


    ====What is This?====
    This plugin allows for easy class changing restrictions using the levels of other classes. In essence, this plugin allows you to create a class tree similar to those you find in modern arpgs or mmos where you train as a class which at a certain level unlocks another class and so on. How you make use of this is up to your imagination.

    As an example consider the following classes in the database:

    Class A, Class B, Class C, Class D, Class F, Class G, Class H, and Class I. Also assume that the IDs for these classes are in ascending order starting with Class A being ID 1 and so on.

    Let's state that classes A-C represent one class hierarchy in the tree and classes D-G another. Classes H and I are classes that are independent of these two hierarchies.

    Let's make the goal that certain classes from the two trees are combined to allow a character to change to either H or I. Following this consider the follow requirements for classes H and I:

    In order to change to class H, a character must be level 15 in Class A, level 25 in Class B, and level 45 in Class G.

    In order to change to Class I, a character must be level 15 in Class A, level 35 in Class B, level 23 in Class F, and level 58 in Class H.

    To facilitate these without the need for head-to-wall bashing eventing, this plugin allows you to use the note box of the class to define what the class level requirements are to change to that class. Following the above example for Class H and I, the following would be input into the note box of the classes:

    Class H:
    <Requirements>
    1:15
    2:25
    6:45
    </Requirements>

    Class I:
    <Requirements>
    1:15
    2:35
    5:23
    7:58
    </Requirements>


    Now, if you run the game and call the class change scene through the plugin command you will find that unless the character meets these conditions, they will not be allowed to change to Class H/I.

    There are more advanced features that you can use. Please view the GitHub readme (working branch) for more information on those as they are detailed extensively there.


    ====So, what all do I need to know to make this work?====
    In order to call the class change scene you just need to use the following plugin command within an event:
    StartClassChange

    The only other thing you need to do is setup the requirements tags as described above. That's it.

    If you want to control some of the aspects of the plugin from within game you can do that too using the following plugin commands:

    ClassChanger GoldCost On
    ClassChanger GoldCost Off


    These two commands allow you to turn the gold cost system on or off.

    ClassChanger ItemCost On
    ClassChanger ItemCost Off


    These two commands allow you to turn the item cost system on or off.

    ClassChanger Change Item #

    This command allows you to change the cost item for the item cost system where # is the item ID for the item you want to use.


    ====Ok, so what are the features?====
    Features in V1.3.0:
    • Allows adding requirements to change classes through use of note tags.
    • Will remove all skills from the character at the point of changing classes and assign the skills from the changed to class that the character is eligible to receive.
    • Keeps track of each characters used classes and their levels with those classes and then displays that information within the scene for easy reference.
    • Class requirements are color coded and changeable through parameters so that you can change the color code however you like. By default, character classes that meet a requirement are green and those that do not are red.
    • Freely change between classes. Using existing functionality in MV along with some added bits to retain levels, exp, and removal of prior class skills.
    • Cost-based class changing using gold and/or items
    • Color coding the complete class list to show players what classes their characters are eligible to change to without having to select them to see that actual requirements.
    • Classes with no requirements
    • Gender requirements
    • Item requirements
    • Equipped Weapon/Armor requirements
    • Class restrictions based on equipped weapons/armor
    • Weapon/Armor that, when equipped, can bypass Item and Class Level requirements

    ====Ok, cool, but what about future plans?====
    Glad you asked. Here are some ideas I have for future functionality. Please note these may or may not happen.
    • Parameter options to control some aspects of the Weapon/Armor requirements feature, specifically in dealing with how some aspects of the Restriction and Replace attribute functionality.
    • Extending Replace functionality to Item requirements.


    ====So, who gets some credit?====

    Credit to SephirothSpawn, original creator of the RMXP script this is loosely based off of.


    ====Are there any bugs in the latest version?====
    No bugs have been sighted yet.


    ====Change Logs====
    Version 1.3.1 Changelog:
    -Removed usage of RegExp.$1-9 as they are deprecated and no longer reliable. Replaced with exec() function instead.

    Version 1.3.0 Changelog:
    -Added new feature to allow the use of items as requirements for class changing
    -Added new feature to allow equipped weapons and/or armor as requirements for class changing
    -Added new sub-feature to allow restricting class changing based on equipped weapon/armor
    -Added new sub-feature to allow equipped weapons/armor to bypass other requirements. This feature will be extended to item requirements in the future.

    Version 1.2.0 Changelog:
    -Added new feature to allow a cost in gold to be applied and required when changing classes. Also included plugin command to turn this system on or off.
    -Added new feature to allow a cost in a set item to be applied and required when changing classes. Also included plugin commands to turn this system on or off and to change the required item.
    -Added a new feature to color code the full class list depending on if the player can change to that class or not. Only considers the class requirements. Plugin parameters added to change the colors.
    -Fixed a bug which resulted in sometimes not being able to change to an class that has been activated before right after changing to a new class.

    Version 1.1.2 Changelog:
    -Fixed a bug that was causing exceptions to be thrown when viewing the last class
    -Fixed a bug which caused the requirements from the previous class in the class list to show up as the requirements for the current class.
    -Fixed a bug where you were not allowed to change to certain classes due to an issue revealed by fixing the previous bug.​

    Version 1.1.0 Changelog:
    -Fixed issue where changing between classes was not setting skills in some circumstances.
    -Fixed issue where first Class List item was blank and the last class in the database was not loaded.​

    Version 1.0.0 Changelog:
    -Initial version of plugin uploaded​
    [/soiler]
     

    Attached Files:

    Last edited: Jul 2, 2018
    #1
    keizz and mrcopra like this.
  2. Geowil

    Geowil Veteran Veteran

    Messages:
    43
    Likes Received:
    17
    First Language:
    English
    Primarily Uses:
    RMMV
    Updated the post for version 1.2.0 information. Removed MVPlugins page link, replaced it with the GitHub repo page instead. MVPlugins page will redirect to there after I update it. Also added the project file link.
     
    #2
  3. Geowil

    Geowil Veteran Veteran

    Messages:
    43
    Likes Received:
    17
    First Language:
    English
    Primarily Uses:
    RMMV
    Updated the op for version 1.3.0 information. I have also spruced up demo and project. The demo now only contains used files so it is much smaller. I have also included an NPC which will describe all of the features of the plugin and how to use them if you should not want to download the project however the project will help in setting up some of the more complex requirement patters.

    For the full information on the plugin and how to use it, please visit the git hub repo. All the newest version are in the Working branch until the plugin is ready for release.
     
    #3
  4. Geowil

    Geowil Veteran Veteran

    Messages:
    43
    Likes Received:
    17
    First Language:
    English
    Primarily Uses:
    RMMV
    Made a small update to the plugin to remove any RegExp.$1-9 references as these are deprecated now and don't work reliably. These have been replaced with the exec() command which is more powerful and useful.
     
    Last edited: Jul 2, 2018
    #4
  5. Hackateck

    Hackateck Villager Member

    Messages:
    24
    Likes Received:
    2
    First Language:
    English
    Primarily Uses:
    RMMV
    Hello, i have class tree system and this is my example.
    warrior> choose path: paladin or blader
    in order to change class i need to level up my warrior into lvl 30. then this is my question,
    what if i choose blader? is warrior class and paladin class will be unavailable after i learn blader class?
    like having a command to make the starting class to unavailable after reaching the second class?
    thank you for your plugin btw.
     
    #5
  6. Geowil

    Geowil Veteran Veteran

    Messages:
    43
    Likes Received:
    17
    First Language:
    English
    Primarily Uses:
    RMMV
    Hi Hackateck,

    The way the plugin is coded makes it so that any and all classes can be obtained unless there are restrictions placed on that class in that class' note tag or at least that is how I remember it working. I have note done any work on the plugin in a while but I will check out you scenario to be sure it will work like that.

    Thanks.
     
    #6

Share This Page