设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1733|回复: 4
打印 上一主题 下一主题

[已经解决] 怎么把这个现实时间存到变量里?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
152 小时
注册时间
2010-7-4
帖子
144
跳转到指定楼层
1
发表于 2012-1-6 16:44:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 「旅」 于 2012-1-15 13:05 编辑
  1. #==============================================================================
  2. #                            ■ 时间系统
  3. #------------------------------------------------------------------------------
  4. #                             by 八云 紫
  5. #==============================================================================

  6. #==============================================================================
  7. # ■ Time_byz
  8. #------------------------------------------------------------------------------
  9. #  定义 时间相关的 信息。
  10. #==============================================================================

  11. module Time_byz
  12.   #--------------初始化定义---------------
  13.   #  起始时间 [秒,分,时,日,月,  年]
  14.   INIT_TIME = [55,58,23,28,02,2008]
  15.   #--------------时间格式定义-------------
  16.   # 时间流失方式
  17.   # true.. 按帧数的倍数流失;false.. 按现实时间流失
  18.   TIME_MODULE = false
  19.   #---------------速度定义----------------
  20.   # 流失速度(越大速度越慢)
  21.   TIME_SPEED = 60
  22.   # 流失速度单位
  23.   # 1..时;2..分;3..秒
  24.   TIME_UNIT = 3
  25.   
  26.   #---------------事件定义----------------
  27.   TIME_EVENT = {
  28.     # 事件的起始条件就是时间,但是时间的格式要与起始时间的相同。
  29.     # 事件使用的是 公共事件,为了避免使用太多的公共事件,所以增加变量操作,
  30.     # 以便于在相同的公共事件里可以使用条件分歧。
  31.     # [秒,分,时,日,月,  年] => [变量ID,变量改变后的值,公共事件ID]
  32.       [00,59,23,28,02,2008] => [1, 1, 1]
  33.   }  # 这个不要去掉
  34.   
  35.   #---------------窗口定义----------------
  36.   WINDOW_X = 0
  37.   WINDOW_Y = 0
  38.   
  39. =begin

  40.   ---------------------------------------
  41.              时间间隔的判断
  42.   ---------------------------------------
  43.   1. 首先需要先定义一个计时器
  44.     $game_system.set_byz_timer(id)
  45.     其中的 id 可以是任何数字,字符串。
  46.   2. 然后在需要计算时间间隔的地方使用 条件分歧 里的脚本, 里面可以写上
  47.     $game_system.after_time(id) > 86400
  48.     这里的 id 要和定义的时候一致。 这个的意思是 时间经过 5秒后.....
  49.    
  50. =end
  51. end
  52.   
  53. #==============================================================================
  54. # ■ Game_System
  55. #------------------------------------------------------------------------------
  56. #  处理系统附属数据的类。也可执行诸如交通工具、 BGM 等管理之类的功能。
  57. # 本类的实例请参考$game_system 。
  58. #==============================================================================

  59. class Game_System
  60.   #--------------------------------------------------------------------------
  61.   # ● 定义实例变量
  62.   #--------------------------------------------------------------------------  
  63.   attr_accessor :time_now
  64.   attr_accessor :byz_timer
  65.   #--------------------------------------------------------------------------
  66.   # ● 初始化对像
  67.   #--------------------------------------------------------------------------  
  68.   alias old_initialize initialize
  69.   def initialize
  70.     if Time_byz::TIME_MODULE
  71.       year = Time_byz::INIT_TIME[5];
  72.       mon  = Time_byz::INIT_TIME[4];
  73.       day  = Time_byz::INIT_TIME[3];
  74.       hour = Time_byz::INIT_TIME[2];
  75.       min  = Time_byz::INIT_TIME[1];
  76.       sec  = Time_byz::INIT_TIME[0];
  77.       @time_now = Time.local(year, mon, day, hour, min, sec);
  78.     else
  79.       @time_now = Time.new;
  80.     end
  81.     @byz_timer = []
  82.     old_initialize
  83.   end
  84.   #--------------------------------------------------------------------------
  85.   # ● 增加时间
  86.   #--------------------------------------------------------------------------  
  87.   def add_time(unit)
  88.     case unit
  89.     when 3
  90.       @time_now += 1;
  91.     when 2
  92.       @time_now += 60;
  93.     when 1
  94.       @time_now += 3600;
  95.     end
  96.   end
  97.   #--------------------------------------------------------------------------
  98.   # ● 设定时间计时器
  99.   #--------------------------------------------------------------------------  
  100.   def set_byz_timer(id)
  101.     @byz_timer[id] = @time_now;
  102.   end
  103.   #--------------------------------------------------------------------------
  104.   # ● 计算时间 (秒数)
  105.   #--------------------------------------------------------------------------
  106.   def after_time(id)
  107.     return 0 if @byz_timer[id] == nil;
  108.     return @time_now - @byz_timer[id];
  109.   end
  110. end
  111. #==============================================================================
  112. # ■ Window_Byz_Time
  113. #------------------------------------------------------------------------------
  114. #  调试画面、个别显示开关及变量的窗口。
  115. #==============================================================================

  116. class Window_Byz_Time < Window_Base
  117.   #--------------------------------------------------------------------------
  118.   # ● 初始化对像
  119.   #     x      : 窗口 X 座标
  120.   #     y      : 窗口 Y 座标
  121.   #--------------------------------------------------------------------------
  122.   def initialize(x, y)
  123.     super(x, y, 170, 87);
  124.     if Time_byz::TIME_MODULE
  125.       @time_speed = Time_byz::TIME_SPEED;
  126.     else
  127.       @time_speed = 60;
  128.     end
  129.     @time = @time_speed - 1;
  130.     refresh;
  131.   end
  132.   #--------------------------------------------------------------------------
  133.   # ● 刷新
  134.   #--------------------------------------------------------------------------
  135.   def refresh
  136.     @time += 1;
  137.     if @time_speed == @time;
  138.       $game_system.add_time(Time_byz::TIME_UNIT);
  139.       draw_time($game_system.time_now);
  140.       event_run;
  141.       @time = 0;
  142.     end
  143.   end
  144.   #--------------------------------------------------------------------------
  145.   # ● 描绘
  146.   #--------------------------------------------------------------------------
  147.   def draw_time(time)
  148.     self.contents.clear;
  149.     text = $game_system.time_now.strftime("%X")
  150.     self.contents.draw_text(0, 0, 105, WLH, text, 2);
  151.     text = $game_system.time_now.strftime("%Y年%m月%d日");
  152.     self.contents.draw_text(0, 32, 170, WLH, text);
  153.   end
  154.   #--------------------------------------------------------------------------
  155.   # ● 启动事件
  156.   #--------------------------------------------------------------------------
  157.   def event_run
  158.     array = ($game_system.time_now.to_a)[0,6];
  159.     if Time_byz::TIME_EVENT[array] != nil
  160.       unless !$scene.is_a?(Scene_Map) or $game_message.visible or $game_temp.in_battle
  161.         variables_id     = Time_byz::TIME_EVENT[array][0];
  162.         variables_number = Time_byz::TIME_EVENT[array][1];
  163.         commonevent_id   = Time_byz::TIME_EVENT[array][2];
  164.         $game_variables[variables_id] = variables_number;
  165.         $game_temp.common_event_id = commonevent_id;
  166.       end
  167.     end
  168.   end
  169. end
  170. #==============================================================================
  171. # ■ Scene_Map
  172. #------------------------------------------------------------------------------
  173. #  处理地图画面的类。
  174. #==============================================================================

  175. class Scene_Map < Scene_Base
  176.   
  177.   alias old_start start
  178.   #--------------------------------------------------------------------------
  179.   # ● 开始处理
  180.   #--------------------------------------------------------------------------
  181.   def start
  182.     old_start;
  183.     @time_window = Window_Byz_Time.new(Time_byz::WINDOW_X, Time_byz::WINDOW_Y);
  184.   end
  185.   alias old_terminate terminate
  186.   #--------------------------------------------------------------------------
  187.   # ● 结束处理
  188.   #--------------------------------------------------------------------------
  189.   def terminate
  190.     old_terminate;
  191.     @time_window.dispose;
  192.   end
  193.   alias old_update update
  194.   #--------------------------------------------------------------------------
  195.   # ● 更新画面
  196.   #--------------------------------------------------------------------------
  197.   def update
  198.     old_update;
  199.     @time_window.refresh;
  200.   end
  201. end
复制代码
怎么把这个现实时间存到变量里呀!
[/img]

Lv2.观梦者

(?????)

梦石
0
星屑
736
在线时间
1327 小时
注册时间
2011-7-18
帖子
3184

贵宾

2
发表于 2012-1-6 16:46:11 | 只看该作者
本帖最后由 各种压力的猫君 于 2012-1-6 16:47 编辑

你想要现实时间?直接 Time.now
例:
  1. $game_variables[99] = Time.now
复制代码


你的这个脚本里也给出了一个公开变量:
  1. $game_system.time_now
复制代码
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
152 小时
注册时间
2010-7-4
帖子
144
3
 楼主| 发表于 2012-1-6 16:49:35 | 只看该作者
单独存小时的 怎么弄?
[/img]
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
152 小时
注册时间
2010-7-4
帖子
144
4
 楼主| 发表于 2012-1-8 17:42:04 | 只看该作者
本帖最后由 a88953327 于 2012-1-8 19:01 编辑

[@]各种压力的猫君[/@] 单独存小时的 怎么弄?
[/img]
回复

使用道具 举报

Lv3.寻梦者

小柯的徒弟

梦石
0
星屑
1535
在线时间
1157 小时
注册时间
2008-5-24
帖子
3085

贵宾

5
发表于 2012-1-15 13:06:40 | 只看该作者
本帖最后由 「旅」 于 2012-1-15 13:06 编辑
a88953327 发表于 2012-1-8 17:42
[@]各种压力的猫君[/@] 单独存小时的 怎么弄?


这个很简单~~~

$game_variables[99] = Time.now.hour

点评

在那个脚本里,$game_system.time_now 也是可以的  发表于 2012-1-15 14:02
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-29 00:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表