Dont use else that too buggy, instead use a structure like and equivalent to C++ switch.
something like this:
+ MouseKeyboard: Player 1 "fire" is down
+ player: Value 'weapon' Equal to 0
+ MouseKeyboard: Player 1 "upkey" is down
-> player: Set animation to "fire_up_weapon0"
+ MouseKeyboard: Player 1 "downkey" is down
-> player: Set animation to "fire_down_weapon0"
+ player: Value 'weapon' Equal to 1
+ MouseKeyboard: Player 1 "upkey" is down
-> player: Set animation to "fire_up_weapon1"
+ MouseKeyboard: Player 1 "downkey" is down
-> player: Set animation to "fire_down_weapon1"