The setup was:
- switch turned on (private variable sprite set to "1")
- mouse over 1 of the 4 instances of sprite: they all responded.
Try reversing the order of the conditions to:
- if mouse is over sprite
- private variable sprite is set to 1
Also make sure that the pv you're checking for is 1, not "1".
Edit: In the example you mentioned, how many sprites had a pv=1? Each extra condition works as an "and". If there were no sprites with a pv=1, this could have happened:
If pv=1 (if there are none, construct picks no sprites)
AND
mouse is over sprite (there were no sprites chosen from the previous condition - therefore still no sprites chosen because no sprites meet BOTH conditions)
Then the object list has no picked sprites, so when you tell construct to set the opacity, it sets the opacity of all of them.