Skill Requirements
Fri, 06 Jun 2008 12:30:11 +0000 - Author: Peter O.
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.)
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