OP
KOCKAADMIRALAC'S DURABILITY SYSTEM
~ by KockaAdmiralac ~
V. 1.1.1
~ by KockaAdmiralac ~
V. 1.1.1
Instrucciones:
Instala normalmente el plugin, configura el plugin desde sus opciones y configura las armas, armaduras, objetos, skills, que harán uso de este sistema desde las notetags.
Descripción:
Este plugin te permite administrar la durabilidad de tus armas y armaduras. Es muy sencilla la manera en que funciona la durabilidad:
No hice yo el plugin, pero me di la tarea de traducirlo.
Plataforma:1) Cuando te atacan, tu armadura pierde durabilidad.
2) Cuando tu atacas, el arma utilizada pierde la durabilidad.
Después que tu arma o armadura pierde toda la durabilidad, esta se rompe y ya no puedes equiparla.2) Cuando tu atacas, el arma utilizada pierde la durabilidad.
No hice yo el plugin, pero me di la tarea de traducirlo.
RPG Maker MV
Creditos:
KockaAdmiralac
Código:
Código:
//=============================================================================
// Durability.js
//=============================================================================
/*:
* @plugindesc Añade durabilidad de armas/items al estilo Minecraft.
* <KockaDurability>
* @author KockaAdmiralac
*
* @help
* ============================================================================
* INTRODUCCIÓN
* ============================================================================
* Este plugin te permite administrar la durabilidad de tus armas
* y armaduras. Es muy sencilla la manera en que se calcula la durabilidad:
* 1) Cuando te atacan, tu armadura pierde durabilidad.
* 2) Cuando tu atacas, el arma utilizada pierde la durabilidad.
* Después que tu arma o armadura pierde toda la durabilidad, esta
* se rompe y ya no puedes equiparla.
*
* Este plugin es de inicio automático.
* ============================================================================
* NOTETAGS
* ============================================================================
* Este plugin tiene tres notetags:
* - Notetag de armas y armaduras :
* <durability:x>
* Esto establece la durabilidad inicial de un arma o armadura,
* a un valor determinado.
* Por ejemplo : <durability:1>
* El arma/armadura con este notetag, tendrá una durabilidad
* inicial de 1.
* Si no se especifica la durabilidad, el objeto es indestructible.
*
* - Notetag de objetos y skills :
* <durability_use:x>
* Esto establece cuantos puntos de durabilidad se pierden cuando
* el objeto o skill es usado.
* Por ejemplo : <durability_use:10>
* Si este objeto/skill es utilizado por el jugador, él pierde 10
* puntos de durabilidad de sus armas. Si este objeto/skill es utilizado
* por el enemigo, el jugador (sus personajes) pierden 10 puntos de
* durabilidad en sus armaduras.
*
* <durability_increase:[equips] increase>
* Con este notetag, puedes regenerar la durabilidad de los equipamientos.
* [equips] - Números separados por un espacio que modifican qué
* equipamientos tendrán este incremento de durabilidad.
* increase - si es un número, especificará cuantos puntos regenerará
* durabilidad. También puedes dejarlo en "MAX", de esta manera el objeto
* simplemente se regenerará a su valor máximo.
* Por ejemplo :
* Notetag : <durability_increase:[1 2 3] 10>
* Esto incrementará la durabilidad para tus armas, escudos y cascos
* en 10 puntos.
* Notetag : <durability_increase[2 3 4] MAX>
* Esto establecerá la durabilidad para tus escudos, cascos y armaduras
* de cuerpo al máximo.
*
* Desde la versión 1.1.1 puedes ajustar el gasto/incremento de durabilidad
* con variables. Es decir, ahora puedes hacer que la durabilidad dependa
* del HP, MP, o incluso de algunas variables.
* Ejemplo :
* Notetag : <durability_use:hpDamage>
* Resultado : Este skill consume la misma cantidad de durabilidad, como el
* daño infligido que causa.
*
* Notetag : <durability_increase:$gameVariables.variable(1)>
* Resultado : Este objeto/skill, regenerará la cantidad de puntos establecida
* en la variable 1.
* ============================================================================
* HISTORIAL DE VERSIONES
* ============================================================================
* Versión | Descripción
* ________|___________________________________________________________________
* 1.0.0 | Lanzamiento inicial
* 1.1.0 | Añadida la opción para regenerar durabilidad. [Adlw]
* 1.1.1 | Añadida la opción para usar variables. [Ozuma]
* ============================================================================
* COMPATIBILIDAD
* ============================================================================
* NUEVOS :
* <None>
*
* CON ALIASES :
* - Game_Action :
* - apply
* - useItem
*
* SOBREESCRITOS :
* <None>
* ============================================================================
* @param Armas
* @desc Especifica los slots para tus armas aquí, sepáralos con un espacio.
* (Véase el notetag durability_increase)
* @default 1
*
* @param Armaduras
* @desc Especifica los slots para tus armaduras aquí, sepáralos con un espacio.
* (Véase el notetag durability_increase)
* @default 2 3 4 5
*
* @param Uso de durabilidad por defecto
* @desc ¿Cuántos puntos de durabilidad tomará el objeto/skill de las armas,
* cuando no se ha especificado alguno en el notetag durability_use?
* @default 1
*
* @param Mensaje de durabilidad
* @desc ¿Qué mensaje será mostrado cuando tu arma/armadura pierda toda la
* durabilidad?
* Déjalo vacío para desactivar.
* @default ¡%1 se ha roto!
*/
(function(){
// Aliases
var _kocka_random_alias_apply_M7cAp2B8 = Game_Action.prototype.apply;
var _kocka_random_alias_useItem_eb8T3mP2 = Game_Actor.prototype.useItem;
// Parámetros
var _plugin_params = $plugins.filter(function(p) { return p.description.contains('<KockaDurability>'); })[0].parameters;
var temp_weapons = _plugin_params["Armas"];
var temp_armors = _plugin_params["Armaduras"];
var default_durability_use = Number(_plugin_params["Uso de durabilidad por defecto"]);
var durability_message = _plugin_params["Mensaje de durabilidad"];
//-----------------------------------------------------------------------------
// Game_Action
//
// The game object class for a battle action.
Game_Action.prototype.apply = function(target)
{
_kocka_random_alias_apply_M7cAp2B8.apply(this, arguments);
if(target.result().isHit())
{
var array = ((this.subject() instanceof Game_Actor) ? temp_weapons : temp_armors).split(" ");
var actor = (this.subject() instanceof Game_Actor) ? this.subject() : target;
for(var i = 0; i < array.length; ++i)
{
var equip = actor.equips()[array[i] - 1];
if(equip)
{
if(!equip.durability)equip.durability = equip.meta.durability ? equip.meta.durability : -1;
var hasDurability = equip.durability != -1;
var result = target.result();
var hpDamage = result.hpDamage;
var mpDamage = result.mpDamage;
var tpDamage = result.tpDamage;
if(hasDurability)equip.durability -= this.item().meta.durability_use ? eval(this.item().meta.durability_use) : this.item().meta.durability_increase ? 0 : eval(default_durability_use);
if(equip.durability <= 0 && hasDurability)
{
if(durability_message != "")$gameMessage.add(durability_message.format(equip.name));
actor.changeEquipById(array[i], 0);
}
}
}
}
}
Game_Actor.prototype.useItem = function(item)
{
_kocka_random_alias_useItem_eb8T3mP2.apply(this, arguments);
if(item.meta.durability_increase)
{
var arr = /\[(.+)\]\s*(\w+)/ig.exec(item.meta.durability_increase);
if(arr)
{
var equips = this.equips();
var splitEquips = arr[1].split(" ");
for(var i = 0; i < splitEquips.length; ++i)
{
var equip = equips[Number(splitEquips[i]) - 1];
if(equip)
{
if(equip.meta.durability)
{
var maxDurability = Number(equip.meta.durability);
if(!equip.durability)equip.durability = maxDurability;
else
{
if(arr[2] === "MAX")equip.durability = maxDurability;
else
{
equip.durability += Number(arr[2]);
if(equip.durability > maxDurability)equip.durability = maxDurability;
}
}
}
else console.log("[Durability] You can't increase durability on equip that has no durability!");
}
}
}
}
}
})();
Descarga el plugin en *.js:
Enlace:
¡Saludos!