Войти на сайт

Авторизация, ждите ...
×

ТЕМА: Time Management (ACE)

Time Management (ACE) 10 года 11 мес. назад #66148

  • caveman
  • caveman аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1274
  • Спасибо получено: 1307
  • Программист Ruby2 место ГотвПроект месяца 2 местоПроект года 3 местоОраторУчительРазработчикПроект месяца 3 место3 местоВетеран
Название: Time Management (ACE)
Автор: caveman
Версия: 1.0
Тип: работа с переменными и свитчами


Описание:


Написал небольшой, но, потенциально полезный скриптик для управления временем.

Он умеет считывать с одного или нескольких файлов формата csv (строки из слов, разделенных точкой с запятой - трансформируется из Excel через Save as csv; а эксель, или calc - просто для удобства редактирования) набор данных по управлению переменными, свитчами и селфсвитчами в реальном времени (точность до секунды) и сходу применять их в игре, в том же реальном времени от начала игры/запуска файла.
Кроме этого, он поддерживает циклический запуск этого набора в заданном в нем же промежутке времени.

Вроде пока всё. Если ничего непонятно, поясню словами и демкой:

* Я хочу сделать демку, которая изображает два дня в лесу.
* Я хочу удобно управлять временами дня (хотя бы через screen color tone), погодой и событиями в течении этого времени.
* Я хочу думать в реальном времени, а не в фреймах, например, пусть мои сутки длятся 2 минуты.

- Я составляю 2 файлика (в экселе, так мне удобно) - тут приведу отконверченный в csv вариант обработки переменных, свитчей и селфсвитчей, предварительно настроенных в проекте для времен дня и погоды.
Файлик для огорода в демке.
ЗЫ: если видите пусто между двумя ";", то там ячейка попросту пуста
- Я добавляю скрипт, что внизу под спойлером, чуть выше Main.
- Я добавляю в авторане первой (и единственной) карты вызов
$time_owner.add_manager(1)
$time_owner.add_manager(2)
$time_owner.reload(1, "test") - тут файл погоды и времени дня
$time_owner.reload(2, "farm") - тут обработка роста овощей
$time_owner.start_all - для простоты - запускаю всё, можно запускать и по отдельности, командой $time_owner.start(1)

- Я запускаю демо и радуюсь :laugh:

Теперь разберем файлик, вот он:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


Первая строка в нем - заголовок. Он ни к чему не обязывает, и просто служит мне для удобства.
Вторая строка показывает, запускаю ли я обработку файла циклически (yes/no).
Третья строка задает время начала запуска и окончания запуска (очень полезно для циклических запусков).
Четвертая и пятая - просто для удобства в экселе.
А далее начинаются команды (значения нечувствительны к регистру)

Время; - время срабатывания в формате hh:mm:ss
Тип; - тип (Variable, Switch, SelfSwitch)
Id; - номер переменной или свитча, для SelfSwitch бесполезно
Значение; - значение переменной/свитча. Для variable это - число; для остальных вариантов - True или False
Map_id; - номер карты, актуален для селфсвитча
Event_id; - номер события, актуален для селфсвитча
Letter; - буква-селфсвитч (A,B,C,D), актуален для селфсвитча
Comment - комментарий (для удобства)


Если хотите русские надписи в файлах - сохраняйте их в utf-8 (эксель предлагает по умолчанию в cyrillic)

Вот он сам:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


Демо c маленьким огородом, настроенным в файле, тут: yadi.sk/d/GQWprgqLDzwWX
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: DeadElf79
Модераторы: NeKotZima
Время создания страницы: 0.206 секунд