Ellye's ATB (also includes CTB option)

Kistulot

Easily Distracted Writer
Veteran
Joined
Oct 23, 2015
Messages
40
Reaction score
17
First Language
English
Hey, great plugin I really like it, works just the way I want it to. I have encountered a problem though, Yanfly's Skill cool down plugin seems to not work with this, at first I thought it was an issue with the cool down note tags, but then I disabled ATB and they began to work again. Do you think I might be putting ATB in the wrong spot on my plugins list? I tried moving it around but it still didn't work correctly. It seems that the ATB system breaks the skill cool downs, is there anyway you can fix this? Thanks in advanced for a reply :D
Since I've been causing extra work on an issue of my own I decided to look at this myself, just to see. I have a thing set to cooldown 5. Worked like a charm. So the plugin seems like it may not be the only thing causing the issue.  I even have it above YEP_SkillCore and YEP_X_SkillCooldowns on my list and its fine.

Not that it isn't possibly causing weird issues. If it's below, move it above? Just a thought :)
 

Mellye

Veteran
Veteran
Joined
Oct 24, 2015
Messages
347
Reaction score
279
First Language
Portuguese
There's a decent chance of a conflict existing between the scripts, I didn't check any other plugin yet to make sure.

Do try to change the order, but there's always the possibility that something will still break.

I do intended to implement cooldowns on the more extended version of this system that I'm working on.

------------

By the way, I found a bug regarding the use of skills with that directly modify a.atb if used on an Actor set for Auto-Battle (the actor will gain the modified ATB at the beginning of the battle; this bug actually happens with any sort of formula that directly changes values, and isn't even caused by my plugin specifically - the thing is that the Formula field wasn't intended for this type of use exactly).

I intend on allowing ATB modifiers to by applied in the Notes field, to avoid issues like this. For now, avoid using them if you plan on also using Auto-Battle actors (they seem to work fine for everything else if you don't use those, though).
 
Last edited by a moderator:

Robe Guy

Villager
Member
Joined
Jun 17, 2015
Messages
21
Reaction score
3
First Language
English
Primarily Uses
Okay, I'll try that.  :)

EDIT: This is for your post saying to make the agility very different. Didn't see the two new posts.

EDIT2: I just did that and the one that had the crazy higher agility was definitely faster  :) Maybe it just seemed that way because there wasn't a big enough difference between the numbers?
 
Last edited by a moderator:

Caxlb

Villager
Member
Joined
Jan 27, 2014
Messages
6
Reaction score
0
First Language
English
Primarily Uses
RMMV
That's really weird, not sure if it was related to the plugin, but I'll see if I can reproduce it.
I think I have found what was causing it! Battlers are still having their ATB bar charge after death, making them attack automatically when their bar is full. Still not sure why it is happening for me in one game, then not in another with the exact same plugins... That being said, I was able to fix the problem by putting an if statement in increaseAtbGuages to check battler.isAlive() before allowing the bar to charge for that battler.
 

Mellye

Veteran
Veteran
Joined
Oct 24, 2015
Messages
347
Reaction score
279
First Language
Portuguese
I think I have found what was causing it! Battlers are still having their ATB bar charge after death, making them attack automatically when their bar is full. Still not sure why it is happening for me in one game, then not in another with the exact same plugins... That being said, I was able to fix the problem by putting an if statement in increaseAtbGuages to check battler.isAlive() before allowing the bar to charge for that battler.
Oh, I had literally just fixed this oversight for a completely different reason (some UI issues with the new version I'm working on). But I can see how it could cause some other weird glitches too!

EDIT2: I just did that and the one that had the crazy higher agility was definitely faster  :) Maybe it just seemed that way because there wasn't a big enough difference between the numbers?
Do try playing around with the Agility Weight parameter (remember you have to manually save your project for changes to parameter to take effect).
 

leap.campione

Villager
Member
Joined
Oct 27, 2015
Messages
6
Reaction score
0
Thank you for this script, it does exactly what i needed :)

I played with it a little and did some modifications, one is addind a max value for atb gauge for each battler (to mimic the system used in FFX2), the other is just a little tweak.

First one :

The idea was to allow the user to modify how quickly the ATB gauge grows. Your "unintended feature" does actually a lot of stuff, for example, when an ally can cast a "haste" skill for the next action on the party by using the "b.atb+=full_atb/2;" formula or by adding/substracting agi.

I just extended this feature by adding a new attribute : max_tab, used to change the length of the ATB gauge after that the battler performed an action. For exemple, using a item is a quicl action, it will use "a.max_atb = full_atb/4". Casting a AoE skill is a time costly action, it will use "a.max_atb = full_atb". Default is max_atb/2.And default full_atb is 100 000.

I also changed the graphics. This effect is similar to what we can see in FFX2.

EllyeSimpleATB.txt

Second one :

Very little tweak. I added the battler attack speed in the formula :

battler.atb += (base_atb_increase + battler.agi * (agi_weight/100) + battler.attackSpeed());so we can use this parameter to create "haste" states without messing with the agility parameter.

I am not sure about how usefull this can be, but maybe someone could need this extra parameter.

In fact i wanted to use the speed parameter of skills and items, but i didn't succeded, so i tried this instead.

Thank you very much again, it is a great script for ATB gauges !
I tried your modification and it works very nice, and I just want to ask. how do you make it 'a.max_atb = full_atb' for AOE skills? Do i make a common event > plugin command for it then call it in the skill?
 

kennysaurs

Amazing Person
Veteran
Joined
Oct 21, 2015
Messages
56
Reaction score
14
First Language
English
Can someone teach me how to resize the gauges? Im playing in 1280x720 resolution and the gauges are already small and when I added the ATB, the text started overlapping.

 

Mellye

Veteran
Veteran
Joined
Oct 24, 2015
Messages
347
Reaction score
279
First Language
Portuguese
I haven't tried different resolutions yet, I'll see if I can take a look at that in the next weekend. Seems like a useful parameter to have.
 

djDarkX

Retro & Remastered Music Guru
Veteran
Joined
Jan 17, 2013
Messages
2,700
Reaction score
1,902
First Language
Music
Primarily Uses
RMMV
It's pretty easy, but you'll have to pull out the calculator (or do maths in your head).  Simply look for this in the script (using whichever editor you choose):

Window_BattleStatus.prototype.drawGaugeAreaWithTp = function(rect, actor) { this.drawActorHp(actor, rect.x + 0, rect.y, 97); this.drawActorMp(actor, rect.x + 112, rect.y, 86); this.drawActorTp(actor, rect.x + 213, rect.y, 86); this.drawActorATB(actor, rect.x + 314, rect.y, 86); };It's pretty much near the top.  There is a 15 pixel width between the gauges, so keep that in mind.  Also remember that when resizing them, they are conforming to a set width of a container which is right above this piece of code.  Looks like this:

Window_BattleStatus.prototype.gaugeAreaWidth = function() { return 400; };The sizes of the gauges and the 15 pixel widths (default) must all fit in there so keep that in mind when figuring out the sizes of everything.  Here's my setup (without TP):

Window_BattleStatus.prototype.gaugeAreaWidth = function() { return 600; };Window_BattleStatus.prototype.drawGaugeAreaWithoutTp = function(rect, actor) { this.drawActorHp(actor, rect.x + 0, rect.y, 240); this.drawActorMp(actor, rect.x + 255, rect.y, 160); this.drawActorATB(actor, rect.x + 430, rect.y, 170); };I'll explain the numbers within this.drawActorHp(actor, rect.x + 0, rect.y, 240);.

rect.x + 0 - This is the position inside the container.  0 means absolute left and any change to that is how many pixels to the right it will be moved.

240 - This is the width, in pixels, of the gauge.  Adjust for each one accordingly.

If you take the numbers I have (240+15)+(160+15)+170, you get 600, so they'll all fit in there perfectly.  Any empty space will show empty space.  You can adjust the 15 pixel space to be larger or smaller if you like, but the gauges might not look right.

My setup is for a screen size of 1280x720, so this works out perfectly.  You can also change the text from AT to whatever, but it also needs to conform to a container, of which you can manipulate as well.  Look for this:

Window_Base.prototype.drawActorATB = function(actor, x, y, width) { var color1 = "#303050"; var color2 = "#6060A0"; this.drawGauge(x, y, width, actor.atbRate(), color1, color2); this.changeTextColor(this.systemColor()); this.drawText("Active Turn", x, y, 170); };Here you can change the gauge color and the text.  this.drawText("Active Turn", x, y, 170); is where you want to change the text and the size of it's container.  Mine is fitted to the size of the gauge itself that I set up above, but the default is 44.

Hope this helps anyone else that might want to know!

EDIT:

Also, this is what my gauges look like with my set up and with Rocketmancer's Custom Gauges plugin.

 
Last edited by a moderator:

Mellye

Veteran
Veteran
Joined
Oct 24, 2015
Messages
347
Reaction score
279
First Language
Portuguese
Thank you for this script, it does exactly what i needed :)

I played with it a little and did some modifications, one is addind a max value for atb gauge for each battler (to mimic the system used in FFX2), the other is just a little tweak.

First one :

The idea was to allow the user to modify how quickly the ATB gauge grows. Your "unintended feature" does actually a lot of stuff, for example, when an ally can cast a "haste" skill for the next action on the party by using the "b.atb+=full_atb/2;" formula or by adding/substracting agi.

I just extended this feature by adding a new attribute : max_tab, used to change the length of the ATB gauge after that the battler performed an action. For exemple, using a item is a quicl action, it will use "a.max_atb = full_atb/4". Casting a AoE skill is a time costly action, it will use "a.max_atb = full_atb". Default is max_atb/2.And default full_atb is 100 000.

I also changed the graphics. This effect is similar to what we can see in FFX2.

EllyeSimpleATB.txt

Second one :

Very little tweak. I added the battler attack speed in the formula :

battler.atb += (base_atb_increase + battler.agi * (agi_weight/100) + battler.attackSpeed());
so we can use this parameter to create "haste" states without messing with the agility parameter.

I am not sure about how usefull this can be, but maybe someone could need this extra parameter.

In fact i wanted to use the speed parameter of skills and items, but i didn't succeded, so i tried this instead.

Thank you very much again, it is a great script for ATB gauges !
I've found out that using the Formula field to input commands (like setting the ATB or any other value) can cause some issues. So far, I've only seem issues with Actors set to Auto-Battle, but I might be overlooking something (this isn't related to my plugin, it's a general thing). Just something to keep in mind for this approach; don't use actors with the Auto-Battle flag if you use this.

On the more extended version of this plugin, I'm now allowing for ATB-related formulas to be set up in the Notes field of the skill instead of the Formula field, to avoid such conflicts.

I'll also add a property called "Haste" that defaults to 100 for every Battler, but can be increased or decreased by effects, items, etc; it's a direct percentage-based change on how fast the ATB fills for that Actor.

Also, this is what my gauges look like with my set up and with Rocketmancer's Custom Gauges plugin.

Woah, those look pretty.
 
Last edited by a moderator:

djDarkX

Retro & Remastered Music Guru
Veteran
Joined
Jan 17, 2013
Messages
2,700
Reaction score
1,902
First Language
Music
Primarily Uses
RMMV
Thanks!  Yeah, I picked a good font and that plugin makes it all look really nice.  Oh, I have a question.  Is there any way you might be able to add a casting speed formula?  Um, think Final Fantasy.  Even when the spell is chosen, it doesn't always cast right away.  It's given a bit of time to cast depending on the skill.  The lower the tier of the skill, the faster the casting speed and the higher the tier, the slower the casting speed.  If that can be a part of the new advanced plugin, awesome.  If not, it's okay.  Figured I'd ask anyway. Again, great job on making this! :D
 

Mellye

Veteran
Veteran
Joined
Oct 24, 2015
Messages
347
Reaction score
279
First Language
Portuguese
Thanks!  Yeah, I picked a good font and that plugin makes it all look really nice.  Oh, I have a question.  Is there any way you might be able to add a casting speed formula?  Um, think Final Fantasy.  Even when the spell is chosen, it doesn't always cast right away.  It's given a bit of time to cast depending on the skill.  The lower the tier of the skill, the faster the casting speed and the higher the tier, the slower the casting speed.  If that can be a part of the new advanced plugin, awesome.  If not, it's okay.  Figured I'd ask anyway. Again, great job on making this! :D
Yes, Casting Times are a major part of what I'm currently working on.

Also, the ability to have "Interrupts" that can break or delay casting times.
 

djDarkX

Retro & Remastered Music Guru
Veteran
Joined
Jan 17, 2013
Messages
2,700
Reaction score
1,902
First Language
Music
Primarily Uses
RMMV
You're freakin amazing!  Can't wait!
 

kennysaurs

Amazing Person
Veteran
Joined
Oct 21, 2015
Messages
56
Reaction score
14
First Language
English
It's pretty easy, but you'll have to pull out the calculator (or do maths in your head).  Simply look for this in the script (using whichever editor you choose):

Window_BattleStatus.prototype.drawGaugeAreaWithTp = function(rect, actor) { this.drawActorHp(actor, rect.x + 0, rect.y, 97); this.drawActorMp(actor, rect.x + 112, rect.y, 86); this.drawActorTp(actor, rect.x + 213, rect.y, 86); this.drawActorATB(actor, rect.x + 314, rect.y, 86); };It's pretty much near the top.  There is a 15 pixel width between the gauges, so keep that in mind.  Also remember that when resizing them, they are conforming to a set width of a container which is right above this piece of code.  Looks like this:

Window_BattleStatus.prototype.gaugeAreaWidth = function() { return 400; };The sizes of the gauges and the 15 pixel widths (default) must all fit in there so keep that in mind when figuring out the sizes of everything.  Here's my setup (without TP):

Window_BattleStatus.prototype.gaugeAreaWidth = function() { return 600; };Window_BattleStatus.prototype.drawGaugeAreaWithoutTp = function(rect, actor) { this.drawActorHp(actor, rect.x + 0, rect.y, 240); this.drawActorMp(actor, rect.x + 255, rect.y, 160); this.drawActorATB(actor, rect.x + 430, rect.y, 170); };I'll explain the numbers within this.drawActorHp(actor, rect.x + 0, rect.y, 240);.

rect.x + 0 - This is the position inside the container.  0 means absolute left and any change to that is how many pixels to the right it will be moved.

240 - This is the width, in pixels, of the gauge.  Adjust for each one accordingly.

If you take the numbers I have (240+15)+(160+15)+170, you get 600, so they'll all fit in there perfectly.  Any empty space will show empty space.  You can adjust the 15 pixel space to be larger or smaller if you like, but the gauges might not look right.

My setup is for a screen size of 1280x720, so this works out perfectly.  You can also change the text from AT to whatever, but it also needs to conform to a container, of which you can manipulate as well.  Look for this:

Window_Base.prototype.drawActorATB = function(actor, x, y, width) { var color1 = "#303050"; var color2 = "#6060A0"; this.drawGauge(x, y, width, actor.atbRate(), color1, color2); this.changeTextColor(this.systemColor()); this.drawText("Active Turn", x, y, 170); };Here you can change the gauge color and the text.  this.drawText("Active Turn", x, y, 170); is where you want to change the text and the size of it's container.  Mine is fitted to the size of the gauge itself that I set up above, but the default is 44.

Hope this helps anyone else that might want to know!

EDIT:

Also, this is what my gauges look like with my set up and with Rocketmancer's Custom Gauges plugin.


Thank you so much for the descriptive reply! Took me a while to fix mine up but I kinda got it. I really like your fonts too :D

Here's how mine turned out :3

 

djDarkX

Retro & Remastered Music Guru
Veteran
Joined
Jan 17, 2013
Messages
2,700
Reaction score
1,902
First Language
Music
Primarily Uses
RMMV
Very nice and you're welcome!  Glad I could help.  It really is a great plugin and I'm really excited for the next iteration of it.
 

JAD94

The lunar knight
Veteran
Joined
Feb 18, 2014
Messages
662
Reaction score
189
First Language
English
Primarily Uses
RMMV
I'm aware of this one, I'll be doing something about it soon. Also for the option of "Auto-battle" for those that might want it.

That's a cool idea! Thanks.

That's really weird, not sure if it was related to the plugin, but I'll see if I can reproduce it.

Good point, I'll see if I can do it!

The gauge does wait up while you're selecting commands, so you can take your time.

I might offer the option of it not waiting, for those that prefer it, but for now it already acts as you want it to.

I can work at the plugin mostly on weekends, so don't worry if I don't have many updates throught the week - they will be coming at the weekend.

I appreciate all the bug reports!

UPDATE:

I've added the option to show the Fight/Escape window (plus a few other options). Please let me know if something doesn't work properly with it.
Did you upload the newest version of it? I tried redownloading the plug-in and I still don't see the Fight/Escape window.  :(
 

Mellye

Veteran
Veteran
Joined
Oct 24, 2015
Messages
347
Reaction score
279
First Language
Portuguese
Did you upload the newest version of it? I tried redownloading the plug-in and I still don't see the Fight/Escape window.  :(
It's a new Parameter that defaults to OFF.

See if it shows up in the Plugin Manager.
 
Last edited by a moderator:

JAD94

The lunar knight
Veteran
Joined
Feb 18, 2014
Messages
662
Reaction score
189
First Language
English
Primarily Uses
RMMV
It's a new Parameter that defaults to OFF.

See if it shows up in the Plugin Manager.
It shows in the Plugin Manager but doesn't work when I set the value to 1  :(
 
Last edited by a moderator:

Mellye

Veteran
Veteran
Joined
Oct 24, 2015
Messages
347
Reaction score
279
First Language
Portuguese
It shows in the Plugin Manager but doesn't work when I set the value to 1  :(
Just to make sure, are you manually saving the project after changing the Parameter value?

It's a bit weird, almost anything else can be easily tested without needing you to manually click "Save Project", but parameters change require you to do so.
 

DarkSlayerEX

Veteran
Veteran
Joined
Oct 26, 2015
Messages
95
Reaction score
9
First Language
English
I seem to be running into an issue when multiple characters use Guard. when one person uses guard, the previous person guarding instantly stops. I'm not sure if it's specific to this plugin or another one, but If anyone else if having issues with this as well, It might need to be looked into further.

Granted, It is pointless to test without this plugin, since it's affected by each guarding player. I'm assuming it has to do with guard originally only working for the turn it was supposed to be active for, but each person using it must be clearing the other character's states.
 
Last edited by a moderator:

Latest Threads

Latest Posts

Latest Profile Posts

>Testing with fonts change.
>Tries installing a plugin. Doesn't work.
>Tries changing the plugin commands. Doesn't work.
>Tries installing another plugin. Doesn't work.
>Changes a few more plugin commands. Doesn't work.
>Goes directly to the gamefont file and changes the src. Works.

YYEEEAAAAHHHAAAA

Perseverance is key, bois and girls.
What Reviews say on RPG Maker MZ?
Looking back at some sketches, and game design documents on my PC dated summer of 2015. I started development with the release of MZ, but in 2015, I felt a strong desire to make a game out of the blue. I remember feeling sad for no apparent reason, and all these ideas rushed into my head. Now that I think about it, since that day, everything has become easier to do on my PC . . . it’s very creepy.
Everything's going to be alright! We're all in this together. <3
Aaaaannd published my game's tech demo. :D

Feel free to download and play it. And give feedback!

Forum statistics

Threads
107,806
Messages
1,032,337
Members
139,949
Latest member
tempguy5
Top