For each human player you want to have some 'special' area (or town), which should be used as trading post. From there player will be able to trade with other players.
Each human player has 1 group/unit. Human player doesnt have towns only units. Ally AI (player 9) has 4 Towns. Trading will be done by scripting.
To make it possible in r6720 you will need some of the tweaks, described above.
To make it possible in new version I can add ability to not only view, but also to control other players assets. By default this option is turned off, but can be allowed from script. Also it can be usufull in regular MP game too, when someone left, f.e.
It will be okey to have scirpt like this: Actions.SetUnitSpecificTown(unitId, storehouseId) - only works for serfs and labours. I was thnking it could maybe be connected with roads, storehouseId could be any house in specific roads connection(town). Or maybe some kind of AI mesh region.
for the secnond part:
Actions.SetPlayerControlShare(fromPlayerId, toPlayerId, isShared) - share control and view
Actions.SetPlayerViewShare(-||-) - share only view (in houses) //or SetPlayerLoockpickShare
basicly i want it to be disabled in my map. All human players are in an ally, but they fight for victory. I use Storehouse as a "Ware/goods Bag" so i dont want to other players too look at it, what im buying.
I just tried to implement it, works fine, the only problem is how to choose for what player we are going to build smth - now you have to select some object for that player and then you will be able to build for him.
Maybe soemthing like "spectators table", choose player from table. But your solution " select some object for that player and then you will be able to build for him." is good too. But still i think player should know for what player he is building right now, so some information displayed would be great.