YEP Class Change Core + YEP Subclass - Maintain Skills When Switching Classes

Status
Not open for further replies.

Chroma-Creative-Solutions

Graphic Designer
Veteran
Joined
Apr 5, 2020
Messages
65
Reaction score
23
First Language
English
Primarily Uses
RMMV
Long time lurker (since 2017), usually try to find my own solutions, but cannot for the life of me find a solution or work around for this issue. Currently I am using these plugins to create a class switching system for my game:

YEP Class Change Core
YEP Subclass
YEP Skill Core
YEP Skill Learn System

I want to have either a class switching system or subclass switching system where the actor is able to maintain the skill that they learn in one class, through its transfer into another class. Can anyone provide any assistance on if this is possible with these plugins, or if I need to move in a different direction with the assistance of additional plugins?

I know with the base plugin effects between subclasses you can transfer skills, however, I am having an issue with that because I am currently scaling the abilities of the subclasses using a.level to boost parameters with each level, because the max character level is currently 300 so I cannot use the curves within the software itself to scale parameters. The issue with this is currently it is pulling the level from the actor, not the subclass, so that doesnt seem to be a good solution either.

I settled on wanting to just switch between classes but alas cannot find a way to maintain learned skills between classes. I dont believe this is native to the YEP set of plugins so I am looking for an alternative solution.

Any help or direction is greatly appreciated!
 
Last edited:

ramza

Lunatic Coder
Veteran
Joined
Jan 28, 2013
Messages
663
Reaction score
373
First Language
English
Primarily Uses
RMMV
As long as your level doesn't reset when you change classes, all skills learned by that class remain known by that actor when he changes class. The only thing that could change between classes is access to skilltypes. If all your black mage magic spells are listed under skilltype Black Magic, and you change class to a class that doesn't know that skilltype, it will appear as though he doesn't know any black magic skills.
You'd need to either make all skilltypes available to all classes, or make all skills belong to one skilltype.
 

Chroma-Creative-Solutions

Graphic Designer
Veteran
Joined
Apr 5, 2020
Messages
65
Reaction score
23
First Language
English
Primarily Uses
RMMV
As long as your level doesn't reset when you change classes, all skills learned by that class remain known by that actor when he changes class. The only thing that could change between classes is access to skilltypes. If all your black mage magic spells are listed under skilltype Black Magic, and you change class to a class that doesn't know that skilltype, it will appear as though he doesn't know any black magic skills.
You'd need to either make all skilltypes available to all classes, or make all skills belong to one skilltype.
The issue that I am seeing with maintaining levels between classes is that all of the classes will be the same level, and while it does allow skills to transfer between classes, it also allows for all skills to automatically be unlocked due to the level requirements already being met for that class since levels carried over. Do you know if its possible to have just the skills carry over but not carrying over the levels?

What you are describing works within the subclasses, however, I am unable to determine a system to use the subclasses as the parameter values are based upon the actor level, so the subclasses do not function properly as the main class level is always the same value. I am using the following note tag as an example to determine the parameter for the subclass, as the actor level is set to 300 I cannot use the curves in the software:

<Custom Class Parameters> maxhp = level * 30 + 25; maxmp = level * 20 + 25; atk = level * 15 + 10; def = level * 11 + 10; mat = level * 12 + 50; mdf = level * 10 + 25; agi = level * 14 + 50; luk = level * 13; </Custom Class Parameters>
 

ramza

Lunatic Coder
Veteran
Joined
Jan 28, 2013
Messages
663
Reaction score
373
First Language
English
Primarily Uses
RMMV
battler.classLevel(ClassId) gives the class level of a classId. You can also get the current subclass Id from battler.subclass().id. You can use that in the damage formula for skills specific to certain classes to power them from the level of their originating class, instead of the default level. I'm not sure if that will also work for the Custom Class Parameters tag as well, but I don't see why it wouldn't, just replace level with classLevel(X) and change X to the Id of the class the tags are on.
 

Chroma-Creative-Solutions

Graphic Designer
Veteran
Joined
Apr 5, 2020
Messages
65
Reaction score
23
First Language
English
Primarily Uses
RMMV
battler.classLevel(ClassId) gives the class level of a classId. You can also get the current subclass Id from battler.subclass().id. You can use that in the damage formula for skills specific to certain classes to power them from the level of their originating class, instead of the default level. I'm not sure if that will also work for the Custom Class Parameters tag as well, but I don't see why it wouldn't, just replace level with classLevel(X) and change X to the Id of the class the tags are on.
Unfortunately this does not appear to work for the custom class parameters tag. I am not very knowable about coding but it seems to be that since the notetags are specific to YEP Subclass and that plugin does not recognize those as a variable it doesn't know what to do with them when they are attempting to be called. I did try all iterations battler.classLevel(ClassId), battler.subclass().id and classLevel(X) as mentioned in your last post. Do you have any ideas what the solution to this is? Would I need to edit the .js for the subclass file?
 

ramza

Lunatic Coder
Veteran
Joined
Jan 28, 2013
Messages
663
Reaction score
373
First Language
English
Primarily Uses
RMMV
No, just use classLevel(X) instead of level in your formula. The battler part is the parent it is attached to. Since we can see that the stat growth note tags are already using other things attached to the battler object (level, mp, atk, etc) is should also be able to access anything else defined on the battler object as well (subclass(), classLevel(X), isStateAffected(x), isDualWield(), etc)
 

Chroma-Creative-Solutions

Graphic Designer
Veteran
Joined
Apr 5, 2020
Messages
65
Reaction score
23
First Language
English
Primarily Uses
RMMV
No, just use classLevel(X) instead of level in your formula. The battler part is the parent it is attached to. Since we can see that the stat growth note tags are already using other things attached to the battler object (level, mp, atk, etc) is should also be able to access anything else defined on the battler object as well (subclass(), classLevel(X), isStateAffected(x), isDualWield(), etc)
classLevel(X) wasn't working is why I had tried the other ones (incorrectly my mistake). I am getting this error when I use classLevel(X).
Screen Shot 2020-04-08 at 5.46.28 AM.png
 

ramza

Lunatic Coder
Veteran
Joined
Jan 28, 2013
Messages
663
Reaction score
373
First Language
English
Primarily Uses
RMMV
classLevel(X) wasn't working is why I had tried the other ones (incorrectly my mistake). I am getting this error when I use classLevel(X).
Evidently, it would seem that it doesn't have access to all of the parameters the battler itself has.

Try using this.classLevel(X) instead. It looks like in one of the example custom formulas given, this.name() is used, meaning 'this' should be the battler. Remember to change the X to the classId of the class you're putting the note tag on, or it still won't work. (x = 1 for the first class in the database, 2 for the second, etc)
 

Chroma-Creative-Solutions

Graphic Designer
Veteran
Joined
Apr 5, 2020
Messages
65
Reaction score
23
First Language
English
Primarily Uses
RMMV
Evidently, it would seem that it doesn't have access to all of the parameters the battler itself has.
That fixed everything, I tested extensively and it seems to be working as it should! Thank you for the assistance!
 

mlogan

Global Moderators
Global Mod
Joined
Mar 18, 2012
Messages
14,659
Reaction score
8,086
First Language
English
Primarily Uses
RMMV

This thread is being closed, due to being solved. If for some reason you would like this thread re-opened, please report this post and leave a message why. Thank you.


@Chroma-Creative-Solutions Next time in a report please ask for it to be closed. "Reassign" could mean a lot of different things.
 
Status
Not open for further replies.

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Profile Posts

Discovering math. functions for damage formulas was one of the greatest things for me.
It's very useful for balancing skills to work in a variety of possible circumstances.
For example if you have a skill that is supposed to work for both mages and warriors:
Code:
Math.max(a.atk * 2 - b.def, a.mat * 2 - b.mdf)
SpaceX: First-ever successful (manned) commercial spaceflight!! In these terrible and self-sabotaging times for the world, that's a ray of excitement and hope I needed badly.
GameDevJohn wrote on whtdragon's profile.
Hey I used you bunny and cat spritesheet for a game jam game. Thanks so much! You have really beautiful stuff here. I'll credit you at https://gamedevjohn.itch.io/bunny-boy
The video of a psycho chasing people on the streets with a sword before getting subdued is wild. Apparent screenshots of his Twitter feed (EDIT: confirmed by Dallas police) before it went private reveal a dangerous delusional mindset. I heard there was a bow person too. The crazies are really coming out of the woodworks.

Forum statistics

Threads
98,016
Messages
948,557
Members
129,274
Latest member
Panagiotis13
Top