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?)
[YEP] Yanfly Engine Plugins
● ARCHIVED · READ-ONLY
-
-
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. -
-
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...
-
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. -
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. -
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. -
*facepalm* I keep forgetting about that! Thanks, Ice Bear! I'm an idiot.
-
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 -
@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 -
@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.
SpoilerCode: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; } }; -
-
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.
Spoiler
Error Report: For whatever reason I couldn't figure out how to copy text from the error log so I took a screenshot
Spoiler
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. -
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.
Spoiler
Error Report: For whatever reason I couldn't figure out how to copy text from the error log so I took a screenshot
Spoiler
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.
SpoilerDataManager.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! -
pls how do you get the line breaks in manager
-
@IneeDresources, http://yanfly.moe/plugins/en/--------------------.js
It is just a dummy plugin with dashes in the name and description, but I agree it is much more organized with it :)
@Yanfly, I see... so it is a choice between size and processing...
Thanks for the info.
And thanks again for all the plugins! -
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.
Thanks a lot ! It works perfectly.
No need to apologie =)
Have a nice day ! -
thanks
-
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.
No need to apologies at all, you've done some great things for us.
BTW a question towards Core Plugin, before update and using 1.11 my battleback showing normal like this
After updating to recent version it distorted, like this. I wondered is there anything changed in terms of battleback in CorePlugin? Since I didn't find any, except changing resolution, which I don't think is the problem as it's been 1280x720 since months ago. Cheers.
-
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.
Thank you!