Возьми переменную например onDM[playerid] и присваивай ей true когда игрок входит на дм, а при спавне поставь проверку на эту переменную и если она тру, то спавн делать на дм зоне с нужным интерьером, при выходе с дм соответственно переменная ставится в значение false для игрока.
Для рандомного спавна, берутся координаты вех точек спавна где игрок должен появиться и заносятся в массив:
Код
new Float:dmSpawns[4][3] = {
{111.11, 111.11, 111.11},
{222.22, 222.22, 222.22},
{333.33, 333.33, 333.33},
{444.44, 444.44, 444.44}
};
Получаем случайные координаты из массива:
Код
new rand = random(4);
SetPlayerPos(playerid, dmSpawns[rand][0], dmSpawns[rand][1], dmSpawns[rand][2]);