You can do this in various ways, but I think the easiest is an array. Create a global region array variable. Set each value in your map initialization trigger.
Trigger:
Actions
Set MyRegion[1] = <region1>
Set MyRegion[2] = <region2>
etc.
Congratulations, you can now use player numbers to get the corresponding region.
Don't forget setting the array size to 12... and don't use 1 as first index, but 0 (you have to then use arithmetics to do (Player Number of Player) - 1. You don't want to waste 8180 times the size of a handle-type variable on your RAM, though I ain't sure whether all the 8192 are initialized by default... so 12 should be the array size.
> Don't forget setting the array size to 12...
It doesn't make a difference. The 'array size' simply determines the number of arrays which are initialized to the 'default' value you enter. 0 (if it's allowed) or 1 are ideal, as the map doesn't need to go through a fairly large loop to initialize arrays when it's loading, and all the indices can be used anyway.
> and don't use 1 as first index, but 0 (you have to then use arithmetics to do (Player Number of Player) - 1
There's no need to do that either.
That one little slot in the array won't make any difference, but will ease coding.
> You don't want to waste 8180 times the size of a handle-type variable on your RAM
All array's have a size of 8191, regardless of what the GUI says.
Ghan has said he has fixed this. Monovertex please confirm this fix. This was only a problem with people that had signatures in the upper levels like not the special members but the respected members.