Войти на сайт

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

ТЕМА: (Ace) ARK Game Time RGSS3

(Ace) ARK Game Time RGSS3 11 года 1 мес. назад #65172

  • Arykray
  • Arykray аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 595
  • Спасибо получено: 52
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, вспоминаю постепенно...
Приветствуются любые комментарии, и предложения, а так же критика ну как-же без нее)))
Чем сложнее задача - тем проще ее не решать.

Последнее редактирование: 11 года 1 мес. назад от Arykray.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: sinder, Amphilohiy, SailorSaturn, Yros, aval__

(Ace) ARK Game Time RGSS3 11 года 1 мес. назад #65173

  • Lekste
  • Lekste аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 913
  • Спасибо получено: 566
  • Программист JavaScript Программист RubyДаритель СтимкеяВетеранОратор
Круто. Но лучше бы число дней в месяце сделал массивом и брал нужное значение по номеру месяца.
Так же и с годами Високосный/Не високосный
Администратор запретил публиковать записи гостям.

(Ace) ARK Game Time RGSS3 11 года 1 мес. назад #65174

  • DarkKel
  • DarkKel аватар
  • Вне сайта
  • Мастер
  • Сообщений: 173
  • Спасибо получено: 24
Скорость течения времени в чем измеряется ?
Администратор запретил публиковать записи гостям.

(Ace) ARK Game Time RGSS3 11 года 1 мес. назад #65175

  • Arykray
  • Arykray аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 595
  • Спасибо получено: 52
Дело в том, что скрипт позволяет менят количество дней в месяце а также количество самих месяцев. В скором обновлении стандартных месяце не останется, месяца будут вроде: Месяц Двух Лун, Месяц Красных Закатов, месяц Урожая и будет их не 12.

Скорость времени измеряется в данном скрипте количеством сенунд в минуте.
$tspeed - это делитель количества секунд @sm = sec / $tspeed.
Чем больше значение $tspeed, тем меньше.

P.S. Сейчас окончательно проснусь, раскажу понятней, мозг до конца еще не включился)))
Чем сложнее задача - тем проще ее не решать.

Последнее редактирование: 11 года 1 мес. назад от Arykray.
Администратор запретил публиковать записи гостям.

(Ace) ARK Game Time RGSS3 11 года 1 мес. назад #65176

  • Dprizrak1
  • Dprizrak1 аватар
  • Вне сайта
  • Просветлённый
  • Призрак обитающий в стенах Академии
  • Сообщений: 437
  • Спасибо получено: 165
А время, дата, месяц, год делается с помощью переменных?
(^_^)
Этот форум слишком умный для меня
Администратор запретил публиковать записи гостям.

(Ace) ARK Game Time RGSS3 11 года 1 мес. назад #65177

  • Arykray
  • Arykray аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 595
  • Спасибо получено: 52
В принципе да, в скрипте изменить значения переменных для стортовых даты и времени.
Или же на карте создать событие, вставить туда скрипт с кодом: data_change(год, месяц, день, час, минута)
Пример: data_change(3765, 04, 29, 15, 00) - после вызова события дата будет установлена на 29 Апреля 3765 года, а время будет 15:00.
Чем сложнее задача - тем проще ее не решать.

Последнее редактирование: 11 года 1 мес. назад от Arykray.
Администратор запретил публиковать записи гостям.

(Ace) ARK Game Time RGSS3 11 года 1 мес. назад #65180

  • DarkKel
  • DarkKel аватар
  • Вне сайта
  • Мастер
  • Сообщений: 173
  • Спасибо получено: 24
Т.е. если в скорости стоит 60 - то 1 игровая минута=1 реальная минута ?
Администратор запретил публиковать записи гостям.

(Ace) ARK Game Time RGSS3 11 года 1 мес. назад #65181

  • Arykray
  • Arykray аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 595
  • Спасибо получено: 52
Наоборот, если в скорости 1 то минута примерно равна реальной минуте.
1-медлено 60-быстро
Скорость 60 примерно равно 16.5 милисекунд
Чем сложнее задача - тем проще ее не решать.

Администратор запретил публиковать записи гостям.

(Ace) ARK Game Time RGSS3 11 года 1 мес. назад #65184

  • Dprizrak1
  • Dprizrak1 аватар
  • Вне сайта
  • Просветлённый
  • Призрак обитающий в стенах Академии
  • Сообщений: 437
  • Спасибо получено: 165
Спасибо за такой скрипт))
(^_^)
Этот форум слишком умный для меня
Администратор запретил публиковать записи гостям.

(Ace) ARK Game Time RGSS3 11 года 1 мес. назад #65186

  • DarkKel
  • DarkKel аватар
  • Вне сайта
  • Мастер
  • Сообщений: 173
  • Спасибо получено: 24
А может все таки свести значения скорости к реальному времени ? )
Для более "точных" настроек.
Администратор запретил публиковать записи гостям.

(Ace) ARK Game Time RGSS3 11 года 1 мес. назад #65187

  • Arykray
  • Arykray аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 595
  • Спасибо получено: 52
Я уже думал над этим, есть пару вещей которые заставили отказаться от этой идеи.
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. Скрипт писался в основном для фэнтези игр где и сутки короче, и год меньше, и месяца называются не так, а не для исторических, это просто излишки производства.
Чем сложнее задача - тем проще ее не решать.

Последнее редактирование: 7 года 10 мес. назад от Arykray.
Администратор запретил публиковать записи гостям.

(Ace) ARK Game Time RGSS3 11 года 1 мес. назад #65233

  • sinder
  • sinder аватар
  • Вне сайта
  • Мастер
  • Сообщений: 159
  • Спасибо получено: 154
  • Программист JavaScript Разработчик2 место Готв3 место ГотвПроект месяца 2 место
А можно пихнуть сюда не только отображение часа и минуты, а и секунд? Еще было бы круто, вызывать эти часы не только в меню, для себя это я и сам могу сделать, но все же. Так же я бы не отказался от возможности ставить часы на паузу.
Администратор запретил публиковать записи гостям.

(Ace) ARK Game Time RGSS3 11 года 1 мес. назад #65235

  • Cerberus
  • Cerberus аватар
  • Вне сайта
  • Модератор
  • Собака злая
  • Сообщений: 2269
  • Спасибо получено: 1182
  • Проект месяца 1 местоОрганизатор конкурсов2 место 3 место Готв2 место Сбитая кодировкаПобедитель Сбитой кодировкиПроект месяца 2 место3 местоПрограммист JavaScript Проект месяца 3 место
Из предыдущего сообщения:Arykray пишет:
Замениту 121 сктроку в скрипте на text = sprintf("%02d:%02d:%02d", hour, min, sec) для отображеня секунд.
Жуть болотная, на лапках, в тапках и с пулемётом...
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: sinder

(Ace) ARK Game Time RGSS3 11 года 1 мес. назад #65236

  • sinder
  • sinder аватар
  • Вне сайта
  • Мастер
  • Сообщений: 159
  • Спасибо получено: 154
  • Программист JavaScript Разработчик2 место Готв3 место ГотвПроект месяца 2 место
Ок спасибо, завтыкал, но мне больше пауза нужна)
Администратор запретил публиковать записи гостям.

(Ace) ARK Game Time RGSS3 11 года 1 мес. назад #65243

  • DeadElf79
  • DeadElf79 аватар
  • Вне сайта
  • Звездный Страж
  • Сообщений: 3147
  • Спасибо получено: 2650
  • Программист RubyОрганизатор конкурсовПроект месяца 2 местоПроект месяца 1 местоУчительВетеран1 место в ГотвПисатель 3 место3 место
[qoute]Месяц Двух Лун, Месяц Красных Закатов, месяц Урожая[/quote]
Месяц Спать, Месяц Работать... *красные глаза*

Интересная вещь, хотя и не пригодится мне. Спасибо за труды :laugh:
Последнее редактирование: 11 года 1 мес. назад от DeadElf79.
Администратор запретил публиковать записи гостям.

(Ace) ARK Game Time RGSS3 10 года 10 мес. назад #67667

  • Amphilohiy
  • Amphilohiy аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 547
  • Спасибо получено: 666
  • Программист RubyУчитель2 место ГотвПобедитель Сбитой кодировкиОратор
По неким остоятельствам прошелся по скрипту, ну и думаю дать пару советов/замечаний.
1) Посмотреть текущую дату с помощью скрипта сложно (например поставив в событие условие скриптом, то я бы сказал нереально, считай все в ручную считать)
2) Нет псевдонимов (alias), ни в модуле DataManager, ни в классе Scene_Menu. То бишь совместимость тут сильно прихрамывает.
Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Администратор запретил публиковать записи гостям.

(Ace) ARK Game Time RGSS3 10 года 8 мес. назад #68063

  • yuryol
  • yuryol аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1704
  • Спасибо получено: 2731
  • 2 место Организатор конкурсов1 место в Готв3 место ГотвУчительОраторПобедитель конкурсаКомпозитор
можно ли с помощью этого скрипта сделать условие в духе "если такой-то день такого-то года,то тебе даются деньги/оружие/вещи"?
Последнее редактирование: 10 года 8 мес. назад от yuryol.
Администратор запретил публиковать записи гостям.

(Ace) ARK Game Time RGSS3 10 года 8 мес. назад #68133

  • Arykray
  • Arykray аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 595
  • Спасибо получено: 52
Думаю вполне, по проверке условий.
Извиняйте, комп продал, у меня сейчас камменный век, проц на 950 ГЦ, только читать и писать могу)))
Чем сложнее задача - тем проще ее не решать.

Администратор запретил публиковать записи гостям.
Модераторы: NeKotZima
Время создания страницы: 0.250 секунд