[SumRndmDde "SkillExtender"]Request to improve a feature

jaykeith

Villager
Member
Joined
Jun 22, 2016
Messages
27
Reaction score
11
First Language
English
Primarily Uses
Let me get the legal stuff out of the way:
Link to the plugin
Link to Terms of Use Please take note of terms for editing "You are allowed to edit the code." And SumRndmDde further clarified in the comments that "The parameters are not set up or manipulated through code." All code edits are legal as long as the help file and parameters remain unchanged.

I did attempt a request for code edit directly to SumRndmDde but after some investigation he is on hiatus from coding for RMMV with no information I could find on his return, or else I would pursue that route with much more diligence.

Onto the actual request:

This extension plugin after some testing, while doing a great job of its initial premise (allowing you to select a "skill" and have it give you a menu of skills to choose from), does not allow for embedded skill extensions.

This is my primary request in totality: allow for virtually infinite (but in practical practice will be unnecessary) skill extensions to be embedded in each other. So you have Skill X -> Menu for Skills Y,Z,A; When Skill Y is selected -> Skill B,C,D until you reach a 'real skill' that can be used either in battle or the menu.

I'm not much of a coder myself and this is far beyond my personal ability, but I would like to imagine this isn't a difficult task for a seasoned coder. Much of the code is already written and probably needs a few lines that check for an embedded skill extension when selecting a skill that is already opened in the skill extension window, ad infinitum.

Thank you in advance and if anything needs to be clarified I will try to make myself available best I can.

P.S.

For explicit instructions on expectations for how the window would function, I would say at the very least when going through the embedded skills, upon selecting the next skill it would close the window that is up and draw a new window. Alternatives I suppose would be where you have a window draw on the left side of the screen, then another draw in the middle, then on the right, and then erase the left and redraw etc. for as long as the skill lists are embedded. I would rather have the first example, with one window that is deleted and redrawn with the next set of skills. Upon pressing ESC or Cancel it would exit back to the main skill menu/battle command window if for no other reason than, if you have hypothetically 100 embedded skills going to the previous skill window to exit would become a serious issue (pressing in this example ESC 100 times).

While I personally don't plan on using this system that way (probably at most 5 or 6 extensions), for the sake of logic I'd recommend doing it this way.
 

Zevia

Veteran
Veteran
Joined
Aug 4, 2012
Messages
640
Reaction score
353
First Language
English
Primarily Uses
RMMV
Give this a try. There are no parameters, so it doesn't really matter what you name it, but I've saved it as "Zevia_SRDSkillExtender_extension.js". You can also download it from this post.

Instead of modifying the Plugin directly, I've created an extension for it. You just have to make sure this is included below SRD_SkillExtender.js in your Plugins.

Code:
/*:
* @plugindesc This is an extension to SumRndmDde's SkillExtender Plugin to allow for
* infinitely extending skill windows.
* @author Zevia
*
* @help This Plugin should be placed BELOW SRD_SkillExtender. If you extend a skill
* with skills that have extensions, it will continue opening new skill windows
* until you get to a skill that does not extend other skills.
*/

(function(module) {
    'use strict';

    module.Zevia = module.Zevia || {};
    var ZeviaSkillExtenderExtension = module.Zevia.SkillExtenderExtension = {};

    ZeviaSkillExtenderExtension.onSelectAction = Scene_Battle.prototype.onSelectAction;
    Scene_Battle.prototype.onSelectAction = function() {
        var action = BattleManager.inputtingAction();
        if (!action || !action._item || !action._item._itemId) {
            ZeviaSkillExtenderExtension.onSelectAction.apply(this, arguments);
            return;
        }

        var skill = $dataSkills[action._item._itemId];
        if (skill._se_extendSkills) {
            this.openSkillExtendWindow(skill);
            return;
        }

        ZeviaSkillExtenderExtension.onSelectAction.apply(this, arguments);
    };

    ZeviaSkillExtenderExtension.onItemOk = Scene_Skill.prototype.onItemOk;
    Scene_Skill.prototype.onItemOk = function() {
        var item = this.item();
        if (item._se_extendSkills) {
            this.openSkillExtendWindow(item);
            return;
        }

        ZeviaSkillExtenderExtension.onItemOk.apply(this, arguments);
    };
})(window);
 

Attachments

Last edited:

jaykeith

Villager
Member
Joined
Jun 22, 2016
Messages
27
Reaction score
11
First Language
English
Primarily Uses
Thanks a lot for giving my request some attention! I really appreciate it as this particular feature is important for my project.

However, even with your plugin I cannot get this feature to work at all. I'll post some screenshots of what I'm doing:


When I click on the instance of "Test Skill <Extend 2>" within "Test Skill <Extend 1>" like in the photo it does not go to "Real Skill", but "Real Skill" links just fine when activated from Test Skill <Extend 2> outside the instance of <Extend 1> (as depicted in the last photo).

Am I doing something wrong? Thanks again! This is way way cool

If you need me to upload a video or something I can do that too.
 

Zevia

Veteran
Veteran
Joined
Aug 4, 2012
Messages
640
Reaction score
353
First Language
English
Primarily Uses
RMMV
Here are a couple GIFs of what I've been doing:

I have Heal setup to Extend Fire and Spark, then Fire extends Poison Fists and Merge, while Spark extends nothing.

Harold selects Heal, which opens up the extend Window to show Fire and Spark, selects Fire, which opens up the extend Window to show Poison Fists and Merge, and selects Poison Fists.
Therese selects Spark, which asks for a target.
Marsha selects Fire, which opens up the extend Window to show Poison Fists and Merge, and selects Poison Fists.
Lucius attacks.

I'll try and recreate your Test Skill setup exactly and see if I have any issues with it, but I believe the way I've setup my Heal skill in the examples there is what you're looking for, right?

EDIT: One thing to check is, after you start your game, hit F8 and open up the console to make sure there are no errors. Maybe there's something in my Plugin causing an Exception with your version of RMMV that mine doesn't. If a Plugin has an error, it doesn't get imported.

EDIT 2: Recreated my database to look like yours and as far as I can tell, everything seems to be working OK. I definitely would be curious to see if you're getting errors on load.

 
Last edited:

jaykeith

Villager
Member
Joined
Jun 22, 2016
Messages
27
Reaction score
11
First Language
English
Primarily Uses
Everything looks like it works perfectly in your gif exactly as specified.

I'm using version 1.6.1. My console only seems to open with F12 instead of F8, but there are no errors while running.
I also tried a couple different things to see if the skill extension didn't work because I didn't have 2 skills listed like in your gif, but it doesn't change anything.

Should I package my game up and send it over? If you need anything else from me let me know. In your gif everything works fine so I have no idea why it doesn't work for me (maybe different version of RMMV?)
 

Zevia

Veteran
Veteran
Joined
Aug 4, 2012
Messages
640
Reaction score
353
First Language
English
Primarily Uses
RMMV
Sure, I can give that a try. If you want to package up your project, I'm happy to download it and see if I have the same problem. I'm not really sure what else might be the problem from examining your screenshots. You've got the Plugins in the right order, you don't have any other Plugins on, and you seem to be using the notetags correctly.

Have any other edits been made to the base SkillExtender Plugin? Have you changed the parameters in any way from their default settings?
 

jaykeith

Villager
Member
Joined
Jun 22, 2016
Messages
27
Reaction score
11
First Language
English
Primarily Uses
Here is a link: https://ufile.io/9ivo9

If you have a donation page I'll buy you some beer or coffee or w/e for helping me. I'm not sure how to trim down my gamefiles so that only the relevant stuff is in there... I tried a few things but couldn't get the game to start because images and sound effects were missing. I'll try to figure something out in the future. Until then this filesize is pretty bloated.

Thanks again Zevia much appreciated.
 

Zevia

Veteran
Veteran
Joined
Aug 4, 2012
Messages
640
Reaction score
353
First Language
English
Primarily Uses
RMMV
No worries. I don't have a donation page, but I don't expect anything for helping out (other than a "thanks," but you're on top of it).

I'm downloading it now - I'll take a look at it later tonight and let you know what I find.

EDIT: Alright, figured it out - I was testing skills in battle, but you were using skills in the menu. I was missing an override for Scene_Skill and had only modified Scene_Battle. I've edited my original post with the Plugin to properly handle both the Skill Menu in combat and out now, so update your version with that one. I've also attached it to this post.
 

Attachments

Last edited:

jaykeith

Villager
Member
Joined
Jun 22, 2016
Messages
27
Reaction score
11
First Language
English
Primarily Uses
Just looked at your post when I woke up this morning Zevia thanks again for your attention. Also let me just say, you should setup a paypal or something similar because it would make me feel better if I could at least give something back for your time.

That said I feel like we are almost there. I just encountered an error while testing. It hadn't even occurred to me to test everything in battle. So while everything is working perfectly fine now in the menu I encounted a new bug with "real skills" in battle. Whether it's a healing skill or a damage skill - when selected game reads:

Code:
TypeError Cannot read property 'apply' of undefined
Hopefully something simple. Thanks again my friend!
 

Zevia

Veteran
Veteran
Joined
Aug 4, 2012
Messages
640
Reaction score
353
First Language
English
Primarily Uses
RMMV
Yeah, it was a simple error - basically the equivalent of a typo. Spotted it as soon as I opened it up, a little surprised I missed it while I was writing. I meant to cache Scene_Skill.prototype.onItemOk in ZeviaSkillExtenderExtension.onItemOk - but I forgot the onItemOk and ended up completely overwriting ZeviaSkillExtenderExtension (oops).

I've edited the post with the Plugin and both posts that have the Plugins attached as a download, so you just need to update your version again.
 

jaykeith

Villager
Member
Joined
Jun 22, 2016
Messages
27
Reaction score
11
First Language
English
Primarily Uses
Awesome! It works perfectly. If you ever get around to setting up a donation system don't feel shy about letting me know I'd love to thank you with more than a keyboard.

Very, very much appreciated this plugin is exactly what I was hoping for. When I get a demo of my game up and running I'll DM you a link (probably in the far future).
 

Zevia

Veteran
Veteran
Joined
Aug 4, 2012
Messages
640
Reaction score
353
First Language
English
Primarily Uses
RMMV
If you ever get around to setting up a donation system don't feel shy about letting me know I'd love to thank you with more than a keyboard.
My wife says you should take whatever you would've given me and put it into a rainy day/retirement account for yourself. :guffaw:

Glad I could help.
 

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

Latest Threads

Latest Posts

Latest Profile Posts

On my journey of character rework: I had this character, she was meant to be just a princess that joins your party. And at long term she was just uninteresting... So I tweaked her to be a rebel agaisn't the royalty before meeting up with the party.

Quick tip for any other ametuer pixel artists! When trying to create a colour palette, enabling Antialiasing can speed up the process of creating different shades! Just place your lightest colour and your darkest colour next to each other, select both pixels, and stretch it out!
Revolutionizing the JRPG Industry: Knocking on Doors.

Take that, murderhobos.
Don't forget, aspiring writers: Personality isn't what your characters do, it is WHY they do it.

Forum statistics

Threads
106,054
Messages
1,018,580
Members
137,843
Latest member
Betwixt000
Top