- Сообщений: 595
- Спасибо получено: 52
(Ace) ARK Game Time RGSS3
Автор: Arykray
Версия: 1.0.0
Дата: 07.10.2013
Версия мейкера: RPG Maker ACE 1.02a
Демо: Скачать
Скриншот:
Описание:
Скрипт позволяет создавать и редактировать игровую дату, то есть год, месяц, день, а также время. Добавляет в меню окно отображающее вышеуказанные данные.
Фактически является доработанной и дополнений версией скрипта (XP) ARK Game Time
Настройки скрипта:
В скрипте имеются несколько переменных отвечающих за настройку:
$tspeed - скорость течения времени варьируется от 1 - до 60 1- медленно 60 - быстро
$year - стартовый год игры
$month - стартовый месяц игры
$day - стартовый день игры
$hour - стартовый час игры
$min - стартовая минута игры
При помощи скриптов в событиях можно изменить дату
Изменение любой из переменной к примеру $year = $year + 1 или $year = 750 приведет к изменению года, + 1 к текущему году или установить 750 год текущим соответственно.
Также в событиях можно скриптом вызвать метод data_change(год, месяц, день, час, минута) все переменные обязательны для заполнения, только числами иначе мейкер выдаст ошибку.
Если кому лень качать демо, вот листинг, ставится в скрипты до main.
Скрипт:
Скрипт будет дорабатываться и дополнятся, в планах реализация времени суток и сезонов.
Сразу оговорюсь, я четыре года не брался за Ruby, вспоминаю постепенно...
Приветствуются любые комментарии, и предложения, а так же критика ну как-же без нее)))
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Так же и с годами Високосный/Не високосный
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Скорость времени измеряется в данном скрипте количеством сенунд в минуте.
$tspeed - это делитель количества секунд @sm = sec / $tspeed.
Чем больше значение $tspeed, тем меньше.
P.S. Сейчас окончательно проснусь, раскажу понятней, мозг до конца еще не включился)))
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Сообщений: 437
- Спасибо получено: 165
(
)Этот форум слишком умный для меня
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Или же на карте создать событие, вставить туда скрипт с кодом: data_change(год, месяц, день, час, минута)
Пример: data_change(3765, 04, 29, 15, 00) - после вызова события дата будет установлена на 29 Апреля 3765 года, а время будет 15:00.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
1-медлено 60-быстро
Скорость 60 примерно равно 16.5 милисекунд
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Сообщений: 437
- Спасибо получено: 165
(
)Этот форум слишком умный для меня
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Для более "точных" настроек.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
1. Хотя в мейкере и присутствует встроенный клас Time.now - способный показать текущую локальную дату,
производить вычисление времени с его помощью, довольно неудобно, особенно если стартовая дата в игре может меняться, или к примеру число месяцев в году не равно 12.
2. Все временные события в мейкере считаются путем деления Graphics.frame_count на Graphics.frame_rate
Graphics.frame_rate - Количество кадров в секунду по умолчанию = 60
Graphics.frame_count - Счетчик частоты обновления экрана по умолчанию = 0
При снандартных установках 1 секунда = Graphics.frame_count / Graphics.frame_rate - что не совсем верно, если мейкер будет подвисать, из-за событий к примеру, то частота обновления экрана снижается, что приводит к замедлению времени. В любом случае скорость течения времени, период в 1 секунду в игре, будет отличатся от 1 реальной секунды.
Если уж на то пошло установите в переменную $speed = 1 - значение по умолчанию. Скорость времени будет почти эквивалентна настоящему. Заменить 121 строку в скрипте на text = sprint("%02d:%02d:%02d", hour, min, sec) для отображения секунд.
Кажется как-то так.
P.S. Скрипт писался в основном для фэнтези игр где и сутки короче, и год меньше, и месяца называются не так, а не для исторических, это просто излишки производства.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Arykray пишет: Замениту 121 сктроку в скрипте на text = sprintf("%02d:%02d:%02d", hour, min, sec) для отображеня секунд.
Жуть болотная, на лапках, в тапках и с пулемётом...
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Месяц Спать, Месяц Работать... *красные глаза*
Интересная вещь, хотя и не пригодится мне. Спасибо за труды
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
1) Посмотреть текущую дату с помощью скрипта сложно (например поставив в событие условие скриптом, то я бы сказал нереально, считай все в ручную считать)
2) Нет псевдонимов (alias), ни в модуле DataManager, ни в классе Scene_Menu. То бишь совместимость тут сильно прихрамывает.
Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Извиняйте, комп продал, у меня сейчас камменный век, проц на 950 ГЦ, только читать и писать могу)))
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
