[YEP] Yanfly Engine Plugins

Discussion in 'JS Plugin Releases (RMMV)' started by Yanfly, Nov 2, 2015.

Thread Status:
Not open for further replies.
  1. Garlyle

    Garlyle Warper Member

    Messages:
    3
    Likes Received:
    0
    Evening, @Yanfly ; hope things are going well!


    I noticed a couple really unfortunate interactions in your scripts recently (Centering around the Class Change scripts), that I figured I would bring up here in the hopes you would be able to address them.  Part of this may be deliberately intended behaviour, but I'm going to list the full implications discovered and why it's an issue; if this has been discussed before, my apologies; 2900 posts is a lot to dig through.


    Anyway, it all centers around how swapping classes handles skills.


    Class skill access is a bit weird.  When swapping classes, the characters actively retains all of their learned skills in other classes (This is the part that seems probably intended).  Let's say a character learns Heal from Cleric, which is classified as a Magic command skill.  Now you swap to Wizard, which also has the Magic command skill.  The character will still be able to cast Heal, even though they're not part of the Cleric class.  This is... frankly, not exactly desirable.  It's likely deliberate, which, okay, fair.  There are two workarounds that can be used.  I'm going to explain where each of these expose various issues with the scripts as they currently exist:


    Solution one, we can make use of the subclass system's Require Class/Require Subclass skill tags.  Curiously, this ONLY exists in the Subclass system, requiring the plugin to at least be installed for this.  Unfortunately, this system has a problem.  Suppose for a moment, that I have three classes: Warrior, Cleric, Wizard.  Each of these classes has access to the Magic command set.  I want Cleric to be able to learn Heal, and then will use the tags to require Cleric to be present in order to be cast.  So, this is what happens:

    • If I use neither Require Class nor Require Subclass, then any combination of classes that has access to the Magic command can now cast Heal.  ...What?
    • If I use Require Class alone, then any combination starting with Cleric works.  Cleric/Warrior, Cleric/Wizard, Cleric solo.  Good.  This works as intended.
    • If I use Require Subclass alone, then any combination ending with Cleric works.  Warrior/Cleric and Wizard/Cleric work.  Cleric as a primary class does not.  This is... it's awkward, but okay, there may very well be times that this is the specifically desired interaction, so I won't say it's not working right.  The problem comes when...
    • If I use both tags to require Cleric, then... nobody can use it.  Ever.  You literally can't set Cleric/Cleric, and that's what the system insists on.

    So, Issue #1: There is no situation, using the Require Class/Subclass skill tags, whereby I can require someone to use a specific Class as either a Main or Sub class in order to use the skill.  There is no functional overlap.  It would appear that using both tags at once does not create an 'either/or' effect, but rather requires both conditions to be met.  That's... well, it's awkward, to be honest, and seems a pretty significant oversight.


    Relatedly comes Issue #2: Even when I do use these tags, skills are simply 'grayed out' (unselectable), not removed entirely.  It seems really, really strange to me that Heal is sitting on my menu at all when I'm in Warrior/Black Mage.  There may be a way using Skill Core's Lunatic Mode to solve both #1 and #2, but that is A. messy, B. not something I seem to be able to find the exact right syntax for to make it work, and C. a bulky solution to what should be a problem with a common fix imo.


    So, the tags are less than ideal.  What next?


    Well, the other solution, is simply to make each set of skills attached to a different Command set.  If Heal is attached to "White Magic", and Warrior has "Battle Magic" and Black Mage has "Black Magic" instead, problem solved!  Besides, it looks nicer that way.  ...Right?


    There's two times, however, where this becomes a problem.


    The first, mostly minor, is if there is good reason to use a shared command set.  For instance, if I want every class to have "Limit Breaks" that use TP, then it would make sense to have one set called Limit Breaks.  Unfortunately, because of retained skills, then Limit Breaks from other classes would remain.  Having multiple similarly named skill sets would be an awkward, but functional workaround (A "Limit" that consists of just Cleric LBs; and another "Limit" that consists of just Black Mage LBs, etc) - until we also inherit skill sets from subclasses, in which case now suddenly our character's got two skill sets listed as "Limit" and just... eww.  As demonstrated, the Requires Class/Subclass skills also have a rusty limitation above working around it in a shared command set.


    The second problem though is that the skills are still there regardless, and this actually does matter.


    Where does this become a problem?  Well, aside from the visibility issue (Again, why should I be seeing skills I can't use in a given class?), there's a bigger problem: Auto Passive States.  Let's say that Warrior learns a skill called "HP +50%".  It's attached to a passive state that permanently boosts my max HP by 50%.  Cool, right?  Yeah, great.  Except that now I swap back to Black Mage, and... suddenly I still have the 50% bonus HP.  Because the skills are still being known, the passive states are still being applied.  Which leads us to Problem #3: Interactions where simply posessing a skill is enough to trigger something (eg Conditional Branches, application of Passive Skills) don't care that they're from a completely different class; the skills are present regardless and therefore function.  And again, there may be some Lunatic Mode passive skill stuff that could be applied to have it check the user's classes, but I couldn't find something that evaluated this successfully, and it's a messy, bulky solution.


    These are some pretty severe obstacles to things I was planning to do making use of these systems.  I'm all for using different skill sets, which solves the majority of issues surrounding #1 and #2.  Unfortunately, issue #3 is pretty seriously limiting without at least a lunatic solution.  IDK.  It's very possible a lot of this is deliberate design, and if so just let me know and I'll find ways to deal (Although any confirmation about the syntax to confirm an actor's class/subclass for lunatics would be appreciated); but yeah.  Figured I should bring it up.


    For the record, the scripts used:


    Core Engine 1.13
    Class Change 1.09
    Subclass 1.07
    Auto Passive States 1.07


    No other scripts or modifications have been used.


    EDIT: I was able to figure out some lunatic mode stuff to get around this.  I still think this is really messy, but I've at least ascertained that "user._classId" and "user._subclassId" can be used to check those, so I should be able to work around these if the behaviour above was entirely intentional.
     
    Last edited by a moderator: Mar 19, 2016
  2. lokirafael

    lokirafael Veteran Veteran

    Messages:
    152
    Likes Received:
    77
    Location:
    Brazil
    First Language:
    Portuguese
    Primarily Uses:
    RMMV
  3. Yanfly

    Yanfly Developer

    Messages:
    1,696
    Likes Received:
    2,321


    The reason why I have it set up to wait until the hits are done is so that way, it doesn't interfere with action sequences. If you want it to use the original RPG Maker MV style, it's restricted to only counter skill 0 since it doesn't do what this plugin requires the advanced counters to do. As for the issue with Mog Hunter's plugin, I'm afraid you'll have to ask him about that since I don't work with compatibility patches due to my lack of time.



    ***Class Skills carried over


    This is a general answer. If you are using the Class Change Core and are wondering why skills from other classes are appearing in other classes, it is because you are using the same skill type. This is an intended function. The same way if you were to NOT use the Class Change Core plugin and use RPG Maker MV's default class changing event, any skills acquired from the class you changed from will remain in the character even after changing. If you wish to distinguish your skills to certain classes, then make different skill types for those classes and set those skills to those new skill types.



    Ah, I forgot to upload the new version. My bad. I'll get that fixed.
     
  4. MrPurpleDreadlocks

    MrPurpleDreadlocks Veteran Veteran

    Messages:
    159
    Likes Received:
    19
    First Language:
    English
    Hi @Yanfly,


    Thanks for the awesome work that you do and the fact that you love the community enough to keep going with your sweet plugins!


    I have a question for you that I can't wrap my head around. I am using your Life Steal script and trying to come up with condtional Life Steal properties.


    For example, I have a skill that I want to be able to life steal only if the user lands a critical hit.


    Here's what I drafted up so far.


    1. Create a skill that class can learn.

    [​IMG]

    2. Have that skill be tagged with a Passive State: Bloodthirst

    <Custom HP Life Steal Physical Rate>
    if (user.isActor()){
    if (user.skillLevels(106) === 1){
    rate = 0.05;
    }
    if (user.skillLevels(106) === 2){
    rate = 0.055;
    }
    if (user.skillLevels(106) === 3){
    rate = 0.06;
    }
    if (user.skillLevels(106) === 4){
    rate = 0.065;
    }
    if (user.skillLevels(106) === 5){
    rate = 0.07;
    }
    }
    </Custom HP Life Steal Physical Rate>



    This is just so the rate fluctuates with another plugin that I have.



    3. This is where I am not sure what to do. I took a look at your Bloodthirster Tips & Tricks but since the Lifesteal is passive it would already be applied, instead of applied when a critical attack happens. 


    Any Ideas?


    Thanks again!
     
    Last edited by a moderator: Mar 20, 2016
  5. Crimson Dragon Inc.

    Crimson Dragon Inc. Crimson Dragon Veteran

    Messages:
    925
    Likes Received:
    133
    Location:
    Sheboygan wisconsin
    First Language:
    english
    Primarily Uses:
    RMMV
    only 7 more days :D  then i can make some real progress on my game.... been simply testing and balancing monster levels, equipment upgrades, limited skill uses, and skill cooldowns......but with the new plug in that comes next week i can really start work after i balance all the stats :D
     
  6. bgillisp

    bgillisp Global Moderators Global Mod

    Messages:
    12,090
    Likes Received:
    12,269
    Location:
    USA
    First Language:
    English
    Primarily Uses:
    RMVXA
    @Crimsondragon: What plug in comes out next week? With the changed schedule I'm not sure myself, but am curious.


    PS: Yanfly, I hope you are getting more rest with the changed schedule!
     
  7. solaris1111

    solaris1111 Veteran Veteran

    Messages:
    115
    Likes Received:
    19
    First Language:
    French
    Plugin Name: Event Chase Player


    Error Message: N/A


    How to Replicate Bug: That problem did'nt appeared before last Event Chase update. When using VE-Diagonal Movement, when the event chase but detect you are not on the same x line or y line, it tries to move diagonally so the event jam there and the graphic get's weird. Really feel like a compatibility issue but the reason i mention it is because it already worked fine. I mention it but i don't ask nothing. 
     
  8. Jeysonmcfly

    Jeysonmcfly Just a random Joe Schmoe Veteran

    Messages:
    54
    Likes Received:
    15
    Location:
    Soon to be Canadian
    First Language:
    English
    Another question for Yanfly: Using the Action Sequence Pack 1 and Action Sequence Pack 3, how would I be able to make the attack command recognize a critical attack and zoom in on the attack in that moment?


    For instance: if I set the attack command to just move the characters to their targets, but have it do different movements for each type of command, and then upon a character executing a critical hit, it were to zoom in on that attack, would that be possible? I guess what I'm asking is, is it possible to determine within the engine whether a normal attack will yield a critical hit, and when it will?
     
  9. Yanfly

    Yanfly Developer

    Messages:
    1,696
    Likes Received:
    2,321
    Tips & Tricks - Freeze (Final Fantasy 9)










    Freeze from Final Fantasy 9 is a pretty brutal status effect. It stuns the battler. And to remove it, a fire skill has to be used on the battler to thaw it. If not and a physical hit is dealt instead, the battler instantly dies! Here's how to create that nasty status effect in RPG Maker MV!


    Copy and Paste Code: http://yanfly.moe/2016/03/19/tips-tricks-freeze-final-fantasy-9/ 
     
  10. Jeysonmcfly

    Jeysonmcfly Just a random Joe Schmoe Veteran

    Messages:
    54
    Likes Received:
    15
    Location:
    Soon to be Canadian
    First Language:
    English
    This is DEFINITELY something I might consider doing. Holy heck that's an amazing skill!
     
  11. Yanfly

    Yanfly Developer

    Messages:
    1,696
    Likes Received:
    2,321


    Getting a bit more, although the fatigue from the past few months is still having its after effects. ;A;


    ---



    From the first post:


    NOTE: I'll only provide support for my own plugins and code that I, myself, have provided. This isn't because I disrespect other plugin makers or anything of the sort. If I did, I wouldn't go so far as to maximize compatibility with my plugins when possible. The reason behind is because of my lack of time, and I'd like to put my undivided attention to errors caused by my own plugins. That said, any modifications you've made to the plugins itself, any custom Lunatic Mode code you've made yourself that isn't provided by me, or problems with the source code will not be supported by me either.


    ---



    For this, you're best off visiting this thread for all your Action Sequence needs. They have lots of good examples and a lot of members are willing to answer your questions there: 
     
  12. Jeysonmcfly

    Jeysonmcfly Just a random Joe Schmoe Veteran

    Messages:
    54
    Likes Received:
    15
    Location:
    Soon to be Canadian
    First Language:
    English
    Thanks, Yanfly!
     
    Yanfly likes this.
  13. babalussp

    babalussp Warper Member

    Messages:
    2
    Likes Received:
    0
    First Language:
    Bahasa
    Yanfly, I figured out how to make the enemy stay in place with common event. Very proud of myself lol


    But another problem aroused. I'm currently opting out moghunter's script and made my own chain combo using common events and force actions. I'm using your CTB plugin, and it seems like every force actions decrease the state's turn by 1. So, character A has parry state applied on him that would end in 5 turns. Under that state, he will counterattack 5 times with force action. But the state is gone even after countering the first enemy. It means, for every force action the state turn was deducted by 1 turn, isn't it? Do you know any workaround regarding this matter? Thanks. 
     
    Last edited by a moderator: Mar 20, 2016
  14. Crimson Dragon Inc.

    Crimson Dragon Inc. Crimson Dragon Veteran

    Messages:
    925
    Likes Received:
    133
    Location:
    Sheboygan wisconsin
    First Language:
    english
    Primarily Uses:
    RMMV




    base paramater core :D
     
    Riff likes this.
  15. Snarkyfork

    Snarkyfork Veteran Veteran

    Messages:
    251
    Likes Received:
    19
    First Language:
    English
    When I use Yanflys Class Change Core all of my actors have heal and ice spells when I go into "playtest" mode. I have seen several replies concerning this but none really make sense so far. Such as this:





    • It looks like others have had the same issues but it was never answered.


      I created a new project and the only plugins i installed are the core engine and the class change core.


      When i start up my game every character has access to every ability no matter what their class is. IE: every character has the magic spells heal, spark, and fire.


      This cant be intended, what am i missing?


      Thanks,







       



      Yanfly


      2016-01-17 at 5:59 PM



      Look at each of the class’s skill types. If they’re shared skill types, then they’ll have access to every skill under those shared skill types. If you don’t want them to be able to share skills from other classes, place them into other skill types.




    [*]

     



    Kaoz


    2016-01-20 at 4:24 PM







    I am not sure the author is fully understanding the problem. Please PM me with any advice on fixing this problem, thank you.


    Plugin Name:


    Yanflys Class Change Core


    How to Replicate Bug:


    Start a new Project in RPG Maker MV and add/activate Yanflys Core Engine and Yanflys Class Change Core plugins. Playtest the game and every class will have heal and ice spells. Turn off Class Change Core and everything is fine.
     
  16. Yanfly

    Yanfly Developer

    Messages:
    1,696
    Likes Received:
    2,321


    ...open up the Class Change Core plugin and look at the settings. Do you see that Unlocked Classes plugin parameter? Do you see those numbers inside? Remove them if you don't want the skills from those classes to be carried over because they were automatically unlocked from the beginning. Please look over ALL of the plugin settings and read the entire plugin help file before continuing.
     
    Last edited by a moderator: Mar 20, 2016
    Snarkyfork likes this.
  17. Jefries

    Jefries Veteran Veteran

    Messages:
    143
    Likes Received:
    16
    First Language:
    Spanish
    I don't know why but I get a error when I try to open the menu. I created a new command with the main menu manager plugin. When I open the menu this is the error that appears : TypeError: Cannot read property 'bind' of undefined
        at Scene_Menu.eval (eval at <anonymous> (file:///C:/Users/Maria/Documents/Games/Project1/js/plugins/YEP_MainMenuManager.js:3891:69), <anonymous>:1:58)
        at Scene_Menu.createCommandWindowBinds (file:///C:/Users/Maria/Documents/Games/Project1/js/plugins/YEP_MainMenuManager.js:3891:5)
        at Scene_Menu.createCommandWindow (file:///C:/Users/Maria/Documents/Games/Project1/js/plugins/YEP_MainMenuManager.js:3865:10)
        at Scene_Menu.create (file:///C:/Users/Maria/Documents/Games/Project1/js/rpg_scenes.js:769:10)
        at Scene_Menu.create (file:///C:/Users/Maria/Documents/Games/Project1/js/plugins/YEP_MainMenuManager.js:3859:34)
        at Function.SceneManager.changeScene (file:///C:/Users/Maria/Documents/Games/Project1/js/rpg_managers.js:1654:25)
        at Function.SceneManager.updateMain (file:///C:/Users/Maria/Documents/Games/Project1/js/rpg_managers.js:1640:10)
        at Function.SceneManager.update (file:///C:/Users/Maria/Documents/Games/Project1/js/rpg_managers.js:1576:14)rpg_managers.js:1618 SceneManager.catchException


    what should I do?
     
  18. Dennis Chekalov

    Dennis Chekalov Villager Member

    Messages:
    6
    Likes Received:
    2
    First Language:
    Russian
    Is it possible to place the Actor Variables tab in the Main Menu?


    I guess I should use something like this:


    SceneManager.push(Scene_???)


    Thank you for your great plugins!
     
  19. Yanfly

    Yanfly Developer

    Messages:
    1,696
    Likes Received:
    2,321


    You're binding a function that doesn't exist in Scene_Menu. You need to bind one that actually exists.



    It's made specifically for the Status scene.
     
    Snarkyfork likes this.
  20. Jefries

    Jefries Veteran Veteran

    Messages:
    143
    Likes Received:
    16
    First Language:
    Spanish
    This is the way I have it and I saw a guy had it like this and it worked for him. Maybe he didn't explain everything. So I'm trying to create a command in the main menu so that I can use it for Gameus' quest plug in. So what you said means that I have to do another command or need to do something else? (I'm soo confused, sorry)

    Main Menu Manager Plugin.png
     
Thread Status:
Not open for further replies.

Share This Page