本帖最后由 许俊兴 于 2014-8-14 11:37 编辑 网上找的脚本,如何改到右下角,如何改成2014年8月01日08:30:30 RUBY 代码复制#======================================================== ...
#==============================================================================# ■ 时间系统#------------------------------------------------------------------------------# by 八云 紫#============================================================================== #==============================================================================# ■ Time_byz#------------------------------------------------------------------------------# 定义 时间相关的 信息。#============================================================================== module Time_byz #--------------初始化定义--------------- # 起始时间 [秒,分,时,日,月, 年] INIT_TIME = [30,30,08,01,08,2014] #--------------时间格式定义------------- # 时间流失方式 # true.. 按帧数的倍数流失;false.. 按现实时间流失 TIME_MODULE = true #---------------速度定义---------------- # 流失速度(越大速度越慢) TIME_SPEED = 60 # 流失速度单位 # 1..时;2..分;3..秒 TIME_UNIT = 3 #---------------事件定义---------------- TIME_EVENT = { # 事件的起始条件就是时间,但是时间的格式要与起始时间的相同。 # 事件使用的是 公共事件,为了避免使用太多的公共事件,所以增加变量操作, # 以便于在相同的公共事件里可以使用条件分歧。 # [秒,分,时,日,月, 年] => [变量ID,变量改变后的值,公共事件ID] [00,59,23,28,02,2008] => [1, 1, 1] } # 这个不要去掉 #---------------窗口定义---------------- WINDOW_X = 0 WINDOW_Y = 0 =begin --------------------------------------- 时间间隔的判断 --------------------------------------- 1. 首先需要先定义一个计时器 $game_system.set_byz_timer(id) 其中的 id 可以是任何数字,字符串。 2. 然后在需要计算时间间隔的地方使用 条件分歧 里的脚本, 里面可以写上 $game_system.after_time(id) > 5 这里的 id 要和定义的时候一致。 这个的意思是 时间经过 5秒后..... =endend #==============================================================================# ■ Game_System#------------------------------------------------------------------------------# 处理系统附属数据的类。也可执行诸如交通工具、 BGM 等管理之类的功能。# 本类的实例请参考$game_system 。#============================================================================== class Game_System #-------------------------------------------------------------------------- # ● 定义实例变量 #-------------------------------------------------------------------------- attr_accessor :time_now attr_accessor :byz_timer #-------------------------------------------------------------------------- # ● 初始化对像 #-------------------------------------------------------------------------- alias old_initialize initialize def initialize if Time_byz::TIME_MODULE year = Time_byz::INIT_TIME[5]; mon = Time_byz::INIT_TIME[4]; day = Time_byz::INIT_TIME[3]; hour = Time_byz::INIT_TIME[2]; min = Time_byz::INIT_TIME[1]; sec = Time_byz::INIT_TIME[0]; @time_now = Time.local(year, mon, day, hour, min, sec); else @time_now = Time.new; end @byz_timer = [] old_initialize end #-------------------------------------------------------------------------- # ● 增加时间 #-------------------------------------------------------------------------- def add_time(unit) case unit when 3 @time_now += 1; when 2 @time_now += 60; when 1 @time_now += 3600; end end #-------------------------------------------------------------------------- # ● 设定时间计时器 #-------------------------------------------------------------------------- def set_byz_timer(id) @byz_timer[id] = @time_now; end #-------------------------------------------------------------------------- # ● 计算时间 (秒数) #-------------------------------------------------------------------------- def after_time(id) return 0 if @byz_timer[id] == nil; return @time_now - @byz_timer[id]; endend#==============================================================================# ■ Window_Byz_Time#------------------------------------------------------------------------------# 调试画面、个别显示开关及变量的窗口。#============================================================================== class Window_Byz_Time < Window_Base #-------------------------------------------------------------------------- # ● 初始化对像 # x : 窗口 X 座标 # y : 窗口 Y 座标 #-------------------------------------------------------------------------- def initialize(x, y) super(x, y, 170, 87); if Time_byz::TIME_MODULE @time_speed = Time_byz::TIME_SPEED; else @time_speed = 60; end [url=home.php?mod=space&uid=134219]@Time[/url] = @time_speed - 1; refresh; end #-------------------------------------------------------------------------- # ● 刷新 #-------------------------------------------------------------------------- def refresh [url=home.php?mod=space&uid=134219]@Time[/url] += 1; if @time_speed == @time; $game_system.add_time(Time_byz::TIME_UNIT); draw_time($game_system.time_now); event_run; [url=home.php?mod=space&uid=134219]@Time[/url] = 0; end end #-------------------------------------------------------------------------- # ● 描绘 #-------------------------------------------------------------------------- def draw_time(time) self.contents.clear; text = $game_system.time_now.strftime("%X") self.contents.draw_text(0, 0, 105, WLH, text, 2); text = $game_system.time_now.strftime("%Y年%m月%d日"); self.contents.draw_text(0, 32, 170, WLH, text); end #-------------------------------------------------------------------------- # ● 启动事件 #-------------------------------------------------------------------------- def event_run array = ($game_system.time_now.to_a)[0,6]; if Time_byz::TIME_EVENT[array] != nil unless !$scene.is_a?(Scene_Map) or $game_message.visible or $game_temp.in_battle variables_id = Time_byz::TIME_EVENT[array][0]; variables_number = Time_byz::TIME_EVENT[array][1]; commonevent_id = Time_byz::TIME_EVENT[array][2]; $game_variables[variables_id] = variables_number; $game_temp.common_event_id = commonevent_id; end end endend#==============================================================================# ■ Scene_Map#------------------------------------------------------------------------------# 处理地图画面的类。#============================================================================== class Scene_Map < Scene_Base alias old_start start #-------------------------------------------------------------------------- # ● 开始处理 #-------------------------------------------------------------------------- def start old_start; @time_window = Window_Byz_Time.new(Time_byz::WINDOW_X, Time_byz::WINDOW_Y); end alias old_terminate terminate #-------------------------------------------------------------------------- # ● 结束处理 #-------------------------------------------------------------------------- def terminate old_terminate; @time_window.dispose; end alias old_update update #-------------------------------------------------------------------------- # ● 更新画面 #-------------------------------------------------------------------------- def update old_update; @time_window.refresh; endend
#============================================================================== # ■ 时间系统 #------------------------------------------------------------------------------ # by 八云 紫 #============================================================================== #============================================================================== # ■ Time_byz #------------------------------------------------------------------------------ # 定义 时间相关的 信息。 #============================================================================== module Time_byz #--------------初始化定义--------------- # 起始时间 [秒,分,时,日,月, 年] INIT_TIME = [30,30,08,01,08,2014] #--------------时间格式定义------------- # 时间流失方式 # true.. 按帧数的倍数流失;false.. 按现实时间流失 TIME_MODULE = true #---------------速度定义---------------- # 流失速度(越大速度越慢) TIME_SPEED = 60 # 流失速度单位 # 1..时;2..分;3..秒 TIME_UNIT = 3 #---------------事件定义---------------- TIME_EVENT = { # 事件的起始条件就是时间,但是时间的格式要与起始时间的相同。 # 事件使用的是 公共事件,为了避免使用太多的公共事件,所以增加变量操作, # 以便于在相同的公共事件里可以使用条件分歧。 # [秒,分,时,日,月, 年] => [变量ID,变量改变后的值,公共事件ID] [00,59,23,28,02,2008] => [1, 1, 1] } # 这个不要去掉 #---------------窗口定义---------------- WINDOW_X = 0 WINDOW_Y = 0 =begin --------------------------------------- 时间间隔的判断 --------------------------------------- 1. 首先需要先定义一个计时器 $game_system.set_byz_timer(id) 其中的 id 可以是任何数字,字符串。 2. 然后在需要计算时间间隔的地方使用 条件分歧 里的脚本, 里面可以写上 $game_system.after_time(id) > 5 这里的 id 要和定义的时候一致。 这个的意思是 时间经过 5秒后..... =end end #============================================================================== # ■ Game_System #------------------------------------------------------------------------------ # 处理系统附属数据的类。也可执行诸如交通工具、 BGM 等管理之类的功能。 # 本类的实例请参考$game_system 。 #============================================================================== class Game_System #-------------------------------------------------------------------------- # ● 定义实例变量 #-------------------------------------------------------------------------- attr_accessor :time_now attr_accessor :byz_timer #-------------------------------------------------------------------------- # ● 初始化对像 #-------------------------------------------------------------------------- alias old_initialize initialize def initialize if Time_byz::TIME_MODULE year = Time_byz::INIT_TIME[5]; mon = Time_byz::INIT_TIME[4]; day = Time_byz::INIT_TIME[3]; hour = Time_byz::INIT_TIME[2]; min = Time_byz::INIT_TIME[1]; sec = Time_byz::INIT_TIME[0]; @time_now = Time.local(year, mon, day, hour, min, sec); else @time_now = Time.new; end @byz_timer = [] old_initialize end #-------------------------------------------------------------------------- # ● 增加时间 #-------------------------------------------------------------------------- def add_time(unit) case unit when 3 @time_now += 1; when 2 @time_now += 60; when 1 @time_now += 3600; end end #-------------------------------------------------------------------------- # ● 设定时间计时器 #-------------------------------------------------------------------------- def set_byz_timer(id) @byz_timer[id] = @time_now; end #-------------------------------------------------------------------------- # ● 计算时间 (秒数) #-------------------------------------------------------------------------- def after_time(id) return 0 if @byz_timer[id] == nil; return @time_now - @byz_timer[id]; end end #============================================================================== # ■ Window_Byz_Time #------------------------------------------------------------------------------ # 调试画面、个别显示开关及变量的窗口。 #============================================================================== class Window_Byz_Time < Window_Base #-------------------------------------------------------------------------- # ● 初始化对像 # x : 窗口 X 座标 # y : 窗口 Y 座标 #-------------------------------------------------------------------------- def initialize(x, y) super(x, y, 170, 87); if Time_byz::TIME_MODULE @time_speed = Time_byz::TIME_SPEED; else @time_speed = 60; end [url=home.php?mod=space&uid=134219]@Time[/url] = @time_speed - 1; refresh; end #-------------------------------------------------------------------------- # ● 刷新 #-------------------------------------------------------------------------- def refresh [url=home.php?mod=space&uid=134219]@Time[/url] += 1; if @time_speed == @time; $game_system.add_time(Time_byz::TIME_UNIT); draw_time($game_system.time_now); event_run; [url=home.php?mod=space&uid=134219]@Time[/url] = 0; end end #-------------------------------------------------------------------------- # ● 描绘 #-------------------------------------------------------------------------- def draw_time(time) self.contents.clear; text = $game_system.time_now.strftime("%X") self.contents.draw_text(0, 0, 105, WLH, text, 2); text = $game_system.time_now.strftime("%Y年%m月%d日"); self.contents.draw_text(0, 32, 170, WLH, text); end #-------------------------------------------------------------------------- # ● 启动事件 #-------------------------------------------------------------------------- def event_run array = ($game_system.time_now.to_a)[0,6]; if Time_byz::TIME_EVENT[array] != nil unless !$scene.is_a?(Scene_Map) or $game_message.visible or $game_temp.in_battle variables_id = Time_byz::TIME_EVENT[array][0]; variables_number = Time_byz::TIME_EVENT[array][1]; commonevent_id = Time_byz::TIME_EVENT[array][2]; $game_variables[variables_id] = variables_number; $game_temp.common_event_id = commonevent_id; end end end end #============================================================================== # ■ Scene_Map #------------------------------------------------------------------------------ # 处理地图画面的类。 #============================================================================== class Scene_Map < Scene_Base alias old_start start #-------------------------------------------------------------------------- # ● 开始处理 #-------------------------------------------------------------------------- def start old_start; @time_window = Window_Byz_Time.new(Time_byz::WINDOW_X, Time_byz::WINDOW_Y); end alias old_terminate terminate #-------------------------------------------------------------------------- # ● 结束处理 #-------------------------------------------------------------------------- def terminate old_terminate; @time_window.dispose; end alias old_update update #-------------------------------------------------------------------------- # ● 更新画面 #-------------------------------------------------------------------------- def update old_update; @time_window.refresh; end end
折叠内容标题(非必须)
折叠内容
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-11-15 17:22
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.