❤❣ღ rpg maker mv收集 ❤❣ღ
㊕rpg maker mv新功能☪

〄数据库道具上限提升 ✿自动三层级地图
☪高分辨率游戏画面 触屏控制✿
____________________________________________
多设备支持:
输出Windows exe文件、Mac App文件、安卓Apk和iOS ipa✿
Mac、android、windows☪

即使你不用懂编程☪、不用会代码,依然能制作属于自己游戏✿
————————————————
转载于插件の素材の等资源,免费下载☪
✉开发: KADOKAWA ✿ Yoji Ojima
✉发行: Degica
 

【装备需求限制插件】

【装备需求限制插件】


使用效果:使物品装备有等级属性限制
插件命令:<require:atb n, atb2 o, atb3 p, ...>
使用方法:在物品注释栏加入装备需求(mhp, mmp, atk, def, mat, mdf, agi, luk, level)
例子:<require:level 5, atk 10, def -5>


JS如下:

//=============================================================================

// MBS - Equip requirement

//-----------------------------------------------------------------------------

// por Masked

//=============================================================================

//-----------------------------------------------------------------------------

// Especificações do plugin (Não modifique!)

//

/*:


  @author Masked

  @plugindesc Define um sistema de requerimentos para usar um equipamento.

  @help

  =============================================================================

  Introdução

  =============================================================================

  Este plugin permite que você defina requerimentos para que um equipamento

  possa ser usado baseado em atributos do peronsagem que o equipa.


  =============================================================================

  Utilização

  =============================================================================

  Coloque nas notas do item que quer que tenha um requerimento:

  


  Sendo o 'atb/2/3' um atributo (mhp, mmp, atk, def, mat, mdf, agi, luk e

  level) e o n/o/p o valor necessário. Exemplo para requererir nível acima de

  5, ataque maior que 10 e defesa menor que 5:


  


  =============================================================================

  Créditos

  =============================================================================

  - Masked, por criar


*///---------------------------------------------------------------------------


var Imported = Imported || {};


var MBS = MBS || {};

MBS.EquipRequirement = {};


"use strict";


(function ($) {


  /**

   * Verificação dos requerimentos do item para um actor

   *

   * @method matchRequirements

   * @param {Game_Actor} actor Actor a ser testado

   * @param {~Item} item Item a ser testado

   */

  $.matchRequirements = function (battler, item) {

    var req = Game_Item.requirement(item);

    var res = true;


    var compare = function (a, b) {

      a = Number(a || 0);

      b = Number(b || 0);

      if (b >= 0) {

        return a >= b;

      } else {

        return a <= Math.abs(b);

      }

    };


   var params = [

    'hp',   'mp',  'tp', 'mhp', 'mmp', 'atk', 'def', 'mat', 'mdf', 'agi',

    'luk', 'hit', 'eva', 'cri', 'cev', 'mev', 'mrf', 'cnt', 'hrg', 'mrg',

    'trg', 'tgr', 'grd', 'rec', 'pha', 'mcr', 'tcr', 'pdr', 'mdr', 'fdr',

    'exr', 'level'

   ];


   params.forEach(function(atb) {

     res = res && compare(battler[atb], req[atb]);

   });


   return res;

  }


  //---------------------------------------------------------------------------

  // Game_Item

  //

  // Classe dos itens no jogo


  /**

   * Obtenção dos requerimentos do item

   *

   * @method requirement

   * @param {~Item} item Item do qual os requerimentos são obtidos

   */

  Game_Item.requirement = function(item) {

    var req = { };


    if (item.meta.require) {

      item.meta.require.split(',').forEach(function (str) {

        var tsr = str.trim().split(' ');

        req[tsr[0]] = Number(tsr[tsr.length - 1]);

      });

    }


    return req;

  };


  //---------------------------------------------------------------------------

  // Game_Actor

  //

  // Classe dos personagens como battlers no jogo


  // Alias

  var _Game_Actor_canEquip = Game_Actor.prototype.canEquip;


  /**

   * Verificação de quando se pode equipar um item ou não

   *

   * @method canEquip

   * @param {Game_Item} item Item que será testado

   */

  Game_Actor.prototype.canEquip = function(item) {

    if ($.matchRequirements(this, item))

      return _Game_Actor_canEquip.call(this, item);

    return false;

  };


  //---------------------------------------------------------------------------

  // Window_EquipItem

  //

  // Classe das janelas de seleção de equipamento


  // Alias

  var _Window_EquipItem_includes = Window_EquipItem.prototype.includes;


  /**

   * Verificação de quando a janela deve usar o item ou não

   *

   * @method includes

   * @param {Game_Item} item Item que será testado

   */

  Window_EquipItem.prototype.includes = function(item) {

      var r = _Window_EquipItem_includes.call(this, item);

      if (r) return true;

      if (!r && (this._actor ? this._actor.canEquip(item) : true)) return false;

      return Game_BattlerBase.prototype.canEquip.call(this._actor, item);

  };


  // Alias

  var _Window_EquipItem_isEnabled = Window_EquipItem.prototype.isEnabled;


  /**

   * Verificação de quando um item está liberado na janela ou não

   *

   * @method isEnabled

   * @param {Game_Item} item Item que será testado

   */

  Window_EquipItem.prototype.isEnabled = function(item) {

      return _Window_EquipItem_isEnabled.call(this) && this._actor.canEquip(item);

  };


})(MBS.EquipRequirement);


Imported["MBS_EquipRequirement"] = true;



 
评论
 
热度(1)