Save-Point
KNegate XP - 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 XP (RGSS) Engine (https://www.save-point.org/forum-116.html)
+---- Thread: KNegate XP (/thread-7585.html)



KNegate XP - kyonides - 11-21-2019

KNegate XP

by Kyonides


Introduction

This time the explanation is quite simple indeed Laughing you only need to setup battlers that will negate any damage taken if it is less than a percent of their MAXHP. Shocked

XP Script
Code:
# * KNegate XP
#   Scripter : Kyonides Arkanthes
#   2019-11-20

# This scriptlet will let battlers negate damage if it is lower than a percent
# of their MAXHP. It will not interfere with healing spells.

module KNegate
 DAMAGE_BATTLER_IDS = {} # Do Not Edit This Line!
 # BattlerID => MAXHP Percent, etc.
 DAMAGE_BATTLER_IDS[:actor] = { 1 => 20 }
 DAMAGE_BATTLER_IDS[:enemy] = {}
end

class Game_Battler
 alias :kyon_negate_gm_battler_ae :attack_effect
 alias :kyon_negate_gm_battler_se :skill_effect
 def attack_effect(user)
   result = kyon_negate_gm_battler_ae(user)
   result |= check_damage_negation(result)
   result
 end

 def skill_effect(user, skill)
   result = kyon_negate_gm_battler_se(user, skill)
   result |= check_damage_negation(result)
   result
 end

 def check_damage_negation(result)
   no_dmg = KNegate::DAMAGE_BATTLER_IDS[self.kind][self.id]
   return result if !no_dmg or !@damage.between?(1, maxhp * no_dmg / 100)
   self.hp += @damage
   @damage = 0
   false
 end
end

class Game_Actor
 def kind() :actor end
end

class Game_Enemy
 def kind() :enemy end
end

Terms & Conditions

You must include my nickname and the current website's URL in your game credits.
Do not repost it anywhere else!
Free for non commercial games.
Give me a free copy of your completed game if you include at least 2 of my scripts! Laughing + Tongue sticking out