Since there's a hint that there might be more than 1 character with this particular requirement, and to save having to make if/elsifs for each actor, i figured it might be worth having a quicker way of handling that:
class Window_ShopStatus
alias cdarulez_weakwep_3ed7 weaker_weapon
def weaker_weapon(actor, *args, &block)
if [1, 5].include?(actor.id)
return actor.weapons[0]
else
cdarulez_weakwep_3ed7(actor, *args, &block)
end
end
end
Then it's just a matter of putting in the desired actor id's in the array (between the square brackets) in this line:
if [1, 5].include?(actor.id)
So here we have actors 1 and 5 set to have their 2nd weapon not being used as wanted. If you wanted actors 2 and 4 instead, you would change [1, 5] to [2, 4]. If you wanted to have actors 2, 4 and 7 it would be [2, 4, 7], and so on.
Of course, if there is only 1 actor using this unchangeable 2nd weapon, then you'd only need modern's version. This just lets you use as many actors as you want without having to do the extra repeating leg work.