Lecode Tactical Battle System 0.77.2B

Frostorm

[]D[][]V[][]D aka "Staf00"
Veteran
Joined
Feb 22, 2016
Messages
1,116
Reaction score
813
First Language
English
Primarily Uses
RMMV
Is it possible to change the turn order icon size to 48x48 instead of 40x40?

Edit: Nvm found it lol...
Edit2: Damn, the offset is all screwed, how do I fix this? (the sprites inside aren't centered)
Sprite-0007.png
 
Last edited:

Pharonix

Shadow Walker
Veteran
Joined
Apr 22, 2012
Messages
747
Reaction score
340
First Language
English
Primarily Uses
RMMV
When it calls the part where it draws the icon, you need to add half the x/y values you just added here.
 

Frostorm

[]D[][]V[][]D aka "Staf00"
Veteran
Joined
Feb 22, 2016
Messages
1,116
Reaction score
813
First Language
English
Primarily Uses
RMMV
When it calls the part where it draws the icon, you need to add half the x/y values you just added here.
Which part of the plugin draws the icon? The only parts I see w/ any X or Y settings are for the entire icon's offset from the screen edge...

Would you also know how to disable the white flashing for the selected unit (the turn order icon on the top left) since the selected unit's icon is already offset downward on the Y-axis to denote the fact that it's that unit's turn?

Edit: I figured out the flashing part. Just need to fix the sprite offset now...
I've tried messing with this entire section, but it doesn't seem like the correct part:
JavaScript:
TBSTurnOrderVisual.prototype.setPositions = function () {
    var pos = Lecode.S_TBS.TurnOrderVisual.pos;
    var rightMargin = Lecode.S_TBS.TurnOrderVisual.rightMargin;
    var leftMargin = Lecode.S_TBS.TurnOrderVisual.leftMargin;
    var topMargin = Lecode.S_TBS.TurnOrderVisual.topMargin;
    var bottomMargin = Lecode.S_TBS.TurnOrderVisual.bottomMargin;
    var size = Lecode.S_TBS.TurnOrderVisual.size;
    var space = Lecode.S_TBS.TurnOrderVisual.space;
    var sx, sy, dx, dy, shiftX, shiftY;
    switch (pos) {
        case "right":
            sx = Graphics.width - rightMargin - size;
            sy = topMargin;
            shiftX = 0;
            shiftY = size + space;
            break;
        case "left":
            sx = rightMargin;
            sy = topMargin;
            shiftX = 0;
            shiftY = size + space;
            break;
        case "top":
            sx = rightMargin;
            sy = topMargin;
            shiftX = size + space;
            shiftY = 0;
            break;
        case "bottom":
            sx = rightMargin;
            sy = Graphics.height - bottomMargin;
            shiftX = size + space;
            shiftY = 0;
            break;
    }
    var counterI = 0;
    for (var i = 0; i < this._turnOrder.length; i++) {
        var turn = this._turnOrder[i];
        var entity = turn.entity;
        if (entity.isTurnHidden()) {
            counterI++;
            continue;
        }
        var sprite = turn.mainSprite;
        sprite.x = sx + shiftX * (i - counterI);
        sprite.y = sy + shiftY * (i - counterI);
    }
};

TBSTurnOrderVisual.prototype.updateActivePosition = function (sprite) {
    var pos = Lecode.S_TBS.TurnOrderVisual.pos;
    var size = Lecode.S_TBS.TurnOrderVisual.size;
    switch(pos) {
        case "right":
            sprite.x -= size / 2;
            break;
        case "left":
            sprite.x += size / 2;
            break;
        case "top":
            sprite.y += size / 2;
            break;
        case "bottom":
            sprite.y -= size / 2;
            break;
    }
};
 
Last edited:

Pharonix

Shadow Walker
Veteran
Joined
Apr 22, 2012
Messages
747
Reaction score
340
First Language
English
Primarily Uses
RMMV
In the top functoin

var sprite = turn.mainSprite;
sprite.x = sx + shiftX * (i - counterI);
sprite.y = sy + shiftY * (i - counterI);

This draws the sprite
To change the sprite offset, this should be 1/2 of how much bigger you made it.

var sprite = turn.mainSprite;
sprite.x = C+sx + shiftX * (i - counterI);
sprite.y = C+sy + shiftY * (i - counterI);

Replace C with the correct value.
 

Frostorm

[]D[][]V[][]D aka "Staf00"
Veteran
Joined
Feb 22, 2016
Messages
1,116
Reaction score
813
First Language
English
Primarily Uses
RMMV
Once again @Pharonix, you are a miracle worker.:kaojoy:

I wish I could be of some help to you for all the stuff you've fixed for me, but alas I don't think there's anything I can do that you can't do better lol.

Edit: Hmm, strange it's not changing the offset at all. It doesn't matter what number I put...weird. It looked like it would've been an easy tweak too.

Edit2: It turns out it's moving the entire icon, not just the sprite inside. I think "mainSprite" refers to the icon as a whole, while "miniatureSprite" is for the sprite inside. I just gotta find the pieces of code for "miniatureSprite".

Edit3: Is it somehow related to it being set as a child?

Edit4: I found the solution! Simply create new vars for the miniatureSprite like how it was done for mainSprite.
JavaScript:
        var spriteMini = turn.miniatureSprite;
        spriteMini.x = 4;
        spriteMini.y = 4;
Sexy UI
Sprite-0007.png

Edit5: Now if only I could figure out how to change the bottom left unit sprite into a face portrait instead... The code that controls it should be this: (the part after //- Face)
JavaScript:
Window_TBSStatus.prototype.refresh = function () {
    this.contents.clear();
    this._gaugeHeight = null;
    this.resetFontSettings();
    if (!this._entity) return;
    var x, y, w, h;
    //- Face
    this.drawSprite();
    //- Name
    x = Lecode.S_TBS.Windows.statusWindowSpriteBoxW;
    y = -4;
But I don't know what to replace "this.drawSprite();" with to get a face portrait... (might have to do an "if actor" conditional as well)
 
Last edited:

Pharonix

Shadow Walker
Veteran
Joined
Apr 22, 2012
Messages
747
Reaction score
340
First Language
English
Primarily Uses
RMMV
Does anyone know how to get SRD's Skill Extender plugin to work with LTBS?
As of now? No.
This is because selecting the skill does not actually use the skill, but opens the scope menu, then calls a sequence that does all the stuff.

With my function fix, you could call a function for the sequence that opens a choice menu
choices = []; params = [];
$gameMessage.setChoices(choices, 0)
choices.push("text 1");
choices.push("text 2");
choices.push("text 3");
choices.push("text 4");
choices.push("text 5");
choices.push("text 6");
choices.push("text 7");
choices.push("text 8");

params.push()

Then do the whole check for which option they chose,
then return the appropriate sequence.
The sequence of which would only contain
"use_skill: user, 105",
where 105 is the skillID of the correct skill

This unfortunately causes a huge headache.

Unless someone with extensive knowledge of SRDs extend skills wants to make a patch...
 

Frostorm

[]D[][]V[][]D aka "Staf00"
Veteran
Joined
Feb 22, 2016
Messages
1,116
Reaction score
813
First Language
English
Primarily Uses
RMMV
Hmm, I did want to use SRD's Skill Extender before for my Bow & Arrow setup (it would only be for the shoot skill), but since it didn't work w/ LTBS I gave up on it some time ago. Is the function fix you're referring to the plugins you're getting ready to release?
 

Pharonix

Shadow Walker
Veteran
Joined
Apr 22, 2012
Messages
747
Reaction score
340
First Language
English
Primarily Uses
RMMV
Hmm, I did want to use SRD's Skill Extender before for my Bow & Arrow setup (it would only be for the shoot skill), but since it didn't work w/ LTBS I gave up on it some time ago. Is the function fix you're referring to the plugins you're getting ready to release?
I have some testing i need to do.
I'll be cloning the letbs 77.2b project I have and plugging the main mod plugin to it and see if it works.
I won't really be able to do testing until next week.

I will post it now. But at this point I cannot guarantee it'll work.
I mean it should... but I don't really know until someone tests it.

It should go under all LeTBS files, and under YEP_WeappnUnleash


Let me know if you try it and things explode.

EDIT: I have Enable params in there, but they aren't implemented yet.
You would need to comment things out.

Here's the current Change Log

JavaScript:
/*
* ============================================================================
 * What it Does:
 * ============================================================================
 *
 * PHX Mod Plugin For LeTBS to add features and fixes for LeTBS
 * Place Under all other LeTBS plugins in your plugin manager
 *
 *
 * makes changes to getObjectSequenceData, makeScope, and adds support for YEP_WeaponUnleash
 *
 *
 *
 *
 * ============================================================================
 * getObjectSequenceData:
 * ============================================================================
 *
 * This allows the use of e.function() in sequence calls, as well as handle functions with parameters
 * This allows you to create skills that rely on a function to return which sequence should run.
 * Example:
 *
 * sequence: e.vorpal();
 * In my code, e.vorpal is a TBSEntity.prototype.vorpal = function () {} type function
 * and checks a rate of 10% 3 times, and increases the number of hits for each success.
 * this function returns "vorpal2" (the default) if none of the checks pass, and vorpal3, vorpal4 or vorpal5 based
 * on how many "hits" the skill should make.
 *
 *
 * ============================================================================
 * makeScope:
 * ============================================================================
 *
 * The changes made here are very simple.
 * With these changes, LeTBS now handles support for calling functions like
 * e.customSquare() and e.customSquare(param,goes,here) inside the scope.
 * That return strings for scope size, so you can do things like:
 * scope: square(e.customSquare())
 * where e.customSquare is a TBSEntity function such as
 *
 *  TBSEntity.prototype.customSquare = function () {
 *     if(this.getMovePoints()>2)
 *     {return 5;}
 *     else
 *     {return 3;}
 * };
 * This function returns 5 if the user's movement Points is greater than 2, otherwise it returns 3.
 * This is just an example, but this shows that you can now, with my code, adjust scopes with functions
 * based on states, or variables, etc.
 * you could even use things like this.battler() to call the actual battler, then use
 * this.battler().isStateAffected(id)
 * this would allow you to adjust scope if the user is affected with a state.
 *
 * ============================================================================
 * weaponUnleash:
 * ============================================================================
 *
 * Requires Yanfly's YEP_WeaponUnleash.js plugin to work. comment it out if you do not want to use
 *
 * Function is called as a sequence like so:
 *
 * sequence: e.weaponUnleash("atk", true)
 *
 * This function takes in 2 parameters seq, and isWeapon.
 *
 * seq: this is the default sequence that should be used if weapon unleash fails
 *
 * isWeapon: this boolean is used to separate weapon-unleashes from guard-unleashes. If this is true,
 * the unleash code checks for weapon unleash, if false, it checks guard unleash.
 *
 * How to Use:
 *
 * Weapon Notetag: normal Yanfly Weapon Unleash Tag
 * <Weapon Unleash 100%: 1911>
 * <Weapon Unleash chance: skillId>
 *
 *
 * Skill Notetag: use the regular sequence: sequenceId line in <LeTBS></LeTBS> like you would normally
 * "atk" is to be replaced by the sequence that should play normally, leave true for weapon skills and make it false for * * guard skills
 * sequence: e.weaponUnleash("atk", true)
 * sequence: e.weaponUnleash("dagger_attack", true)
 *
 * Setting Up "Unleash Skills"
 *
 * Weapon Unleashes this way end up using the new skill's sequence and the current one's damage formula
 * This can be Problematic for some users, so creating a skill to handle the "Unleash" as an interim works best
 *
 * For Example: My Dragon Dagger can unleash "Accel Rave" which slashes the enemy 12 times. This skill however is
 * skill 105, and I do not want to use the base dagger attack formula.
 * Therefore, my Dragon Dagger instead unleashes skill 1911 - "Dagger Unleash"
 *
 * Dagger Unleash is set up like a regular skill, but no damage formula and it calls the sequence "dagger_unleash"
 * via sequence: dagger_unleash
 *
 * dagger_unleash sequence is very simple, as all it does is force the user to use a different skill.
 * by doing this, the user of the dragon dagger's unleash uses the forced skill's damage formula and sequence,
 * thereby effectively Unleashing the Power of the Weapon
 *
 * Unleash Sequence:
 *    "dagger_unleash": [
 *       "use_skill: user, 105",
 *   ],
 * All this does is force the user to use skill 105, which is my skill ID for Accel Rave.
 *
 * This may all seem unnecessarily complex, but Yanfly's Weapon Unleash, as is, is incompatible, but by modifying how
 * LeTBS handles functions as sequences, we can do amazing things.
 *
 *
 *
 * ============================================================================
 * Other Fixes:
 * ============================================================================
 *
 *
 * ===========
 * Positioning
 * ===========
 * Added support for variable-based actor cells
 * <Var Cell: x> / <Var Cell: 5>
 * Loads the value stored in Variable x, and loads that actor. Useful for Battles where you "split"
 * the party.
 *
 * Added support for switch-based actor cells
 * <Switch Cell: x>
 * Loads Switch x, and if it is on, pulls that actor in.
 * Good for Permadeath and merc recruiting where you don't want mercenaries in the party, but want them
 * in battle.
 *
 * Added support for leader-based actor cells (Party Leader auto-positioning
 * <Leader Cell
 * Loads the Party leader into the cell.
 *
 * Added support for neutral positioning cells that can be used by enemies or actors
 * <Entity Cell>
 * Denotes a "Neutral" cell, where an enemy or ally can begin. If left unoccupied by enemy positioning
 * it allows the player to place a character there. Uses the Neutral Color Parameter
 *
 * Added custom color for neutral positioning
 *
 * Added logic to determine of all player entities are placed in the pre-positioning phase.
 * If this is the case, the battle is immediately started, eliminating the need for the player
 * to "Confirm" they are ready. Eliminates a bug where you could "Cancel" on a pre-placed unit.
 * Causing the game to crash.
 *
 * Fixes issues when trying to use moveable events for positioning. Before it was using the Game Map event location,
 * and not the actual event location.
 * ===========
 *
 * Charmed
 *
 * Fixed "Charm" System.
 * Lecode used isAlly and isEnemy to determine which side the enemy/
 * target was on, rather than using isAlly to determine if the target
 * was an actual Ally of the user.
 *
 * This resulted in crazy situations where the ally and enemy arrays
 * for a confused user were identical, resulting in the AI getting confused.
 * Any confused AI will continue to beat up their own allies, until the
 * confusion wears off, the user dies, or all their allies are dead.
 *
 * In these cases, the user will then proceed to attack the actual enemy.
 * I believe that if the confused enemy has healing skills, he will heal
 * and/or resurrect their teammates. This can cause even more hilarious
 * situations where an enemy kills/revives/kills again their teammates.
 *
 *
 *
 * //Scopes
 * Added support for "exclude_free_cells" in the AOE. previously
 * this boolean did exist, but there was never a function to filter
 * out cells without an entity in it. This also greatly reduces lag
 *
 * Added support for Scope_Select if Actor is afflicted with a specific State
 * scope_select: AstateId stateID
 *
 * Added support for Scope_Select if Enemy Unit is afflicted with a specific State*
 * scope_select: EstateId stateID
 *
 * Added support for Scope_Select if A Team Member is afflicted with a specific State*
 * scope_select: AllystateId stateID
 *
 * Added support for Scope_Select if An Enemy Team Member (enemies if player, player if enemies)*
 * is afflicted with a specific State*
 * scope_select: EnemystateId stateID
 *
 * Added support for Scope_Select if An Enemy Team Member (enemies if player, player if enemies)*
 * is afflicted with a specific State*
 * scope_select: StateId stateID
 *
 * Added support for Scope_Select if Actor Knows a specific Skill*
 * scope_select: AskillId skillID
 *
 * Added support for Scope_Select if Enemy Knows a specific Skill*
 * scope_select: EskillId skillID
 *
 *
 * //Distance
 * Added Support to keep track of distance between user and target. This allows you to create
 * skills that get stronger/weaker the further/closer you are.
 * When using advanced damage formulas, use a._cellDistance to pull in the distance between the
 * user of the skill, and the targeted cell.
 *
 *
 * // Directional Damage
 * Added Support for states to be added when attacking from front/side/back.
 * This allows more support over attack damage modifiers.
 */
 

Attachments

Frostorm

[]D[][]V[][]D aka "Staf00"
Veteran
Joined
Feb 22, 2016
Messages
1,116
Reaction score
813
First Language
English
Primarily Uses
RMMV
I can't wait to be able to use SRD's Skill Extender for my Archer, or any functionality that imitates it, that way I can have the Shoot command bring up different choices of arrows (which are skills that have an item cost) to have different element/effect shots on demand. ^.^

Edit: Seeing as how I've already integrated half the contents of your plugin, I had to go grab an unmodified LeTBS.js to work with. Luckily I used this website to find all the changes I previously made:

Edit2: I just noticed something with the Weapon Unleash fix...guard unleashes probably won't work if your Shields are "weapons" like it is in my game. Thank goodness I don't utilize guard unleashes in my game! lol
Edit3: Regarding the custom scope evals...we have to create a new function for the custom scope right, but where do I put it? Basically, which one of these is valid? Or are both wrong? Does the function go in PHX_LeMod.js or LeTBS.js?
JavaScript:
<letbs>
scope: circle(e.customCircle(a.isLearnedSkill(25) ? return 5 : return 4), 1)
</letbs>
JavaScript:
<letbs>
scope: circle(e.customCircle(), 1)
TBSEntity.prototype.customCircle = function () {
    if (a.isLearnedSkill(25)) {
        return 5;
    } else {
        return 4;
    }
};
</letbs>
Damn, it just gives me a range of 3 w/ no minimum range for some reason... (where did it even get 3 from?! instead of 4 or 5)

@Pharonix I had the conditional scope working in a previous version, but I seem to have lost those changes when my computer crashed a week or 2 ago. Now, I don't remember how I implemented it... I tried rereading our PM and your plugin's help section but to no avail. Help?

I also tried putting the following at the end of PHX_LeMod.js
JavaScript:
TBSEntity.prototype.customCircle = function () {
    if (entity.battler().isLearnedSkill(25)) {
        return 5;
    } else {
        return 4;
    }
};
With the shoot skill's notetag in the database like so:
JavaScript:
<letbs>
scope: circle(e.customCircle())
sequence: attack
</letbs>
Unfortunately, it just spits out an "e.customCircle is not a function" error...:kaosigh:
When I put the function in LeTBS.js, I get an "entity is not defined" error instead.

Edit: Omg, it works! I just had to change this:
if (entity.battler().isLearnedSkill(25)) -> if (user.isLearnedSkill(25))

I can't seem to tell when ".user" is appropriate vs "entity.battler()".

Last Edit: Sorry for the long post, but this is my final issue for the night:
options.png
Basically the "Start Battle" window is cut off due to the party select window being centered vertically, with the "Start Battle" window simply being attached on top of it. I need to move the whole thing downward or better yet, remove it completely since it's never really used.
 
Last edited:

Pharonix

Shadow Walker
Veteran
Joined
Apr 22, 2012
Messages
747
Reaction score
340
First Language
English
Primarily Uses
RMMV
So yeah,

No dice.
Tried using the function before scope, before sequence get, during, and none of it works.
Seems very likely because of how LeTBS is all sequencing, and calling weird things like Choice Popups just isn't very compatible.

Plus my "pseudo" skill extension would allow the use of stronger skills for the same cost as the original skill, or break if you don't have the necessary resources.

Sorry guys. Seems like this one's on my backburner for now.
 

Frostorm

[]D[][]V[][]D aka "Staf00"
Veteran
Joined
Feb 22, 2016
Messages
1,116
Reaction score
813
First Language
English
Primarily Uses
RMMV
Plus my "pseudo" skill extension would allow the use of stronger skills for the same cost as the original skill, or break if you don't have the necessary resources.
If your "pseudo" skill extension supports item skill costs (with each one being different, as defined in the skill database) that would suffice. On a side note, I get this error SOMETIMES during battle, seemingly randomly. Some turns it happens, other turns it doesn't. It occurs when it becomes the actor's turn.
Error!.png

The code it's referring to is the custom scope function:
JavaScript:
TBSEntity.prototype.shootBow = function () {
    if (user.isLearnedSkill(25)) {
        return 5;
    } else {
        return 4;
    }
};
The function itself works because I'm getting the extra range on my Bow if I have skill #25 learned. I just don't understand why I get this error only during some turns but not others, even doing the same actions.

Edit: Seems to happen only after turn 1 is completed on both enemy and actor side and it comes back to my turn during the beginning of turn 2. The function is slapped on at the end of LeTBS.js if that matters.

If I use "entity('user').battler()" instead of "user", it's even worse cuz I get the following error immediately upon trying to attack...
1593743799346.png
So how did you get your custom scope functions to work smoothly?

Btw, I will try to use your suggestion in post #2987 as an alternative for Skill Extender, so don't worry about it, but thanks for trying!
 
Last edited:

Pharonix

Shadow Walker
Veteran
Joined
Apr 22, 2012
Messages
747
Reaction score
340
First Language
English
Primarily Uses
RMMV
If your "pseudo" skill extension supports item skill costs (with each one being different, as defined in the skill database) that would suffice. On a side note, I get this error SOMETIMES during battle, seemingly randomly. Some turns it happens, other turns it doesn't. It occurs when it becomes the actor's turn.
View attachment 149879

The code it's referring to is the custom scope function:
JavaScript:
TBSEntity.prototype.shootBow = function () {
    if (user.isLearnedSkill(25)) {
        return 5;
    } else {
        return 4;
    }
};
The function itself works because I'm getting the extra range on my Bow if I have skill #25 learned. I just don't understand why I get this error only during some turns but not others, even doing the same actions.

Edit: Seems to happen only after turn 1 is completed on both enemy and actor side and it comes back to my turn during the beginning of turn 2. The function is slapped on at the end of LeTBS.js if that matters.

If I use "entity('user').battler()" instead of "user", it's even worse cuz I get the following error immediately upon trying to attack...
View attachment 149880
So how did you get your custom scope functions to work smoothly?

Btw, I will try to use your suggestion in post #2987 as an alternative for Skill Extender, so don't worry about it, but thanks for trying!
You are calling user.isLearnedSkill(25)
This is wrong as user does not exist in this function
You shoukd be using
this.battler().isLearnedSkill(25)
 

Frostorm

[]D[][]V[][]D aka "Staf00"
Veteran
Joined
Feb 22, 2016
Messages
1,116
Reaction score
813
First Language
English
Primarily Uses
RMMV
@Pharonix Thank you that fixed it! I really don't get when "user" vs "this.batter" vs "entity('user').battler()" should be used lol.

Btw is there a reason "passableOnDeath" isn't working for me?

<letbs_sprite>
pose(idle): use_chara, Evil, 0
pose(dead): use_chara, Damage2, 0, 0
turn_order: auto
status_sprite: auto
passableOnDeath
</letbs_sprite>

Should there be some kind of prefix and colon in front of it like the others? Couldn't find any info on that in the LETBS docs.
 

Pharonix

Shadow Walker
Veteran
Joined
Apr 22, 2012
Messages
747
Reaction score
340
First Language
English
Primarily Uses
RMMV
Passableondeath goes between the letbs tags not the letbs sprite tags
 

Frostorm

[]D[][]V[][]D aka "Staf00"
Veteran
Joined
Feb 22, 2016
Messages
1,116
Reaction score
813
First Language
English
Primarily Uses
RMMV
@Pharonix Is it possible to make certain choices only show up if you have certain items in your inventory? I'm referring to this thing you posted:

choices = []; params = [];
$gameMessage.setChoices(choices, 0)
choices.push("text 1");
choices.push("text 2");
choices.push("text 3");
choices.push("text 4");
choices.push("text 5");
choices.push("text 6");
choices.push("text 7");
choices.push("text 8");

params.push()

I could just use conditionals for "choices.push("text 1"); right? What're the params for though? I don't see anything added to its array. I could really use an example if you got the time, but it's not a big deal if you don't, thx!
 

Pharonix

Shadow Walker
Veteran
Joined
Apr 22, 2012
Messages
747
Reaction score
340
First Language
English
Primarily Uses
RMMV
yeah, you can use conditionals to push.
I don't know what params is.

This was working, but not code.
It worked if called outside battle, but I couldn't get it to actually work.
Basically ext in the function param. was an array of numbers that represent skill IDs.

TBSEntity.prototype.extendSkill = function (ext) {
console.log(ext);
//Use the first option of Extend Skills as Default
var extSkill = ext[0];
//Empty extend Skills array, we fill this further down.
var extendSkills = [];
//Empty string for Extend Skill Sequence. We build this dymanically later.
extendSkillSeq ="";

//Loop through all listed skills in ext.
for(var i = 0; i<ext.length; i++)
{
//Push the name to the extend Skills Choice List
extendSkills.push($dataSkills[Number(ext)].name);
}
//
$gameMessage.setChoices(extendSkills, 0, -1);
$gameMessage.setChoiceCallback(function (choice) {
extSkill = ext[choice];
//We build the sequence dynamically and have it force the user to use the selected
//Skill. This prevents the need for 2000 lines of code to determine what skill was
//Selected.
extendSkillSeq = "use_skill: user, "+extSkill+",";
Lecode.S_TBS.Config.Sequences["placeholder"] = [extendSkillSeq];
//Replace placeholder the name of a placeholder sequence
});
return extSkill;
};
 

Frostorm

[]D[][]V[][]D aka "Staf00"
Veteran
Joined
Feb 22, 2016
Messages
1,116
Reaction score
813
First Language
English
Primarily Uses
RMMV
Thanks, I will try this now. But you said you couldn't get it to work in combat though? Btw, is there a reason your earlier code with:
choices = []; params = [];
$gameMessage.setChoices(choices, 0)
choices.push("text 1");
etc...
...isn't anywhere in your example?
 
Last edited:

Pharonix

Shadow Walker
Veteran
Joined
Apr 22, 2012
Messages
747
Reaction score
340
First Language
English
Primarily Uses
RMMV
Thanks, I will try this now. But you said you couldn't get it to work in combat though? Btw, is there a reason your earlier code with:
choices = []; params = [];
$gameMessage.setChoices(choices, 0)
choices.push("text 1");
etc...
...isn't anywhere in your example?
Technically speaking, they are there, I replaced choices with extendSkills

I replaced choices.push with
extendSkills.push($dataSkills[Number(ext)].name);

Which I then use here
}$gameMessage.setChoices(extendSkills, 0, -1);


The reason it doesn't work is something to do messages I think, but I'm not entirely sure.

A couple tests I ran a long time ago with display messages before the effects, resulted in the text always showing at the end of the sequence..


I might try this again later...
 
Joined
Apr 26, 2020
Messages
3
Reaction score
2
First Language
English
Primarily Uses
RMMV
Great plugin! I'm running into a weird issue though.

When I run a battle like normal, the battle gets complete after defeating all enemies, obviously.

BUT if I add enemies as entities using the event trigger, everything works combat wise, but if I only target the enemies that are in the original enemy troop the battle will end. Meaning that only the enemies that are in the troop get counted, not the enemies added via entity event.

Meaning if I have a troop with 1 enemy in it, and then I add 7 enemies with Entity event, if I only target the one enemy that's in the troop (and not the other 7 I added), the battle will complete as if I defeated all the enemies.
 

Users Who Are Viewing This Thread (Users: 1, Guests: 3)

Latest Threads

Latest Posts

Latest Profile Posts

Got any suggestions?

Here is my valiant and beloved captain
of the space cruiser ROSTOV.
Made a video showcasing a plugin (by Triacontane) that allows us to summon a relative touchpad/analog stick wherever we touch on the game's screen. (Mostly for mobile RPG Maker games.)

EmptyVoid_ wrote on Leporine's profile.
Just letting you know that I have written a PM to you.
Testing testing. First time doing this.

What are we, facekook?

Forum statistics

Threads
103,180
Messages
997,835
Members
134,650
Latest member
KuroZer0
Top