Some players aren’t online, but currently under attack. The players that are under attack can’t be raided unless it’s a war raid.
Players actually online is also visible for friends and alliance members. Harder part is implementing to hold reckon with players under attack or not.
When you for example use the player list to search for an opponent, you get a static view of that particular moment of time, no more no less. Time goes on and during that time the situation can have changed already, a player can have become online and he can be under attack by another player.
I even have had it a couple of times on matchmaker, matchmaker offers me a player who at that moment isn’t under attack and not active. I still often get the message that the player is suddenly online. It means no more or no less that either another person started to raid him in the meanwhile or the player indeed came online.
It’s just the static view that makes it hard to implement. At the moment your data is returned they could indeed tell you whether or not a player is online. Major problem is that it’s not 100% known why you search the players list. In a filter you can check that the player is online, but nowhere that the player is guaranteed offline. And even then, you don’t know if the player is under attack or not, that you only know when you push the raid button. Then the actual/current status is checked.
I agree that there should be some functionality to filter players that are online. When I search for loot, I am not interested in players online, it only takes longer to search for a possible opponent and it’s annoying to see a lot of loot while actually I can’t get it, since the player is online. I sometimes have a dozen of possible targets inspected with all nice loot, but it’s leading to frustration when all those opponents pop up with a message of being online.
That an opponent under attack can’t be raided I can live with, but at least show a correct message and tell us that the player is under attack, instead of online. Then we can wait for our turn and try again in a moment. There is a reason for not being able to raid a player currently under raid. A certain amount of gold is reserved from taverns and/or gold chamber before a raid. The system can’t know how good the effort of the raider will be, so also not determine how much gold the next raider can win. There is a maximum gold loss per period of time which is connected to gold available when logged of in comparison with time passed.
Say there is enough gold unprotected and first raid you can lose 600k gold. Now two persons raid you almost at the same time. First person gets 600k reserved (plus some gold from the system). Problem is that the system can’t determine how much gold must be taken in reserve for the second person. If first raid succeeded 100% it could be that the next raid only a few k could be rewarded, but when the first raid fails 600k could be rewarded. So that’s why the system doesn’t allow multiple attacks. Otherwise the system could be abused. When one member has a lot of gold, let him go offline and agree all to raid him at the same moment. In theory 50+ members can raid him, so what should be offered? All 600k+ or take the reserved gold away from the reward for the next raider? Then we also get angry players, since the screen showed me 600k+ gold and instead I get 10k-.