查看: 1916|回复: 8

[已经解决] 【求可实现】怎么运用编辑事件中脚本 修改脚本库脚本...

[复制链接]
梦石
0
星屑
50
在线时间
27 小时
注册时间
2013-4-10
回帖
12
发表于 2014-4-9 00:20:13 | 显示全部楼层 |阅读模式

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

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

×
比如 我想在修改脚本库中名为 A  的脚本46行 中的 CalOn = true改为  CalOn = false (影月千秋的时间流逝脚本)怎么运用在事件指令中脚本  该怎么填写 我试过直接写 CalOn = false  但是不行~求·指导 本人小白。
梦石
0
星屑
55
在线时间
116 小时
注册时间
2014-3-22
回帖
146
发表于 2014-4-9 08:55:03 | 显示全部楼层
那需要看CalOn是什么东西,是变量的话可以直接CalOn = $game_variables[X]来修改,是常量的话必须拿原脚本开刀。大写字母开头我估计是常量,LZ放脚本吧。
回复

使用道具 举报

梦石
0
星屑
50
在线时间
27 小时
注册时间
2013-4-10
回帖
12
 楼主| 发表于 2014-4-9 10:40:32 | 显示全部楼层
#==============================================================================
# ■ 时间流逝
#  作者:影月千秋
#  版本:2.3
#------------------------------------------------------------------------------
# ● 简介:
#   1.本脚本适用于【VX Ace】,用于XP或VX造成的错误本人不提供支持;发现BUG欢迎报告,
# 但本人不保证有时间修改
#   2.本脚本用于在游戏中模拟真实的时间流逝:昼夜、年份日期
#   3.战斗中、菜单中、对话中都不会进行计时,只有玩家在地图活动时才会计算
#   4.请为本脚本准备变量,默认占用81 - 85号变量,可以在【设定区A】设定
#   5.请为本脚本准备开关,默认占用16号开关,可以在【设定区A】设定
#------------------------------------------------------------------------------
# ● 使用方法:
#  插入到其他脚本以下 Main之前,在下面给出的设定区进行设定后即可(非必须)
#  在事件中改变所设定变量和开关,便可以改变时间
#------------------------------------------------------------------------------
# ● 版本:
#   V 2.3 2014.01.29 可以自定义地图窗体的位置
#   V 2.2 2013.12.27 修正Window_MoVMe的错误
#   V 2.1 2013.12.15 修正过卡的BUG
#   V 2.0 2013.10.04 基本重写
#   V 1.0 2013.08.31 公开
#------------------------------------------------------------------------------
# ● 声明:
#   本脚本由来自【影月千秋】,使用和转载请保留此信息
#==============================================================================

#==============================================================================
# ■ MoVTData
#------------------------------------------------------------------------------
#  虚拟时间主模块
#==============================================================================

module MoVTData
  #============================================================================
  # ■ 设定区A - 基础设定
  #============================================================================
    WinOn = true
      #WinOn - 是否在菜单内显示日历
    CalOn = false
      #CalOn - 是否在地图上显示日历
    CalOnTop = true
      #CalOnTop - 地图上的日历是否显示在屏幕上方,否的话在屏幕下方
    Icon = 234
      #Icon - 时间前的图标 设为0则不显示
    Chro = "公元"
      #Chro - 设定纪元法的名称
    InDoors = [2,34]
      #InDoors - 填写室内地图ID 室内地图不会受昼夜影响,你也可以在B区取消昼夜
    Sta_Y = 2013
    Sta_M = 10
    Sta_D = 4
    Sta_H = 15
    Sta_I = 36
      #以上设置游戏起始日期时间
    Sta_WDay = 6
      #Sta_WDay - 游戏起始于什么时候 0为周期的第一天 周期在下面B区设定(默认为星期)
    TimV = [81,82,83,84,85]
      #TimV - 设定占用变量,分别对应年月日时分
    Pause = 16
      #Pause - 设定占用开关,当此开关打开时,暂停计时
  #============================================================================
  # ■ 设定区A结束
  #============================================================================
  
  #============================================================================
  # ■ 设定区B - 高级设定
  #============================================================================
    DayNight = true
      #是否有白昼和黑夜等各时段的区分
    Spe = 6
      #Spe - 游戏时间进行速度,代表经过多少帧后游戏内部经过一分钟,现实中1秒60帧
    YM = 12
      #YM - 游戏中一年多少月
    MD = 30
      #MD - 游戏中一月多少天
    DH = 24
      #DH - 游戏中一天几小时
    HM = 60
      #HM - 游戏中一小时几分钟
    Weeks = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]
      #Weeks - 设定每个周期日子的名称,有意向的话也可以把所谓“星期”改为其他的周期
    VTTone = {:Dawn => [240 , Tone.new( -75,-100,   0,  75), "黎明"],
              :Morn => [360 , Tone.new(   0,   0,   0,   0), "上午"],
              :Noon => [660 , Tone.new(  50,  50,  10, -30), "中午"],
              :Aftr => [900 , Tone.new(   0,   0,   0,   0), "下午"],
              :Sset => [1080, Tone.new(  34, -34, -68, 170), "黄昏"],
              :Nigt => [1260, Tone.new( -75,-100,   0,  75), "夜晚"],
              :Dark => [60  , Tone.new(-125,-125, -10, 125), "深夜"]
              }
      #设置一天各时段的开始时间,1440为一天的长度,240是早上四点(240/1440*24)
      #从上到下:黎明 上午 中午 下午 黄昏 夜晚 深夜
      #后面是设置各时段的色调
  #============================================================================
  # ■ 设定区B结束
  #============================================================================
  
  #============================================================================
  # 如果你懂一点脚本,可以在下面对时间窗口的显示方式做一些调整
  # 建议不要将原来的方式删掉,而是进行注释,因为可能需要对照着修改
  #============================================================================
  
  #============================================================================
  # ■ Window_MoVMe
  #----------------------------------------------------------------------------
  #  菜单画面中,显示当前游戏内部虚拟时间的窗口
  #============================================================================
  class Window_MoVMe < Window_Base
    #------------------------------------------------------------------------
    # ● 初始化对象
    #------------------------------------------------------------------------
    def initialize(*gold_window) # <= 不要动这里
      #  gold_window用于传递Scene_Menu中@gold_window,借以确定菜单中的位置
      #  即使不使用gold_window,也不要去掉(*gold_window),因为Scene_Menu仍会
      # 将参数传递给initialize(通过Window_MoVMe.new)
      super(0, gold_window[0].y - 110, gold_window[0].width, 110)
      draw_text(0, 0, 200, 25, MoVTData::Chro +
        $game_variables[MoVTData::TimV[0]].to_s + "年" +
          $game_variables[MoVTData::TimV[1]].to_s + "月" +
            $game_variables[MoVTData::TimV[2]].to_s + "日")
      draw_text(0, 30, 130, 25, MoVTData::Weeks[MoVTData.wdayy], 2)
      draw_text(0, 60, 160, 25, format("%02d",
        $game_variables[MoVTData::TimV[3]]) + ":" +
          format("%02d",$game_variables[MoVTData::TimV[4]]) + "  " +
            MoVTData.vtzz)
      draw_icon(MoVTData::Icon, 0, 30) if MoVTData::Icon != 0
    end
  end
  #============================================================================
  # ■ Window_MoVCh
  #----------------------------------------------------------------------------
  #  地图画面中,显示当前游戏内部虚拟时间的窗口
  #============================================================================
  class Window_MoVCh < Window_Base
    #------------------------------------------------------------------------
    # ● 初始化对象
    #------------------------------------------------------------------------
    def initialize
      if MoVTData::CalOnTop
        super(0, 0, Graphics.width, 48)
      else
        super(0, Graphics.height - 48, Graphics.width, 48)
      end
    end
    #------------------------------------------------------------------------
    # ● 更新画面
    #------------------------------------------------------------------------
    def update
      refresh if Graphics.frame_count % Spe == 0
    end
    #------------------------------------------------------------------------
    # ● 刷新
    #------------------------------------------------------------------------
    def refresh
      contents.clear
      if MoVTData::Icon != 0
        draw_icon(MoVTData::Icon,0,0)
        draw_text(30, 0, 400, 25,MoVTData::Chro +
          $game_variables[MoVTData::TimV[0]].to_s + "年" +
            $game_variables[MoVTData::TimV[1]].to_s + "月" +
              $game_variables[MoVTData::TimV[2]].to_s + "日" + " " +
                MoVTData::Weeks[MoVTData.wdayy])
        draw_text(320, 0, 160, 25,
          format("%02d",$game_variables[MoVTData::TimV[3]]) + ":" +
            format("%02d",$game_variables[MoVTData::TimV[4]]) + " " +
              MoVTData.vtzz, 2)
      else
        draw_text(0, 0, 400, 25,MoVTData::Chro +
          $game_variables[MoVTData::TimV[0]].to_s + "年" +
            $game_variables[MoVTData::TimV[1]].to_s + "月" +
              $game_variables[MoVTData::TimV[2]].to_s + "日" + " " +
                MoVTData::Weeks[MoVTData.wdayy])
        draw_text(400, 0, 160, 25,
          format("%02d",$game_variables[MoVTData::TimV[3]]) + ":" +
            format("%02d",$game_variables[MoVTData::TimV[4]]) + " " +
              MoVTData.vtzz, 2)
      end # if MoVTData::Icon != 0
    end # def refresh
  end # class Window_MoVCh
end # module MoVTData

#=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+#
#------------------------------------------------------------------------------#
#                               请勿跨过这块区域                                #
#------------------------------------------------------------------------------#
#+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=#

#==============================================================================
# ■ MoVTData
#==============================================================================
module MoVTData
  def self.ini
    $game_variables[TimV[0]] = Sta_Y
    $game_variables[TimV[1]] = Sta_M
    $game_variables[TimV[2]] = Sta_D
    $game_variables[TimV[3]] = Sta_H
    $game_variables[TimV[4]] = Sta_I
    @wday = Sta_WDay
    @vtz = ""
    @ttone = nil
    check_vtz
  end
  
  def self.refresh
    return if $game_message.visible
    return if $game_switches[Pause]
    $game_variables[TimV[4]] += 1 if Graphics.frame_count % Spe == 0
    if $game_variables[TimV[4]] >= HM
      $game_variables[TimV[4]] = 0
      $game_variables[TimV[3]] += 1
      if $game_variables[TimV[3]] >= DH
        $game_variables[TimV[3]] = 0
        $game_variables[TimV[2]] += 1
        @wday += 1
        @wday = 0 if @wday >= Weeks.size - 1
        if $game_variables[TimV[2]] >= MD
          $game_variables[TimV[2]] = 0
          $game_variables[TimV[1]] += 1
          if $game_variables[TimV[1]] >= YM
            $game_variables[TimV[1]] = 0
            $game_variables[TimV[0]] += 1
          end
        end
      end
    end
    check_vtz
    cdaynight if DayNight
  end
  
  def self.check_vtz
    case ($game_variables[TimV[3]] * HM + $game_variables[TimV[4]]) * 1440
    when VTTone[:Dawn][0] * DH * HM..VTTone[:Morn][0] * DH * HM
      @ttone = VTTone[:Dawn][1]
      @vtz = VTTone[:Dawn][2]
    when VTTone[:Morn][0] * DH * HM..VTTone[:Noon][0] * DH * HM
      @ttone = VTTone[:Morn][1]
      @vtz = VTTone[:Morn][2]
    when VTTone[:Noon][0] * DH * HM..VTTone[:Aftr][0] * DH * HM
      @ttone = VTTone[:Noon][1]
      @vtz = VTTone[:Noon][2]
    when VTTone[:Aftr][0] * DH * HM..VTTone[:Sset][0] * DH * HM
      @ttone = VTTone[:Aftr][1]
      @vtz = VTTone[:Aftr][2]
    when VTTone[:Sset][0] * DH * HM..VTTone[:Nigt][0] * DH * HM
      @ttone = VTTone[:Sset][1]
      @vtz = VTTone[:Sset][2]
    when VTTone[:Nigt][0] * DH * HM..1440 * DH * HM
      @ttone = VTTone[:Nigt][1]
      @vtz = VTTone[:Nigt][2]
    when 0..VTTone[:Dark][0] * DH * HM
      @ttone = VTTone[:Nigt][1]
      @vtz = VTTone[:Nigt][2]
    when VTTone[:Dark][0] * DH * HM..VTTone[:Dawn][0] * DH * HM
      @ttone = VTTone[:Dark][1]
      @vtz = VTTone[:Dark][2]
    end
  end

  def self.cdaynight(t = 60)
    return if !$game_map
    return if !SceneManager::scene_is?(Scene_Map)
    if InDoors.include?($game_map.map_id)
      $game_map.screen.start_tone_change(Tone.new(0,0,0,0),0)
    else
      $game_map.screen.start_tone_change(@ttone, t)
    end
  end
  def self.vtzz
    @vtz
  end
  def self.wdayy
    @wday
  end
  def self.wdaay=(wdaay)
    @wday = wdaay
  end
end
#==============================================================================
# ■ Scene_Menu
#==============================================================================
class Scene_Menu
  alias motstt start
  def start
    motstt
    @movtime_window = MoVTData::Window_MoVMe.new(@gold_window)if MoVTData::WinOn
  end
end

#==============================================================================
# ■ Scene_Map
#==============================================================================
class Scene_Map
  alias motudt update
  alias motptr post_transfer
  alias motcaw create_all_windows
  def update
    motudt
    MoVTData.refresh
  end
  def post_transfer
    MoVTData.cdaynight(0)
    motptr
  end
  def create_all_windows
    motcaw
    @vtchr = MoVTData::Window_MoVCh.new if MoVTData::CalOn
  end
end
#==============================================================================
# ■ DataManager
#==============================================================================
class << DataManager
  alias motsng setup_new_game
  alias motmsc make_save_contents
  alias motesc extract_save_contents
  def setup_new_game
    motsng
    MoVTData.ini
  end
  def make_save_contents
    contents = motmsc
    contents[:vwday] = MoVTData.wdayy
    contents
  end
  def extract_save_contents(contents)
    motesc(contents)
    MoVTData.wdaay = contents[:vwday]
  end
end

#==============================================================================#
#=====                        =================================================#
#          ■ 脚 本 尾
#=====                        =================================================#
#==============================================================================#这是脚本 我想实现 可以在游戏运行中 开关 日历窗口的显示 @丁凯乐 谢谢
回复

使用道具 举报

梦石
0
星屑
55
在线时间
116 小时
注册时间
2014-3-22
回帖
146
发表于 2014-4-9 11:53:10 | 显示全部楼层
本帖最后由 丁凯乐 于 2014-4-9 11:55 编辑

在事件脚本中,
显示日历命令:SceneManager.scene.calendar = true
隐藏日历命令:SceneManager.scene.calendar = false
以下脚本需要替换
[pre lang="ruby" line="1"]#==============================================================================
# ■ 时间流逝
#  作者:影月千秋
#  版本:2.3
#------------------------------------------------------------------------------
# ● 简介:
#   1.本脚本适用于【VX Ace】,用于XP或VX造成的错误本人不提供支持;发现BUG欢迎报告,
# 但本人不保证有时间修改
#   2.本脚本用于在游戏中模拟真实的时间流逝:昼夜、年份日期
#   3.战斗中、菜单中、对话中都不会进行计时,只有玩家在地图活动时才会计算
#   4.请为本脚本准备变量,默认占用81 - 85号变量,可以在【设定区A】设定
#   5.请为本脚本准备开关,默认占用16号开关,可以在【设定区A】设定
#------------------------------------------------------------------------------
# ● 使用方法:
#  插入到其他脚本以下 Main之前,在下面给出的设定区进行设定后即可(非必须)
#  在事件中改变所设定变量和开关,便可以改变时间
#------------------------------------------------------------------------------
# ● 版本:
#   V 2.3 2014.01.29 可以自定义地图窗体的位置
#   V 2.2 2013.12.27 修正Window_MoVMe的错误
#   V 2.1 2013.12.15 修正过卡的BUG
#   V 2.0 2013.10.04 基本重写
#   V 1.0 2013.08.31 公开
#------------------------------------------------------------------------------
# ● 声明:
#   本脚本由来自【影月千秋】,使用和转载请保留此信息
#==============================================================================

#==============================================================================
# ■ MoVTData
#------------------------------------------------------------------------------
#  虚拟时间主模块
#==============================================================================

module MoVTData
  #============================================================================
  # ■ 设定区A - 基础设定
  #============================================================================
    WinOn = true
      #WinOn - 是否在菜单内显示日历
    CalOnTop = true
      #CalOnTop - 地图上的日历是否显示在屏幕上方,否的话在屏幕下方
    Icon = 234
      #Icon - 时间前的图标 设为0则不显示
    Chro = "公元"
      #Chro - 设定纪元法的名称
    InDoors = [2,34]
      #InDoors - 填写室内地图ID 室内地图不会受昼夜影响,你也可以在B区取消昼夜
    Sta_Y = 2013
    Sta_M = 10
    Sta_D = 4
    Sta_H = 15
    Sta_I = 36
      #以上设置游戏起始日期时间
    Sta_WDay = 6
      #Sta_WDay - 游戏起始于什么时候 0为周期的第一天 周期在下面B区设定(默认为星期)
    TimV = [81,82,83,84,85]
      #TimV - 设定占用变量,分别对应年月日时分
    Pause = 16
      #Pause - 设定占用开关,当此开关打开时,暂停计时
  #============================================================================
  # ■ 设定区A结束
  #============================================================================
  
  #============================================================================
  # ■ 设定区B - 高级设定
  #============================================================================
    DayNight = true
      #是否有白昼和黑夜等各时段的区分
    Spe = 6
      #Spe - 游戏时间进行速度,代表经过多少帧后游戏内部经过一分钟,现实中1秒60帧
    YM = 12
      #YM - 游戏中一年多少月
    MD = 30
      #MD - 游戏中一月多少天
    DH = 24
      #DH - 游戏中一天几小时
    HM = 60
      #HM - 游戏中一小时几分钟
    Weeks = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]
      #Weeks - 设定每个周期日子的名称,有意向的话也可以把所谓“星期”改为其他的周期
    VTTone = {:Dawn => [240 , Tone.new( -75,-100,   0,  75), "黎明"],
              :Morn => [360 , Tone.new(   0,   0,   0,   0), "上午"],
              :Noon => [660 , Tone.new(  50,  50,  10, -30), "中午"],
              :Aftr => [900 , Tone.new(   0,   0,   0,   0), "下午"],
              :Sset => [1080, Tone.new(  34, -34, -68, 170), "黄昏"],
              :Nigt => [1260, Tone.new( -75,-100,   0,  75), "夜晚"],
              :Dark => [60  , Tone.new(-125,-125, -10, 125), "深夜"]
              }
      #设置一天各时段的开始时间,1440为一天的长度,240是早上四点(240/1440*24)
      #从上到下:黎明 上午 中午 下午 黄昏 夜晚 深夜
      #后面是设置各时段的色调
  #============================================================================
  # ■ 设定区B结束
  #============================================================================
  
  #============================================================================
  # 如果你懂一点脚本,可以在下面对时间窗口的显示方式做一些调整
  # 建议不要将原来的方式删掉,而是进行注释,因为可能需要对照着修改
  #============================================================================
  
  #============================================================================
  # ■ Window_MoVMe
  #----------------------------------------------------------------------------
  #  菜单画面中,显示当前游戏内部虚拟时间的窗口
  #============================================================================
  class Window_MoVMe < Window_Base
    #------------------------------------------------------------------------
    # ● 初始化对象
    #------------------------------------------------------------------------
    def initialize(*gold_window) # <= 不要动这里
      #  gold_window用于传递Scene_Menu中@gold_window,借以确定菜单中的位置
      #  即使不使用gold_window,也不要去掉(*gold_window),因为Scene_Menu仍会
      # 将参数传递给initialize(通过Window_MoVMe.new)
      super(0, gold_window[0].y - 110, gold_window[0].width, 110)
      draw_text(0, 0, 200, 25, MoVTData::Chro +
        $game_variables[MoVTData::TimV[0]].to_s + "年" +
          $game_variables[MoVTData::TimV[1]].to_s + "月" +
            $game_variables[MoVTData::TimV[2]].to_s + "日")
      draw_text(0, 30, 130, 25, MoVTData::Weeks[MoVTData.wdayy], 2)
      draw_text(0, 60, 160, 25, format("%02d",
        $game_variables[MoVTData::TimV[3]]) + ":" +
          format("%02d",$game_variables[MoVTData::TimV[4]]) + "  " +
            MoVTData.vtzz)
      draw_icon(MoVTData::Icon, 0, 30) if MoVTData::Icon != 0
    end
  end
  #============================================================================
  # ■ Window_MoVCh
  #----------------------------------------------------------------------------
  #  地图画面中,显示当前游戏内部虚拟时间的窗口
  #============================================================================
  class Window_MoVCh < Window_Base
    #------------------------------------------------------------------------
    # ● 初始化对象
    #------------------------------------------------------------------------
    def initialize
      if MoVTData::CalOnTop
        super(0, 0, Graphics.width, 48)
      else
        super(0, Graphics.height - 48, Graphics.width, 48)
      end
    end
    #------------------------------------------------------------------------
    # ● 更新画面
    #------------------------------------------------------------------------
    def update
      refresh if Graphics.frame_count % Spe == 0
    end
    #------------------------------------------------------------------------
    # ● 刷新
    #------------------------------------------------------------------------
    def refresh
      contents.clear
      if MoVTData::Icon != 0
        draw_icon(MoVTData::Icon,0,0)
        draw_text(30, 0, 400, 25,MoVTData::Chro +
          $game_variables[MoVTData::TimV[0]].to_s + "年" +
            $game_variables[MoVTData::TimV[1]].to_s + "月" +
              $game_variables[MoVTData::TimV[2]].to_s + "日" + " " +
                MoVTData::Weeks[MoVTData.wdayy])
        draw_text(320, 0, 160, 25,
          format("%02d",$game_variables[MoVTData::TimV[3]]) + ":" +
            format("%02d",$game_variables[MoVTData::TimV[4]]) + " " +
              MoVTData.vtzz, 2)
      else
        draw_text(0, 0, 400, 25,MoVTData::Chro +
          $game_variables[MoVTData::TimV[0]].to_s + "年" +
            $game_variables[MoVTData::TimV[1]].to_s + "月" +
              $game_variables[MoVTData::TimV[2]].to_s + "日" + " " +
                MoVTData::Weeks[MoVTData.wdayy])
        draw_text(400, 0, 160, 25,
          format("%02d",$game_variables[MoVTData::TimV[3]]) + ":" +
            format("%02d",$game_variables[MoVTData::TimV[4]]) + " " +
              MoVTData.vtzz, 2)
      end # if MoVTData::Icon != 0
    end # def refresh
  end # class Window_MoVCh
end # module MoVTData

#=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+#
#------------------------------------------------------------------------------#
#                               请勿跨过这块区域                                #
#------------------------------------------------------------------------------#
#+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=#

#==============================================================================
# ■ MoVTData
#==============================================================================
module MoVTData
  def self.ini
    $game_variables[TimV[0]] = Sta_Y
    $game_variables[TimV[1]] = Sta_M
    $game_variables[TimV[2]] = Sta_D
    $game_variables[TimV[3]] = Sta_H
    $game_variables[TimV[4]] = Sta_I
    @wday = Sta_WDay
    @vtz = ""
    @ttone = nil
    check_vtz
  end
  
  def self.refresh
    return if $game_message.visible
    return if $game_switches[Pause]
    $game_variables[TimV[4]] += 1 if Graphics.frame_count % Spe == 0
    if $game_variables[TimV[4]] >= HM
      $game_variables[TimV[4]] = 0
      $game_variables[TimV[3]] += 1
      if $game_variables[TimV[3]] >= DH
        $game_variables[TimV[3]] = 0
        $game_variables[TimV[2]] += 1
        @wday += 1
        @wday = 0 if @wday >= Weeks.size - 1
        if $game_variables[TimV[2]] >= MD
          $game_variables[TimV[2]] = 0
          $game_variables[TimV[1]] += 1
          if $game_variables[TimV[1]] >= YM
            $game_variables[TimV[1]] = 0
            $game_variables[TimV[0]] += 1
          end
        end
      end
    end
    check_vtz
    cdaynight if DayNight
  end
  
  def self.check_vtz
    case ($game_variables[TimV[3]] * HM + $game_variables[TimV[4]]) * 1440
    when VTTone[:Dawn][0] * DH * HM..VTTone[:Morn][0] * DH * HM
      @ttone = VTTone[:Dawn][1]
      @vtz = VTTone[:Dawn][2]
    when VTTone[:Morn][0] * DH * HM..VTTone[:Noon][0] * DH * HM
      @ttone = VTTone[:Morn][1]
      @vtz = VTTone[:Morn][2]
    when VTTone[:Noon][0] * DH * HM..VTTone[:Aftr][0] * DH * HM
      @ttone = VTTone[:Noon][1]
      @vtz = VTTone[:Noon][2]
    when VTTone[:Aftr][0] * DH * HM..VTTone[:Sset][0] * DH * HM
      @ttone = VTTone[:Aftr][1]
      @vtz = VTTone[:Aftr][2]
    when VTTone[:Sset][0] * DH * HM..VTTone[:Nigt][0] * DH * HM
      @ttone = VTTone[:Sset][1]
      @vtz = VTTone[:Sset][2]
    when VTTone[:Nigt][0] * DH * HM..1440 * DH * HM
      @ttone = VTTone[:Nigt][1]
      @vtz = VTTone[:Nigt][2]
    when 0..VTTone[:Dark][0] * DH * HM
      @ttone = VTTone[:Nigt][1]
      @vtz = VTTone[:Nigt][2]
    when VTTone[:Dark][0] * DH * HM..VTTone[:Dawn][0] * DH * HM
      @ttone = VTTone[:Dark][1]
      @vtz = VTTone[:Dark][2]
    end
  end

  def self.cdaynight(t = 60)
    return if !$game_map
    return if !SceneManager::scene_is?(Scene_Map)
    if InDoors.include?($game_map.map_id)
      $game_map.screen.start_tone_change(Tone.new(0,0,0,0),0)
    else
      $game_map.screen.start_tone_change(@ttone, t)
    end
  end
  def self.vtzz
    @vtz
  end
  def self.wdayy
    @wday
  end
  def self.wdaay=(wdaay)
    @wday = wdaay
  end
end
#==============================================================================
# ■ Scene_Menu
#==============================================================================
class Scene_Menu
  alias motstt start
  def start
    motstt
    @movtime_window = MoVTData::Window_MoVMe.new(@gold_window)if MoVTData::WinOn
  end
end

#==============================================================================
# ■ Scene_Map
#==============================================================================
class Scene_Map
  attr_writer   :calendar
  alias motudt update
  alias motptr post_transfer
  alias motcaw create_all_windows
  def update
    motudt
    MoVTData.refresh
    @calendar ? @vtchr.show : @vtchr.hide if @vtchr.is_a?(Window)
  end
  def post_transfer
    MoVTData.cdaynight(0)
    motptr
  end
  def create_all_windows
    motcaw
    @vtchr = MoVTData::Window_MoVCh.new
  end
end
#==============================================================================
# ■ DataManager
#==============================================================================
class << DataManager
  alias motsng setup_new_game
  alias motmsc make_save_contents
  alias motesc extract_save_contents
  def setup_new_game
    motsng
    MoVTData.ini
  end
  def make_save_contents
    contents = motmsc
    contents[:vwday] = MoVTData.wdayy
    contents
  end
  def extract_save_contents(contents)
    motesc(contents)
    MoVTData.wdaay = contents[:vwday]
  end
end

#==============================================================================#
#=====                        =================================================#
#          ■ 脚 本 尾
#=====                        =================================================#
#==============================================================================#[/pre]

评分

参与人数 1星屑 +120 收起 理由
Sion + 120 认可答案

查看全部评分

回复

使用道具 举报

梦石
1
星屑
23241
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2014-4-9 12:17:22 | 显示全部楼层
请直接进脚本里改实际执行的部分......

@余烬之中

点评

在这个脚本2.7版放出之际还看到2.3版倍感亲切……  发表于 2014-4-11 22:32
回复

使用道具 举报

梦石
0
星屑
22879
在线时间
8598 小时
注册时间
2011-12-31
回帖
3270
发表于 2014-4-9 14:24:52 | 显示全部楼层
BlueRedZone的「歴系統」比較自由
http://blueredzone.com/script/vxace/vxace_koyomisystem.html

评分

参与人数 1星屑 +100 收起 理由
Sion + 100 认可答案

查看全部评分

回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-4-9 17:50:19 | 显示全部楼层
常量完全可以在事件中改嘛,就是后果难以预料罢了……
  1. MoVTData.const_set :CalOn, false
复制代码
由此造成的一切后果本人概不负责
回复

使用道具 举报

梦石
0
星屑
50
在线时间
27 小时
注册时间
2013-4-10
回帖
12
 楼主| 发表于 2014-4-9 20:24:29 | 显示全部楼层
丁凯乐 发表于 2014-4-9 11:53
在事件脚本中,
显示日历命令:SceneManager.scene.calendar = true
隐藏日历命令:SceneManager.scene.cal ...

不胜感谢{:2_249:}
回复

使用道具 举报

梦石
0
星屑
50
在线时间
27 小时
注册时间
2013-4-10
回帖
12
 楼主| 发表于 2014-4-9 20:26:04 | 显示全部楼层
taroxd 发表于 2014-4-9 17:50
常量完全可以在事件中改嘛,就是后果难以预料罢了……由此造成的一切后果本人概不负责 ...

等会试试,是不是常量都是你这种改法 MoVTData.const_set :常量名, 改值?

点评

不要…… 设成常量的目的本来就是让你不要改的。脚本制作者希望你改的话一定会做成方法或者实例变量的。 另外想玩脚本请先自学脚本。  发表于 2014-4-10 06:32
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部