Показать сообщение отдельно
Старый 16.04.2010, 05:31   #350
Zabor
Разработчик
 
Аватар для Zabor
 
Регистрация: 01.02.2008
Адрес: Санкт-Петербург
Сообщений: 18,938
Вы сказали Спасибо: 11,499
Поблагодарили 10,291 раз(а) в 3,846 сообщениях
Zabor хороший собеседник
По умолчанию

Сергей, на всякий пожарный описание:

Событие места "0" (контрольная точка) делает два действия:

- выводит сообщение для случая, если поезд в графике.
- активирует событие времени "время0", в параметрах которого указано максимальное время, если едем по графику для этой точки.

В событии "время0" в качестве действия указан вывод сообщения для случая, если поезд опаздывает, т.е. время уже наступило, начальный уровень этого события времени - 0 (неактивно).

Фича работает по алгоритму:

В момент, когда игрок проезжает точку события "0" происходит активация события времени "время0", если время указанное в событии времени уже наступило - оно срабатывает и выводит своё сообщение об опоздании.

Сообщение выводимое событием места "0" (первое действие, сообщение для случая, если поезд в графике) при этом не выводится, это багофича МСТС, - получается два сообщения одномоментно, выводится последнее по активации, в данном случае сообщение из события времени =)).

* - для срабатывания события времени требуется два условия: уровень активации больше 0 и указанное время наступило, причем работает оно при любой последовательности возникновения этих условий, если время наступило, например в 10:15, а событие активировано в 12:55 оно всё равно сработает.

Теперь для случая, если не опаздываем:

Срабатывает событие места "0", выводит свое сообщение для случая, если поезд в графике, событие времени "время0" активируется, но не срабатывает т.к. время еще не наступило и соответственно не мешает вывести сообщение из события места (первое действие события места).

В случае опоздания событие времени сработав само отключится, сбросив уровень активации в 0 (минус 1 при каждом срабатывании), в случае если мы в графике его нужно деактивировать, иначе при наступлении времени сработает и всё испортит.

Деактивацию делает событие места "2" независимо от результата срабатывания события времени.

Событие места "2" должно быть максимально близко к событию "0", но радиусы их действия лучше не перекрывать.

Контрольную точку в виде событий "0" и "2" нежелательно располагать в точках остановок головы поезда (на станциях и перед светофорами, которые могут быть закрыты), т.к. если игрок умудрится активировать "0", но не доехать до "2" и будет в графике - он может получить оба сообщения =)).

** - номера событий условные (из примера), они могут называться как угодно и лучше на английском или цифрами, событие места "1" сделано просто так и как говорится в инструкциях "сигнального значения не имеет".

*** - если расположение контрольной точки некритично, чтобы не плодить события места событие, деактивирующее событие времени (в примере "2") может быть совмещено с любым другим событием места, например выводом сообщения о прибытии на станцию, как в сценариях Сергея Перевалова - в виде дополнительного действия к основному, уже имеющемуся событию места. Важно только чтобы контрольная точка при этом не "размазалась" т.е. не получилось расстояния между "0" и "2".

Хотя данных о том, что события как-либо нагружают или перегружают МСТС, пока нет.


Как обычно на страницу =)).
__________________
Присылайте ваши сценарии в копилку msts.
Опыт - это нечто, что приобретается сразу после того, как это было нужно.
100% не предпринятых попыток обречены на провал.

Последний раз редактировалось Zabor; 16.04.2010 в 05:39. Причина: орф.
Zabor вне форума   Ответить с цитированием
Старый 01.01.2007, 12:00  
Яndex
Спонсор
 
 
Регистрация: 01.01.2007
Сообщения: 500


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