Показать сообщение отдельно
Старый 12.11.2007, 22:39   #2
GSTrainz
Опытный
 
Регистрация: 14.09.2007
Сообщений: 110
Вы сказали Спасибо: 6
Поблагодарили 1 раз в 1 сообщении
GSTrainz стоит на развилке (репутация по умолчанию)
По умолчанию

Я в сценарии резервирую переменные для каждого пути.Если путь занят-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
}
и так далее...
//выполнение программы управления движением
Это все позволяет работать станции в автоматическом режиме.Как вручную переключать стрелки в сценарии-я не знаю.
А теперь поправте меня в синтаксисе,уважаемые знатоки скриптов.Все вышеприведенное-теоритически.На практике- .
GSTrainz вне форума   Ответить с цитированием
Старый 01.01.2007, 12:00  
Яndex
Спонсор
 
 
Регистрация: 01.01.2007
Сообщения: 500


Реклама показывается изредка по случайному принципу
По умолчанию РЕКЛАМА