#==============================================================================
# ■ 模拟真实时间流逝 - By 影 2013.8
# V 1.0
# 在设定区进行设定便可以操作这个脚本的功能。
# 本脚本通过游戏时长来进行模拟。
#==============================================================================
module MoVTime
#============================================================================
# ■ 设定区A - 基础设定
#============================================================================
MoVTimeOn = true
#MoVTimeOn - 开关
VTIcon = 234
#VTIcon - 时间前的图标 设为0则不显示
Chro = "公元"
Sta_Year = 2013
Sta_Month = 8
Sta_Day = 30
Sta_Hour = 10
Sta_Min = 0
#以上设置游戏起始日期时间
Sta_WDay = 6
#Sta_WDay - 游戏起始星期几 0代表星期日
#============================================================================
# ■ 设定区A结束
#============================================================================
end
module MoChro
#============================================================================
# ■ 设定区B - 高级设定
#============================================================================
#AdvMode = false
#高级模式关闭,如果开启则可以进行闰年、大小月的设定
#【但是】我还没有完成这部分……所以暂时不可用
VTSpe = 60
#VTSpe - 现实中一秒对应游戏多少分钟
VTYearM = 12
#VTYearM - 游戏中一年多少月
VTMonthD = 30
#VTMonth - 游戏中一月多少天
VTDayH = 24
#VTDayH - 游戏中一天几小时
VTHourM = 60
#VTHourM - 游戏中一小时几分钟
VTWeeks = ["周日","周一","周二","周三","周四","周五","周六"]
#VTWeeks - 设定各星期的称谓,有意向的话也可以把所谓“星期”改为其他的周期
#比如八天为一个周期
#============================================================================
# ■ 设定区B结束
#============================================================================
end
#==============================================================================
# ■ Window_MoVTime
#------------------------------------------------------------------------------
# 菜单画面中,显示当前游戏内部虚拟时间的窗口
#==============================================================================
class Window_MoVTime < Window_Base
#--------------------------------------------------------------------------
# ● 初始化对象
#--------------------------------------------------------------------------
def initialize
super(0,0,160,80)
temp = datetime.split("@")
date = temp[0]
time = temp[1]
if MoVTime::VTIcon != 0
draw_icon(MoVTime::VTIcon,0,0,enabled = true)
end
if MoVTime::Chro != ""
draw_text(0,0,130,25,MoVTime::Chro + " " + date,2)
else
draw_text(0,0,130,25,date,2)
end
draw_text(0,30,130,25,time,2)
end
#--------------------------------------------------------------------------
# ● 更新画面
#--------------------------------------------------------------------------
def update
contents.clear
temp = datetime.split("@")
date = temp[0]
time = temp[1]
if MoVTime::VTIcon != 0
draw_icon(MoVTime::VTIcon,0,0,enabled = true)
end
if MoVTime::Chro != ""
draw_text(0,0,130,25,MoVTime::Chro + " " + date,2)
else
draw_text(0,0,130,25,date,2)
end
draw_text(0,30,130,25,time,2)
end
#--------------------------------------------------------------------------
# ● 处理时间
#--------------------------------------------------------------------------
def datetime
st = $game_system.playtime_s
st2 = 0
tempM = 0
temp3 = 0
temp22 = 0
temp21 = 0
temp20 = 0
dt = ""
temp1 = st.split(":")
temp20 = temp1[0].to_i
temp21 = temp1[1].to_i
temp22 = temp1[2].to_i
temp20 = temp20 * (60^2)
temp21 = temp21 * 60
temp22 = temp22
st2 = st2 + temp20 + temp21 + temp22
tempM = MoChro::VTYearM * MoChro::VTMonthD
tempM = tempM * MoChro::VTDayH * MoChro::VTHourM
temp3 = (st2 * MoChro::VTSpe) % tempM
st2 = st2 - temp3 * tempM
dt = temp3.to_s + "年"
tempM = MoChro::VTMonthD * MoChro::VTDayH * MoChro::VTHourM
temp3 = (st2 * MoChro::VTSpe) % tempM
st2 = st2 - temp3 * tempM
dt = dt + temp3.to_s + "月"
tempM = MoChro::VTDayH * MoChro::VTHourM
temp3 = (st2 * MoChro::VTSpe) % tempM
st2 = st2 - temp3 * tempM
dt = dt + temp3.to_s + "日" + "@"
#这个@很重要
tempM = MoChro::VTHourM
temp3 = (st2 * MoChro::VTSpe) % tempM
st2 = st2 - temp3 * tempM
dt = dt + temp3.to_s + ":"
temp3 = st2 * MoChro::VTSpe
dt = dt + temp3.to_s
return dt
end
end
#==============================================================================
# ■ Scene_Menu
#------------------------------------------------------------------------------
# 菜单画面
#==============================================================================
class Scene_Menu < Scene_MenuBase
alias mostart start
def start
mostart
if MoVTime::MoVTimeOn == true
creat_movtime_window
end
end
def creat_movtime_window
@movtime = Window_MoVTime.new
@movtime.x = 0
@movtime.y = @gold_window.y - 80
@movtime.width = @gold_window.width
@movtime.height = 80
end
end