Ah, I think I know what the problem is. In RMXP, in order to equip any item, the party must possess one. Lookie:
def equip(equip_type, id)
case equip_type
when 0 # Weapon
if id == 0 or $game_party.weapon_number(id) > 0 #<===== This right here is the problem
$game_party.gain_weapon(@weapon_id, 1)
@weapon_id = id
$game_party.lose_weapon(id, 1)
end
Try adding the weapon to the party first, then equip. Of course, if the weapon is not supposed to be in the party, you will have to remove the weapon(s) at the end of every battle.
Edit: I think you can also remove that 'if' statement, making the code look like this:
def equip(equip_type, id)
case equip_type
when 0 # Weapon
$game_party.gain_weapon(@weapon_id, 1)
@weapon_id = id
$game_party.lose_weapon(id, 1)
Of course, you still have to remove the weapon(s) at the end of every battle. You can find this in 'Game_Actor' around line 395.