RPG Maker Forums

Simple Battle Status Faces
By lolaccount

 
Introduction
This is my 2nd plugin release. I'm a beginner. I plan on updating the plugin with parameters and some other adjustments later on. I am happy to receive any constructive feedback.

Patch Notes

v.1.02 - Added support for Yanfly's ATB

v1.01 - Added some support for Ellye's Simple ATB (check parameters). The bar needs improving for the default resolution, but looks good fullscreen. Will improve default resolution ATB bar in an update. Added some support for default resolution and 3 party members. Still won't look very good with more than 3 party members with default resolution.

Features
Draws the actor's faces in the Battle Status window, the goal of not blocking the actor's faces too much.
It's designed for full screen games, but I might make an update(s) to accommodate smaller resolutions.
As such, it will probably look bad if you're not using full screen. I did my tests in 1280 x 720 full screen.
 
You can hide the TP Bar for an actor by putting <HideBattleStatusTp: 1> in their notetags and/or hide their
MP bar by putting <HideBattleStatusMp: 1> in their notetags.

Screenshots

How to Use
Create a .js file (you can do so with a text editor by saving the file with .js at the end) and paste the script into it, then put it in the js\plugins folder for your project. The filename should be something descriptive to what it is in my opinion, but it's up to you. Turn the plugin on and you are good to go.

Script
//=============================================================================// Simple Battle Status Faces// by lolaccount// Last Updated: 2015.11.26//=============================================================================/*: * @plugindesc v1.02 Draws the actor's face in battle status, with the   * goal of not blocking the actor's faces too much. * <lolaccount Simple Battle Status Faces> * * @author lolaccount * * @param ---Compatibility--- * @default * * @param Show ATB Bar * @desc Show ATB bar for ATB plugins? * Yes - true        No - false        Default: true     * @default true * * @param ATB Bar Position * @desc Options: bottomleft, bottomright Default: bottomleft * @default bottomleft * * @help This plugin does not provide plugin commands. * You can hide the tp bar for an actor by using <HideBattleStatusTp: 1> and/or * hide the mp bar for an actor by using <HideBattleStatusMp: 1> * ============================================================================ * Patch Notes * ============================================================================ * v1.02 - Added some support for Yanfly's ATB. * v1.01 - Added some support for Ellye's Simple ATB. The bar needs improving * for the default resolution, but looks good fullscreen. Will improve * default resolution ATB bar in an update. * Added some support for default resolution and 3 party members. * Still won't look very good with more than 3 party members with default * resolution. * ============================================================================ * How To Use * ============================================================================ * Plug and play. * ============================================================================ * Terms Of Use * ============================================================================ * Free to use and modify for commercial and noncommercial games, with or * without credit, as long as you do not claim the script as your own. * Credit is appreciated though. */var Imported = Imported || {};// Get parameters(function () {    var parameters = $plugins.filter(function (p) {        return p.description.contains('<lolaccount Simple Battle Status Faces>');    })[0].parameters; //Thanks to Iavra    // whether to show ATB bar if that is the battle system    var showATBbar = String(parameters['Show ATB Bar'] || 'true');    // where to draw atb bar    var atbBarPos = String(parameters['ATB Bar Position'] || 'bottomleft');    showATBbar = eval(showATBbar);    if (Imported.YEP_X_BattleSysATB) {        Window_BattleStatus.prototype.redrawATB = function () {            if (showATBbar) {                if (this.isATBGaugeStyle(0))                    return;                for (var i = 0; i < $gameParty.battleMembers().length; ++i) {                    var actor = $gameParty.battleMembers();                    var otherRect = this.itemRect(i);                    var textRect = this.itemRectForText(i);                    if (atbBarPos == 'bottomleft') {                        this.drawActorAtbGauge(actor, otherRect.x + 4, textRect.y + this.lineHeight() * 3, Window_Base._faceWidth - 6);                    }                    else if (atbBarPos == 'bottomright') {                        this.drawActorAtbGauge(actor, otherRect.x + Window_Base._faceWidth + 4, textRect.y + this.lineHeight() * 3, otherRect.width - Window_Base._faceWidth - 11);                    }                }            }        };    }// override the difficult itemRect for a window    Window_BattleStatus.prototype.itemRect = function (index) {        var rect = new Rectangle();        var maxCols = this.maxCols();        rect.width = this.itemWidth();        rect.height = this.itemHeight();        rect.x = rect.width * index;        rect.y = 0;        return rect;    };    Window_BattleStatus.prototype.itemWidth = function () {// decide the width of each "item," or the space each actor occupies in battle status, by the size of the party        return Math.floor(((this.width - this.padding * 2 +                this.spacing()) / 1 - this.spacing()) / $gameParty.battleMembers().length);    };    Window_BattleStatus.prototype.maxCols = function () {// the maximum amount of columns is the number of members in the party        return $gameParty.battleMembers().length;    };    Window_BattleStatus.prototype.itemHeight = function () {// the height of each item is the height of the battle status window minus from padding so it looks nicer        return Math.floor((this.height - this.padding * 2 +                this.spacing()) / 1 - this.spacing());    };    Window_BattleStatus.prototype.drawItem = function (index) {        // we can get the actor from the index passed to this function        var actor = $gameParty.battleMembers()[index];        // the rectangle w/dimensions from another method designed for text        var textRect = this.itemRectForText(index);        // a general rectangle from another method            var otherRect = this.itemRect(index);        // variable for deciding where to place state/buff icons, x axis            var iconPos;        // variable for deciding iconWidth        var iconWidth;        // variable for deciding where to place tp bar, y axis        // we're setting the default here        var tpBarY = otherRect.y + (this.lineHeight() * 2);        var gaugeWidth;        var gaugeX;        // decide gauge width and x        if ((SceneManager._screenWidth <= 816 && $gameParty.battleMembers().length == 3)) {            gaugeWidth = otherRect.width - (Window_Base._faceWidth * .8) - 11;            gaugeX = otherRect.x + (Window_Base._faceWidth * .8) + 4;        }        else {            gaugeWidth = otherRect.width - Window_Base._faceWidth - 11;            gaugeX = otherRect.x + Window_Base._faceWidth + 4;        }        // draw the actor's face on the bottom most "layer"        this.drawActorFace(actor, otherRect.x, otherRect.y);        // draw Mellye's Simple ATB atb bar if imported        if (Imported.Ellye_ATB == true && showATBbar) {            if (atbBarPos == 'bottomleft') {                this.drawActorATB(actor, otherRect.x + 4, textRect.y + this.lineHeight() * 3, Window_Base._faceWidth - 6);            }            else if (atbBarPos == 'bottomright') {                this.drawActorATB(actor, otherRect.x + Window_Base._faceWidth + 4, textRect.y + this.lineHeight() * 3, otherRect.width - Window_Base._faceWidth - 11);            }        }        // draw the actor's name        this.drawActorName(actor, textRect.x, textRect.y, 150);        // draw actor hp bar        this.drawActorHp(actor, gaugeX, otherRect.y + (this.lineHeight() * 0), gaugeWidth);        // draw the actor's mp if it is not set to be hidden for the actor        if ($dataActors[actor._actorId].meta.HideBattleStatusMp != 1) {            this.drawActorMp(actor, gaugeX, otherRect.y + (this.lineHeight() * 1), gaugeWidth);        }        else {            // if it was set to be hidden, we should adjust the tp bar y position            tpBarY = otherRect.y + (this.lineHeight() * 1);        }        // if tp is on, draw the actor's tp        if ($dataSystem.optDisplayTp) {            // draw the tp bar if it was not set to be hidden for the actor            if ($dataActors[actor._actorId].meta.HideBattleStatusTp != 1) {                this.drawActorTp(actor, gaugeX, tpBarY, gaugeWidth);            }        }        if (Imported.Ellye_ATB != true) {            iconWidth = otherRect.width;            // if there are many icons taking up the actor's space in the status, shove the icons to the right            if ((actor.allIcons().length * Window_Base._iconWidth - 3) > otherRect.width - Window_Base._faceWidth) {                iconPos = otherRect.x + 1 + (otherRect.width - (actor.allIcons().length * Window_Base._iconWidth) - 3);            }            // if there's not too many icons taking up the actor's space in the status, don't shove the icons all the way to the right            else {                iconPos = otherRect.x + Window_Base._faceWidth + 4;            }        }        else if (showATBbar) {            if (atbBarPos == 'bottomleft') {                iconWidth = otherRect.width - Window_Base._faceWidth - 4;                iconPos = otherRect.x + Window_Base._faceWidth + 4;            }            else if (atbBarPos == 'bottomright') {                iconWidth = Window_Base._faceWidth;                iconPos = otherRect.x + 4;            }            // the default - bottom left            else {                iconWidth = Window_Base._faceWidth + -4;            }        }        // draw the icons        this.drawActorIcons(actor, iconPos, otherRect.y + (this.lineHeight() * 3), iconWidth);    };})();
 
Credit and Thanks
- lolaccount

Author's Notes
Free to use and modify for commercial and noncommercial games, with or without credit, as long as you do not claim the script as your own. Credit is appreciated though.screen.jpg

Latest Threads

Latest Posts

Latest Profile Posts

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.
time for a new avatar :)

Forum statistics

Threads
106,015
Messages
1,018,351
Members
137,801
Latest member
topsan
Top