The official VisuStella notetag help thread

● ARCHIVED · READ-ONLY
Started by Trihan 1458 posts Page 9 of 73 View original ↗
  1. Heyho,

    may I ask how I can recreate this from Yanflys Item Requirement Plugin into VisuStellas Item Accessibility Notetag :

    Code:
    Weapon Type: x
    Weapon Type: x, x, x
    - Requires the actor to have weapon type 'x' equipped. If multiple 'x' are
    used, the actor can have any of the 'x' weapon types equipped. If the actor
    does not have the matching weapon types, then the item is disabled and
    cannot be used regardless of other conditions.
    
    Not Weapon Type: x
    Not Weapon Type: x, x, x
    - Requires the actor to not have weapon type 'x' equipped. If multiple 'x'
    are used, the actor cannot have any of the 'x' weapon types equipped. If the
    actor does have the matching weapon types, then the item is disabled and
    cannot be used regardless of other conditions.

    Any help would be appreciated!
  2. DanielTsc said:
    Hello. Regarding optimization, I've noticed that when using the BattleCore plugin, the game's FPS drops drastically, from 60 FPS to around 40 FPS when in battle.

    I am just testing the plugins, so I just created a new project, added the Core Engine and BattleCore Plugins, and just by doing that, it happens.

    Just by disabling the Battle Core plugin, the battle FPS rises again to 60 FPS.

    Am I doing something wrong?
    For a while, I thought it was just MZ when it came to battle, but it was really Battle Core that's been doing that when it comes to battle testing.

    Once you choose commands like Formation, Options, anything that fades the screen, the fps gets worse and doesn't go back to normal even after exiting that command mid-battle. I've play tested a map, 60 fps is stable and maintained but the battle fps is still bad, around 30-40 fps. I've tried out VisuStella's Sample Game Project and entered a battle, it's no better there. I'll assume it's more of a problem with the plugin.

    Strange, that the fps reduction is barely a thing when I attempt playing a deployed game with Battle Core enabled.
  3. RK DracoRoy said:
    For a while, I thought it was just MZ when it came to battle, but it was really Battle Core that's been doing that when it comes to battle testing.

    Once you choose commands like Formation, Options, anything that fades the screen, the fps gets worse and doesn't go back to normal even after exiting that command mid-battle. I've play tested a map, 60 fps is stable and maintained but the battle fps is still bad, around 30-40 fps. I've tried out VisuStella's Sample Game Project and entered a battle, it's no better there. I'll assume it's more of a problem with the plugin.

    Strange, that the fps reduction is barely a thing when I attempt playing a deployed game with Battle Core enabled.

    So when the game is deployed, the FPS problem doesn't happen in battles? If that is the case, maybe it's slow because of some debugging feature enabled when testing (but I couldn't find what is it).

    Anyway, I've noticed that if I force RPG Maker to use my Nvidia GPU, instead of the Integrated GPU, the FPS keeps normal on 60. But it is still an issue, since without the plugin, the problem doesn't happen even on weak GPUs.
  4. Well I've deployed the game and the problem still happens. The FPS does not drop only if I use my NVidia GPU.

    I don't think an RPG Maker Game should need that...

    Well, we can only hope that Visustella fixes this issue. After using animated SV Enemy battlers, it is impossible to go back to RPG Maker vanilla =(
  5. DanielTsc said:
    Well I've deployed the game and the problem still happens. The FPS does not drop only if I use my NVidia GPU.

    I don't think an RPG Maker Game should need that...

    Well, we can only hope that Visustella fixes this issue. After using animated SV Enemy battlers, it is impossible to go back to RPG Maker vanilla =(

    Ah. When I mentioned it wasn't a problem on deployed, I was using the NVidia GPU for the game.exe. I now tested it with the regular one now that you said that, it's really bad on the deployed one with the Battle Core.

    This page may be a good idea (Step 2) if you want to report the problem to them: http://www.yanfly.moe/wiki/Troubleshooting_Plugins_RPG_Maker_MZ
  6. Ok, I had sent an e-mail for them, but now I've filled the form above. Thanks.
  7. Trihan said:
    Okay, my JS Draw Data for what I posted is:

    Code:
    // Declare Constants
    const lineHeight = this.lineHeight();
    const actor = this._actor;
    const padding = this.itemPadding();
    let width = this.innerWidth / 2;
    const elements = this.getElementIDs();
    let x = 0;
    let y = 0;
    
    // Draw Actor Graphic
    this.drawActorGraphic(0, width);
    
    // Draw Element Trait Sets
    this.drawItemDarkRect(0, y, width, lineHeight, 2);
    this.drawItemDarkRect(width, y, width, lineHeight, 2);
    const labelFmt = '\\C[16]%1: \\C[0]%2';
    const traitType1 = DataManager.traitSetType('Element');
    const traitSet1 = actor.traitSet('Element');
    this.drawTextEx(labelFmt.format(traitType1.Label, traitSet1.Display), padding, y, width - padding * 2);
    const traitType2 = DataManager.traitSetType('SubElement');
    const traitSet2 = actor.traitSet('SubElement');
    this.drawTextEx(labelFmt.format(traitType2.Label, traitSet2.Display), width + padding, y, width - padding * 2);
    y += lineHeight;
    this.setDescriptionFontSizeToTraitSet();
    const traitHeight = (this.innerHeight / Math.max(Window_StatusData.traitCol1.length, Window_StatusData.traitCol2.length)) - lineHeight;
    this.drawItemDarkRect(0, y, width, traitHeight);
    this.drawItemDarkRect(width, y, width, traitHeight);
    this.drawTextEx(traitSet1.Description, padding, y, width - padding * 2);
    this.drawTextEx(traitSet2.Description, width + padding, y, width - padding * 2);
    this.resetDescriptionFontSize();
    this.resetFontSettings();
    y += traitHeight;
    const topY = y;
    
    // Draw Elemental Data
    this.drawItemDarkRect(width * 0, y, width, lineHeight, 2);
    this.drawItemDarkRect(width * 1, y, width, lineHeight, 2);
    this.changeTextColor(ColorManager.systemColor());
    this.drawText(TextManager.statusMenuDmgReceive, width * 0, y, width, 'center');
    this.drawText(TextManager.statusMenuDmgDealt, width * 1, y, width, 'center');
    y += lineHeight;
    this.setDescriptionFontSizeToTraitSet();
    const smallLineHeight = this.textSizeEx(' ').height;
    for (const elementId of elements) {
        this.drawItemDarkRect(width * 0, y, width, smallLineHeight);
        this.drawItemDarkRect(width * 1, y, width, smallLineHeight);
    
        // Name
        const name = $dataSystem.elements[elementId];
        const column = Math.floor(elementId / 12);
        const elementX1 = width * (column === 0 ? 0.25 : 0.75) + padding;
        const elementX2 = width * (column === 0 ? 1.25 : 1.75) + padding;
        this.drawTextEx(name, elementX1, y, width/4);
        this.drawTextEx(name, elementX2, y, width/4);
    
        // Received Damage Rate
        this.resetFontSettings();
        const rate = actor.elementRate(elementId);
        const flippedRate = (rate - 1) * -1;
        this.changeTextColor(ColorManager.paramchangeTextColor(flippedRate));
        let rateText = '%1%'.format(Math.round(flippedRate * 100));
        if (actor.getAbsorbedElements().includes(elementId)) {
            this.changeTextColor(ColorManager.powerUpColor());
            rateText = TextManager.statusMenuDmgAbsorb.format(Math.round(rate * 100));
        } else if (rate > 1) {
            rateText = '%1'.format(rateText);
        } else if (rate <= 1) {
            rateText = '+%1'.format(rateText);
        }
        this.contents.drawText(rateText, width * 0, y, (width / 4 * (column === 0 ? 1 : 3)) - padding, smallLineHeight, 'right');
    
        // Dealt Damage Rate
        const dealtPlus = actor.getDealtElementPlus(elementId);
        const dealtRate = actor.getDealtElementRate(elementId);
        const dealtFlat = actor.getDealtElementFlat(elementId);
        const dealt = ((1 + dealtPlus) * dealtRate + dealtFlat) - 1;
        this.changeTextColor(ColorManager.paramchangeTextColor(dealt));
        let dealtText = '%1%'.format(dealt);
        if (dealt >= 0) dealtText = '+%1'.format(dealtText);
        this.contents.drawText(dealtText, width * 1, y, (width / 4 * (column === 0 ? 1 : 3)) - padding, smallLineHeight, 'right');
    
        y += smallLineHeight;
    
        if (elementId % 11 === 0) y = topY + lineHeight;
    }
    this.resetDescriptionFontSize();
    this.resetFontSettings();
    this.drawItemDarkRect(width * 0, y, width, this.innerHeight - y);
    this.drawItemDarkRect(width * 1, y, width, this.innerHeight - y);
    this.drawItemDarkRect(width * 2, y, width, this.innerHeight - y);

    So I've tried this for my project, and while it seems to have divided the two columns into four, I only see the first five elements for some reason.
    1601536230930.png
    So, did I do something wrong, or...?
  8. RK DracoRoy said:
    Ah. When I mentioned it wasn't a problem on deployed, I was using the NVidia GPU for the game.exe. I now tested it with the regular one now that you said that, it's really bad on the deployed one with the Battle Core.

    This page may be a good idea (Step 2) if you want to report the problem to them: http://www.yanfly.moe/wiki/Troubleshooting_Plugins_RPG_Maker_MZ

    I've sent a bug report, but they said they couldn't reproduce the FPS drop problem, even with my instructions.

    I'm assuming they don't have a weaker hardware to simulate the issue, since with good GPUs it doesn't happen.

    So, the conclusion is that we have to make a decision: make a simpler game without the plugin, that will probably run smoothly in any hardware or use the plugin in trade of FPS on machines without a dedicated GPU for gaming.

    I honestly don't what is best. I guess what will dictate the best approach will be mobile. If the game runs smootlhy on mobile, then I guess we can accept the pc optimization problem. I have to test that.
  9. DanielTsc said:
    I've sent a bug report, but they said they couldn't reproduce the FPS drop problem, even with my instructions.

    I'm assuming they don't have a weaker hardware to simulate the issue, since with good GPUs it doesn't happen.

    So, the conclusion is that we have to make a decision: make a simpler game without the plugin, that will probably run smoothly in any hardware or use the plugin in trade of FPS on machines without a dedicated GPU for gaming.

    I honestly don't what is best. I guess what will dictate the best approach will be mobile. If the game runs smootlhy on mobile, then I guess we can accept the pc optimization problem. I have to test that.
    I see. Well, that's a shame then. If I'm wanting to send a game to some with a laptop and they don't have NVidia, it's going to be a problem having them play it with Battle Core and action sequences. And like the others, they need proper documentation on how to get this stuff deployed on mobile.

    This alternative may not be a perfect solution but maybe try out this plugin and see how it goes on your end without the Nvidia GPU. On my end, at least decent but I'll take what I can get. Playtest and deploy it just to see. https://forums.rpgmakerweb.com/inde...-enemies-audio-options-efficiency-etc.125938/

    By default, the effekseer animation fps is cut by half (30 fps) and the battle frames are 1 / 3 for performance. You can mess around with other options to suit you.
  10. RK DracoRoy said:
    I see. Well, that's a shame then. If I'm wanting to send a game to some with a laptop and they don't have NVidia, it's going to be a problem having them play it with Battle Core and action sequences. And like the others, they need proper documentation on how to get this stuff deployed on mobile.

    This alternative may not be a perfect solution but maybe try out this plugin and see how it goes on your end without the Nvidia GPU. On my end, at least decent but I'll take what I can get. Playtest and deploy it just to see. https://forums.rpgmakerweb.com/inde...-enemies-audio-options-efficiency-etc.125938/

    By default, the effekseer animation fps is cut by half (30 fps) and the battle frames are 1 / 3 for performance. You can mess around with other options to suit you.

    Using this plugin alongside visustella seems to have optimized it. The FPS is back again on 60. Thanks man!
  11. DanielTsc said:
    Using this plugin alongside visustella seems to have optimized it. The FPS is back again on 60. Thanks man!
    Hey. Glad to be of help here! Now because I tried something out that may be of use for the sake of others playing your game, I thought I'd suggest this to you to make this optional on your game, if you got VisuMZ_1_OptionsCore. This is also explained in the MultiTweaks plugin, so I thank the author for that.

    Under VisuMZ_1_OptionsCore, go in Option Categories -> General -> Options List then double click to make a new option.

    All that has to be done is:

    Name the symbol "optimGame" (without the quotes).
    Name the "STR: Text" option whatever you'd like (e.g. Optimize Game, Optimize Battle, etc.)

    That will make only the Optimize Game part from the MultiTweaks plugin optional. You'll notice the FPS change quicker in battle if you have Options as a Party Command enabled from Battle Core (under Party Command Window -> Add Options).

    Also, under both "JS: Show / Hide" and "JS: Enable", change "return true" to "return window.ScSWinter". The option will be shown and enabled as long as the MultiTweaks plugin is installed.
  12. Hello. I was remembering a Tips and Tricks for MV called Hestia Knife, where a weapon's strength can be made to vary with the wielder's base params so that it grows with the actor's level. That way, the player can use it throughout the game as his "signature weapon" or something. I noticed that the notetag <JS Parameters> seems equivalent to <Custom Parameters> in the MV Equip Core plugin. In MV, the JS code was, for example:
    JavaScript:
    atk = user.paramBase(2) * 0.10 + user.level;
    What would be the MZ equivalent? Or is it exactly the same? I've looked through Archeia's Script Call Reference, but I'm a bit lost.
  13. Code:
    <JS Parameters>
    ATK = user.paramBase(2) * 0.10 + user.level;
    MAT = user.paramBase(4) * 0.10 + user.level;
    AGI = user.paramBase(6) * 0.05 + user.level;
    LUK = user.paramBase(7) * 0.05 + user.level;
    </JS Parameters>
    I tried the JS script you wrote out, WilsonE7 and this actually works.
    (It's not all of the stats, but this is how you would set it up in MZ)
  14. I'm using the MessageCore plugin in conjunction with Galv's Message backgrounds and I was wondering if there was an existing way to change the Y offset of the text? I can see that the x and y offsets for the name box are modifiable, but I'm wondering if I can do the same for the normal text in the message window. I'm trying to modify the placement of the text so that it better fits the custom message background that I'm using.
  15. I'm looking to create a status which adds a set amount of MP on add state using Visustella Skills and States Core. Being a total JS newbie, I'm not sure how to do that. The notetag is as follows:

    <JS On Add State>
    code
    code
    </JS On Add State>

    I would greatly appreciate any help.
  16. How do I set auto dash to be off by default?
  17. Thanks for the amazing work.
    Quick question: in the core engine, under Menu Layout Settings, in the Item Menu, Item category pane, where is a JS code saying "const rows = 1" (see image, I tried changing it to 3).

    I'm not a complete JS noob so I can see from the rest of the code that changing this increases the size of the box but all the categories stay on one row. I'm just wondered is there a way to show the categories on more than one row? Seems strange to have this functionality if the categories only display on one row anyway.
    TIA!
  18. Hey guys I need help with one. I have this skill in my game called "Thorn Field" that puts a state for 5 rounds on the user or one ally and after the state is applied whenever the one who has Thorn Field on takes physical damage from an attack then the attacker takes 20% of the damage done to the character with Thorn Field. I THINK it should look something like this but no sure what tags to use for this to work properly or if the syntax will change due to MZ being different. I had this ability in MV and it worked but need to know what to do to get it to work with current VisuStella and MZ. Thanks.


    if (value > 0 && this.isPhysical()) {
    var rate = 0.20;
    var recoil = value * rate;
    var rate = 0.02;
    var bonus = target.def * rate;
    var dmg = Math.ceil(bonus + recoil);
    user.gainHp(-1 * dmg);
    if (user.isDead()) {
    user.performCollapse();
    }
    }
  19. Anyone know how to adjust the height of a balloon? I am using slightly taller sprites, but they don't take the entirety of the frame, so the positioning looks awkward? Using the VisuStella plugins and I see a balloon option for 8 directions, but not four.

    I tried the script

    Code:
    Sprite_Character.prototype.updateBalloon = function() {
    
    this.setupBalloon();
    
    if (this._balloonSprite) {
    
    this._balloonSprite.x = this.x - 1; //x position of the character
    
    this._balloonSprite.y = this.y - this.height - -20; //y position of the character minus height of the character
    
    if (!this._balloonSprite.isPlaying()) {
    
    this.endBalloon();
    
    }
    
    }
    
    };

    which works for others (This is for MV), but this did nothing for me.

    pic.png

    Edit - Found a plugin that worked. For anyone that wants to know, it's callled Eli Balloon Position. Cheers!
  20. @TrentL111 If you're using Visustella plugins, I don't think you need a whole other plugin just to adjust the Balloon height.

    I've found this yesterday:
    Balloon.png

    In the EventsMoveCore parameters, under "Visustella 8-Dir Settings" there appear to be an option to adjust balloon height.

    I hop this helps.