Autor: Kyonides Arkanthes

Introducción

Pues, este script sirve para provocar que ciertas técnicas sean capaces de curar a monstruos o héroes que ustedes hayan elegido cuando estos sean golpeados por dichas técnicas. No quiere decir que no puedan ser téc0nicas dañinas en primera instancia…

Si necesitan una excusa para implementarlas, solo digan que querían hacer divertidos sus juegos. XD

Script para XP

# * KStatsRefill XP
#   Scripter : Kyonides Arkanthes
#   2019-11-06

# Este script les permite configurar héroes o monstruos que puedan ganar algunos
# puntos de vida o mana al ser golpeados por ciertas técnicas.

module KStats
  REFILL_SKILL_IDS = {}# ¡Ni la volteen a ver!
  # Tipo : :life para Vida o :mana para... ¡Mana!
  # Lista de Héroes:  IDActor => { IDTecnica => [Tipo, algún %], etc. }, etc. }
  REFILL_SKILL_IDS[:actor] = {
    1 => { 1 => [:life, 5], 2 => [:mana, 10] }
  }
  # Lista Enemigos: IDEnemigo => { IDTecnica => [Tipo, algún %], etc. }, etc. }
  REFILL_SKILL_IDS[:enemy] = {
    1 => { 1 => [:life, 5], 2 => [:mana, 10] }
  }
end

class Game_Battler
  alias :kyon_stats_refill_gm_battler_se :skill_effect
  def skill_effect(user, skill)
    result = kyon_stats_refill_gm_battler_se(user, skill)
    refill_stats(skill.id) if result
    result
  end

  def refill_stats(skill_id)
    data = KStats::REFILL_SKILL_IDS[self.kind] || {}
    data = data[self.id] || {}
    stype, percent = data[skill_id]
    return unless stype
    if stype == :life
      self.hp += total = maxhp * percent / 100
    elsif stype == :mana
      self.sp += total = maxsp * percent / 100
    end
    @damage = @damage - total rescue -total
  end
end

class Game_Actor
  def kind() :actor end
end

class Game_Enemy
  def kind() :enemy end
end

Script para VX

# * KStatsRefill VX
#   Scripter : Kyonides Arkanthes
#   2019-11-06

# Este script les permite configurar héroes o monstruos que puedan ganar algunos
# puntos de vida o mana al ser golpeados por ciertas técnicas.

module KStats
  REFILL_SKILL_IDS = {}# ¡Ni la volteen a ver!
  # Tipo : :life para Vida o :mana para... ¡Mana!
  # Lista de Héroes:  IDActor => { IDTecnica => [Tipo, algún %], etc. }, etc. }
  REFILL_SKILL_IDS[:actor] = {
    1 => { 1 => [:life, 5], 2 => [:mana, 10] }
  }
  # Lista Enemigos: IDEnemigo => { IDTecnica => [Tipo, algún %], etc. }, etc. }
  REFILL_SKILL_IDS[:enemy] = {
    1 => { 1 => [:life, 5], 2 => [:mana, 10] }
  }
end

class Game_Battler
  alias :kyon_stats_refill_gm_battler_se :skill_effect
  def skill_effect(user, skill)
    result = kyon_stats_refill_gm_battler_se(user, skill)
    refill_stats(skill.id) if result
    result
  end

  def refill_stats(skill_id)
    data = KStats::REFILL_SKILL_IDS[self.kind] || {}
    data = data[self.id] || {}
    stype, percent = data[skill_id]
    if stype == :life
      self.hp += total = maxhp * percent / 100
      @hp_damage = @hp_damage - total rescue -total
    elsif stype == :mana
      self.mp += total = maxmp * percent / 100
      @mp_damage = @mp_damage - total rescue -total
    end
  end
end

class Game_Actor
  def kind() :actor end
end

class Game_Enemy
  def kind() :enemy end
end

Script para VX ACE

# * KStatsRefill ACE
#   Scripter : Kyonides Arkanthes
#   2019-11-06

# Este script les permite configurar héroes o monstruos que puedan ganar algunos
# puntos de vida o mana al ser golpeados por ciertas técnicas.

module KStats
  REFILL_SKILL_IDS = {}# ¡Ni la volteen a ver!
  # Tipo : :life para Vida o :mana para... ¡Mana!
  # Lista de Héroes:  IDActor => { IDTecnica => [Tipo, algún %], etc. }, etc. }
  REFILL_SKILL_IDS[:actor] = {
    1 => { 1 => [:life, 5], 2 => [:mana, 10] }
  }
  # Lista Enemigos: IDEnemigo => { IDTecnica => [Tipo, algún %], etc. }, etc. }
  REFILL_SKILL_IDS[:enemy] = {
    1 => { 1 => [:life, 5], 2 => [:mana, 10] }
  }
end

class Game_ActionResult
  alias :kyon_stats_refill_gm_ar_md :make_damage
  def make_damage(value, item)
    kyon_stats_refill_gm_ar_md(value, item)
    return unless item.is_a?(RPG::Skill)
    data = KStats::REFILL_SKILL_IDS[@battler.kind] || {}
    data = data[@battler.id] || {}
    stype, percent = data[item.id]
    if stype == :life
      @hp_damage -= @battler.maxhp * percent / 100
    elsif stype == :mana
      @mp_damage -= @battler.maxmp * percent / 100
    end
  end
end

class Game_Actor
  def kind() :actor end
end

class Game_Enemy
  def kind() :enemy end
end

Términos & Condiciones

Deben incluir mi apodo en sus créditos.
Es de uso gratuito para projectos y demos no comerciales. Para todo lo demás, es mejor que me contacten.

kyonides cambió el título a KStatsRefill XP VX & ACE .

Bueno pasé de solo ofrecer versiones para XP y VX a incluir también a VX Ace en esta lista. Así que si usan RGSS 1, 2 o 3, pueden sacarle buen provecho.