Skill Requirements

Fri, 06 Jun 2008 08:30:11 -0400 - Author:
The script below is for RPG Maker VX. It implements skills that require a certain type of weapon or armor to be equipped before it can be used.

Insert the code below after all other scripts in the Materials section of the script editor.

To use it, add the tag "[RequiresWeaponElement: X]" to the skill's notes, where X is the weapon element ID (e.g. element ID 1 is Melee), and/or the tag "[RequiresArmorElement: X]", where X is the armor element ID (e.g. element ID 1 is Melee). (Don't include the quotation marks.)

# Helper function to parse the skill notes from the database
def parseSkillNotes(tag)
 ret={}
 rgex=/\[#{tag}\:\s*(\d+)\]/i
 for skill in $data_skills
  next if !skill
  skill.note.gsub!(rgex){|o|
   ret[skill.id]=$1.to_i
  }
 end
 return ret
end

class Game_Actor @@_WeaponReq=nil @@_ArmorReq=nil alias :petero_SkillReq_skill_can_use? :skill_can_use? def skill_can_use?(skill) if petero_SkillReq_skill_can_use?(skill) if !@@_WeaponReq @@_WeaponReq=parseSkillNotes("RequiresWeaponElement") @@_ArmorReq=parseSkillNotes("RequiresArmorElement") end weaponreq=@@_WeaponReq[skill.id] if weaponreq found=false for weapon in self.weapons found=true if weapon && weapon.element_set.include?(weaponreq) end return false if !found end armorreq=@@_ArmorReq[skill.id] if armorreq found=false for armor in self.armors found=true if armor && armor.element_set.include?(armorreq) end return false if !found end return true end return false end end