simple situation: currently, the trader checks the 200 or so most nearby cities of trades. that encourages local trading. if there are 180 inactives around, that limits your actual amount of trade partners to 20. so, how about this: if a city is inactiv for 1 week, the trader stops checking said city for offers, and adds another city on the outer rim of the accessible area. if that player shows up again, the trader will check again. should be very simple and vastly improve the trader-system.