Basically this is a re-write of my first released script, so it's much better in alot of ways but if my old one works for you then you have no need for this.
Ok this script allows you to set requirements for using weapons and armour, str, dex, int and agi aswell as level and a fighting style requirement.
First the script:
There is only 1 replaced method in this script, so I will do merges (it's refresh in window_equipitem).
To use there are 3 places you'll need to edit:
module RPG
I seriously hope that you can work with the sample code I surplied but just incase you can't...
This code is from the first of the 3 sections you'll need to edit
The first bit makes the person equipping the Bronze sword we all know need 50+ in strength before they can and they also have to be profficient in the style "Sword".
Please note their class still needs to be able to equip the weapon.
To change styles in game use:
$game_actors.styles.push('Style')
To add one and to remove one:
$game_actors.styles.delete('Style')
If you need help feel free to ask.
Ok this script allows you to set requirements for using weapons and armour, str, dex, int and agi aswell as level and a fighting style requirement.
First the script:
Code:
module RPG
class Weapon
attr_reader :str_needed
attr_reader :dex_needed
attr_reader :int_needed
attr_reader :agi_needed
attr_reader :lvl_needed
attr_reader :style_needed
def setup_requirements
@str_needed = 0
@dex_needed = 0
@int_needed = 0
@agi_needed = 0
@lvl_needed = 0
@style_needed = ''
case @id
when 1
@str_needed = 50
@style_needed = 'Sword'
when 29
@int_needed = 50
@style_needed = 'Rod'
end
end
end
class Armor
attr_reader :str_needed
attr_reader :dex_needed
attr_reader :int_needed
attr_reader :agi_needed
attr_reader :lvl_needed
attr_reader :style_needed
def setup_requirements
@str_needed = 0
@dex_needed = 0
@int_needed = 0
@agi_needed = 0
@lvl_needed = 0
@style_needed = ''
case @id
when 1
@str_needed = 50
when 2
@str_needed = 100
end
end
end
end
class Window_EquipItem < Window_Selectable
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
if self.contents != nil
self.contents.dispose
self.contents = nil
end
@data = []
# Add equippable weapons
if @equip_type == 0
weapon_set = $data_classes[@actor.class_id].weapon_set
for i in 1...$data_weapons.size
if $game_party.weapon_number(i) > 0 and weapon_set.include?(i)
if @actor.meets_requirements?($data_weapons[i])
@data.push($data_weapons[i])
end
end
end
end
# Add equippable armor
if @equip_type != 0
armor_set = $data_classes[@actor.class_id].armor_set
for i in 1...$data_armors.size
if $game_party.armor_number(i) > 0 and armor_set.include?(i)
if $data_armors[i].kind == @equip_type-1
if @actor.meets_requirements?($data_armors[i])
@data.push($data_armors[i])
end
end
end
end
end
# Add blank page
@data.push(nil)
# Make a bit map and draw all items
@item_max = @data.size
self.contents = Bitmap.new(width - 32, row_max * 32)
for i in 0...@item_max-1
draw_item(i)
end
end
end
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :styles
#--------------------------------------------------------------------------
# * Setup
# actor_id : actor ID
#--------------------------------------------------------------------------
alias styles_setup setup
def setup(actor_id)
styles_setup(actor_id)
@styles = []
if actor_id == 1
@styles.push('Sword')
end
if actor_id == 8
@styles.push('Rod')
end
end
def meets_requirements?(item)
if item.str_needed > self.str
return false
end
if item.dex_needed > self.dex
return false
end
if item.int_needed > self.int
return false
end
if item.agi_needed > self.agi
return false
end
if item.lvl_needed > self.level
return false
end
if item.style_needed != ''
if self.styles == []
return false
end
return self.styles.include?(item.style_needed)
end
return true
end
end
class Game_Temp
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
alias setup initialize
def initialize
setup
for weapon in $data_weapons
next unless weapon
weapon.setup_requirements
end
for armour in $data_armors
next unless armour
armour.setup_requirements
end
end
end
There is only 1 replaced method in this script, so I will do merges (it's refresh in window_equipitem).
To use there are 3 places you'll need to edit:
module RPG
class weapon
class game_actorsetup_requirements
class armorsetup_requirements
setup
I seriously hope that you can work with the sample code I surplied but just incase you can't...
This code is from the first of the 3 sections you'll need to edit
Code:
case @id
when 1
@str_needed = 50
@style_needed = 'Sword'
when 29
@int_needed = 50
@style_needed = 'Rod'
end
Please note their class still needs to be able to equip the weapon.
To change styles in game use:
$game_actors.styles.push('Style')
To add one and to remove one:
$game_actors.styles.delete('Style')
If you need help feel free to ask.