Project1

标题: 虚拟日历[更新于: 2017.02.05] [打印本页]

作者: 余烬之中    时间: 2013-8-31 19:58
标题: 虚拟日历[更新于: 2017.02.05]
本帖最后由 余烬之中 于 2017-2-5 19:41 编辑

虚拟日历

功能、特性与设定


游戏内操作


脚本


示例工程


截图


求糖.zip (509.79 KB, 下载次数: 331, 售价: 100 星屑)

作者: 余烬之中    时间: 2013-8-31 20:49
本帖最后由 余烬之中 于 2014-6-21 18:12 编辑

@end55rpg 不用全局变量很麻烦啊……
RUBY 代码复制
  1. VTData::vtshows(MoVTime::VTIV,MoVTime::VTHV,MoVTime::VTDV,MoVTime::VTMV,
  2.     MoVTime::VTYV,MoChro::VTDayH,MoChro::VTHourM,MoChro::VTMonthD,
  3.     MoChro::VTYearM)

这么长一串就是……而且当初写了两个设定模块 后来引用的时候完全晕了@.@ 等本人想合并的时候又太麻烦了……


所以重写才是完美的解决办法
作者: ninitiange2    时间: 2013-8-31 22:13
噢终于有VA时间流逝的脚本了,←【典型伸手党
楼楼辛苦了~膜拜中...
不知道可不可以设定在特定的时间段出现特定的事件呢←【谁来把这个贪得无厌的人拖走……

作者: 找到密码再睡哦    时间: 2013-8-31 23:01
.好长,卤煮谢谢
作者: sens1992    时间: 2013-9-1 11:27
能设计一个函数实现调用脚本判断当前时间段吗 ?
用来实现条件判断,比如call.if(night),是晚上就返回一个true?能这样补几个函数吗。
作者: 余烬之中    时间: 2013-9-1 12:26
本帖最后由 余烬之中 于 2014-6-21 18:15 编辑

sens1992 发表于 2013-9-1 11:27
能设计一个函数实现调用脚本判断当前时间段吗 ?
用来实现条件判断,比如call.if(night),是晚上就返回一 ...


在脚本中你应该找得到这一段(找不到也没关系)
  1.   #--------------------------------------------------------------------------
  2.   # ● 计算所属时段
  3.   #--------------------------------------------------------------------------
  4.   def self.vtimez
  5.     case $vtime
  6.       when MoChro::Dawn .. MoChro::Morn
  7.         $VTZ = "黎明"
  8.       when MoChro::Morn .. MoChro::Noon
  9.         $VTZ = "上午"
  10.       when MoChro::Noon .. MoChro::Aft
  11.         $VTZ = "中午"
  12.       when MoChro::Aft .. MoChro::SunSet
  13.         $VTZ = "下午"
  14.       when MoChro::SunSet .. MoChro::Night
  15.         $VTZ = "黄昏"
  16.       when MoChro::Night .. 1440
  17.         $VTZ = "夜晚"
  18.       when 0 .. MoChro::Dark
  19.         $VTZ = "夜晚"
  20.       when MoChro::Dark .. MoChro::Dawn
  21.         $VTZ = "深夜"
  22.     end
  23.   end
复制代码
这一段是用于显示当前时段的,你可以在事件脚本中使用$VTZ
(主要是本人太懒,加上今晚就开学)


新版后此方法不再适用 提供了专用方法进行判断
作者: 我在孤岛等你    时间: 2013-9-2 20:43
本帖最后由 我在孤岛等你 于 2013-9-2 20:56 编辑

你这个好卡,而且时间过得太快,搞的电脑超慢。
看看这个吧,一点也不卡,
而且设置也很简单。



作者: 余烬之中    时间: 2013-12-15 15:08
12.15 修正了打开地图显示时过卡的BUG
估计是终板了
作者: 魔力的觉醒    时间: 2013-12-17 12:11
我在孤岛等你 发表于 2013-9-2 20:43
你这个好卡,而且时间过得太快,搞的电脑超慢。
看看这个吧,一点也不卡,
而且设置也很简单。

这个脚本 日站的 看过的!  
作者: 魔力的觉醒    时间: 2013-12-17 12:12
有爱的时间流逝   看看先!!!
作者: 7456zll    时间: 2013-12-27 21:36
额....求解释
作者: 魔力的觉醒    时间: 2014-1-14 10:47
我在孤岛等你 发表于 2013-9-2 20:43
你这个好卡,而且时间过得太快,搞的电脑超慢。
看看这个吧,一点也不卡,
而且设置也很简单。

每次看到这里 都!!   忍不住说一句!    游戏做出就有权利加密!   
作者: 624183062    时间: 2014-1-29 21:46
lz,你这个和地图名称显示重叠了
作者: hoperecall    时间: 2014-1-31 01:48
请问如何修改游戏时间的流逝速度?
作者: hoperecall    时间: 2014-1-31 16:51
本帖最后由 hoperecall 于 2014-1-31 17:32 编辑

存档后关闭游戏,再打开读档会跳出。。

QQ图片20140131165119.jpg (12.89 KB, 下载次数: 30)

QQ图片20140131165119.jpg

作者: hoperecall    时间: 2014-2-1 09:34
由于点评不能插入图片,于是我就三连了- -
奇葩问题,在游戏中返回标题再读档没有问题,一切正常
打开游戏后重新开始也没有问题,一切正常
打开游戏后读档报错

QQ图片20140201093215.jpg (14.23 KB, 下载次数: 26)

QQ图片20140201093215.jpg

作者: Arbot幻    时间: 2014-2-2 09:36
同样读档报错!
作者: 小唯子    时间: 2014-2-9 20:32
修改过时间速度后,还是感觉不理想,有没有更好的方法。。
作者: 余烬之中    时间: 2014-4-6 19:15
重写完成 → →
脚本操作上没有什么变化 但是不能和以前的版本通用存档了
推迟了两个月 没办法 我懒…………
更新提醒:
@hoperecall @Arbot幻 @小唯子
作者: 1397308421    时间: 2014-4-7 07:20
本帖最后由 1397308421 于 2014-4-7 07:25 编辑

表示在脚本里设置好的室内地图编号,可是玩游戏时室内地图的色调居然也随时间变化
请问可不可以改成在地图注解了设置室内色调啊

QQ图片20130407072422.jpg (12.25 KB, 下载次数: 28)

QQ图片20130407072422.jpg

S_5`UVRKH[$OW12][J`@7VT.jpg (176.15 KB, 下载次数: 29)

S_5`UVRKH[$OW12][J`@7VT.jpg

WNEU`(D4DE3W`914P(_G655.jpg (27.09 KB, 下载次数: 33)

WNEU`(D4DE3W`914P(_G655.jpg

作者: 化螺耕    时间: 2014-4-7 12:38
其实是很佩服楼主的脚本技术而来的,感觉这计算量好大
作者: 岛国左近    时间: 2014-4-8 20:51
我想把时间改的慢一点。跟真实时间一样慢,可是改完后就什么都不显示了,怎么办{:2_254:}
作者: 星辰大海    时间: 2014-4-8 21:22
好厉害的样子
作者: 7795593    时间: 2014-5-22 23:30
报告楼主。12月30日之后变了0月0日。。。。
作者: 736248591    时间: 2014-5-24 21:04
有BUG
如图

1.png (298.25 KB, 下载次数: 20)

1.png

2.png (268.97 KB, 下载次数: 20)

2.png

3.png (12.91 KB, 下载次数: 19)

3.png

作者: 余烬之中    时间: 2014-5-24 21:20
标题: 虚拟日历 2014.04.06更新
本帖最后由 余烬之中 于 2014-5-24 21:29 编辑
736248591 发表于 2014-5-24 21:04
有BUG
如图

版本更新时不小心删掉了一点东西……
你可以找到脚本346行 加上【Smomo::】
或者把那一段直接替换为下面的:
  1. #==============================================================================
  2. # ■ Smomo.calendar(*a, &b)
  3. #==============================================================================
  4. def Smomo.calendar(*a, &b)
  5.   Smomo::Calendar.interpreter(*a, &b)
  6. end
复制代码
但是 因为刚刚完成了一次更新(2.6)同时修复了另一个Bug 所以 可以参考楼下的那个补丁……
作者: 余烬之中    时间: 2014-5-24 21:28
7795593 发表于 2014-5-22 23:30
报告楼主。12月30日之后变了0月0日。。。。

已放出新版
也可以直接使用补丁(贴在原脚本以下)
  1. #==============================================================================#
  2. # 用于【虚拟日历(By 影月千秋)】V2.5的补丁,将升级到V2.6
  3. #                                                          影月千秋 2014.05.24 #
  4. #==============================================================================#
  5. module Smomo::Calendar
  6.   System = [
  7.     # ["单位", 满多少进一(最大值), 以零起始(真伪值)],
  8.     ["分", 60, true],
  9.     ["时", 24, true],
  10.     ["日", 30],
  11.     ["月", 12],
  12.     ["年", 9999],
  13.   ]
  14.   # 设定计时制,最后一个数据的单位与计时变量的单位统一
  15.    # 可以突破公元历法的限制
  16.     # 比如:636号时间线3145纪6887年6月4日 21:39:44:03
  17.    # 这里有几项 上面的Var就会占用几个变量
  18.    # 从上往下 单位由小到大 如:分-->时-->日-->月-->年
  19.    # 有的单位允许以0为值 比如 3:00 有的不行 比如 3月1日
  20.     # 默认不允许0值 如果需要允许 请将“以零起始”填为【true】
  21.   class << self
  22.     def ini
  23.       System.each_index{|i| $game_variables[Var + i] = Start[i]}
  24.       [url=home.php?mod=space&uid=43863]@zone[/url] = ""
  25.       @tone = Tone.new(0, 0, 0, 0)
  26.       @need_change = false
  27.       @period = init_period
  28.       @prd = Start_PeriodName
  29.       check_period_and_zone
  30.     end
  31.     def ensure_time_legal
  32.       System.each_with_index do |(u, m, o), i|
  33.         while $game_variables[Var + i] > m - (o ? 1 : 0)
  34.           $game_variables[Var + i] -= m
  35.           $game_variables[Var + i + 1] += 1
  36.         end
  37.         while $game_variables[Var + i] < 1 - (o ? 1 : 0)
  38.           $game_variables[Var + i] += m
  39.           $game_variables[Var + i + 1] -= 1
  40.         end
  41.       end
  42.     end
  43.   end
  44. end
复制代码

作者: 7795593    时间: 2014-5-24 22:13
用下了~楼主辛苦了{:2_270:}
作者: situkei    时间: 2014-6-13 20:36

设置开始时间的时候每次带入 time_now 怎么搞?
作者: 余烬之中    时间: 2014-6-16 09:51
situkei 发表于 2014-6-13 20:36
设置开始时间的时候每次带入 time_now 怎么搞?


把这个脚本插在原脚本下方
  1. class << Smomo::Calendar
  2.   _def_ :ini, :b do
  3.     (Time.now.to_s)[/(\d+)-(\d+)-(\d+)\s*(\d+):(\d+)/]
  4.     Start = [$5.to_i, $4.to_i, $3.to_i, $2.to_i, $1.to_i]
  5.   end
  6. end
复制代码

作者: sashitian    时间: 2014-7-7 01:11
大神的脚本实在是太棒了!!尤其是使用变量控制时间实在是深得人心!!!
之前下了一个国外的脚本,但是貌似不能和事件互动,而您的脚本完美地解决了这个问题!!
但有一个小问题,不知道这个算不算是BUG。。。(也不知道是不是我的设置问题。。)
我利用事件制作了睡觉的效果,但是起来以后时段与日期别名都没有变。
事件设置

睡觉前

睡觉后

可以的话,希望大神可以解决一下这个问题。(*≧m≦*)

作者: taroxd    时间: 2014-7-7 07:44
本帖最后由 taroxd 于 2014-7-7 07:50 编辑
sashitian 发表于 2014-7-7 01:11
大神的脚本实在是太棒了!!尤其是使用变量控制时间实在是深得人心!!!
之前下了一个国外的脚本,但是貌 ...


楼主短时间内不会在了呢~

我简单看了一下脚本,是脚本本身的bug。我已经通知了作者这个bug,但是短时期内应该不会得到修复。

你可以尝试调用事件脚本
RUBY 代码复制
  1. Smomo::Calendar.prd += 1

来推进一个周期(未测试)
作者: zhaoxun96    时间: 2014-7-28 20:56
报错!在将  “Map = ”设置为:none时(即不在地图显示日历,仅在菜单中显示),按下esc呼出菜单会出错
作者: 余烬之中    时间: 2014-7-28 20:59
本帖最后由 余烬之中 于 2014-7-28 21:20 编辑
zhaoxun96 发表于 2014-7-28 20:56
报错!在将  “Map = ”设置为:none时(即不在地图显示日历,仅在菜单中显示),按下esc呼出菜单会出错 ...


抱歉我犯了一个傻逼的错误 稍后我将修改这个BUG 当然你也可以直接这样做:

把脚本181行 这一段:
RUBY 代码复制
  1. _def_ :call_menu do |*args|
  2.     @mocalendar_window.contents.clear
  3.   end
  4. end


改成:
RUBY 代码复制
  1. _def_ :call_menu do |*args|
  2.     return if Smomo::Calendar::Map == :none
  3.     # 在下面添加自定义内容
  4.     @mocalendar_window.contents.clear
  5.   end
  6. end


最终那一块整体是这样的:
RUBY 代码复制
  1. #==============================================================================
  2. # ** Scene_Map 建立地图场景的窗口
  3. #==============================================================================
  4. class Scene_Map
  5.   _def_ :create_all_windows do |*args|
  6.     return if Smomo::Calendar::Map == :none
  7.     # 在下面添加自定义内容
  8.     @mocalendar_window = Window_MoMapCalendar.new
  9.   end
  10.   _def_ :call_menu do |*args|
  11.     return if Smomo::Calendar::Map == :none
  12.     # 在下面添加自定义内容
  13.     @mocalendar_window.contents.clear
  14.   end
  15. end


谢谢
作者: zhaoxun96    时间: 2014-7-28 22:33
余烬之中 发表于 2014-7-28 20:59
抱歉我犯了一个傻逼的错误 稍后我将修改这个BUG 当然你也可以直接这样做:

把脚本181行 这一段:

嗯,感谢这么快就回复我,我还发现通过变量操纵加速时间不会改变时间段(也就是说我就算加到晚上11点还是大上午的色调2333),而且加日期的话周期也不会变...(貌似31L也是这个问题,不过我看不到他的图...)
加油,我一直很期待这个脚本的。
作者: 余烬之中    时间: 2014-7-31 14:27
那个问题我当时只是随便改了一下 以为已经修复了 没想到还留在那里
这次我自己测试了一下  应该没有问题了
操作方法还是不变的 原有的一切设置都可以继续使用
还有问题再@我,希望没有这个必要了
脚本:GitHub

@sashitian @zhaoxun96  
作者: 子弹君    时间: 2014-9-6 20:36
(o゚ω゚o)我想要去掉公元和周六
作者: 子弹君    时间: 2014-9-6 22:53
为什么一进入城市就不显示色调了呢……
所有城市都是这样,一到野外就恢复了色调,也不是室内地图设定的问题,求解……
作者: 黑舞嗜    时间: 2014-9-7 19:34
请问LZ,我想要在某个时间段开启某个开关,这个能办到吗?
作者: 黑舞嗜    时间: 2014-9-7 19:50
额...公共事件判断的话求方法,大概说一下就行了
作者: 余烬之中    时间: 2014-9-7 19:57
黑舞嗜 发表于 2014-9-7 19:50
额...公共事件判断的话求方法,大概说一下就行了

条件分歧 如果 脚本 Smomo.calendar(:zone) == "夜晚"
  打开开关
否则
  关闭开关
结束分歧
作者: 暗黑圣之骑    时间: 2014-9-20 16:17
本帖最后由 暗黑圣之骑 于 2014-9-20 17:06 编辑

请问在设定时间后如何跳至对应的时间段,比如小时修改为22就跳至夜晚之类的,发现时间段的计数和时间的计数是分开独立的?

@余烬之中  
作者: 林乄小猫    时间: 2014-10-4 21:19

存档后重新读档报这个
作者: rohuay    时间: 2014-10-30 22:55
实在是太感谢LZ了~ 正愁能显示时间和昼夜的脚本~
不过想把虚拟时间显示的地方改到画面的顶部,但是不知道该怎么改……如果LZ能告诉我就好了~
作者: 1561496327    时间: 2014-11-5 19:07
菜单那个坐标想改一下,只看到x坐标 LZ给个方法谢谢
作者: 狂乱月眼    时间: 2014-12-7 20:33
本帖最后由 狂乱月眼 于 2014-12-7 20:42 编辑

试了一下【时间减去800】后弹错

360软件小助手截图20141207204126.png (16.21 KB, 下载次数: 24)

360软件小助手截图20141207204126.png

作者: hiengping1    时间: 2014-12-21 15:03
请问一下 要怎么设置睡觉后时间前进8个小时 研究了好久 还是弄不出来

谢谢~~
作者: 77767264    时间: 2014-12-30 03:42
本帖最后由 77767264 于 2014-12-30 04:06 编辑

请教下在地图上如何把底色去掉只要文字呢?不想要下面那个渐变条
还有如何实现在地图上右端对齐而不是左端对齐呢?
作者: 703001848    时间: 2015-2-1 17:37
经验不够怎么破。。
作者: t64744901    时间: 2015-8-7 12:42
@余烬之中
时间不动
求所有原因
作者: 蓝天下的女孩    时间: 2015-8-31 01:35
本帖最后由 蓝天下的女孩 于 2015-8-31 01:39 编辑

orz尽力了还是解决不能……
core在v1.51,本体是v3.3

原本改变量+小时,时段跟色调都不会改,换成v3.3就能改了……
但是——问题是——周期死活不改

+了天数,+了小时到第二天,周期完全一动不动,还是那样不变……
只有在时间自己跳的时候才会刷新周期……
也没有手动加周期的办法……Smomo.calendar(:prd)只能获取但是并不能直接+=1
试过把脚本放在最靠近main还是不行

看着各种说「已经修复好了」,「谢谢」,
自己怎么都周期不变感觉像穿越了似的……

永远的周六真好啊,都不用上学了
——才怪呢,
想去学校做任务、会因为学校周末天天放假、而没办法进去啦

求像修正时段那样修正一下周期……
作者: 1561496327    时间: 2015-9-11 21:05

问一下如何改这个窗口的Z高度?谢谢
作者: 江户川洛奇    时间: 2015-9-12 16:07
有没有办法用步数的增加来增加时间?
作者: 凌美琪    时间: 2015-12-22 22:10
{:2_276:}天哪1000块!!!这块糖把我卖了也买不起啊
作者: 阿薩男爵    时间: 2015-12-23 17:08
好东西,糖已给,不过在测试时也发现一个问题,前面也有人提过了,不过貌似并没给出可行的解决方案,
本想设置一个旅馆,对话后睡到第二天清晨6点,时间跳到第二天没问题,跳至6点也没问题,但是时段却没改变,我黄昏时候睡的,第二天起来早上6点时段却还是黄昏,有什么好办法可以设置吗,否则的话实用性大打折扣啊。
作者: 天涯孤客    时间: 2016-2-1 17:12
作者还在么?  我用 变量调整了时间, 比如 ,本来是  “时(变量)”=7  我把他直接更改成  “时”=20 。  但是天色并没有跟着变。下面的周期名字依然是“上午”也没跟着变? 怎么回事?
作者: zxj520wy    时间: 2016-3-16 15:15
要多少经验?
作者: 战斗的双手    时间: 2016-3-23 18:51
Scrip'Calendar' line 94:SyntaxError occurred.
unknown regexp options -fal
premature end of char-class:/url]
这个错误是为什么?请指教!
作者: 战斗的双手    时间: 2016-3-23 19:09
已解决!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
作者: 战斗的双手    时间: 2016-3-23 19:17
新问题又来了!
Script'Calendar' line 231:ZeroDivisionError occurred.
divided by 0
是问什么?
作者: 战斗的双手    时间: 2016-3-25 20:42
多谢提点!{:2_275:}
作者: KongBai    时间: 2016-4-30 01:08
点赞!!!!!
作者: 857480464    时间: 2016-6-23 11:11
哇…………………………………………不错
作者: dlsts    时间: 2016-6-27 05:45


我设置月份上限为4 如何在显示里
将1月份显示为春 2月份显示为夏 3月份显示为秋 4月份为冬呢
还有最好可以让事件或脚本可以识别 春夏秋冬变量

作者: dsjaaa    时间: 2016-7-24 14:15
这个脚本不错,必须力顶ing
作者: 杰总    时间: 2016-7-30 17:23
很严重的问题,楼上有多次提到,可惜都没得到解决。
问题是:周期时段就是那个黄昏晚上早上的,它变化和小时的变化是没有关联的,各变个的。
理论上来说时间段应该随着小时的变量的改变而改变。
这样就导致一个问题,单纯的改变小时的变量来加快时间的推进,例如睡觉,昏迷,种种需要跳跃时间的事件就无法达成。
看这个帖子好像已经是很早之前的帖子了...不知道现在楼主还在不在能解决这个问题...
本人不懂脚本...但有一颗想做出好游戏的心,力不从心,所以就需要到处伸手,很是无奈,非常希望有人能解决这个问题,我表示由衷的感谢...
作者: 啼迹天渊    时间: 2016-10-21 21:54
{:2_275:}哇
作者: wwla703    时间: 2016-11-24 05:27
请问有没有办法能用开关控制 是否在地图上显示时间呢......
作者: yaohongde    时间: 2016-12-3 13:10
请问可以到达晚上是调用一个公共事件吗,新手不会,我有个阳光脚本到晚上就变得…了
作者: yaohongde    时间: 2016-12-3 20:42
已经解决,希望以后可以涌入灯光脚本这样就到晚上就可以点灯了,这脚本真的很棒~!
作者: 余烬之中    时间: 2017-2-5 19:43

懒成一条死狗的余烬在今天进行了一次脚本更新并下定决心这次绝对不会再有 bug 且以后不再对此脚本进行更新
作者: rockmanx    时间: 2017-3-3 12:41
{:2_249:}

作者: 酱油娘    时间: 2017-8-9 03:59
虽然我很穷,还是把糖给买了。为了正义!
话说好像日站有个功能差不多的呀……
两者都没有战斗时根据回合变化自动即时的功能和平时如果做了什么简单备注就走时间的方便功能,还得一个一个的变量。不够便利……
作者: y2315187236    时间: 2017-8-12 16:25
在哪里修改位置啊,我的地图变量脚本和这个发生了冲突,因为位置一样啊(急求)
作者: qrb1026331406    时间: 2017-11-15 10:06
楼主,请问这个脚本能用到MV上吗
作者: 偶系口    时间: 2018-3-12 18:04
支持  不过不够钱啊  啊啊啊啊啊
作者: mononobe123    时间: 2018-8-12 12:17
怎麽固定年份?也就是說年份不會改變
作者: kk9911    时间: 2019-4-28 23:04
有办法在事件中隐藏地图上的时间显示吗
作者: 呆瓜男子汉    时间: 2019-7-11 01:26
好东西,插件
作者: yxd5108    时间: 2020-11-2 09:44
不错~!
作者: yxd5108    时间: 2020-11-2 09:44
仔细研究一下吧~!!!!@
作者: az1051647181    时间: 2022-3-16 22:59
大佬,买便宜点被,100,消费不起呀,





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1