Можно я скажу? для новичков можно сделать спец.раздел где будет всё описано под каждым шагом. Пример
цитата) 1) время суток, в течение которого герой зашел в другую локацию (город), должно отображаться и
в самой локации.
2) интервалы между сменой времени суток на карте мира должны быть одинаковыми всегда и
абсолютно всегда! Объясняю. Обычно, при входе на любую локацию время в игре как бы
останавливается, и смена суток на них отсутствует. Отсчет возобновляется, только при
возвращении героя на мировую карту. Допустим, что в вашей игре от заката до рассвета проходит
5 минут. Суть второго условия заключается в том, что если герой с заката путешествовал 3
минуты, а потом зашел в локацию, при выходе с нее до рассвета должно оставаться 2 минуты.
Для осуществления второго условия необходимо при помощи Variable создать счетчик, который в
реальном времени считал бы пройденные секунды (или минуты, если вас не интересует такая
точность) и в зависимости от пройденного времени активизировал соответствующие события (смену
дня и ночи). Благодаря тому, что каждая секунда будет фиксироваться в общем счетчике, герой
сможет спокойно посещать любые локации без нарушений интервалов между временами суток.
Делается это так:
- на карте мира создаем событие:
Event Start Condition - Parallel Process,
Events Commands - Set Screen Tone... (дневная яркость),
Wait... (1 секунда),
Change Variable... 0001:отсчет, Set: +, Operand: Set 1.
Первая команда нужна для того, чтобы после долгой ночи (короткого утра), программа снова
выдавала дневную яркость (это если вы интересуетесь, чего она тут торчит, ведь по умолчанию
на момент начала события установленная яркость и так дневная ). Вторая команда задает
интервал, через который счетчик будет добавлять значения к общей сумме пройденного времени
(он может быть и 5, и 10, и 0.1 секунд, в зависимости от того, какую точность вы хотите
получить). Третья команда - это, собственно, и есть наш счетчик. Она через каждую секунду
прибавляет по единице к общей сумме Variable 0001:отсчет. Таким образом осуществляется
суммирование идущего времени.
- в этом же событии создайте вторую страницу, которая будет отвечать за вечер:
Event Conditions: Variable 0001:отсчет, 5 above.
Event Start Condition - Parallel Process,
Events Commands - Set Screen Tone... (вечерняя яркость),
Wait... (1 секунда),
Change Variable... 0001:отсчет, Set: +, Operand: Set 1.
Как видно, в условиях этой страницы присутствует Variable. Страница активизируется, только
когда переменная 0001:отсчет достигнет значения 5. То есть между днем и вечером пройдет
5 секунд (это, конечно, мало, но так удобней тестировать). В остальном кардинальных отличий
от дневной страницы нет, таймер продолжает считать секунды, разве что яркость экрана уже
другая.
- в этом же событии создаем третью ночную страницу:
Event Conditions: Variable 0001:отсчет, 10 above.
Event Start Condition - Parallel Process,
Events Commands - Set Screen Tone... (ночная яркость),
Wait... (1 секунда),
Change Variable... 0001:отсчет, Set: +, Operand: Set 1.
Через 5 секунд после наступления вечера приходит ночь (нереалистично, но мне на это начхать).
- последняя страница, обспечивающая переход ночи в день:
Event Conditions: Variable 0001:отсчет, 15 above.
Event Start Condition - Parallel Process,
Events Commands - Change Variable... 0001:отсчет, Set: Set, Operand: Set 0.
Эта страница обнуляет счетчик Variable, и, таким образом, активизирует первую страницу.
Да будет день! Кстати, если вы хотите вести подсчет пройденным суткам, то на этой же странице
добавьте такую команду:
Change Variable: 0002:дни, Set: +, Operand: 1.
Может попробуете(ем)?