Save-Point
KPointsLotto VX + ACE - Printable Version

+- Save-Point (https://www.save-point.org)
+-- Forum: Material Development (https://www.save-point.org/forum-8.html)
+--- Forum: Scripts Database (https://www.save-point.org/forum-39.html)
+---- Forum: RPGMaker VX/VXAce (RGSS2/3) Engines (https://www.save-point.org/forum-117.html)
+---- Thread: KPointsLotto VX + ACE (/thread-9403.html)



KPointsLotto VX + ACE - kyonides - 09-15-2024

KPointsLotto VX + ACE

by Kyonides


Introduction

This is a short script that will let you configure two kinds of twin skills, an HP or an SP alias MP regeneration skill. What's new here? It will let you set the points percent your hero might earn or lose! That's pretty much why I say it's a good skill for bosses! Laughing 

VX Script
Code:
# * KPointsLotto VX
#   Scripter : Kyonides Arkanthes
#   2019-11-07

# This scriptlet will let you define skills that might heal or damage its
# target or recover or burn its mana depending on luck alone!
# It might be some good skills for boss battles...

module KPLotto
  LIFE_SKILL_ID = 3
  MANA_SKILL_ID = 4
  LIFE_RANGE = -40..25 # Percent you can lose or earn
  MANA_RANGE = -35..10 # Percent you can lose or earn
end

class Range
  def random() rand(4) % 2 == 0 ? -rand(self.first) : rand(self.last) end
end

class Game_Battler
  alias :kyon_plotto_gm_battler_modv :make_obj_damage_value
  def make_obj_damage_value(user, obj)
    if obj.is_a?(RPG::Skill)
      if KPLotto::LIFE_SKILL_ID == obj.id
        return @hp_damage = @hp * KPLotto::LIFE_RANGE.random / 100
      elsif KPLotto::MANA_SKILL_ID == obj.id
        return @mp_damage = @mp * KPLotto::MANA_RANGE.random / 100
      end
    end
    kyon_plotto_gm_battler_modv(user, obj)
  end
end

VX Ace Script
Code:
# * KPointsLotto ACE
#   Scripter : Kyonides Arkanthes
#   2019-11-07

# This scriptlet will let you define skills that might heal or damage its
# target or recover or burn its mana depending on luck alone!
# It might be some good skills for boss battles...

module KPLotto
  LIFE_SKILL_ID = 3
  MANA_SKILL_ID = 4
  LIFE_RANGE = -40..25 # Percent you can lose or earn
  MANA_RANGE = -35..10 # Percent you can lose or earn
end

class Range
  def random() rand(4) % 2 == 0 ? -rand(self.first) : rand(self.last) end
end

class Game_ActionResult
  alias :kyon_plotto_gm_ar_md :make_damage
  def make_damage(value, item)
    kyon_plotto_gm_ar_md(value, item)
    return unless item.is_a?(RPG::Skill)
    if KPLotto::LIFE_SKILL_ID == item.id
      @hp_damage = @battler.hp * KPLotto::LIFE_RANGE.random / 100
      return @battler.hp += @hp_damage
    elsif KPLotto::MANA_SKILL_ID == item.id
      @mp_damage = @battler.mp * KPLotto::MANA_RANGE.random / 100
      return @battler.mp += @mp_damage
    end
  end
end

Terms & Conditions

You must include my nickname and the current website's URL in your game credits.
I don't know if this scriptlet should be 100% free or not so stay tune! Shocked
Give me a free copy of your completed game if you include at least 2 of my scripts! Laughing + Tongue sticking out