じ☆ve冰风 发表于 2026-7-28 19:09:06

Equip Optimize Grade v1.1

Introduction
By default, 'optimize' will select equipment with the highest total stats. This might not be ideal if some of the better equipment provide non-stat related benefits, and that's where this plugin comes in.

Features

[*]Allows optimize to utilize a grading system defined by the developer.
[*]Can optionally change the optimize command to use item price.
[*]Can set equipment as unique, preventing optimize from selecting the same item twice. (Ideal for equipment with effects that can't be stacked)
How to use
Save it as APHO_EquipOptimizeGrade.js and put it in your plugin folder.
Set grades with the notetag <grade:n>
'n' must be a number greater than -1000. Decimals may be used.

If you have multiple slots for the same equip type (added via plugins like YEP_EquipCore), and you do not want the same item to be equipped twice, use the notetag <unique>

If a grade is not specified, optimize will follow the ruling set by the plugin parameter 'ungraded equip ruling'.

[*]0 - Use the value set in the 'default grade' parameter.
[*]1 - Use stat totals, just like vanilla RMMV.
[*]2 - Use the item's price.
If using anything other than default grade, it is highly recommended to either grade all equips of a specific equipment type, or none.

Script
Spoiler: CODE                JavaScript:       
//==========================================
// APHO_EquipOptimizeGrade.js
//==========================================
/*:
* @title Equip Optimize Grade
* @author Apho
* @plugindesc v1.1 Allows the 'Optimize' command in the equip menu to utilize a grading system defined by the developer.
*
* @param Ungraded equip ruling
* @type select
* @option Use default grade
* @value 0
* @option Use stat totals (Default RMMV rules)
* @value 1
* @option Use item price
* @value 2
* @desc Ruling for optimizing equips when no grade is defined.
* @default 0
*
* @param Default grade
* @type number
* @min -999
* @desc If 'use default grade' ruling is selected, ungraded equips will have this grade.
* @default 0
*
* @help
* This plugin changes the way optimize works, by allowing the developer to set
* grades for equipment.
* Higher grades will be prioritized over lower ones when optimizing equipment.
* If multiple equips have the same grade, the one with a lower ID will be
* prioritized.
*
* Set grades with the notetag <grade:n>
* 'n' must be a number greater than -1000. Decimals may be used.
*
* If you have multiple slots for the same equip type (added via plugins like
* YEP_EquipCore), and you do not want the same item to be equipped twice, use
* the notetag <unique>
* (This will still equip twice if you have nothing else to equip.)
*
* If a grade is not specified, optimize will follow the ruling set by the plugin
* parameter 'ungraded equip ruling'.
* 0 - Use the value set in the 'default grade' parameter.
* 1 - Use stat totals, just like vanilla RMMV.
* 2 - Use the item's price.
*
* If using anything other than default grade, it is highly recommended to
* either grade all equips of a specific equipment type, or none.
*
* TERMS OF USE
* - Free for commercial and non-commercial use, as long as I get a free copy
*   of the game.
* - Edits allowed for personal use.
* - Do not repost or claim as your own, even if edited.
*
* VERSION HISTORY
* v1.1 - 2022/8/2 - Optimize code
* v1.0 - 2022/8/1 - Initial release.
*/
var parameters = PluginManager.parameters('APHO_EquipOptimizeGrade');
var UngradedRuling = parseInt(parameters['Ungraded equip ruling']);
var DefaultGrade = parseFloat(parameters['Default grade']);
Game_Actor.prototype.calcEquipItemPerformance = function(item)
{
    if(item.meta.unique)
    {
      var who = this.actorId();
      var what = item.id;
      if(item.wtypeId && $gameActors.actor(who).hasWeapon($dataWeapons))
      {
            return -1000;
      }
      else if(item.atypeId && $gameActors.actor(who).hasArmor($dataArmors))
      {
            return -1000;
      }
    }
    if(item.meta.grade)
    {
      return parseFloat(item.meta.grade);
    }
    else
    {
      switch(UngradedRuling)
      {
            case 0:
                return DefaultGrade;
                break;
            case 1:
                return item.params.reduce(function(a, b){return a + b;});
                break;
            case 2:
                return item.price;
                break;
      }
    }   
}


FAQ

Terms of use

[*]Free for commercial and non-commercial use, as long as I get a free copy of the game.
[*]Edits allowed for personal use.
[*]Do not repost or claim as your own, even if edited.
[*]Do not use for training AI models. This includes, but is not limited to, inputting the plugin contents or part thereof into AI models that train on user input.
Version history

[*]v1.1 - 2022/8/1 - Optimized code.
[*]v1.0 - 2022/8/1 - Initial release.



本贴来自国际rpgmaker官方论坛作者:AphoticAmaranth处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/equip-optimize-grade-v1-1.149990/
页: [1]
查看完整版本: Equip Optimize Grade v1.1