设为首页收藏本站同能贴吧 切换语言 繁体中文
开启辅助访问 切换到窄版
扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 65|回复: 0

[转载发布] Turan's Terrific Tweaks

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    2026-7-12 04:10
  • 签到天数: 209 天

    连续签到: 2 天

    [LV.7]常住居民III

    7927

    主题

    864

    回帖

    3万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    29861
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    38682

    灌水之王

    发表于 10 小时前 | 显示全部楼层 |阅读模式
    With the closure of the forums imminent, I've created a repository of all my plugins. It includes a document with all the tweaks below:
    Download link


    This thread is a compilation of tweaks and snippets I've written as I work through my game or respond to requests on
    these forums.

    A couple of small things are by me to fulfill requests, but most of this is for the Yanfly Engine Plugins, both fixes and modifications.

    Due to Yanfly's terms of use, I can't post the full fixes in plugin format, so they will require some user installation. You'll want a text editor, such as Notepad++, that will show you line numbers (the common shortcut to go to a specific line is Ctrl+G).

    I use three common instructions here:

    • Save a plugin indicates the following code can be copied into an empty text file, saved as a .js file in your plugins folder, and then added in your plugin manager.
    • Add a line means you go to the specified line number, place your cursor at the end of that line, then press Enter and paste the code as a new line.
    • Change a line to read means you go to the specified line number, highlight it, and replace the entirety of that line with the code I provided.
    Please let me know if you find any bugs while using these snippets, and if you have any reproducible bugs you'd like addressed, or ideas for features to add.

    Spoiler: MV Change Class Skill Learning
    There's an oversight in the default Change Class event command which prevents an actor from learning the skills of the new class unless Save Level is checked and the classes have different experience curves. The plugin is attached at the bottom of the post - have it above any other class-related plugins.
    Spoiler: Passable Events
    This small plugin was written by request - it will allow two events to move through each other if they both have the <passable> notetag. They will still interact normally with players, impassable tiles and other events, unless you turn Through ON as normal. Save a plugin with the following code:
                    Code:       
    1. // Allow two events to move through each other if they both have the <passable> notetag
    2. Game_Event.prototype.isCollidedWithEvents = function(x, y) {
    3.     var events = $gameMap.eventsXyNt(x, y);
    4.     return $dataMap.events[this._eventId].meta["passable"] && events.length>0 ?  !events.some(event => $dataMap.events[event._eventId].meta["passable"]) : events.length>0;
    5. };
    复制代码


    Spoiler: Phantasy Star Wall Slide
    This is legitimately a little plugin I wrote, attached at the bottom of this post. This will emulate the Phantasy Star movement system - if you press against a wall, and there's a valid space "stepping" around it, you'll automatically move that way.



    It's compatible with both MV and MZ.
    Spoiler: DreamX_ShowParam with Quasi Param Plus
    This plugin has an error with displaying custom parameters defined in Quasi's Param Plus. Delete lines 631-636 and replace them with:
                    Code:       
    1.             for (qParamIndex = 0; qParamIndex < QuasiParams._custom.length; qParamIndex++)
    2.             {
    3.                 if (QuasiParams._custom[qParamIndex].abr == param)
    4.                     break;
    5.             }
    6.             if (qParamIndex < QuasiParams._custom.length)
    7.                 paramValue = parseInt(QuasiParams.equipParamsPlus(item)[qParamIndex + 17]);
    复制代码


    Spoiler: Frogboy Magic
    The way this plugin handles the various forms of payment for skills is what I consider a bug: it ignores dual MP/TP costs, it subtracts costs (e.g. spell slots) once for every target hit by a skill, and it appears to double-charge MP on top of that per-target payment.

    This modification corrects all of those behaviors to pay the cost once when the skill is performed and to treat TP costs as expected.

    Go to line 1980. Select from 1980 through 1988 and delete it.
    Then go up to line 1883. Replace that whole function from 1883 through 1891 with:
                    Code:       
    1. Game_Actor.prototype.paySkillCost = function(skill) {
    2.     var classMagic = FROG.Magic.getClassMagic(this, skill.stypeId);
    3.     if (classMagic)
    4.     {
    5.         switch (classMagic.resource) {
    6.             case "Spell Slots":
    7.                 FROG.Magic.gainSlotUsed(this, skill, 1);
    8.                 // Only remove the spell for Prepared casters, not Hybrid ones
    9.                 if (classMagic.casterType == "Prepared") {
    10.                     FROG.Magic.gainSpellPrepared(this, skill, -1);
    11.                 }
    12.                 break;
    13.             case "Magic Points":
    14.                 this._mp -= this.skillMpCost(skill);
    15.                 break;
    16.             case "Powers":
    17.                 FROG.Magic.gainPowerUsed(this, skill, 1);
    18.                 break;
    19.         }
    20.         FROG.Magic.useSpellComponents(this, skill);
    21.         FROG.Magic.gainSpellXp(this, skill);
    22.     }
    23.     this._tp -= this.skillTpCost(skill);
    24. }
    复制代码


    Spoiler: SRD Picture Choices
    There's what I consider an oversight in this plugin - if the user has set their Window Color to be anything other than the default transparent, that color will bleed over the entire screen when using a picture choice. To correct, save a plugin with the following code:
                    Code:       
    1. Window_PictureChoiceList.prototype.updateTone = function()
    2. {
    3.     this.setTone(0, 0, 0);
    4. };
    复制代码


    Spoiler: Victor Engine Action Dodge
    This plugin appears to be broken out of the box. To make it work correctly, change line 439 to read:
                    Code:       
    1.         var elmtnValue = item.damage.elementId<0 ? subject.attackElements() : [item.damage.elementId];
    2.         elmtnValue = elmtnValue.reduce(function(r, elementId) {
    复制代码


    Spoiler: Victor Engine Battle Status Window
    This plugin has a game-breaking bug out of the box. It will cause the game to crash whenever a skill is selected that does not require target selection. To correct it, swap lines 1376 and 1377. They should read:
                    Code:       
    1.         this.setActionIcon();
    2.         VictorEngine.BattleStatusWindow.onSelectAction.call(this);
    复制代码


    Spoiler: Victor Engine Action Resistance, Strengthen
    These plugins (and possibly others) appear to be broken out of the box. To make it work correctly, save the following as a plugin beneath the Basic Module.
                    Code:       
    1. VictorEngine.getAllElements = function(subject, action)
    2. {
    3.     let item = (action instanceof Game_Action) ? action.item() : action;
    4.     if (item.damage.elementId < 0)
    5.         return subject.attackElements();
    6.      else
    7.         return [item.damage.elementId];
    8. };
    复制代码


    Spoiler: Victor Engine Event Conditions
    This plugin appears to be broken out of the box. To make it work correctly, save the following as a plugin beneath the Event Conditions in your plugin manager.
                    Code:       
    1. Game_Event.prototype.meetsConditions = function(page) {
    2.     var c = page.conditions;
    3.     if (c.switch1Valid) {
    4.         if (!$gameSwitches.value(c.switch1Id)) {
    5.             return false;
    6.         }
    7.     }
    8.     if (c.switch2Valid) {
    9.         if (!$gameSwitches.value(c.switch2Id)) {
    10.             return false;
    11.         }
    12.     }
    13.     if (c.variableValid) {
    14.         if ($gameVariables.value(c.variableId) < c.variableValue) {
    15.             return false;
    16.         }
    17.     }
    18.     if (c.selfSwitchValid) {
    19.         var key = [this._mapId, this._eventId, c.selfSwitchCh];
    20.         if ($gameSelfSwitches.value(key) !== true) {
    21.             return false;
    22.         }
    23.     }
    24.     if (c.itemValid) {
    25.         var item = $dataItems[c.itemId];
    26.         if (!$gameParty.hasItem(item)) {
    27.             return false;
    28.         }
    29.     }
    30.     if (c.actorValid) {
    31.         var actor = $gameActors.actor(c.actorId);
    32.         if (!$gameParty.members().contains(actor)) {
    33.             return false;
    34.         }
    35.     }
    36.     var condition = VictorEngine.EventConditions.getCustomCondition(page);
    37.     if (condition)
    38.         return eval(condition[1]);
    39.     return true;
    40. };
    复制代码


    Spoiler: Yanfly Absorption Barrier
    The default behavior of the barrier is to only absorb damage inflicted by a skill. This plugin will make it absorb all damage, such as negative regeneration (poison) effects.
                    Code:       
    1. // Make Yanfly barrier block indirect damage
    2. Game_Battler.prototype.gainHp = function(value) {
    3.     var blocked=false;
    4.     if (value<0 && !BattleManager._subject && this.barrierPoints()>0)
    5.     {
    6.         var damage=-value;
    7.         damage = this.loseBarrier(damage, 1, 0);
    8.         if (!damage)
    9.             blocked=true;
    10.         else
    11.             value=-damage;
    12.     }
    13.     if (!blocked)
    14.     {
    15.         this._result.hpDamage = -value;
    16.         this._result.hpAffected = true;
    17.         this.setHp(this.hp + value);
    18.     }
    19. };
    复制代码


    Spoiler: Yanfly Action Sequence Pack 3
    Action Sequence Pack 3 adds commands for camera control, but has a bug that causes screen shake commands to not work. To fix this, go to line 830 and add the line:
                    Code:       
    1.     this.x += Math.round($gameScreen.shake());
    复制代码


    Spoiler: Yanfly Animated Sideview Enemies - Death Glow
    There's a fairly niche bug in the Animated Sideview Enemies plugin. If you have an enemy with the Sideview Collapse notetag who dies and later gets revived, they retain the glow effect from the collapse animation.

    To fix this, save a plugin with the following code beneath the Sideview Enemies:
                    Code:       
    1. Sprite_Enemy.prototype.revertToNormal = function() {
    2.     this._shake = 0;
    3.     this.blendMode = 0;
    4.     this.opacity = 255;
    5.     this.setBlendColor([0, 0, 0, 0]);
    6.     if (this._svBattlerEnabled)
    7.     {
    8.         this._mainSprite.setBlendColor([0, 0, 0, 0]);
    9.         this._mainSprite.blendMode=0;
    10.     }
    11. };
    复制代码


    Spoiler: Yanfly Animated Sideview Enemies - Facing
    When this plugin is enabled, static enemy sprites do not correctly work with facing commands from Action Sequences.

    Save a plugin with the following code and place beneath Animated Enemies in your plugin manager:
                    Code:       
    1. Sprite_Enemy.prototype.updateScale = function()
    2. {
    3.     if (!this._svBattlerEnabled)
    4.     {
    5.         var mirror = this.scale.x > 0 ? 1 : -1;
    6.         this.scale.x = this._enemy.spriteScaleX();
    7.         this.scale.x = Math.abs(this.scale.x) * mirror;
    8.     }
    9.     else
    10.         this.scale.x = this._enemy.spriteScaleX();
    11.     this.scale.y = this._enemy.spriteScaleY();
    12.     if (this._stateIconSprite)
    13.     {
    14.         var safe = 1 / 100000;
    15.         var sprite = this._stateIconSprite;
    16.         sprite.scale.x = 1 / Math.max(safe, Math.abs(this.scale.x));
    17.         sprite.scale.y = 1 / Math.max(safe, Math.abs(this.scale.y));
    18.     }
    19. };
    复制代码


    Spoiler: Yanfly Auto Passive States - Apply and Remove
    Something that comes up pretty frequently is the interaction between some of the commands in Yanfly's Buffs & States and Auto Passive States - specifically, that (as unintuitive as it seems) passive states do not execute Custom Apply or Custom Remove Effects. Adding this functionality requires a few steps. First, save the following as a plugin:
                    Code:       
    1. Game_BattlerBase.prototype.setCopy = function(value) {
    2.     this.isCopy=value;
    3. };
    4. Window_EquipItem.prototype.updateHelp = function() {
    5.     Window_ItemList.prototype.updateHelp.call(this);
    6.     if (this._actor && this._statusWindow) {
    7.         var actor = JsonEx.makeDeepCopy(this._actor);
    8.         actor.setCopy(true);
    9.         actor.forceChangeEquip(this._slotId, this.item());
    10.         this._statusWindow.setTempActor(actor);
    11.     }
    12. };
    复制代码

    Then, in the Yanfly plugin, go to line 419 and add the line:
                    Code:       
    1.     this._oldPassives=this._passiveStatesRaw;
    复制代码

    Go to line 444 and add the lines:
                    Code:       
    1.       if (!this.isCopy && this._oldPassives && !this._oldPassives.contains(raw[i]))
    2.           this.addStateEffects(raw[i]);
    复制代码

    Go to line 449 and add the lines:
                    Code:       
    1.     if (!this.isCopy && this._oldPassives)
    2.     {
    3.         for (i=0; i<this._oldPassives.length; i++)
    4.         {
    5.             if (!raw.contains(this._oldPassives[i]) && !this._checkPassiveStateCondition.contains(this._oldPassives[i]))
    6.                 this.removeStateEffects(this._oldPassives[i]);
    7.         }
    8.     }
    9.     this._oldPassives=undefined;
    复制代码

    Go to line 605 and add the line:
                    Code:       
    1.     this._oldPassives=this._passiveStatesRaw;
    复制代码

    Finally, go to line 611 and add the line:
                    Code:       
    1.     this._oldPassives=this._passiveStatesRaw;
    复制代码


    Spoiler: Yanfly Auto Passive States - Switch Fix
    In the latest version of Auto Passive States, the included switch conditions (and any custom conditions that reference switches) do not function correctly. To fix this, add this plugin:
                    Code:       
    1. // Fix for switch conditions
    2. Game_Map.prototype.refresh = function() {
    3.     this.events().forEach(function(event) {
    4.         event.refresh();
    5.     });
    6.     this._commonEvents.forEach(function(event) {
    7.         event.refresh();
    8.     });
    9.     this.refreshTileEvents();
    10.     $gamePlayer.refresh();
    11.     this._needsRefresh = false;
    12. };
    复制代码


    Spoiler: Yanfly Battle AI Core - Eval Conditions
    Oddly, even though other default conditions can check attributes of the target, the eval condition does not provide a
    1. target
    复制代码
    variable. To add this functionality, select lines 1347 - 1353 and delete them. Replace them with:
                    Code:       
    1.     var group = this.getActionGroup();
    2.     if (condition.includes("target"))
    3.     {
    4.         let target;
    5.         for (let i = 0; i < group.length; i++)
    6.         {
    7.             if (!group[i])
    8.                 continue;
    9.             target = group[i];
    10.             try
    11.             {
    12.                 if (!eval(condition))
    13.                 {
    14.                     group.splice(i, 1);
    15.                     i--;
    16.                 }
    17.             }
    18.             catch (e)
    19.             {
    20.                 Yanfly.Util.displayError(e, condition, 'A.I. EVAL ERROR');
    21.                 return false;
    22.             }
    23.         }
    24.         if (group.length > 1)
    25.         {
    26.             this.setProperTarget(group);
    27.             return true;
    28.         }
    29.         else
    30.             return false;
    31.     }
    32.     try
    33.     {
    34.         if (!eval(condition))
    35.             return false;
    36.     }
    37.     catch (e)
    38.     {
    39.         Yanfly.Util.displayError(e, condition, 'A.I. EVAL ERROR');
    40.         return false;
    41.     }
    复制代码


    Spoiler: Yanfly Battle Engine Core Duplicate Damage
    When the Show HP Text plugin parameter is on, attacks will cause a duplicate hit reaction to be displayed. Save a plugin with the following code, placed above the Battle Engine Core.

                    Code:       
    1. Window_BattleLog.prototype.displayHpDamage = function(target) {
    2.     if (target.result().hpAffected) {
    3.         this.push('addText', this.makeHpDamageText(target));
    4.     }
    5. };
    复制代码


    Spoiler: Yanfly Buffs and States Core Death Remove Effects
    By default, Custom Remove Effects do not trigger when the states are removed by death. If you would like them to, save a plugin with the following code and put it above all Yanfly plugins in your plugin manager.
                    Code:       
    1. Game_BattlerBase.prototype.clearStates = function()
    2. {
    3.   if (this._states)
    4.   {
    5.     for (let i=0; i<this._states.length; i++)
    6.     {
    7.         if (Imported.YEP_X_StateCategories && this.isCustomClearStates() && (($gameTemp._deathStateClear && $dataStates[this._states[i]].category.contains('BYPASS DEATH REMOVAL')) || ($gameTemp._recoverAllClear && $dataStates[this._states[i]].category.contains('BYPASS RECOVER ALL REMOVAL'))))
    8.             continue;
    9.         this.removeStateEffects(this._states[i]);
    10.     }
    11.   }
    12.     this._states = [];
    13.     this._stateTurns = {};
    14. };
    复制代码


    Spoiler: Yanfly Class Change Core Level Calculation
    There's a bug in the Class Change Core wherein your level in any class is calculated according to the exp chart of your current class. Save a plugin with the following code and place it immediately above the Class Change Core.
                    Code:       
    1. Game_Actor.prototype.expForLevel = function(level, classId) {
    2.     var c = classId ? $dataClasses[classId] : this.currentClass();
    3.     var basis = c.expParams[0];
    4.     var extra = c.expParams[1];
    5.     var acc_a = c.expParams[2];
    6.     var acc_b = c.expParams[3];
    7.     return Math.round(basis*(Math.pow(level-1, 0.9+acc_a/250))*level*
    8.             (level+1)/(6+Math.pow(level,2)/50/acc_b)+(level-1)*extra);
    9. };
    复制代码

    Then, in Class Change Core, go to line 676 and change it to read:
                    Code:       
    1.       if (this.expForLevel(level + 1, classId) > this._exp[classId]) break;
    复制代码


    Spoiler: Yanfly Counter Control Attacker and Defender Conditions
    There's a bug in Yanfly's Counter Control that causes Attacker and Defender conditions to not be evaluated. To fix this, replace the following lines.
    Line 1227:
    1.     } else if (line.match(/ATTACKER[ ]([^\s]*)[ ](.*)/i)) {
    复制代码
    Line 1229
    1.       var value2 = String(RegExp.$2);
    复制代码
    Line 1232
    1.     } else if (line.match(/DEFENDER[ ]([^\s]*)[ ](.*)/i)) {
    复制代码
    Line 1234
    1.       var value2 = String(RegExp.$2);
    复制代码
    Thanks to @caethyril for this fix.
    Spoiler: Yanfly Counter Control Custom Conditions
    There's a bug in Yanfly's Counter Control that causes Custom Counter Condition tags to not be evaluated. There are several edits necessary to fix this: go to line 1105 and change it to read:
                    Code:       
    1.     if (!this.meetCounterConditionsEval(skill, subject, target)) return false;
    复制代码

    Then go to line 1112 and change it to read:
                    Code:       
    1.     if (skill.counterConditionEval=='') return true;
    复制代码

    Lastly, go to line 1122 and change it to read:
                    Code:       
    1.     var code = skill.counterConditionEval;
    复制代码


    Spoiler: Yanfly Counter Control and Element Core
    The Counter Control as written does not support multi-element attacks created by the Element Core. Making this change will cause the Element: x counter condition to trigger if that element is included in a multiple element hit. Change line 1286 to read:
                    Code:       
    1.       return this._subject.attackElements().contains(elementId) || this._action.getItemElements().contains(elementId);
    复制代码


    Spoiler: Yanfly Element Core Multi-Element Multiplication
    The multiplication multi-element rule does not work correctly if the target has a rate of 0% for one of the elements. Add a line after 740:
                    Code:       
    1.   elements.sort(function(a, b) {return target.elementRate(b)-target.elementRate(a)});
    复制代码


    Spoiler: Yanfly Enhanced TP Modes - Fix Learn Unlock
    There's a bug in Enhanced TP Modes that prevents the Learn Unlock notetag from working. Change line 3723 to read:
                    Code:       
    1.       var tpMode = skill.learnUnlockedTpModes[i];
    复制代码


    Spoiler: Yanfly Gab Window - Fix Anti-Repeat
    There's a bug in Gab Window that makes all gab windows work as if the anti-repeat plugin parameter were on. Credit to @Robro33 for finding the issue: change line 226 to read:
                    Code:       
    1. Yanfly.Param.GabAntiRepeat = Yanfly.Parameters['Anti-Repeat'] == "true";
    复制代码


    Spoiler: Yanfly Hide/Show Shop Items - Fix Showing Items
    There's a bug in Hide/Show Shop Items that causes items to be hidden by default, not evaluated by the plugin parameter. Change line 130 to read:
                    Code:       
    1. //  if (!item.note) return false;
    复制代码


    Spoiler: Yanfly Instant Cast - Fix Battle Start Freeze
    There's a weirdly blatant bug in Instant Cast wherein winning a battle using an instant cast skill results in the next battle starting with no party/actor command window to continue playing with. Save a plugin with the following code:
                    Code:       
    1. var TUR_endBattle = BattleManager.endBattle;
    2. BattleManager.endBattle = function(result)
    3. {
    4.     this._instantCasting=false;
    5.     TUR_endBattle.call(this, result);
    6. };
    复制代码


    Spoiler: Yanfly Item Requirements - Eval Requirement
    There's a bug in this plugin which causes the Eval: requirement to always fail. To correct, go to line 528 and change it to read:
                    Code:       
    1.     value = eval(code);
    复制代码


    Spoiler: Yanfly Life Steal - Overheal
    There's a pair of typos in this plugin that cause the HP and MP overheal parameters to function backwards (i.e. you can overheal when the settings are false). To correct, go to lines 477 and 493 and put an exclamation mark - ! - before the word Yanfly.
    Spoiler: Yanfly Message Backlog - Selecting No Item
    An edge scenario in this plugin causes a crash if the player is given a Select Item screen and has no items to choose. Save the following plugin from @caethyril:
                    Code:       
    1. /*:
    2. * @target MV
    3. * @plugindesc Patches YEP Message Backlog - prevent error on selecting null item.
    4. * @author Caethyril
    5. * @url https://forums.rpgmakerweb.com/threads/159752/
    6. * @help Load this plugin after YEP_X_MessageBacklog.
    7. *
    8. * Free to use and/or modify for any project, no credit required.
    9. */
    10. ;void (function(alias) {
    11. Window_EventItem.prototype.backlogAddSelectedChoice = function() {
    12. if (this.item())  // only if item is truthy
    13. alias.apply(this, arguments);
    14. };
    15. })(Window_EventItem.prototype.backlogAddSelectedChoice);
    复制代码


    Spoiler: Yanfly Passive Auras
    The Alive Aura notetags aren't actually included in the plugin. To make this type of aura function, change line 377 to read
                    Code:       
    1.   case 'ALIVE': return 'aliveAll';
    复制代码


    Spoiler: Yanfly Quest Journal - Fix Show Types
    There's a bug in Yanfly's Quest Journal wherein you select the Quest List Window setting "Show Types" to be false, and no quests are listed. This will cause all quests to list correctly under that setting. Change line 2910 to read:
                    Code:       
    1.     if (type=='' || questData.type === type) result.push(questId);
    复制代码


    Spoiler: Yanfly Selection Control - Fix Param Conditions
    There's a bug in Yanfly's Selection Control that makes Param Conditions not function. To fix this, go to line 1464. Add a line that says:
                    Code:       
    1.     var evalResult;
    复制代码

    Then, go to the new line 1467 and change it to read:
                    Code:       
    1.       evalResult = eval(code);
    复制代码

    Then go to line 1471 and add the line
                    Code:       
    1.     return evalResult;
    复制代码


    Spoiler: Yanfly Selection Control - Fix Row Conditions
    For some reason, Yanfly's Selection Control intentionally ignores row-based selection restrictions on skills with a scope of allies. To make these function correctly, delete (in order) lines 1406, 1411 and 1416 (before deleting anything, that's lines 1406, 1412 and 1418).
    Spoiler: Yanfly Selection Control - Fix Custom User References
    Yanfly's Selection Control has a bug where references to
    1. user
    复制代码
    in a Custom Select Condition always refer to the first actor to choose their action that turn. To make these notetags function correctly, save a plugin with the following code:
                    Code:       
    1. var origSetActionState = Game_Battler.prototype.setActionState;
    2. Game_Battler.prototype.setActionState = function(actionState) {
    3.    origSetActionState.call(this, actionState);
    4.     if (actionState == "inputting")
    5.         $gameTemp.clearSelectionControlCache();
    6. };
    复制代码


    Spoiler: Yanfly Selection Control - Fix Actor Order
    This plugin modifies the order that battlers are cycled through to be by screen position - so no matter what order you added the enemies to the troop, left/right will move left and right across the screen. That works perfectly for enemies, but can be screwy with actors depending on your formation of them and whether that order changes when an actor steps forward to take their turn.

    It will be more intuitive to make sure the actors are always scrolled through in party order (and this works particularly well with "Use Up/Down," below).

    Place your cursor at the beginning of line 1555 and type /* to begin a comment. Place your cursor at the end of line 1560 and type */ to end the comment. This makes the code non-functional without deleting it.

    Then add a new line and paste in:
                    Code:       
    1.     this._enemies.sort(function(a, b) {
    2.       if (a.isActor() && b.isActor())
    3.           return a.index() - b.index();
    4.       else if (a.isActor() != b.isActor())
    5.           return a.isActor() ? 1 : -1;
    6.       else if (a.spritePosX() === b.spritePosX()) {
    7.         return a.spritePosY() - b.spritePosY();
    8.       }
    9.       else
    10.         return a.spritePosX() - b.spritePosX();
    11.     });
    复制代码


    Spoiler: Yanfly Selection Control - Fix Item and Skill Separation
    Courtesy of @Robro33 - there's a bug in the plugin where any skills and items that have the same ID will use the selection control notetags from the item.

    Change lines 766, 777, and 787 to read:
                    Code:       
    1.   if (DataManager.isItem(item)) {
    复制代码


    Spoiler: Yanfly Selection Control - Use Up/Down
    In the default battle engine, when you're using an effect that targets party members, you use up/down to select the target. This makes sense both because your party members are arranged vertically, and because you can see their names listed vertically on the bottom.

    However, when using a skill that has been modified with selection control (you can only target party members afflicted with blind for your cure-blind spell), up and down no longer work, and you're forced to use left and right. The below plugin will restore the ability to use up and down again.
                    Code:       
    1. // Make up and down work with Yanfly Selection Control
    2. Window_Selectable.prototype.processCursorMove = function() {
    3.     if (this.isCursorMovable()) {
    4.         var lastIndex = this.index();
    5.         if (Input.isRepeated('down')) {
    6.             if (SceneManager._scene._enemyWindow && SceneManager._scene._enemyWindow.active)
    7.                 this.cursorRight(Input.isTriggered('right'));
    8.             else
    9.                 this.cursorDown(Input.isTriggered('down'));
    10.         }
    11.         if (Input.isRepeated('up')) {
    12.             if (SceneManager._scene._enemyWindow && SceneManager._scene._enemyWindow.active)
    13.                 this.cursorLeft(Input.isTriggered('left'));
    14.             else
    15.                 this.cursorUp(Input.isTriggered('up'));
    16.         }
    17.         if (Input.isRepeated('right')) {
    18.             this.cursorRight(Input.isTriggered('right'));
    19.         }
    20.         if (Input.isRepeated('left')) {
    21.             this.cursorLeft(Input.isTriggered('left'));
    22.         }
    23.         if (!this.isHandled('pagedown') && Input.isTriggered('pagedown')) {
    24.             this.cursorPagedown();
    25.         }
    26.         if (!this.isHandled('pageup') && Input.isTriggered('pageup')) {
    27.             this.cursorPageup();
    28.         }
    29.         if (this.index() !== lastIndex) {
    30.             SoundManager.playCursor();
    31.         }
    32.     }
    33. };
    复制代码


    Spoiler: Yanfly Skill Core - Fix Custom Show Eval
    There's a bug in Yanfly's Skill Core that makes Custom Show conditions not function. To fix this, go to line 765 and change it to read:
                    Code:       
    1.       visible=eval(code);
    复制代码


    Spoiler: Yanfly Skill Learn System - Fix Actor Change
    There's a very niche bug when using the Skill Learn System with the Class Change System. If you're looking at the available skills for an actor to learn and you use page up/down to change to an actor who doesn't know as many classes, the game will crash.

    To fix this, go to line 1703, add a line, and paste in:
                    Code:       
    1.     if (Imported.YEP_ClassChangeCore)
    2.         this._commandWindow._index=0;
    复制代码


    Spoiler: Yanfly Skill Learn System - Fix Learn Show Eval
    There's a bug in Yanfly's Skill Learn System where using a Learn Show Eval to show a skill in an actor's list of learnable skills also makes it automatically learnable (thus defeating the purpose of requirements and the Learn Require Eval). To fix this, select lines 933 and 934 and cut them. Go to line 927, add a line, and paste those two lines in.

    Now, using a Learn Show Eval will make a skill show up in the actor's list, but it will be greyed out and disabled until they actually meet the requirements.
    Spoiler: Yanfly Stat Allocation - Fix Gain Bonus AP
    By default, there is a bug in the gainBonusAp() method where it sets the actor's AP to the passed value, rather than adds to it. To correct, change line 1160 to read
                    Code:       
    1.   value += ap;
    复制代码


    Spoiler: Yanfly STB - Fix Cannot Move
    By default, the STB does not check for an actor to have the Cannot Move restriction from a state before starting their turn. This causes the battle log to not display the state persists message, as well as other small glitches. To correct, change line 322 to read:
                    Code:       
    1.   if (this.isSTB() && subject.isActor() && subject.canInput()) {
    复制代码


    Spoiler: Yanfly Target Core - Fix Target: Everybody
    Using the <Target: Everybody> notetag causes the effect to only target one party member when used from the menu. The below plugin will make it correctly target all party members.
                    Code:       
    1. Game_Action.prototype.isForAll = function() {
    2.     return this.checkItemScope([2, 8, 10, "EVERYBODY"]);
    3. };
    复制代码


    Spoiler: Yanfly Utility Common Events
    There is a bug in this plugin that prevents the Escape event from ever being called. On line 36 of the plugin, change the words "Escape Battle Event" to read "Battle Escape Event"
    Spoiler: Yanfly Weapon Animation
    There are bugs in this plugin that don't correctly read the Weapon Animation notetag and incorrectly displays it as a dual wielding attack when using only one weapon.
    On lines 421, 426, and 430, change it to read:
    1. return this._cacheWeaponAni;
    复制代码

    Then, on line 446, change it to read
                    Code:       
    1. if (this.weapons().length>1 && this.getUniqueWeaponAni()) return this.getUniqueWeaponAni();
    复制代码


    Standalone plugins:
    Custom Hit Formula for MZ
    Chanting Animations for MZ/MV
    Activate Equipment
    Release Enemies
    Action Sequence Rotation Extension
    Action Sequence Targets Extension
    Subclass Mods Extension
    Party Approval
    Profanity Filter for MZ/MV
    Eval Tags MZ
    Christmas Calendar Plugins
    Dynamic Battlebacks for MV/MZ
    Attack Sounds for MV/MZ
    Loading Map for MV/MZ
    Equipment Levels
    Encounter Control for MV/MZ
    Step Variance for MV/MZ
    Battle Macros for MV/MZ
    Combo Actions for MV/MZ
    Level Cap for MV/MZ
    Press Turn Battle
    Rotate Move (MV/MZ)
    Item Suite MZ


    本贴来自国际rpgmaker官方论坛作者:ATT_Turan处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/turans-terrific-tweaks.141865/

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    简体中文
    繁體中文
    English(英语)
    日本語(日语)
    Deutsch(德语)
    Русский язык(俄语)
    بالعربية(阿拉伯语)
    Türkçe(土耳其语)
    Português(葡萄牙语)
    ภาษาไทย(泰国语)
    한어(朝鲜语/韩语)
    Français(法语)
    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2026-7-31 21:41 , Processed in 0.070138 second(s), 52 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表