![]() |
![]() |
![]() |
#2 |
Опытный
Регистрация: 14.09.2007
Сообщений: 110
Вы сказали Спасибо: 6
Поблагодарили 1 раз в 1 сообщении
![]() |
![]()
Я в сценарии резервирую переменные для каждого пути.Если путь занят-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 } и так далее... //выполнение программы управления движением Это все позволяет работать станции в автоматическом режиме.Как вручную переключать стрелки в сценарии-я не знаю. А теперь поправте меня в синтаксисе,уважаемые знатоки скриптов.Все вышеприведенное-теоритически.На практике- ![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|
|
![]() Что это? |