[YEP] Yanfly Engine Plugins

● ARCHIVED · READ-ONLY
Started by Yanfly 6167 posts Page 252 of 309 View original ↗
  1. One of Yanfly's Tip and Tricks have a more simpler way of doing the auto-passives thing only working in battle.


    <Custom Passive Condition>
    // Check if the party is in battle.
    if ($gameParty.inBattle()) {
    condition = true;
    } else {
    // Otherwise, set the condition to false.
    condition = false;
    }
    </Custom Passive Condition>


    Also, can I get a bump on this?

    sol003 said:
    This is probably already answered somewhere in the thread, but I tried looking and only got lost.


    Is there a way to get the max limit of weapons and/or armor from Item Core for eval purposes? Like say you have 50/50 weapons already and you found a treasure chest with a sword in it, it will check if current weapon count >= max weapon limit?

    I'm aware that you can intentionally get more than the max limit, I'm just curious if it's possible to put the max weapon limit for conditional purposes?
  2. Naffington said:
    Hi, are there any ways or notetags to hide certain states in the Battle Status script?



    Any states without icons will be automatically hidden as they are with the regular RPG Maker MV engine.


    ---

    Little Adventurer said:
    I don't remember having to do that before though...



    This has always been this way, ever since RPG Maker MV 1.0.0.


    ---

    Saneterre said:
    I have a question aboute auto passive states. I would like some of my passive states to be only active in battle. Is there a way to do that ?



    See this: 

    sol003 said:
    One of Yanfly's Tip and Tricks have a more simpler way of doing the auto-passives thing only working in battle.



    <Custom Passive Condition>
    // Check if the party is in battle.
    if ($gameParty.inBattle()) {
    condition = true;
    } else {
    // Otherwise, set the condition to false.
    condition = false;
    }
    </Custom Passive Condition>



    ---


    Also, I'm seeing a LOT of questions here that are JavaScript related, asking for new features for the plugins, etc. I'm going to remind you all:


    THIS THREAD WILL BE USED FOR PLUGIN UPDATES, NEW YEP VIDEOS, AND BUG REPORTS!


    This thread is NOT a request thread. Requests include new plugins, new features for existing plugins, and features that you personally think should exist but currently do not. If you want requests, visit the proper subforum for it; this thread is not the place to do so.


    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.


    NOTE2: As I've stated before in the previous note, I'll only provide support for my own codes that I, myself, have provided. To make this clear, this means strictly the plugins I've made and any code for Lunatic Mode that I, personally, have provided through Tips & Tricks. I am not responsible for any coding errors, coding roadblocks, or code questions that you come across within your own Lunatic Mode code. Unless the Lunatic Mode notetag itself has a bug, you are to ask your questions here.


    NOTE3: However, as an exception to NOTE2, this does not mean I am going to explain to you how to use all the various functions inside of my plugins. If a function added by my plugins is not listed in the Help File, it means I do not deem that function to be used for script calls. Therefore, if you choose a function outside of the ones listed in the help files to use in a script call, I am NOT responsible for it not working properly for you. No script call support will be provided for functions not listed within the help file.


    If you guys have questions on how to do something with Javascript, visit the Javascript support forum.


    If you guys want to request plugins or plugin features, visit the Plugin Request forum.


    THIS THREAD WILL BE USED FOR PLUGIN UPDATES, NEW YEP VIDEOS, AND BUG REPORTS!


    So guys. Please comply to this or else I may miss bug reports for the plugins that you may be using in your own games.
  3. Tips & Tricks - No Kill Like Overkill (Borderlands 2) - RPG Maker MV












    In Borderlands 2, when a unit is killed with No Kill Like Overkill, excess damage is stored for the next attack making it better to not skimp on using lesser attacks to efficiently kill enemies. Here's how to recreate the effect in RPG Maker MV!


    You can grab the copy/paste code here:
    Yanfly.moe: http://yanfly.moe/2016/09/07/tips-tricks-no-kill-like-overkill-borderlands-2-rpg-maker-mv/


    Enjoy.
  4. Thanks a lot Sol003. This is perfect ! (I do watch every tips and tricks but I didn't remember this function existed).


    Thanks to the others for trying.


    And sorry to yanfly if my asking didn't respect the rules. I'm not sure where I was supposed to ask but I'll try to find next time instead of asking here.
  5. Plugin Name: YEP_X_AnimatedSVEnemies, YEP_RowFormation


    Bug Explanation: Whenever an enemy battler has a state icon shown above their head, it moves erratically towards the top and left sides of the screen. These state icons appear and disappear from view seemingly at random when actions occur.


    Error Report: NA


    Exact Steps on How to Replicate Bug: Plugins installed; battle engine core, animated sideview enemies, row formation.


    The sample project is set up so that there is a single event on the default map which starts battle. Start the game and engage in combat with the enemy troop.


    The enemy troop units are arbitrarily set up to have a sideview actor sprite. The RowFormation plugin has been set up so that each actor/enemy automatically has a state based on which row position they are in. The enemies should have state icons above their heads that are 'glitching out', i.e. moving erratically.


    Sample Project (REQUIRED): https://www.dropbox.com/s/g2ypwqht5lv3u99/test%20proj.zip?dl=0
  6. Screedle said:
    Plugin Name: YEP_X_AnimatedSVEnemies, YEP_RowFormation


    Bug Explanation: Whenever an enemy battler has a state icon shown above their head, it moves erratically towards the top and left sides of the screen. These state icons appear and disappear from view seemingly at random when actions occur.


    Error Report: NA


    Exact Steps on How to Replicate Bug: Plugins installed; battle engine core, animated sideview enemies, row formation.


    The sample project is set up so that there is a single event on the default map which starts battle. Start the game and engage in combat with the enemy troop.


    The enemy troop units are arbitrarily set up to have a sideview actor sprite. The RowFormation plugin has been set up so that each actor/enemy automatically has a state based on which row position they are in. The enemies should have state icons above their heads that are 'glitching out', i.e. moving erratically.


    Sample Project (REQUIRED): https://www.dropbox.com/s/g2ypwqht5lv3u99/test%20proj.zip?dl=0



    Thanks! I'll get this updated by this coming weekend.
  7. Yanfly said:
    To make a bug report, simply report it in this thread. Chances are, I will find out about the bug in this thread than by making one in the JS Support forum.


    ALL bug reports MUST follow these guidelines and use this template: 


    Plugin Name: (What is the name of the plugin?)


    Bug Explanation: (What is the bug in your own words? Keep this detailed. "It isn't working right" is not a valid bug report.)


    Error Report: (If you received an error message, press F8 when the message is received to open up the debug console, then copy/paste the entire error log and paste it here).


    Exact Steps on How to Replicate Bug: (Write out IN DETAIL, a step-by-step guide on how to replicate the bug.)


    Sample Project (REQUIRED): A sample project MUST be attached to the bug report. All steps MUST be followed. If a single step is ignored, the bug report is invalid and I will move on to the next bug report.  If you do not attach a sample project to the bug report, your bug report WILL BE ignored. There are NO exceptions.


    Follow these Instructions. All steps MUST be followed or I will require you to redo it.


    1. Download all the newest updates of the plugin.2. Create a new project. Do NOT just copy over your game project folders. This should be just a stock, empty, new RPG Maker MV project. If I do not see an empty project with Harold, Therese, Marsha, and Lucius, I will not look any further.3. If the project's file size is above 200 MB, remove unnecessary audio and image files until you reach that size. Usehttp://forums.rpgmakerweb.com/index.php?/topic/47985-mvstripper-remove-unused-assets-from-your-mv-project/ if you need some help doing so.4. Install -only- the affected plugins. If you're using non-YEP plugins, do NOT include them. That said, both ATB and CTB are no longer supported by Yanfly, so if you're using them, please remove them from the project used for the bug report.5. Do -NOT- rename the plugins' filenames. They cease to work if you do so.6. Make sure they're in the EXACT order listed on http://yanfly.moe/yep/. The ordering of plugins is important.7. Recreate the error in the sample project. MAKE SURE you are using notetags in the right place and haven't misspelled anything. DO NOT USE SAVES. I need to know exactly how to recreate the problem from start to finish. Simply giving me a save file tells me nothing.8. Archive the project with WinZip or WinRAR. Do not archive it multiple times. It does not compress it further.9. Do -NOT- deploy the project through File > Deployment. Upload the project online to a website like MediaFire.com or Dropbox. Please do not use a website that involves timers like 4shared, RapidShare, etc. If I am time-gated from downloading the project, I will ask you to reupload it to somewhere else.10. Post the link here and I'll take a look at it.


    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.


    NOTE2: As I've stated before in the previous note, I'll only provide support for my own codes that I, myself, have provided. To make this clear, this means strictly the plugins I've made and any code for Lunatic Mode that I, personally, have provided through Tips & Tricks. I am not responsible for any coding errors, coding roadblocks, or code questions that you come across within your own Lunatic Mode code. Unless the Lunatic Mode notetag itself has a bug, you are to ask your questions here.


    NOTE3: However, as an exception to NOTE2, this does not mean I am going to explain to you how to use all the various functions inside of my plugins. If a function added by my plugins is not listed in the Help File, it means I do not deem that function to be used for script calls. Therefore, if you choose a function outside of the ones listed in the help files to use in a script call, I am NOT responsible for it not working properly for you. No script call support will be provided for functions not listed within the help file.


    WHY I NEED A CLEAN SAMPLE PROJECT FOR BUG REPORTS:




    If you're wondering why I make it an absolute requirement for sample projects containing to be made, it's because in the past, I've chased and hunted bugs that do not exist either because a user had a conflicting error with a non-Yanfly plugin, has not updated the plugins, using the plugin incorrectly, or think something is a bug when it really isn't. The amount of time I've wasted chasing these "bugs" is unfathomable as that time could have been spent developing new content. To mitigate this issue, I made it an absolute requirement for bugs to be reported in such a manner because of the following:

    1. It makes the user go through all of the troubleshooting steps to reduce the amount of user errors. If the user identifies it as a user error, then the user would also have gained troubleshooting skills, which are essential for game development.
    2. Isolate the bugs caused by Yanfly plugins away from non-Yanfly plugins. As stated above, I do not provide support for non-Yanfly plugins due to my lack of time to create compatibility patches for non-Yanfly plugins. Having over 100+ plugins, making a compatibility patch for each one of those with every other plugin out there is absolute insanity.
    3. It shows that the user is serious about getting the bug fixed as I am. Being able to put out time to isolate a problem so it can be fixed means the user is serious about getting their game made. As a user's time is important to them, my time is also important to me, and this is our mutual agreement to get things done cooperatively.



    Thank you for understanding.


    BASIC TROUBLE SHOOTING




    1. Are all your plugins up to date? If they're not, download the updated versions from here: http://yanfly.moe/yep/changelog/


    2. Did you rename any of their plugins from their default filenames? If you did, then the plugins won't work. Do NOT rename them.


    3. Did you make sure all of the plugins are placed in order as http://yanfly.moe/yep/ inside of the Plugin Manager?


    4. When you updated the plugin, did you /open up/ the plugin within the Plugin Manager? 


    You are getting the error because you updated the plugin and did not go into the plugin itself like the instructions here in the first video: http://yanfly.moe/yep/changelog/


    Why is this important? Because whenever new parameters are added to a plugin upon a new update, you have to enter the plugin in order for the Plugin Manager to add those new parameters into your game. Otherwise, you will get undefined errors and "random" crashes. Skipping that step is not optional and is very crucial to getting updated plugins to work.


    5. If you are using non-Yanfly plugins, turn off ALL of the non-Yanfly plugins to see if there are any conflicts.


    6. If you are testing your project in Battle Test and aren't seeing any changes made after updating your plugin, make sure you -save- your project. RPG Maker MV does not carry over changes to Battle Test until you save your project.


    F.A.Q. ABOUT ATB AND CTB PLUGINS


    The ATB and CTB plugins are custom battle systems that do NOT involve a turn-based system that you're used to with the default turn-based battle system (DTB). They function off of a tick-based system, which means it does not work off standard means. This also means you have to adjust either the plugin or your game to fit these means. Here are some frequently reported "issues" with the system. None of these are bugs so do not report them as bugs.

    • If ATB bars are taking too long to fill up, then change your battlers' AGI values to higher or change the plugin parameters to fit your game.
    • If ATB states are dropping in turns too quickly, this is because you didn't adjust the proper state turn settings within the Battle Engine Core to fit your game.
    • For ATB, no, I will NOT make Active Mode. It's not because I can't (I've made it before in VX's Yanfly Engine Melody). It's because RPG Maker MV's code structure for the battle system makes it more likely to break everything if it does so. If this is something you absolutely need, the Plugin Request Forum is your place to visit, if DoubleX RMMV Popularized ATB Core(which is at least compatible with my Battle Engine Core with the compatibility fix) can't meet your demands already.
    • If there is "lag" between CTB turns, this isn't because of the plugin. This is because your low AGI values is making the game go through hundreds to thousands of CTB updates per tick. Once again, either you increase the AGI values or change the plugin parameters to fit your 
    • In CTB, States "skipping" multiple turns when updating isn't a bug. It is because in between the previous battler next battler, there was a huge gap in time, enough to go through two state turn cycles. Adjust the state turn settings within the Battle Engine Core to fit your game.
    • For CTB, no, I will NOT make multiple instances of turn icons appearing for multiple actors. If you want something like that made, you can request it in the Plugin Request Forum.

    If all of these issues are beyond you, then I'm afraid the ATB and CTB plugins aren't for you. As a developer, it is your responsibility to understand the plugins and systems you are using. You are not doing your players any favor by using a system that you, yourself, do not fully comprehend. I will not educate anyone how ATB and CTB systems work. My plugins work based on the ATB and CTB systems of existing Final Fantasy games with slight tweaks to fit RPG Maker MV's system. Please study them on your own accord. 



    Putting this on the new page~
  8. Tips & Tricks - Reverence (Everquest 2) - RPG Maker MV










    For a short duration, whenever target ally spends MP, some of their health is replenished. The more MP spent increases the amount of health replenished. This effect in Everquest 2 can now be remade in RPG Maker MV!


    You can grab the copy/paste code here:
    Yanfly.moe: http://yanfly.moe/2016/09/08/tips-tricks-reverence-everquest-2-rpg-maker-mv/


    Enjoy~
  9. @Yanfly I have a question about the Actor Variables plugin.  Say we have more variables to display than the space on the screen, like for example my game has a lot of character relationships and not all of them can be seen there.  The rest of them just run off the bottom of the window and you can't tell who they are or what the value is.  Is there a way to make the plugin scroll or was that something the plugin wasn't meant to do?
  10. Hey @Yanfly, i'm using the Class Core (and Subclass) plugin in my project and I want to do an skill that, if you use it in an enemy and sucessfuly hit it, then you'll "kill" the monster (he won't drop itens, but will still give Experience) and the actor who uses the skill gains access to the class corresponding to the enemy. Just like if he captures the enemy. Is that possible? I really need this to my project, so i'll be very, very glad if you could do this for me. Thank you so much.
  11. Couldn't figure out how to make this one work myself, so I bit the bullet and made a self-contained example project...

    Bug Report:
     


    Plugin Name: Probably Battle Status Window,  but could also be Battle Engine Core or Core Engine.


    Bug Explanation: Animations that contain rotated sprites are not rotating correctly when used by enemies. 


    Error Report: None appears in log.


    Exact Steps on How to Replicate Bug:

    1. Load the sample project. Start a new game.
    2. Talk to the person to the south. You will enter a battle.
    3. Select attack.
    4. You will use your attack first. Note that it is a horizontal slash, from left to right. This is the intended animation.
    5. The enemy will use an attack with the same animation ID. Note that the slash is positioned vertically instead of horizontally, and the slash "slides" right to left.
    6. Feel free to examine the database. The animation in question is at the end of the "sample" animations, and is called "Enemy cleave". (0121)  It is used in both the sword's basic attack (weapon 0001) and the skill cleave (0011).

    Additional info:

    • This only happens if battle status core is running. Otherwise, no animation is shown at all.

    Sample Project: https://www.dropbox.com/s/t1uy65baqu28mry/YanflyDebug.zip?dl=0


    Video Demonstration: Low Quality recording, my apologies!
  12. Dwimepon said:
    Hi Yanfly! I recently found a bug, so I'm reporting it here.
     
    Plugin Name: YEP.106 – Equip Battle Skills – Allowed Types
     
    Bug Explanation: When a skill type is allowed in the plugins' parameters, then it will effectively appear independently in the Skill Menu outside of battle, with their skills appearing inside of that skill type. However, when in battle, the skill types will appear but will be empty, no matter how many skills you have in that type.
     
    Error Report: N/A
     
    Exact Steps on How to Replicate Bug: 1) Make a character learn an allowed skill type and a skill from that type.
    2) Start a fight, then check the allowed skill type. It's empty, even if it's supposed to have skills.
     
    Sample Project: Here it is. I already allowed the "Special" skill type and put a special skill for each character. Sorry, but the demo is mostly in French. I translated some of the imrportant text, however.



    I'm having the same problem here. All allowed types are empty in battle. Just to check, I searched for someone that has solved, and I was not very lucky. I tried to update the plugin, I even tried a new project with only the Equip Battle Skills and the Allowed Types plugin on and the bug still happens.


    I know that Yanfly was going to check this problem, but I didn't see any solving so far. So I'm insisting in this problem. Please, if there already is a solution for this, let me know. 
  13. Talonos said:
    Couldn't figure out how to make this one work myself, so I bit the bullet and made a self-contained example project...

    Bug Report:
     


    Plugin Name: Probably Battle Status Window,  but could also be Battle Engine Core or Core Engine.


    Bug Explanation: Animations that contain rotated sprites are not rotating correctly when used by enemies. 


    Error Report: None appears in log.


    Exact Steps on How to Replicate Bug:

    1. Load the sample project. Start a new game.
    2. Talk to the person to the south. You will enter a battle.
    3. Select attack.
    4. You will use your attack first. Note that it is a horizontal slash, from left to right. This is the intended animation.
    5. The enemy will use an attack with the same animation ID. Note that the slash is positioned vertically instead of horizontally, and the slash "slides" right to left.
    6. Feel free to examine the database. The animation in question is at the end of the "sample" animations, and is called "Enemy cleave". (0121)  It is used in both the sword's basic attack (weapon 0001) and the skill cleave (0011).

    Additional info:

    • This only happens if battle status core is running. Otherwise, no animation is shown at all.

    Sample Project: https://www.dropbox.com/s/t1uy65baqu28mry/YanflyDebug.zip?dl=0


    Video Demonstration: Low Quality recording, my apologies!

    This is because animations used by enemies are mirrored by default. If you want to use rotated animations for enemies,


    you need to either use yanfly's action sequenceses and mirror the animations there, or mirror everything in the animation you intend to use.
  14. Xenthar said:
    This is because animations used by enemies are mirrored by default. If you want to use rotated animations for enemies,


    you need to either use yanfly's action sequenceses and mirror the animations there, or mirror everything in the animation you intend to use.


    Ah, I get it.


    Further testing reveals that mirroring everything in the animation you intend to use actually doesn't fix the issue. Instead, you need to reverse the sign on the rotation.

    To be fair, this is really dumb. (And also not Yanfly's fault.) If an attack is mirrored, then the opposite rotation should be applied to each frame so that the attack looks normal. There's no point to a WYSIWYG animation editor if what you see is not actually what you get.

    I get that this can't be fixed without breaking all the projects that are already compensate for it. Making the auto-mirroring behavior intuitive would break backwards compatibility everywhere that people have hacked around it. Sad day.

    But luckily I have not hacked around it yet, so I'm gonna fix it in my project. If anybody else wants to fix it, you can do so by replacing line 1424 in rpg_sprites:


    sprite.rotation = cell[4] * Math.PI / 180;


    With this:


    sprite.rotation = cell[4] * Math.PI / 180 * (this._mirror?-1:1);


    The attack still goes from right to left when used by the enemy, but the frames are rotated correctly given the auto-mirror.

    Thanks for pointing out the correct path.
  15. Ok, the visual state effect plugin is a pain. I've already reported a bug, which you fixed, but there is still an incompatibility with the animated enemies.


    The incompatibility only happens with sideview enemies, not regular enemies. And it only happens when the "enemy state overlay" part of the plugin is set to false.


    Plugin Name: visual state effect (and animated sideview enemies)


    Bug Explanation: You will have a bug when you enter a fight with an animated sideview enemy, if "enemy state overlay" part of the plugin is set to false.


    Error Report: the on screen error says "cannot read property 'setup' of undefined. The console says this :


    TypeError: Cannot read property 'setup' of undefined
        at Sprite_Enemy.setSVBattler (/D:/RPG%20Maker/MV/Bug%20report%20Visual%20state%20effects/js/plugins/YEP_X_AnimatedSVEnemies.js:1441)
        at Sprite_Enemy.setBattler (/D:/RPG%20Maker/MV/Bug%20report%20Visual%20state%20effects/js/plugins/YEP_X_AnimatedSVEnemies.js:1427)
        at Sprite_Enemy.setBattler (/D:/RPG%20Maker/MV/Bug%20report%20Visual%20state%20effects/js/plugins/YEP_X_VisualStateFX.js:417)
        at Sprite_Enemy.Sprite_Battler.initialize (rpg_sprites.js:462)
        at Sprite_Enemy.Sprite_Battler.initialize (/D:/RPG%20Maker/MV/Bug%20report%20Visual%20state%20effects/js/plugins/YEP_BattleEngineCore.js:2550)
        at Sprite_Enemy.initialize (rpg_sprites.js:924)
        at new Sprite_Enemy (rpg_sprites.js:917)
        at Spriteset_Battle.createEnemies (rpg_sprites.js:2629)
        at Spriteset_Battle.createLowerLayer (rpg_sprites.js:2437)
        at Spriteset_Battle.Spriteset_Base.initialize (rpg_sprites.js:2124)


    Exact Steps on How to Replicate Bug: Open my demo. The enemy on the left is a regular enemy. There is no bug and the state icon appears when you use the magic etincelle so everything seems to be working. Now speak to the enemy on the right and you will get the bug immediately when the battle begins (just before it begins actually). Now go to the visual state effects plugin, and change the enemy state overlay to true. Go fight the enemy that caused the bug and this time there is no bug. The animated sideview enemy (beef from akashiks) is there and everything is normal. Except I don't want to have state overlay on my enemies. (by the way, just use magic if you attack, the file for the normal attack isn't there so it will crash the game)


    Sample Project (REQUIRED): here
  16. Kasuya said:
    I'm having the same problem here. All allowed types are empty in battle. Just to check, I searched for someone that has solved, and I was not very lucky. I tried to update the plugin, I even tried a new project with only the Equip Battle Skills and the Allowed Types plugin on and the bug still happens.


    I know that Yanfly was going to check this problem, but I didn't see any solving so far. So I'm insisting in this problem. Please, if there already is a solution for this, let me know. 





    Hello Yanfly. I don't know if you have already solved this problem, but I tried to verify myself why this error happens anyway. And I found something.


    I was tracking the code sequence when the player opens a skill list screen from any allowed type. Thing is, when we reach this code in YEP_EquipBattleSkills.js, line 550, we have:


    Yanfly.EBS.Game_Actor_skills = Game_Actor.prototype.skills;
    Game_Actor.prototype.skills = function() {
    if ($gameParty.inBattle() && !DataManager.isBattleTest()) {
    return this.battleSkills();
    } else {
    return Yanfly.EBS.Game_Actor_skills.call(this);
    }
    };




    In this function, the code decide if this is a battle outside the battleTest or not. If it's true, it go process the battleSkill listing (i.e. the equipped skills). If it's false, it processes default skill listing (meant to be for allowed skill types). This moment, two issues came to me:


    1- This verification was done already in two early 'ifs': 

    • First, when the code call Window_ActorCommand.prototype.addSkillCommands. The function in line 767 verifies if this is a BattleTest when adding the battle command:

      Yanfly.EBS.Window_ActorCommand_addSkillCommands =
      Window_ActorCommand.prototype.addSkillCommands;
      Window_ActorCommand.prototype.addSkillCommands = function() {
      if (DataManager.isBattleTest()) {
      Yanfly.EBS.Window_ActorCommand_addSkillCommands.call(this);
      } else {
      var name = TextManager.skill;
      this.addCommand(name, 'skill', true, 'battleSkills');
      }
      };


      So, when it's not a BattleTest, the code will add command following the EquipBattleSkill and EBSAllowedTypes rules.

       
    • Second, when the code reach  Window_SkillList.prototype.makeItemList, it verifies if the skill type is 'battleSkills'. The function in line 712:

      Yanfly.EBS.Window_SkillList_makeItemList =
      Window_SkillList.prototype.makeItemList;
      Window_SkillList.prototype.makeItemList = function() {
      if (this._actor && this._stypeId === 'battleSkills') {
      this._data = this._actor.battleSkills();
      } else {
      Yanfly.EBS.Window_SkillList_makeItemList.call(this);
      }
      };


      If the skill type is 'battleSkill', the code goes to equiped battle skills listing. If it's not, the code call the default skill listing for that skill type.



    Both verification occurs before the skill listing. The first, when adding command in battle, the second, when choosing the skill list for that type. Once there is a allowed type command in battle and there is a if that says not to process the 'battleSkill' listing if it's not a battleSkill list, the next step should not need to verify if we are listing a 'battleSkill' or a "normal skill", nor if is a battleTest, nor execute a 'battleSkill' listing. And that's is the second issue bellow.


    2- When Yanfly.EBS.Window_SkillList_makeItemList function decides that it's not a 'battleSkill' and call for normal skill listing, we eventually reach the Yanfly.EBS.Game_Actor_skills function (the first code above). But, since it is a battle and not a battleTest, this function will make a battleSkill list anyway, even if it's not what this function was supposed to do. All the verification necessary was done. In my point of view, we can be pretty sure that's not a 'battleSkill', but a normal skill to be listed. That way, since all skills meant to be listed in this case are not 'battleSkill', this code will give us an empty list and nothing will be displayed in allowed types command. This code should be running some default listing code for this case.


    My solution was changing this function to:


    Yanfly.EBS.Game_Actor_skills = Game_Actor.prototype.skills;
    Game_Actor.prototype.skills = function() {
    return Yanfly.EBS.Game_Actor_skills.call(this);
    };


    Since the code cannot reach here if there is not an allowed type command nor if it is a 'battleSkill', I found it's not necessary verify any of those requirements, nor it's even possible for the code list 'battleSkill' where it should not do that. There is another functions that call for that.


    So far, it's working exactly it's supposed to do. But I'm reporting this because I can be wrong and, of course, is best for the script if you know this. That way, you or another programmers here can analyse that solution if there is no possible issues that I can't see.


    Thank you so much for all of your scripts and specially those from "Equip Battle Skill" system, and I hope I could help just a little with this code discussion I proposed. Sorry if it's not the right topic to place this discussion, but I think it's worth present this.
  17. Saneterre said:
    Ok, the visual state effect plugin is a pain. I've already reported a bug, which you fixed, but there is still an incompatibility with the animated enemies.


    The incompatibility only happens with sideview enemies, not regular enemies. And it only happens when the "enemy state overlay" part of the plugin is set to false.


    Plugin Name: visual state effect (and animated sideview enemies)


    Bug Explanation: You will have a bug when you enter a fight with an animated sideview enemy, if "enemy state overlay" part of the plugin is set to false.


    Error Report: the on screen error says "cannot read property 'setup' of undefined. The console says this :


    TypeError: Cannot read property 'setup' of undefined
        at Sprite_Enemy.setSVBattler (/D:/RPG%20Maker/MV/Bug%20report%20Visual%20state%20effects/js/plugins/YEP_X_AnimatedSVEnemies.js:1441)
        at Sprite_Enemy.setBattler (/D:/RPG%20Maker/MV/Bug%20report%20Visual%20state%20effects/js/plugins/YEP_X_AnimatedSVEnemies.js:1427)
        at Sprite_Enemy.setBattler (/D:/RPG%20Maker/MV/Bug%20report%20Visual%20state%20effects/js/plugins/YEP_X_VisualStateFX.js:417)
        at Sprite_Enemy.Sprite_Battler.initialize (rpg_sprites.js:462)
        at Sprite_Enemy.Sprite_Battler.initialize (/D:/RPG%20Maker/MV/Bug%20report%20Visual%20state%20effects/js/plugins/YEP_BattleEngineCore.js:2550)
        at Sprite_Enemy.initialize (rpg_sprites.js:924)
        at new Sprite_Enemy (rpg_sprites.js:917)
        at Spriteset_Battle.createEnemies (rpg_sprites.js:2629)
        at Spriteset_Battle.createLowerLayer (rpg_sprites.js:2437)
        at Spriteset_Battle.Spriteset_Base.initialize (rpg_sprites.js:2124)


    Exact Steps on How to Replicate Bug: Open my demo. The enemy on the left is a regular enemy. There is no bug and the state icon appears when you use the magic etincelle so everything seems to be working. Now speak to the enemy on the right and you will get the bug immediately when the battle begins (just before it begins actually). Now go to the visual state effects plugin, and change the enemy state overlay to true. Go fight the enemy that caused the bug and this time there is no bug. The animated sideview enemy (beef from akashiks) is there and everything is normal. Except I don't want to have state overlay on my enemies. (by the way, just use magic if you attack, the file for the normal attack isn't there so it will crash the game)


    Sample Project (REQUIRED): here



    Thanks. I'll get this fixed by this weekend.


    ---

    Kasuya said:
    Hello Yanfly. I don't know if you have already solved this problem, but I tried to verify myself why this error happens anyway. And I found something.


    I was tracking the code sequence when the player opens a skill list screen from any allowed type. Thing is, when we reach this code in YEP_EquipBattleSkills.js, line 550, we have:



    Yanfly.EBS.Game_Actor_skills = Game_Actor.prototype.skills;
    Game_Actor.prototype.skills = function() {
    if ($gameParty.inBattle() && !DataManager.isBattleTest()) {
    return this.battleSkills();
    } else {
    return Yanfly.EBS.Game_Actor_skills.call(this);
    }
    };




    In this function, the code decide if this is a battle outside the battleTest or not. If it's true, it go process the battleSkill listing (i.e. the equipped skills). If it's false, it processes default skill listing (meant to be for allowed skill types). This moment, two issues came to me:


    1- This verification was done already in two early 'ifs': 

    • First, when the code call Window_ActorCommand.prototype.addSkillCommands. The function in line 767 verifies if this is a BattleTest when adding the battle command:


      Yanfly.EBS.Window_ActorCommand_addSkillCommands =
      Window_ActorCommand.prototype.addSkillCommands;
      Window_ActorCommand.prototype.addSkillCommands = function() {
      if (DataManager.isBattleTest()) {
      Yanfly.EBS.Window_ActorCommand_addSkillCommands.call(this);
      } else {
      var name = TextManager.skill;
      this.addCommand(name, 'skill', true, 'battleSkills');
      }
      };


      So, when it's not a BattleTest, the code will add command following the EquipBattleSkill and EBSAllowedTypes rules.

       
    • Second, when the code reach  Window_SkillList.prototype.makeItemList, it verifies if the skill type is 'battleSkills'. The function in line 712:


      Yanfly.EBS.Window_SkillList_makeItemList =
      Window_SkillList.prototype.makeItemList;
      Window_SkillList.prototype.makeItemList = function() {
      if (this._actor && this._stypeId === 'battleSkills') {
      this._data = this._actor.battleSkills();
      } else {
      Yanfly.EBS.Window_SkillList_makeItemList.call(this);
      }
      };


      If the skill type is 'battleSkill', the code goes to equiped battle skills listing. If it's not, the code call the default skill listing for that skill type.



    Both verification occurs before the skill listing. The first, when adding command in battle, the second, when choosing the skill list for that type. Once there is a allowed type command in battle and there is a if that says not to process the 'battleSkill' listing if it's not a battleSkill list, the next step should not need to verify if we are listing a 'battleSkill' or a "normal skill", nor if is a battleTest, nor execute a 'battleSkill' listing. And that's is the second issue bellow.


    2- When Yanfly.EBS.Window_SkillList_makeItemList function decides that it's not a 'battleSkill' and call for normal skill listing, we eventually reach the Yanfly.EBS.Game_Actor_skills function (the first code above). But, since it is a battle and not a battleTest, this function will make a battleSkill list anyway, even if it's not what this function was supposed to do. All the verification necessary was done. In my point of view, we can be pretty sure that's not a 'battleSkill', but a normal skill to be listed. That way, since all skills meant to be listed in this case are not 'battleSkill', this code will give us an empty list and nothing will be displayed in allowed types command. This code should be running some default listing code for this case.


    My solution was changing this function to:



    Yanfly.EBS.Game_Actor_skills = Game_Actor.prototype.skills;
    Game_Actor.prototype.skills = function() {
    return Yanfly.EBS.Game_Actor_skills.call(this);
    };


    Since the code cannot reach here if there is not an allowed type command nor if it is a 'battleSkill', I found it's not necessary verify any of those requirements, nor it's even possible for the code list 'battleSkill' where it should not do that. There is another functions that call for that.


    So far, it's working exactly it's supposed to do. But I'm reporting this because I can be wrong and, of course, is best for the script if you know this. That way, you or another programmers here can analyse that solution if there is no possible issues that I can't see.


    Thank you so much for all of your scripts and specially those from "Equip Battle Skill" system, and I hope I could help just a little with this code discussion I proposed. Sorry if it's not the right topic to place this discussion, but I think it's worth present this.



    This problem should already be fixed.
  18. Yanfly.. First I wanna say thank you for your wonderful scripts. I love and adore them a lot.


    They keep me motivating to create unique Menus, limitation and stuff.


    Sorry in advance if it's already in your scripts.


    But I have a question about the Message Core and Extended Message Scripts.


    Is it possible to read the Event ID too with these (i tried as hard as possible to look to find a command for that but couldnt)


    For example


    Event ID: Waitress


    and with \e[x] Hello.


    x = Event ID


    <3
  19. StefSan said:
    Yanfly.. First I wanna say thank you for your wonderful scripts. I love and adore them a lot.


    They keep me motivating to create unique Menus, limitation and stuff.


    Sorry in advance if it's already in your scripts.


    But I have a question about the Message Core and Extended Message Scripts.


    Is it possible to read the Event ID too with these (i tried as hard as possible to look to find a command for that but couldnt)


    For example


    Event ID: Waitress


    and with \e[x] Hello.


    x = Event ID


    <3



    Why can't you just write "Waitress" out in the message box itself?