Afaryz

Veteran
Veteran
Joined
Jun 29, 2018
Messages
66
Reaction score
15
First Language
German
Primarily Uses
RMMV
Do you use JP for a tree in 'SkillTreesSystem.class2trees'? Because job points belong to a specific class, which means tree must belong to the same class too. Actor tree can't have class because it belongs to an actor, not to a class.
It is actorTree... Thanks. I will look into it :)

So i just have to change it to classTree and it should work?

regards Afaryz

EDIT:

It is working. Thank you alot. Maybe should be a comment for that in the description. (or did I overread it?)

: )
 

SomeFire

Veteran
Veteran
Joined
May 27, 2016
Messages
123
Reaction score
132
First Language
Russian
Primarily Uses
Error says it is not class tree. I'll add a more informative description.
 

wolfr136a1

Warper
Member
Joined
May 7, 2021
Messages
1
Reaction score
0
First Language
English
Primarily Uses
RMMV
Hi @SomeFire . This is a terrific plugin.

Have you thought about combining this with a plugin that adds skill levels, e.g. Yanfly's Skill Mastery Levels (YEP)?

This way, for example, if a skill has 100 levels, instead of 100 database entries for the skill, you just need one.
 

SomeFire

Veteran
Veteran
Joined
May 27, 2016
Messages
123
Reaction score
132
First Language
Russian
Primarily Uses
No, I didn't thought about it. I think this combination can be achieved by additional onLearn action, which will set Skill Mastery Level to current skill level.
 

raffle

Veteran
Veteran
Joined
Oct 25, 2020
Messages
70
Reaction score
14
First Language
English
Primarily Uses
RMMV
Heyo first of all thank you so much for this wonderful script, a one of a kind for MV.
What you did here is crazy good :kaojoy:

My game is using Luna Engine which changes the default UI scenes and I have a small issue with your plugin, basically the skill selection highlight is working vertically instead of horizontally, you can see what I mean in this short clip where I'm press the left key but the selection is going down instead, yet it still works and I can purchase the skills which makes me think it's probably just some UI parameters with the tree window itself that is not compatible with Luna, would you have any idea where I could look inside your code that possibly touches on this subject so I could fix this issue?

Once again, thank you so much for the work you've done so far!
 

SomeFire

Veteran
Veteran
Joined
May 27, 2016
Messages
123
Reaction score
132
First Language
Russian
Primarily Uses
Hi!

Search for `Skills_Window.prototype.cursorDown/Up/Left/Right` functions inside SkillTreesSystem.js.
 

raffle

Veteran
Veteran
Joined
Oct 25, 2020
Messages
70
Reaction score
14
First Language
English
Primarily Uses
RMMV
Hi!

Search for `Skills_Window.prototype.cursorDown/Up/Left/Right` functions inside SkillTreesSystem.js.
I ended up switching over to MOG's plugins instead of Luna Engine, which brings me to another small little issue, is there a way to disable the "X points earned" message after a battle?

I'm trying to setup a custom victory screen but that message on the bottom left gets in the way. :kaocry:
xtvUnkw.png
 

SomeFire

Veteran
Veteran
Joined
May 27, 2016
Messages
123
Reaction score
132
First Language
Russian
Primarily Uses
Sure, delete or override `Game_Actor.prototype.displayLevelUp` function.
JavaScript:
SkillTreesSystem.gameActorDisplayLevelUp = Game_Actor.prototype.displayLevelUp;
Game_Actor.prototype.displayLevelUp = function(newSkills) {
    SkillTreesSystem.gameActorDisplayLevelUp.call(this, newSkills);

    if (SkillTreesSystem.pointsPerLevel > 0 && !SkillTreesSystem.useJP())
        $gameMessage.add(SkillTreesSystem.pointsPerLevel + " " + SkillTreesSystem._earnPointsText);
};
 

vorfeed

Warper
Member
Joined
Sep 14, 2021
Messages
2
Reaction score
0
First Language
Chinese
Primarily Uses
RMMV
Hi!I‘m using this plugin on my project, it is so cool and i have a question.
All the skills are always shown on the tree, and I want to know if there is a way to make the skills and arrows which are not learned hidden.I mean, at the first,all the skills are hidden except the prime skill. If one skill is learned, the related skills and arrows can be shown,but the skills on the next row are stills hidden unless the upper skill is learned. i think this can make the skill system more interesting and mysterious.
 

SomeFire

Veteran
Veteran
Joined
May 27, 2016
Messages
123
Reaction score
132
First Language
Russian
Primarily Uses
Hi! No, this feature is not implemented. I think players will search for character builds in internet, so this feature is useless while trees are constant.
 

mazzy-elf

Artist and Daydreamer
Veteran
Joined
Jul 18, 2018
Messages
79
Reaction score
136
First Language
English
Primarily Uses
RMMV
Hi there, this is a bit of a strange question but is it possible to have a partywide skilltree or draw a skilltree scene directly from a dummy actor that is not in the party?
 

SomeFire

Veteran
Veteran
Joined
May 27, 2016
Messages
123
Reaction score
132
First Language
Russian
Primarily Uses
Hi, no and no.The easiest thing you can do is to add tree for one actor and create OnLearnAction affecting all other actors. If you want more, then you must edit plugin code, but this requires more programming skills.
 

raffle

Veteran
Veteran
Joined
Oct 25, 2020
Messages
70
Reaction score
14
First Language
English
Primarily Uses
RMMV
Hey again! Is there a way to store unspent talent points into a variable?
 

SomeFire

Veteran
Veteran
Joined
May 27, 2016
Messages
123
Reaction score
132
First Language
Russian
Primarily Uses
Yes, you can set variable inside event as script `actor.getTreesPoints()` where actor is Game_Actor object. There is several ways to get actor in script, use a way you want. For example, in demo I use `$gameActors.actor(1).getTreesPoints()` script, which takes first actor from all actors.
 

raffle

Veteran
Veteran
Joined
Oct 25, 2020
Messages
70
Reaction score
14
First Language
English
Primarily Uses
RMMV
Thank you so much <3
 

vorfeed

Warper
Member
Joined
Sep 14, 2021
Messages
2
Reaction score
0
First Language
Chinese
Primarily Uses
RMMV
Hi~Thanks for your answer! And i wonder how to control the pellucidity of the unlearned skill icon, i want to make the icons daker.
 

SomeFire

Veteran
Veteran
Joined
May 27, 2016
Messages
123
Reaction score
132
First Language
Russian
Primarily Uses
Look for this code in SkillTreesSystem.js:
Code:
Skills_Window.prototype.drawItem = function(treeObj, index) {
    ...
    this.changePaintOpacity(treeObj.isEnabled(this._actor, this._tree));
    this.drawIcon(treeObj.iconId(), x, y);
 

Frostorm

[]D[][]V[][]D aka "Staf00"
Veteran
Joined
Feb 22, 2016
Messages
2,043
Reaction score
1,714
First Language
English
Primarily Uses
RMMV
Hi~Thanks for your answer! And i wonder how to control the pellucidity of the unlearned skill icon, i want to make the icons daker.
Look for this code in SkillTreesSystem.js:
Code:
Skills_Window.prototype.drawItem = function(treeObj, index) {
    ...
    this.changePaintOpacity(treeObj.isEnabled(this._actor, this._tree));
    this.drawIcon(treeObj.iconId(), x, y);
I'd like to make the unlearned skill icons darker as well. I looked for the code shown above, but I'm not sure what to change to make the icon more grayed out. Thx

Edit: I looked for the changePaintOpacity() function within rpg_windows.js and quickly found it on lines 243-252. So I changed the following from this...
JavaScript:
Window_Base.prototype.translucentOpacity = function() {
    return 170;
};
...to this...
JavaScript:
Window_Base.prototype.translucentOpacity = function() {
    return 127;
};
(you can return any value you wish, 0-255)

Of course, the changePaintOpacity() function merely changes the level of transparency. Ideally, I would love to have it so the unlearned skills are in grayscale instead of changing the opacity. Is there a filter/function for such a thing?
 
Last edited:

SomeFire

Veteran
Veteran
Joined
May 27, 2016
Messages
123
Reaction score
132
First Language
Russian
Primarily Uses
I do not know how, but this code draws icon. If you'l find out how, you can do it here. May be there is a tint attribute or function for "contents" or image. May be there is a way to apply a mask on texture. I can't help with this task.
 

Eliaquim

Hakuen Studio
Veteran
Joined
May 22, 2018
Messages
2,223
Reaction score
1,722
First Language
Portuguese - Br
Primarily Uses
RMMZ
I'd like to make the unlearned skill icons darker as well. I looked for the code shown above, but I'm not sure what to change to make the icon more grayed out. Thx

Edit: I looked for the changePaintOpacity() function within rpg_windows.js and quickly found it on lines 243-252. So I changed the following from this...
JavaScript:
Window_Base.prototype.translucentOpacity = function() {
    return 170;
};
...to this...
JavaScript:
Window_Base.prototype.translucentOpacity = function() {
    return 127;
};
(you can return any value you wish, 0-255)

Of course, the changePaintOpacity() function merely changes the level of transparency. Ideally, I would love to have it so the unlearned skills are in grayscale instead of changing the opacity. Is there a filter/function for such a thing?
Hi there!

As I said to you on the other thread. The simple way is creating another iconset image, all gray(And that is pretty simple to do. Just take your current Icon Set image, open with any image editor, gray everything, and save with a different name).

After that is just add/replace this into the code:

JavaScript:
Skills_Window.prototype.drawItem = function(treeObj, index) {
    let x = this.itemWidth() * (index % SkillTreesSystem.skillWindowMaxCols) - this._scrollX;
    let y = this.itemHeight() * Math.floor(index / SkillTreesSystem.skillWindowMaxCols) - this._scrollY;

    this.changePaintOpacity(treeObj.isEnabled(this._actor, this._tree));
    
    if(this._actor.isLearnedSkill(SKILL ID)){
        this.drawIcon(treeObj.iconId(), x, y);
    }else{
        this.drawIconGray(treeObj.iconId(), x, y)
    }
    
    this.changePaintOpacity(1);

    if (treeObj instanceof Skill) {
        let size = this.contents.fontSize;
        this.contents.fontSize = this.itemHeight() / 3;

        if (treeObj.currentLevel() === treeObj.maxLevel())
            var text = SkillTreesSystem._maxedSkillText;
        else
            text = treeObj.currentLevel() + "/" + treeObj.maxLevel();

        this.drawText(
            text,
            x + 2,
            y + this.itemHeight() / 4 + SkillTreesSystem._maxedSkillTextYPosition,
            this.itemWidth() - 4,
            'center'
        );

        this.contents.fontSize = size;
    }
};

Skills_Window.prototype.drawIconGray = function(iconIndex, x, y) {
    let bitmap = ImageManager.loadSystem('IconSet_gray'); // Name of the gray iconset
    let pw = Window_Base._iconWidth;
    let ph = Window_Base._iconHeight;
    let sx = iconIndex % 16 * pw;
    let sy = Math.floor(iconIndex / 16) * ph;
    this.contents.blt(bitmap, sx, sy, pw, ph, x, y, pw * SkillTreesSystem.skillScale, ph * SkillTreesSystem.skillScale);
};

The problem was that I did not find a way(or didn't understand how) to get the skill Id that was currently being drawn. The code above will work if we just found a way to know this.
 

Latest Threads

Latest Profile Posts

I was listening to songs by Chuck E Cheese's voice actor (Jaret Reddick from Bowling for Soup) when the meds I was taking for my stomach virus apparently stopped working. I can't take my next dose until morning, but it's no use anyway. I'm officially sick again. Of course, I'll definitely take the next dose either way, but it's useless now.
New profile picture! This time, it's representative of my current project.
I suddenly feel like making a game for little kids: a pointless sandbox of cute animals, silly collectibles, and random mini games.
Anyone else just like, not bother to make games themed around specific holidays? I know I won't get them done in time for it to make sense.
time to enter the playtest dimension

Forum statistics

Threads
115,991
Messages
1,094,692
Members
151,285
Latest member
cycloxalis
Top