Я в сценарии резервирую переменные для каждого пути.Если путь занят-p4=1(например)-все-на этот путь маршрута не будет.Зациклив проверку по количеству путей,программа находит свободный и готовит на него маршрут.Если свободных путей несколько-маршрут готовится на ближайший к главному.Пример для станции с 8 путями.3 путь-главный.1-3 для пассажирских.4-8 для грузовых
int p1,p2,p3,p4,p5,p6,p7,p8;
// программа расставляет на станции составы и вагоны(сдесь надо оставить по одному свободному пути для грузового и пассажирского поезда.
// программа начинает работать при вхождении поезда в зону станции(наезда на триггер-на достаточном удалении от станции-чтобы хватило времени на нижеперечисленные действия)
//расставляем пассажирские
for (i = 1; i<3; ++i)
{
m=MathRand(1,10);
n=MathRand(1,21);
if (m<5){train[i]=World1.CreateTrain("sostav"+n,"S"+i, true);p[i]=1;tr[i]=1;Sleep(3);}
}
//расставляем грузовые
for (i = 3; i<8; ++i)
{
m=MathRand(1,10);
n=MathRand(20,60);
if (m<5){train[i]=World1.CreateTrain("sostav"+n,"S"+i, true);p[i]=1;tr[i]=1;Sleep(3);}
}
теперь перебираем пути для пассажирского и грузового парка-в зависимости от номера нашего поезда nn(<21-пассажирский >20-грузовой)
//для пассажирских
if (nn<21)
{
for (i = 1; i<3; ++i)
{
{if (p[i]==0){np=i;i=3;}
}
//для грузовых
if (nn>20)
{
for (i = 8; i>3; --i)
{
{if (p[i]==0){np=i;i=3;}
}
//свободный путь найден.теперь готовим на него маршрут
if (np==1)
{
// переключаем стрелки на путь 1
}
if (np==2)
{
// переключаем стрелки на путь 2
}
и так далее...
//выполнение программы управления движением
Это все позволяет работать станции в автоматическом режиме.Как вручную переключать стрелки в сценарии-я не знаю.
А теперь поправте меня в синтаксисе,уважаемые знатоки скриптов.Все вышеприведенное-теоритически.На практике-
.