查看: 2121|回复: 4

[已经过期] 如何改时间和位置

[复制链接]
梦石
0
星屑
55
在线时间
109 小时
注册时间
2014-1-12
回帖
17
发表于 2014-8-14 11:35:31 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 许俊兴 于 2014-8-14 11:37 编辑

网上找的脚本,如何改到右下角,如何改成2014年8月01日08:30:30

[pre lang="ruby" line="1"]#==============================================================================
#                            ■ 时间系统
#------------------------------------------------------------------------------
#                             by 八云 紫
#==============================================================================

#==============================================================================
# ■ Time_byz
#------------------------------------------------------------------------------
#  定义 时间相关的 信息。
#==============================================================================

module Time_byz
  #--------------初始化定义---------------
  #  起始时间 [秒,分,时,日,月,  年]
  INIT_TIME = [55,58,23,28,02,2008]
  #--------------时间格式定义-------------
  # 时间流失方式
  # 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
    @Time = @time_speed - 1;
    refresh;
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    @Time += 1;
    if @time_speed == @time;
      $game_system.add_time(Time_byz::TIME_UNIT);
      draw_time($game_system.time_now);
      event_run;
      @time = 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[/pre]

点评

详见脚本开头的初始化定义  发表于 2014-8-14 12:25
梦石
0
星屑
250
在线时间
233 小时
注册时间
2013-8-2
回帖
544
发表于 2014-8-14 13:13:22 | 显示全部楼层
不知道是不是,{:2_276:}窗口定义改一下
我忘了,我要怎么遗忘。
回复

使用道具 举报

梦石
0
星屑
72
在线时间
51 小时
注册时间
2014-8-6
回帖
56
发表于 2014-8-15 03:06:03 | 显示全部楼层
脚本第16行,= =
回复

使用道具 举报

梦石
0
星屑
55
在线时间
109 小时
注册时间
2014-1-12
回帖
17
 楼主| 发表于 2014-8-15 10:10:33 | 显示全部楼层
本帖最后由 许俊兴 于 2014-8-15 10:12 编辑

可是我改过之后,却会

360软件小助手截图20140815100913.png
回复

使用道具 举报

梦石
0
星屑
55
在线时间
109 小时
注册时间
2014-1-12
回帖
17
 楼主| 发表于 2014-8-15 10:13:49 | 显示全部楼层
我明明改成了
[pre lang="ruby"line="1"]#==============================================================================
#                            ■ 时间系统
#------------------------------------------------------------------------------
#                             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
    @Time = @time_speed - 1;
    refresh;
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    @Time += 1;
    if @time_speed == @time;
      $game_system.add_time(Time_byz::TIME_UNIT);
      draw_time($game_system.time_now);
      event_run;
      @Time = 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[/pre]

点评

16行没问题呀  发表于 2014-8-16 10:59
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部