Status
Not open for further replies.

Saneterre

Veteran
Veteran
Joined
Jul 5, 2015
Messages
223
Reaction score
68
First Language
French
Primarily Uses
A note on this, in RMMV you don't necessarily need to delete the Plug-In.


In order for the database to realize there is a new version of the Plug-In, you actually have to go into your Plug-In database and open the Plug-In listing, then close it. This allows the database to read-in the new version.


You'll see that when opening the Plug-In manager that, even if the Plug-In file was overwritten, the old version shows up in the description. Opening and closing the updated Plug-In will change it to the new version.




My experience tells me you're wrong about this. It works very often but there are times when only by deleting and re-installing the plugin does it work.


In any case, it's always a good thing to have different methods to try. Yours would, of course, be the first step, because in my method you have to set up everything insde the plugin again, and for some plugins it can be a lot of things.


@Sol003 : I'm glad it worked for you ;)
 

Hikitsune-Red

火狐 - Red =^~^=
Veteran
Joined
Mar 22, 2015
Messages
157
Reaction score
107
First Language
English
Primarily Uses

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.






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 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 player 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. 


TERMS OF USE



Any original material made by Yanfly is free for use with both free and commercial RPG Maker games unless specified otherwise. I do not demand royalties or special liberties if you choose to use Yanfly original content in your commercial games. (Although a free copy of your game would be nice!) I only ask that you provide “Yanfly” or “Yanfly Engine” a spot in your game’s credits.


 


Any edits made to Yanfly original material are okay as long as you still provide the proper credit. Any non-Original content posted, linked, or shared on my website and channel will still require you to contact the respective parties for permission of use.


 


I think this is simple. I’d like to keep it simple. I ask of you, as users, to please do not do things that will make me complicate it for everyone.


A new page, a new rule sheet...
 

juances19

Villager
Member
Joined
Mar 3, 2016
Messages
5
Reaction score
0
First Language
Spanish
Primarily Uses
Hey, I'm using smart jump + button common events and I kinda noticed an oversight with the way the common event is set up.
If an user is reeeeally patient and jumps instead of walking, he can make states that disappear after X turns persist. (or any system that depends on steps)

Is there a scriptcall to increase the internal step-counter manually? (and would it work if we increase the counter that way?)
 

CursedEmbrace

Veteran
Veteran
Joined
Dec 19, 2013
Messages
22
Reaction score
3
First Language
English
Primarily Uses
Plugin Name: YEP_X_VisualHpGauge, YEP_X_StateCategories


Bug Explanation: Applied a state to an enemy with the <Category: Bypass Death Removal> note tag. Had that same enemy die, then be revived through a troop event a handful of turns later, but they revived with the aforementioned state removed. Repeating the battle with the VisualHpGauge script disabled fixes the issue, and the enemy revives with the expected state.


Error Report: No error message.


Exact Steps on How to Replicate Bug: 1: Create a state with the <Category: Bypass Death Removal> note tag. 2: Apply said state to an enemy through an ability or troop event. 3: Kill the enemy in battle. 4: Revive the enemy through a troop event.


Sample Project (REQUIRED): https://www.dropbox.com/s/1i1tjpua89zw1ku/StateCategoriesDeathBug.rar?dl=0


Hope I've done everything right, thanks for reading and/or taking a look.
 

TheKingKaze

Warper
Member
Joined
Oct 9, 2014
Messages
1
Reaction score
0
Primarily Uses
Hands down the best plugin to date for a mapper. Here's something I put together after only a few moments of using it!

DOODADSFUN.png
 
Last edited by a moderator:
Joined
Jan 22, 2016
Messages
613
Reaction score
223
First Language
English
Primarily Uses
Um... sorry to bother you guys, but... F10 doesn't bring up the Doodads menu. I checked, and I have the json and the Doodads image folder and the plugin right where it needs to be in the list, and I looked and my version is 1.3.1 so... what's going on? For reference I'm using Windows 10 on a Dell laptop...
 

beelzebug

Warper
Member
Joined
Jan 22, 2016
Messages
3
Reaction score
1
First Language
English
Primarily Uses
Plugin Name: Battle Engine Core v1.39b


Bug Explanation: During a battle everything works fine at first, but then after the first round of turns an error message appears that says "TypeError undefined is not a function." I don't know if this is relevant but I'm working on a mac. Additionally, I did not encounter this error using an older version of the Battle Engine Core (specifically v1.34 because that's the only other version I had). This error still occurred in a new project and I even tried reinstalling RPG Maker with no luck.

Screen Shot 2016-09-25 at 5.18.55 PM.png

Error Report: For whatever reason I couldn't figure out how to copy text from the error log so I took a screenshot

Screen Shot 2016-09-25 at 5.18.42 PM.png

Exact Steps on How to Replicate Bug: Enter a battle, wait until enemies and actors have finished their first turn.


Sample Project (REQUIRED): https://www.dropbox.com/s/fjcm7kwpzvpotsf/Project3.zip?dl=0


Hopefully I did this correctly.
 

YoraeRasante

Veteran
Veteran
Joined
Jun 6, 2014
Messages
1,643
Reaction score
420
First Language
Portuguese
Primarily Uses
RMMV
First things first, I'd like to thank you for all the plugins, Yanfly. Seriously, so many things I was planning I can imlement much easier with them on hand...


That said, is the animated sideview enemies plugin supposed to not change the hue of the enemy? I ask because... well, I put two enemies that use the same battler here, but that are set to have different hues... and they don't have.


I can always change it through an image editor, true, but I was hoping on some of the enemies being different colors of the same sprite... well, slimes mainly. Not for lack of interest in making the new sprites, but to save the future player memory space.
 
Last edited by a moderator:

Ice Bear

Ice Bear for President
Veteran
Joined
Jun 18, 2014
Messages
60
Reaction score
20
First Language
English
Primarily Uses
Um... sorry to bother you guys, but... F10 doesn't bring up the Doodads menu. I checked, and I have the json and the Doodads image folder and the plugin right where it needs to be in the list, and I looked and my version is 1.3.1 so... what's going on? For reference I'm using Windows 10 on a Dell laptop...
There's an FN key on the keyboard. Try to press that and the F10 key at once.
 
Joined
Jan 22, 2016
Messages
613
Reaction score
223
First Language
English
Primarily Uses
*facepalm* I keep forgetting about that! Thanks, Ice Bear! I'm an idiot.
 

M.I.A.

Goofball Extraordinaire
Veteran
Joined
Jul 13, 2012
Messages
911
Reaction score
774
First Language
English
Primarily Uses
Wow now that I know the way to get party index into formation its working now   $gameParty.members().indexOf(this._actor) thanks!


By the way If you dont want your whole formation to change when they change row you need to make sure that you remove centerY altogether from the equation since centerY change depend on how many actor is in the row you would want to put something like this into both Row 1 Home Y and Row 2 Home Y instead.


Row 1 Home Y: $gameParty.members().indexOf(this._actor) * 48 + 180


Row 2 Home Y: $gameParty.members().indexOf(this._actor) * 48 + 180


The formation should work but you can adjust them to fine tune to fit you game


Where 48 can be change to adjust how far away each member from each other vertically.


Where 180 is starting position of your top most character increase this will push the whole formation down the screen decrease it will push the whole formation up the screen


Also you will need to stop the change in X position(horizontal position) too 


Row 1 Home X: $gameParty.members().indexOf(this._actor) * 20 + 500


Row 2 Home X: $gameParty.members().indexOf(this._actor) * 20 + 650


This will make it so your member remain stationary when other member change their row since rowIndex no longer in the equation of horizontal.


Where 20 can be change to emulate the perspective. Increase this will make the whole formation slant more to the right


Where 500, 650 is screen position of the Row. Increase this value will push respective row to the right of the screen


*Edited: Ok I've found a slight problem with above setting first it will make a small party 1-2 actor party to be on the very top part of the screen because it basically start lining up player on top of the party position on top of the screen regardless of party size. But I've found a solution.


First edit the plugin parameter 


Row 1 Home Y: $gameParty.members().indexOf(this._actor) * 48 + 350 - centerY


repeat for row2, row3 if you use them


then


Center Row Y: partySize * 24


where 24 should be half of value 48 in Row 1 (vertical distance)


as you can see the higher the party size the bigger will centerY be which in turn will push the whole formation upward. 


You will have to adjust these number to fit your game screen and setup though but i got mine working.


Hmm.. this is really close but still not quite. I'll post Screenies soon as I can.. 


Unfortunately, I had to replace my laptop and lost EVERYTHING.. :'(


Very, very discouraging.. I guess the silver lining is that I get to start from scratch.. and all the plugins I use will be up to date.. HAHA!!!


-Sad Mia
 

cekobico

Veteran
Veteran
Joined
May 8, 2015
Messages
353
Reaction score
159
First Language
Indonesian
Primarily Uses
@Yanfly I just wanna say the Doodad plugin is amaaaaazing. Thank you for making it!


I wish you good luck and hope you get all relics you wanted from Triple Burst Blast in FFRK as good karma :p
 

YoraeRasante

Veteran
Veteran
Joined
Jun 6, 2014
Messages
1,643
Reaction score
420
First Language
Portuguese
Primarily Uses
RMMV
@Yanfly I already thanked you for your plugins that are REALLY useful and helped me a LOT? Because I do.


As mentioned before, in a message I did not tag you, my only complaint until now is with your Animated Sideview Enemies not changing the hue of them.


Well, I edited it a bit so it did in my game... hope you don't mind.


It is a simple one, really. I removed the line in processSVENotetags1 that sets the hue to 0 all the time an animated battler is used, then went to updateSVBitmap, added a hue variable and made it call it with the name when loading the sprite.


The only reason I didn't make it an expansion plugin like DreamX did with the BattleStatusWindow is because... since two of the three really small edits are inside a for and an if, I had to copy the functions whole to do them... so if you changed them in a future update it'd stop working.


So, I'm sending you what I did so if you want you can do it in a future version by yourself.


Hope you don't feel insulted or anything. I just wanted both your plugin and to use hue on the enemies, and this way I could have both.

Code:
DataManager.processSVENotetags1 = function(group) {
  var noteWeapon = /<(?:SIDEVIEW WEAPON):[ ](\d+),[ ](.*),[ ](\d+)>/i;
  for (var n = 1; n < group.length; n++) {
    var obj = group[n];
    var notedata = obj.note.split(/[\r\n]+/);

    obj.sideviewBattler = [];
    obj.sideviewAttackMotion = Yanfly.Param.SVEAttackMotion.toLowerCase();
    obj.sideviewIdleMotion = [];
    obj.sideviewDmgMotion = Yanfly.Param.SVEDmgMotion.toLowerCase();
    obj.sideviewEvadeMotion = Yanfly.Param.SVEEvadeMotion.toLowerCase();
    obj.sideviewEscMotion = Yanfly.Param.SVEEscMotion.toLowerCase();
    obj.sideviewGuardMotion = Yanfly.Param.SVEGuardMotion.toLowerCase();
    obj.sideviewAbnMotion = Yanfly.Param.SVEAbnMotion.toLowerCase();
    obj.sideviewSleepMotion = Yanfly.Param.SVESleepMotion.toLowerCase();
    obj.sideviewDyingMotion = Yanfly.Param.SVEDyingMotion.toLowerCase();
    obj.sideviewDeadMotion = Yanfly.Param.SVEDeadMotion.toLowerCase();
    obj.sideviewAnchorX = Yanfly.Param.SVEAnchorX;
    obj.sideviewAnchorY = Yanfly.Param.SVEAnchorY;
    obj.sideviewWeaponImage = [];
    obj.sideviewWidth = Yanfly.Param.SVEWidth;
    obj.sideviewHeight = Yanfly.Param.SVEHeight;
    obj.sideviewCollapse = Yanfly.Param.SVECollapse;
    obj.sideviewShadowShow = Yanfly.Param.SVEShowShadow;
    obj.sideviewShadowScaleX = Yanfly.Param.SVEShadowScaleX;
    obj.sideviewShadowScaleY = Yanfly.Param.SVEShadowScaleY;
    obj.spriteScaleX = 1;
    obj.spriteScaleY = 1;
    obj.sideviewFrameSpeed = Yanfly.Param.SVEFrameSpeed;
    obj.sideviewBreathing = [1, 3].contains(Yanfly.Param.SVEBreathing);
    obj.sideviewBreathSpeed = Math.max(1, Yanfly.Param.SVEBreathSpeed);
    obj.sideviewBreathXRate = Math.max(0, Yanfly.Param.SVEBreathXRate);
    obj.sideviewBreathYRate = Math.max(0, Yanfly.Param.SVEBreathYRate);
    obj.sideviewLinkBreathing = Yanfly.Param.SVELinkBreathing;
    obj.sideviewFloating = false;
    obj.sideviewFloatSpeed = Yanfly.Param.SVEFloatSpeed;
    obj.sideviewFloatRate = Yanfly.Param.SVEFloatRate;
    obj.sideviewFloatHeight = Yanfly.Param.SVEFloatHeight;
    obj.sideviewStateOverlay = Yanfly.Param.SVEOverlay;

    for (var i = 0; i < notedata.length; i++) {
      var line = notedata[i];
       if (line.match(/<(?:SCALE SPRITE):[ ](\d+)([%%])>/i)) {
        obj.spriteScaleX = parseFloat(RegExp.$1) * 0.01;
        obj.spriteScaleY = obj.spriteScaleX;
      } else if (line.match(/<(?:SCALE SPRITE WIDTH):[ ](\d+)([%%])>/i)) {
        obj.spriteScaleX = parseFloat(RegExp.$1) * 0.01;
      } else if (line.match(/<(?:SCALE SPRITE HEIGHT):[ ](\d+)([%%])>/i)) {
        obj.spriteScaleY = parseFloat(RegExp.$1) * 0.01;
      } else if (line.match(/<(?:SIDEVIEW BATTLER):[ ](.*)>/i)) {
        obj.sideviewBattler.push(String(RegExp.$1));
        obj.sideviewBreathing = [2, 3].contains(Yanfly.Param.SVEBreathing);
      } else if (line.match(/<(?:SIDEVIEW ATTACK MOTION):[ ](.*)>/i)) {
        obj.sideviewAttackMotion = String(RegExp.$1).toLowerCase();
      } else if (line.match(/<(?:SIDEVIEW IDLE MOTION):[ ](.*)>/i)) {
        obj.sideviewIdleMotion.push(String(RegExp.$1).toLowerCase());
      } else if (line.match(/<(?:SIDEVIEW DAMAGE MOTION):[ ](.*)>/i)) {
        obj.sideviewDmgMotion = String(RegExp.$1).toLowerCase();
      } else if (line.match(/<(?:SIDEVIEW EVADE MOTION):[ ](.*)>/i)) {
        obj.sideviewEvadeMotion = String(RegExp.$1).toLowerCase();
      } else if (line.match(/<(?:SIDEVIEW ESCAPE MOTION):[ ](.*)>/i)) {
        obj.sideviewEscMotion = String(RegExp.$1).toLowerCase();
      } else if (line.match(/<(?:SIDEVIEW GUARD MOTION):[ ](.*)>/i)) {
        obj.sideviewGuardMotion = String(RegExp.$1).toLowerCase();
      } else if (line.match(/<(?:SIDEVIEW ABNORMAL MOTION):[ ](.*)>/i)) {
        obj.sideviewAbnMotion = String(RegExp.$1).toLowerCase();
      } else if (line.match(/<(?:SIDEVIEW SLEEP MOTION):[ ](.*)>/i)) {
        obj.sideviewSleepMotion = String(RegExp.$1).toLowerCase();
      } else if (line.match(/<(?:SIDEVIEW DYING MOTION):[ ](.*)>/i)) {
        obj.sideviewDyingMotion = String(RegExp.$1).toLowerCase();
      } else if (line.match(/<(?:SIDEVIEW DEAD MOTION):[ ](.*)>/i)) {
        obj.sideviewDeadMotion = String(RegExp.$1).toLowerCase();
      } else if (line.match(/<(?:SIDEVIEW ANCHOR X):[ ](\d+)[.](\d+)>/i)) {
        obj.sideviewAnchorX = eval(String(RegExp.$1) + '.' + String(RegExp.$2));
      } else if (line.match(/<(?:SIDEVIEW ANCHOR Y):[ ](\d+)[.](\d+)>/i)) {
        obj.sideviewAnchorY = eval(String(RegExp.$1) + '.' + String(RegExp.$2));
      } else if (line.match(/<(?:SIDEVIEW WEAPON):[ ](\d+)>/i)) {
        var weaponId = parseInt(RegExp.$1);
        var motionId = Yanfly.Param.SVEWeaponMotion[weaponId].toLowerCase();
        var aniId = Yanfly.Param.SVEWeaponAnimation[weaponId];
        var index = obj.sideviewWeaponImage.length;
        obj.sideviewWeaponImage[index] = [weaponId, motionId, aniId];
      } else if (line.match(noteWeapon)) {
        var weaponId = parseInt(RegExp.$1);
        var motionId = String(RegExp.$2).toLowerCase();
        var aniId = parseInt(RegExp.$3);
        var index = obj.sideviewWeaponImage.length;
        obj.sideviewWeaponImage[index] = [weaponId, motionId, aniId];
      } else if (line.match(/<(?:SIDEVIEW WIDTH):[ ](\d+)>/i)) {
        obj.sideviewWidth = parseInt(RegExp.$1);
      } else if (line.match(/<(?:SIDEVIEW HEIGHT):[ ](\d+)>/i)) {
        obj.sideviewHeight = parseInt(RegExp.$1);
      } else if (line.match(/<(?:SIDEVIEW COLLAPSE)>/i)) {
        obj.sideviewCollapse = true;
      } else if (line.match(/<(?:SIDEVIEW NO COLLAPSE)>/i)) {
        obj.sideviewCollapse = false;
      } else if (line.match(/<(?:SIDEVIEW SHOW SHADOW)>/i)) {
        obj.sideviewShadowShow = true;
      } else if (line.match(/<(?:SIDEVIEW HIDE SHADOW)>/i)) {
        obj.sideviewShadowShow = false;
      } else if (line.match(/<(?:SIDEVIEW SHADOW WIDTH):[ ](\d+)([%%])>/i)) {
        obj.sideviewShadowScaleX = parseFloat(RegExp.$1 * 0.01);
      } else if (line.match(/<(?:SIDEVIEW SHADOW HEIGHT):[ ](\d+)([%%])>/i)) {
        obj.sideviewShadowScaleY = parseFloat(RegExp.$1 * 0.01);
      } else if (line.match(/<(?:SIDEVIEW FRAME SPEED):[ ](\d+)>/i)) {
        obj.sideviewFrameSpeed = parseInt(RegExp.$1);
      } else if (line.match(/<(?:FLOATING|float)>/i)) {
        obj.sideviewFloating = true;
      } else if (line.match(/<(?:FLOATING SPEED):[ ](\d+)>/i)) {
        obj.sideviewFloatSpeed = Math.max(1, parseInt(RegExp.$1));
      } else if (line.match(/<(?:FLOATING RATE):[ ](\d+)[.](\d+)>/i)) {
        var rate = eval(String(RegExp.$1) + '.' + String(RegExp.$2));
        obj.sideviewFloatRate = rate;
      } else if (line.match(/<(?:FLOATING HEIGHT):[ ](\d+)>/i)) {
        obj.sideviewFloatHeight = parseInt(RegExp.$1);
      } else if (line.match(/<SIDEVIEW SHOW STATE OVERLAY>/i)) {
        obj.sideviewStateOverlay = true;
      } else if (line.match(/<SIDEVIEW HIDE STATE OVERLAY>/i)) {
        obj.sideviewStateOverlay = false;
      }
    }
    // Breathing
    for (var i = 0; i < notedata.length; i++) {
      var line = notedata[i];
      if (line.match(/<(?:BREATHING)>/i)) {
        obj.sideviewBreathing = true;
      } else if (line.match(/<(?:NO BREATHING)>/i)) {
        obj.sideviewBreathing = false;
      } else if (line.match(/<(?:BREATHING SPEED):[ ](\d+)>/i)) {
        obj.sideviewBreathSpeed = Math.max(1, parseInt(RegExp.$1));
      } else if (line.match(/<(?:BREATHING RATE X):[ ](\d+)[.](\d+)>/i)) {
        var rate = eval(String(RegExp.$1) + '.' + String(RegExp.$2));
        obj.sideviewBreathXRate = rate;
      } else if (line.match(/<(?:BREATHING RATE Y):[ ](\d+)[.](\d+)>/i)) {
        var rate = eval(String(RegExp.$1) + '.' + String(RegExp.$2));
        obj.sideviewBreathYRate = rate;
      } else if (line.match(/<(?:ENABLE HP LINK BREATHING)>/i)) {
        obj.sideviewLinkBreathing = true;
      } else if (line.match(/<(?:DISABLE HP LINK BREATHING)>/i)) {
        obj.sideviewLinkBreathing = false;
      }
    }
    // Create Defaults
    if (obj.sideviewIdleMotion.length <= 0) {
      obj.sideviewIdleMotion = [Yanfly.Param.SVEIdleMotion.toLowerCase()];
    }
    if (obj.sideviewWeaponImage.length <= 0) {
      var weaponId = Yanfly.Param.SVEWeaponIndex;
      var motionId = Yanfly.Param.SVEWeaponMotion[weaponId].toLowerCase();
      var aniId = Yanfly.Param.SVEWeaponAnimation[weaponId];
      obj.sideviewWeaponImage = [[weaponId, motionId, aniId]];
    }
    obj.sideviewFrameSpeed = Math.max(1, obj.sideviewFrameSpeed);
    if (obj.sideviewBattler.length > 0) {
      if (Imported.YEP_X_BattleSysCTB) {
        Yanfly.Param.CTBEnemySVBattler = true;
      }
      obj.battlerName = '';
    }
  }
};

Sprite_Enemy.prototype.updateSVBitmap = function() {
    Sprite_Battler.prototype.updateBitmap.call(this);
    var name = this._enemy.svBattlerName();
    var hue = this._enemy.battlerHue();
    console.log(hue);
    if (this._svBattlerEnabled && this._svBattlerName !== name) {
      this._createdDummyMainSprite = false;
      this._svBattlerName = name;
      this._mainSprite.bitmap = ImageManager.loadSvActor(name, hue);
      this.adjustAnchor();
      this.refreshMotion();
      this.updateScale();
    } else if (this._svBattlerName === '') {
      this._svBattlerName = '';
      this._svBattlerEnabled = false;
      if (this._createdDummyMainSprite) return;
      this._createdDummyMainSprite = true;
      this._mainSprite = new Sprite_Base();
      this._mainSprite.anchor.x = 0.5;
      this._mainSprite.anchor.y = 1;
    }
};
 

JoePie

of Art/Game
Veteran
Joined
Jun 9, 2014
Messages
170
Reaction score
226
First Language
Not English
Primarily Uses
Some minor issue after update Battle Engine Core to 1.34a. The game will hung when hit on Guard state. Strangely it doesn't occur in older ver.


Error log


2016-09-26 20_38_06-Developer Tools - file____D___work_Game_RPGames_HotDog_index.html_test&btest.png
 

Elk'

Warper
Member
Joined
Sep 26, 2016
Messages
2
Reaction score
0
First Language
French
Primarily Uses
Plugin Name: Battle Engine Core v1.39b


Bug Explanation: During a battle everything works fine at first, but then after the first round of turns an error message appears that says "TypeError undefined is not a function." I don't know if this is relevant but I'm working on a mac. Additionally, I did not encounter this error using an older version of the Battle Engine Core (specifically v1.34 because that's the only other version I had). This error still occurred in a new project and I even tried reinstalling RPG Maker with no luck.


Error Report: For whatever reason I couldn't figure out how to copy text from the error log so I took a screenshot


Exact Steps on How to Replicate Bug: Enter a battle, wait until enemies and actors have finished their first turn.


Sample Project (REQUIRED): https://www.dropbox.com/s/fjcm7kwpzvpotsf/Project3.zip?dl=0


Hopefully I did this correctly.


I have exactly the same problem. Should I fill a report too ?
I have RPGMaker MV v.1.3.1, and Battle Engine Core v1.39b.
When try to use ATB or CTB plugins, it crash at the start of the battle, but with DTB, it crash after a turn exactly like Beelzebug said.
 

Yanfly

Veteran
Joined
Mar 15, 2012
Messages
1,743
Reaction score
2,638
Plugin Name: YEP_X_VisualHpGauge, YEP_X_StateCategories


Bug Explanation: Applied a state to an enemy with the <Category: Bypass Death Removal> note tag. Had that same enemy die, then be revived through a troop event a handful of turns later, but they revived with the aforementioned state removed. Repeating the battle with the VisualHpGauge script disabled fixes the issue, and the enemy revives with the expected state.


Error Report: No error message.


Exact Steps on How to Replicate Bug: 1: Create a state with the <Category: Bypass Death Removal> note tag. 2: Apply said state to an enemy through an ability or troop event. 3: Kill the enemy in battle. 4: Revive the enemy through a troop event.


Sample Project (REQUIRED): https://www.dropbox.com/s/1i1tjpua89zw1ku/StateCategoriesDeathBug.rar?dl=0


Hope I've done everything right, thanks for reading and/or taking a look.


Thanks. I'll have to see what's causing the issue.


---

Plugin Name: Battle Engine Core v1.39b


Bug Explanation: During a battle everything works fine at first, but then after the first round of turns an error message appears that says "TypeError undefined is not a function." I don't know if this is relevant but I'm working on a mac. Additionally, I did not encounter this error using an older version of the Battle Engine Core (specifically v1.34 because that's the only other version I had). This error still occurred in a new project and I even tried reinstalling RPG Maker with no luck.


Error Report: For whatever reason I couldn't figure out how to copy text from the error log so I took a screenshot


Exact Steps on How to Replicate Bug: Enter a battle, wait until enemies and actors have finished their first turn.


Sample Project (REQUIRED): https://www.dropbox.com/s/fjcm7kwpzvpotsf/Project3.zip?dl=0


Hopefully I did this correctly.

Some minor issue after update Battle Engine Core to 1.34a. The game will hung when hit on Guard state. Strangely it doesn't occur in older ver.


Error log


View attachment 48578

I have exactly the same problem. Should I fill a report too ?
I have RPGMaker MV v.1.3.1, and Battle Engine Core v1.39b.
When try to use ATB or CTB plugins, it crash at the start of the battle, but with DTB, it crash after a turn exactly like Beelzebug said.


This was my mistake last night. I uploaded the not-finalized version of 1.39b last night. Just redownload it again and it should be fine: http://yanfly.moe/plugins/en/YEP_BattleEngineCore.js


My apologies for any inconveniences.


---

@Yanfly I already thanked you for your plugins that are REALLY useful and helped me a LOT? Because I do.


As mentioned before, in a message I did not tag you, my only complaint until now is with your Animated Sideview Enemies not changing the hue of them.


Well, I edited it a bit so it did in my game... hope you don't mind.


It is a simple one, really. I removed the line in processSVENotetags1 that sets the hue to 0 all the time an animated battler is used, then went to updateSVBitmap, added a hue variable and made it call it with the name when loading the sprite.


The only reason I didn't make it an expansion plugin like DreamX did with the BattleStatusWindow is because... since two of the three really small edits are inside a for and an if, I had to copy the functions whole to do them... so if you changed them in a future update it'd stop working.


So, I'm sending you what I did so if you want you can do it in a future version by yourself.


Hope you don't feel insulted or anything. I just wanted both your plugin and to use hue on the enemies, and this way I could have both.

DataManager.processSVENotetags1 = function(group) {
var noteWeapon = /<(?:SIDEVIEW WEAPON):[ ](\d+),[ ](.*),[ ](\d+)>/i;
for (var n = 1; n < group.length; n++) {
var obj = group[n];
var notedata = obj.note.split(/[\r\n]+/);

obj.sideviewBattler = [];
obj.sideviewAttackMotion = Yanfly.Param.SVEAttackMotion.toLowerCase();
obj.sideviewIdleMotion = [];
obj.sideviewDmgMotion = Yanfly.Param.SVEDmgMotion.toLowerCase();
obj.sideviewEvadeMotion = Yanfly.Param.SVEEvadeMotion.toLowerCase();
obj.sideviewEscMotion = Yanfly.Param.SVEEscMotion.toLowerCase();
obj.sideviewGuardMotion = Yanfly.Param.SVEGuardMotion.toLowerCase();
obj.sideviewAbnMotion = Yanfly.Param.SVEAbnMotion.toLowerCase();
obj.sideviewSleepMotion = Yanfly.Param.SVESleepMotion.toLowerCase();
obj.sideviewDyingMotion = Yanfly.Param.SVEDyingMotion.toLowerCase();
obj.sideviewDeadMotion = Yanfly.Param.SVEDeadMotion.toLowerCase();
obj.sideviewAnchorX = Yanfly.Param.SVEAnchorX;
obj.sideviewAnchorY = Yanfly.Param.SVEAnchorY;
obj.sideviewWeaponImage = [];
obj.sideviewWidth = Yanfly.Param.SVEWidth;
obj.sideviewHeight = Yanfly.Param.SVEHeight;
obj.sideviewCollapse = Yanfly.Param.SVECollapse;
obj.sideviewShadowShow = Yanfly.Param.SVEShowShadow;
obj.sideviewShadowScaleX = Yanfly.Param.SVEShadowScaleX;
obj.sideviewShadowScaleY = Yanfly.Param.SVEShadowScaleY;
obj.spriteScaleX = 1;
obj.spriteScaleY = 1;
obj.sideviewFrameSpeed = Yanfly.Param.SVEFrameSpeed;
obj.sideviewBreathing = [1, 3].contains(Yanfly.Param.SVEBreathing);
obj.sideviewBreathSpeed = Math.max(1, Yanfly.Param.SVEBreathSpeed);
obj.sideviewBreathXRate = Math.max(0, Yanfly.Param.SVEBreathXRate);
obj.sideviewBreathYRate = Math.max(0, Yanfly.Param.SVEBreathYRate);
obj.sideviewLinkBreathing = Yanfly.Param.SVELinkBreathing;
obj.sideviewFloating = false;
obj.sideviewFloatSpeed = Yanfly.Param.SVEFloatSpeed;
obj.sideviewFloatRate = Yanfly.Param.SVEFloatRate;
obj.sideviewFloatHeight = Yanfly.Param.SVEFloatHeight;
obj.sideviewStateOverlay = Yanfly.Param.SVEOverlay;

for (var i = 0; i < notedata.length; i++) {
var line = notedata;
if (line.match(/<(?:SCALE SPRITE):[ ](\d+)([%%])>/i)) {
obj.spriteScaleX = parseFloat(RegExp.$1) * 0.01;
obj.spriteScaleY = obj.spriteScaleX;
} else if (line.match(/<(?:SCALE SPRITE WIDTH):[ ](\d+)([%%])>/i)) {
obj.spriteScaleX = parseFloat(RegExp.$1) * 0.01;
} else if (line.match(/<(?:SCALE SPRITE HEIGHT):[ ](\d+)([%%])>/i)) {
obj.spriteScaleY = parseFloat(RegExp.$1) * 0.01;
} else if (line.match(/<(?:SIDEVIEW BATTLER):[ ](.*)>/i)) {
obj.sideviewBattler.push(String(RegExp.$1));
obj.sideviewBreathing = [2, 3].contains(Yanfly.Param.SVEBreathing);
} else if (line.match(/<(?:SIDEVIEW ATTACK MOTION):[ ](.*)>/i)) {
obj.sideviewAttackMotion = String(RegExp.$1).toLowerCase();
} else if (line.match(/<(?:SIDEVIEW IDLE MOTION):[ ](.*)>/i)) {
obj.sideviewIdleMotion.push(String(RegExp.$1).toLowerCase());
} else if (line.match(/<(?:SIDEVIEW DAMAGE MOTION):[ ](.*)>/i)) {
obj.sideviewDmgMotion = String(RegExp.$1).toLowerCase();
} else if (line.match(/<(?:SIDEVIEW EVADE MOTION):[ ](.*)>/i)) {
obj.sideviewEvadeMotion = String(RegExp.$1).toLowerCase();
} else if (line.match(/<(?:SIDEVIEW ESCAPE MOTION):[ ](.*)>/i)) {
obj.sideviewEscMotion = String(RegExp.$1).toLowerCase();
} else if (line.match(/<(?:SIDEVIEW GUARD MOTION):[ ](.*)>/i)) {
obj.sideviewGuardMotion = String(RegExp.$1).toLowerCase();
} else if (line.match(/<(?:SIDEVIEW ABNORMAL MOTION):[ ](.*)>/i)) {
obj.sideviewAbnMotion = String(RegExp.$1).toLowerCase();
} else if (line.match(/<(?:SIDEVIEW SLEEP MOTION):[ ](.*)>/i)) {
obj.sideviewSleepMotion = String(RegExp.$1).toLowerCase();
} else if (line.match(/<(?:SIDEVIEW DYING MOTION):[ ](.*)>/i)) {
obj.sideviewDyingMotion = String(RegExp.$1).toLowerCase();
} else if (line.match(/<(?:SIDEVIEW DEAD MOTION):[ ](.*)>/i)) {
obj.sideviewDeadMotion = String(RegExp.$1).toLowerCase();
} else if (line.match(/<(?:SIDEVIEW ANCHOR X):[ ](\d+)[.](\d+)>/i)) {
obj.sideviewAnchorX = eval(String(RegExp.$1) + '.' + String(RegExp.$2));
} else if (line.match(/<(?:SIDEVIEW ANCHOR Y):[ ](\d+)[.](\d+)>/i)) {
obj.sideviewAnchorY = eval(String(RegExp.$1) + '.' + String(RegExp.$2));
} else if (line.match(/<(?:SIDEVIEW WEAPON):[ ](\d+)>/i)) {
var weaponId = parseInt(RegExp.$1);
var motionId = Yanfly.Param.SVEWeaponMotion[weaponId].toLowerCase();
var aniId = Yanfly.Param.SVEWeaponAnimation[weaponId];
var index = obj.sideviewWeaponImage.length;
obj.sideviewWeaponImage[index] = [weaponId, motionId, aniId];
} else if (line.match(noteWeapon)) {
var weaponId = parseInt(RegExp.$1);
var motionId = String(RegExp.$2).toLowerCase();
var aniId = parseInt(RegExp.$3);
var index = obj.sideviewWeaponImage.length;
obj.sideviewWeaponImage[index] = [weaponId, motionId, aniId];
} else if (line.match(/<(?:SIDEVIEW WIDTH):[ ](\d+)>/i)) {
obj.sideviewWidth = parseInt(RegExp.$1);
} else if (line.match(/<(?:SIDEVIEW HEIGHT):[ ](\d+)>/i)) {
obj.sideviewHeight = parseInt(RegExp.$1);
} else if (line.match(/<(?:SIDEVIEW COLLAPSE)>/i)) {
obj.sideviewCollapse = true;
} else if (line.match(/<(?:SIDEVIEW NO COLLAPSE)>/i)) {
obj.sideviewCollapse = false;
} else if (line.match(/<(?:SIDEVIEW SHOW SHADOW)>/i)) {
obj.sideviewShadowShow = true;
} else if (line.match(/<(?:SIDEVIEW HIDE SHADOW)>/i)) {
obj.sideviewShadowShow = false;
} else if (line.match(/<(?:SIDEVIEW SHADOW WIDTH):[ ](\d+)([%%])>/i)) {
obj.sideviewShadowScaleX = parseFloat(RegExp.$1 * 0.01);
} else if (line.match(/<(?:SIDEVIEW SHADOW HEIGHT):[ ](\d+)([%%])>/i)) {
obj.sideviewShadowScaleY = parseFloat(RegExp.$1 * 0.01);
} else if (line.match(/<(?:SIDEVIEW FRAME SPEED):[ ](\d+)>/i)) {
obj.sideviewFrameSpeed = parseInt(RegExp.$1);
} else if (line.match(/<(?:FLOATING|float)>/i)) {
obj.sideviewFloating = true;
} else if (line.match(/<(?:FLOATING SPEED):[ ](\d+)>/i)) {
obj.sideviewFloatSpeed = Math.max(1, parseInt(RegExp.$1));
} else if (line.match(/<(?:FLOATING RATE):[ ](\d+)[.](\d+)>/i)) {
var rate = eval(String(RegExp.$1) + '.' + String(RegExp.$2));
obj.sideviewFloatRate = rate;
} else if (line.match(/<(?:FLOATING HEIGHT):[ ](\d+)>/i)) {
obj.sideviewFloatHeight = parseInt(RegExp.$1);
} else if (line.match(/<SIDEVIEW SHOW STATE OVERLAY>/i)) {
obj.sideviewStateOverlay = true;
} else if (line.match(/<SIDEVIEW HIDE STATE OVERLAY>/i)) {
obj.sideviewStateOverlay = false;
}
}
// Breathing
for (var i = 0; i < notedata.length; i++) {
var line = notedata;
if (line.match(/<(?:BREATHING)>/i)) {
obj.sideviewBreathing = true;
} else if (line.match(/<(?:NO BREATHING)>/i)) {
obj.sideviewBreathing = false;
} else if (line.match(/<(?:BREATHING SPEED):[ ](\d+)>/i)) {
obj.sideviewBreathSpeed = Math.max(1, parseInt(RegExp.$1));
} else if (line.match(/<(?:BREATHING RATE X):[ ](\d+)[.](\d+)>/i)) {
var rate = eval(String(RegExp.$1) + '.' + String(RegExp.$2));
obj.sideviewBreathXRate = rate;
} else if (line.match(/<(?:BREATHING RATE Y):[ ](\d+)[.](\d+)>/i)) {
var rate = eval(String(RegExp.$1) + '.' + String(RegExp.$2));
obj.sideviewBreathYRate = rate;
} else if (line.match(/<(?:ENABLE HP LINK BREATHING)>/i)) {
obj.sideviewLinkBreathing = true;
} else if (line.match(/<(?:DISABLE HP LINK BREATHING)>/i)) {
obj.sideviewLinkBreathing = false;
}
}
// Create Defaults
if (obj.sideviewIdleMotion.length <= 0) {
obj.sideviewIdleMotion = [Yanfly.Param.SVEIdleMotion.toLowerCase()];
}
if (obj.sideviewWeaponImage.length <= 0) {
var weaponId = Yanfly.Param.SVEWeaponIndex;
var motionId = Yanfly.Param.SVEWeaponMotion[weaponId].toLowerCase();
var aniId = Yanfly.Param.SVEWeaponAnimation[weaponId];
obj.sideviewWeaponImage = [[weaponId, motionId, aniId]];
}
obj.sideviewFrameSpeed = Math.max(1, obj.sideviewFrameSpeed);
if (obj.sideviewBattler.length > 0) {
if (Imported.YEP_X_BattleSysCTB) {
Yanfly.Param.CTBEnemySVBattler = true;
}
obj.battlerName = '';
}
}
};

Sprite_Enemy.prototype.updateSVBitmap = function() {
Sprite_Battler.prototype.updateBitmap.call(this);
var name = this._enemy.svBattlerName();
var hue = this._enemy.battlerHue();
console.log(hue);
if (this._svBattlerEnabled && this._svBattlerName !== name) {
this._createdDummyMainSprite = false;
this._svBattlerName = name;
this._mainSprite.bitmap = ImageManager.loadSvActor(name, hue);
this.adjustAnchor();
this.refreshMotion();
this.updateScale();
} else if (this._svBattlerName === '') {
this._svBattlerName = '';
this._svBattlerEnabled = false;
if (this._createdDummyMainSprite) return;
this._createdDummyMainSprite = true;
this._mainSprite = new Sprite_Base();
this._mainSprite.anchor.x = 0.5;
this._mainSprite.anchor.y = 1;
}
};














The reason I didn't include hues to change is because hue changing is incredibly resource intensive for big sprite sheets. When used for big sprite sheets, it uses up a lot of processing power, which may or may not work too well on mobile and/or browser, which was why I choose to omit it. :/ Though, if you figured out how to use it on your own, great! :)  Hope you enjoy your new animated battlers with hues!
 
Status
Not open for further replies.

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

Latest Threads

Latest Profile Posts

Our latest feature is an interview with... me?!

People4_2 (Capelet off and on) added!

Just beat the last of us 2 last night and starting jedi: fallen order right now, both use unreal engine & when I say i knew 80% of jedi's buttons right away because they were the same buttons as TLOU2 its ridiculous, even the same narrow hallway crawl and barely-made-it jump they do. Unreal Engine is just big budget RPG Maker the way they make games nearly identical at its core lol.
Can someone recommend some fun story-heavy RPGs to me? Coming up with good gameplay is a nightmare! I was thinking of making some gameplay platforming-based, but that doesn't work well in RPG form*. I also was thinking of removing battles, but that would be too much like OneShot. I don't even know how to make good puzzles!
one bad plugin combo later and one of my followers is moonwalking off the screen on his own... I didn't even more yet on the new map lol.

Forum statistics

Threads
106,033
Messages
1,018,441
Members
137,820
Latest member
georg09byron
Top