Ok this is a nice concept. But if you use seperate zones I would advice you to use a seperate server for each zone. (look at HowTo 2 in the ANet manual)

Why? Because if a lot of people are playing your game let's say about 200 at the same time, it will be impossible that one server handles all these players. So you split your whole game into 10 zones. Now you have 20 players on 10 servers and that should be possible.

Of course this is unimportant if you are creating a small game. But then I would advice you to create it with vec_dist():
Every client sends its position updates to the server. The server then forwards it to the clients depending on the distance of the clients to the entity that sends the new position. Entities that are out of range should turn their invisible flag on. The Dead Reckoning Template of ANet does it this way.


ANet - A stable and secure network plugin with multi-zone, unlimited players, voip, server-list features,... (for A7/A8)!
get free version