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

Project1

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

[已经过期] 关于KGC的昼夜系统:事件脚本为什么总是报错?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
43 小时
注册时间
2013-4-27
帖子
25
跳转到指定楼层
1
发表于 2013-5-3 16:16:25 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我用的是约束前辈的汉化版
1、新建空白的工程;
2、测试了脚本:change_daynight_phase(phase[, duration[, pass_days]]) ,这个脚本可以正常使用;
3、set_daynight_default(duration),transit_daynight_phase(duration) 都不行。其中那个的duration,我使用过1和60来测试。
不知道有没有人也碰到过这个问题,我搜索了下之前的帖子,貌似不了了之了

各位大神,帮帮忙吧~~ 我被这个问题困扰了两天两夜了

RUBY 代码复制
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ 昼夜交替 - KGC_DayNight ◆ VX ◆
  3. #_/    ◇ Last update : 2008/03/08 ◇
  4. #_/                                       汉化 by 约束
  5. #_/
  6. #_/----------------------------------------------------------------------------
  7. #_/  在游戏中加入了昼夜交替。
  8. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  9.  
  10. #==============================================================================
  11. # ★ 指导项目 - Customize ★
  12. #==============================================================================
  13.  
  14. module KGC
  15. module DayNight
  16.   # ◆ 昼夜切换方式
  17.   #  0..根据时间的经过  1..根据行走步数  2..根据现实时间(微妙)
  18.   METHOD = 1
  19.  
  20.   # ◆ 保存天色阶段的变量号码
  21.   # 在这里被设定的变量中、存入现在的天色阶段。
  22.   PHASE_VARIABLE     = 11
  23.   # ◆ 保存日期的变量号码
  24.   #  在这里被设定的变量中、存入经过日数的阶段。
  25.   PASS_DAYS_VARIABLE = 12
  26.  
  27.   # ◆ 在事件中不变更天色阶段
  28.   STOP_ON_EVENT = true
  29.   # ◆ 在战斗中、只有背景使用当前色调
  30.   # 改成 false 时、夜晚时会变的不合常理。
  31.   TONE_BACK_ONLY_IN_BATTLE = true
  32.  
  33.   # ◆ 各个天色阶段的设置
  34.   #  将各个天色阶段
  35.   #   ["名称", 色调(Tone), 切换时间],
  36.   #  像如上设置。
  37.   #  可以增加天色阶段、但是在不习惯时不推荐增加。
  38.   #
  39.   #  [名称]
  40.   #    天色阶段的名字。
  41.   #    名字自身没有意义。
  42.   #  [色调]
  43.   #    画面全体的颜色。
  44.   #    并不是很明白时请不要轻易变更。
  45.   #  [切换时间]
  46.   #    到下个天色阶段的间隔时间。
  47.   #    切换方式是 使用时间经过方式为秒、步数方式为步数。
  48.   #    现实时间方式时、到下个状态切换的时刻 (24小时方式)。
  49.   PHASE = [
  50.     ["白日",   Tone.new(   0,    0,   0), 300],  # 天色阶段 0
  51.     ["傍晚",   Tone.new( -32,  -96, -96), 100],  # 天色阶段 1
  52.     ["夜晚",   Tone.new(-128, -128, -32), 250],  # 天色阶段 2
  53.     ["早晨",   Tone.new( -48,  -48, -16), 100],  # 天色阶段 3
  54.   ]  # ← 这里不要消去!
  55.  
  56.   # 现实时间时、
  57.   #  ["白日",   Tone.new(  0,   0,   0), 16],  # 天色阶段 0 (现实为16点时傍晚)
  58.   #  ["傍晚",   Tone.new(  0, -96, -96), 20],  # 天色阶段 1 (现实为20点时夜晚)
  59.   #  ["夜晚",   Tone.new(-96, -96, -64),  6],  # 天色阶段 2 (现实为6点时早上)
  60.   #  ["早晨",   Tone.new(-48, -48, -16), 10],  # 天色阶段 3 (现实为10点时白日)
  61.   # 像这样的。
  62.  
  63.   # ◆ 变换日期的天色阶段
  64.   #  到了这里设定过的天色阶段时、日数增加。
  65.   #  初期状况  0..白日  1..傍晚  2..夜晚  3..早上
  66.   # ※ 现实时间时、并不能与现实使用相同日数,请注意。
  67.   PASS_DAY_PHASE = 3
  68.  
  69.   # ◆ 切换状态是的天色阶段时间 (画面)
  70.   #  省略时也会使用这个数值。
  71.   PHASE_DURATION = 60
  72.  
  73.   # ◆ 日期名
  74.   #  从最初开始、到最后一个日期然后再从第一个循环开始。
  75.   #  日期名自身没有任何意义。
  76.   # ※ 使用现实时间时 请设置为7个日期。
  77.   WEEK_NAME = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]
  78. end
  79. end
  80.  
  81. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  82.  
  83. $imported = {} if $imported == nil
  84. $imported["DayNight"] = true
  85.  
  86. if $data_mapinfos == nil
  87.   $data_mapinfos = load_data("Data/MapInfos.rvdata")
  88. end
  89.  
  90. module KGC::DayNight
  91.   METHOD_TIME  = 0  # 时间经过
  92.   METHOD_STEP  = 1  # 步数
  93.   METHOD_RTIME = 2  # 现实时间
  94.  
  95.   # 正规表现
  96.   module Regexp
  97.     # 地图情报
  98.     module MapInfo
  99.       # 停止变换
  100.       DAYNIGHT_STOP = /\[DN_STOP\]/i
  101.       # 使昼夜系统无效
  102.       DAYNIGHT_VOID = /\[DN_VOID\]/i
  103.     end
  104.  
  105.     # 敌人队伍
  106.     module Troop
  107.       # 出现天色阶段
  108.       APPEAR_PHASE = /\[DN((?:[ ]*[\-]?\d+(?:[ ]*,)?)+)\]/i
  109.     end
  110.   end
  111.  
  112.   #--------------------------------------------------------------------------
  113.   # ○ 确认敌人队伍的出现
  114.   #     troop : 确认对象的敌人队伍
  115.   #     phase : 确认天色阶段
  116.   #--------------------------------------------------------------------------
  117.   def self.troop_appear?(troop, phase = $game_system.daynight_phase)
  118.     # 确认出现
  119.     unless troop.appear_daynight_phase.empty?
  120.       return false unless troop.appear_daynight_phase.include?(phase)
  121.     end
  122.     # 确认没出现
  123.     unless troop.nonappear_daynight_phase.empty?
  124.       return false if troop.nonappear_daynight_phase.include?(phase)
  125.     end
  126.  
  127.     return true
  128.   end
  129. end
  130.  
  131. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  132.  
  133. #==============================================================================
  134. # □ KGC::Commands
  135. #==============================================================================
  136.  
  137. module KGC
  138. module Commands
  139.   module_function
  140.   #--------------------------------------------------------------------------
  141.   # ○ 停止昼夜切换
  142.   #--------------------------------------------------------------------------
  143.   def stop_daynight
  144.     $game_system.daynight_change_enabled = false
  145.   end
  146.   #--------------------------------------------------------------------------
  147.   # ○ 启动昼夜却换
  148.   #--------------------------------------------------------------------------
  149.   def start_daynight
  150.     $game_system.daynight_change_enabled = true
  151.   end
  152.   #--------------------------------------------------------------------------
  153.   # ○ 获取现在的天色阶段名
  154.   #--------------------------------------------------------------------------
  155.   def get_daynight_name
  156.     return KGC::DayNight::PHASE[get_daynight_phase][0]
  157.   end
  158.   #--------------------------------------------------------------------------
  159.   # ○ 获取现在的日期名
  160.   #     variable_id : 代入变量 ID
  161.   #--------------------------------------------------------------------------
  162.   def get_daynight_week(variable_id = 0)
  163.     if KGC::DayNight::METHOD == KGC::DayNight::METHOD_RTIME
  164.       week = Time.now.wday
  165.     else
  166.       days = $game_variables[KGC::DayNight::PASS_DAYS_VARIABLE]
  167.       week = (days % KGC::DayNight::WEEK_NAME.size)
  168.     end
  169.  
  170.     if variable_id > 0
  171.       $game_variables[variable_id] = week
  172.     end
  173.     return week
  174.   end
  175.   #--------------------------------------------------------------------------
  176.   # ○获取现在的日期名
  177.   #--------------------------------------------------------------------------
  178.   def get_daynight_week_name
  179.     return KGC::DayNight::WEEK_NAME[get_daynight_week]
  180.   end
  181.   #--------------------------------------------------------------------------
  182.   # ○ 天色阶段的切换
  183.   #     phase     : 切换后的天色阶段
  184.   #     duration  : 切换时间(画面)
  185.   #     pass_days : 经过日数  (省略时: 0)
  186.   #--------------------------------------------------------------------------
  187.   def change_daynight_phase(phase,
  188.       duration = KGC::DayNight::PHASE_DURATION,
  189.       pass_days = 0)
  190.     $game_temp.manual_daynight_duration = duration
  191.     $game_system.daynight_counter = 0
  192.     $game_system.daynight_phase = phase
  193.     $game_variables[KGC::DayNight::PASS_DAYS_VARIABLE] += pass_days
  194.     $game_map.need_refresh = true
  195.   end
  196.   #--------------------------------------------------------------------------
  197.   # ○ 转移到下一个天色阶段
  198.   #     duration : 切换时间(画面)
  199.   #--------------------------------------------------------------------------
  200.   def transit_daynight_phase(duration = KGC::DayNight::PHASE_DURATION)
  201.     $game_screen.transit_daynight_phase(duration)
  202.     $game_map.need_refresh = true
  203.   end
  204.   #--------------------------------------------------------------------------
  205.   # ○ 返回到默认的色调
  206.   #     duration : 切换时间(画面)
  207.   #--------------------------------------------------------------------------
  208.   def set_daynight_default(duration = KGC::DayNight::PHASE_DURATION)
  209.     $game_screen.set_daynight_default(duration)
  210.     $game_map.need_refresh = true
  211.   end
  212.   #--------------------------------------------------------------------------
  213.   # ○ 还原现在的天色阶段
  214.   #     duration : 切换时间(画面)
  215.   #--------------------------------------------------------------------------
  216.   def restore_daynight_phase(duration = KGC::DayNight::PHASE_DURATION)
  217.     $game_screen.restore_daynight_phase(duration)
  218.     $game_map.need_refresh = true
  219.   end
  220. end
  221. end
  222.  
  223. class Game_Interpreter
  224.   include KGC::Commands
  225. end
  226.  
  227. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  228.  
  229. #==============================================================================
  230. # ■ RPG::MapInfo
  231. #==============================================================================
  232.  
  233. class RPG::MapInfo
  234.   #--------------------------------------------------------------------------
  235.   # ● 获取地图名
  236.   #--------------------------------------------------------------------------
  237.   def name
  238.     return @name.gsub(/\[.*\]/) { "" }
  239.   end
  240.   #--------------------------------------------------------------------------
  241.   # ○ 获取自制地图名
  242.   #--------------------------------------------------------------------------
  243.   def original_name
  244.     return @name
  245.   end
  246.   #--------------------------------------------------------------------------
  247.   # ○ 停止昼夜交替
  248.   #--------------------------------------------------------------------------
  249.   def daynight_stop
  250.     return @name =~ KGC::DayNight::Regexp::MapInfo::DAYNIGHT_STOP
  251.   end
  252.   #--------------------------------------------------------------------------
  253.   # ○ 使昼夜效果无效
  254.   #--------------------------------------------------------------------------
  255.   def daynight_void
  256.     return @name =~ KGC::DayNight::Regexp::MapInfo::DAYNIGHT_VOID
  257.   end
  258. end
  259.  
  260. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  261.  
  262. #==============================================================================
  263. # ■ RPG::Area
  264. #==============================================================================
  265.  
  266. unless $@
  267. class RPG::Area
  268.   #--------------------------------------------------------------------------
  269.   # ○ 获取遇敌
  270.   #--------------------------------------------------------------------------
  271.   alias encounter_list_KGC_DayNight encounter_list
  272.   def encounter_list
  273.     list = encounter_list_KGC_DayNight.clone
  274.  
  275.     # 确认出现条件
  276.     list.each_index { |i|
  277.       list[i] = nil unless KGC::DayNight.troop_appear?($data_troops[list[i]])
  278.     }
  279.     return list.compact
  280.   end
  281. end
  282. end
  283.  
  284. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  285.  
  286. #==============================================================================
  287. # ■ RPG::Troop
  288. #==============================================================================
  289.  
  290. class RPG::Troop
  291.   #--------------------------------------------------------------------------
  292.   # ○ 作成昼夜交替的存储
  293.   #--------------------------------------------------------------------------
  294.   def create_daynight_cache
  295.     @__appear_daynight_phase = []
  296.     @__nonappear_daynight_phase = []
  297.  
  298.     # 出现的天色阶段
  299.     if @name =~ KGC::DayNight::Regexp::Troop::APPEAR_PHASE
  300.       $1.scan(/[\-]?\d+/).each { |num|
  301.         phase = num.to_i
  302.         if phase < 0
  303.           # 不出现
  304.           @__nonappear_daynight_phase << phase.abs
  305.         else
  306.           # 出现
  307.           @__appear_daynight_phase << phase
  308.         end
  309.       }
  310.     end
  311.   end
  312.   #--------------------------------------------------------------------------
  313.   # ○ 出现的天色阶段
  314.   #--------------------------------------------------------------------------
  315.   def appear_daynight_phase
  316.     create_daynight_cache if @__appear_daynight_phase == nil
  317.     return @__appear_daynight_phase
  318.   end
  319.   #--------------------------------------------------------------------------
  320.   # ○ 不出现的天色阶段
  321.   #--------------------------------------------------------------------------
  322.   def nonappear_daynight_phase
  323.     create_daynight_cache if @__nonappear_daynight_phase == nil
  324.     return @__nonappear_daynight_phase
  325.   end
  326. end
  327.  
  328. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  329.  
  330. #==============================================================================
  331. # ■ Game_Temp
  332. #==============================================================================
  333.  
  334. class Game_Temp
  335.   #--------------------------------------------------------------------------
  336.   # ● 定义实例变量
  337.   #--------------------------------------------------------------------------
  338.   attr_accessor :manual_daynight_duration # 手动改变天色阶段的标志
  339.   #--------------------------------------------------------------------------
  340.   # ● 初始化对象
  341.   #--------------------------------------------------------------------------
  342.   alias initialize_KGC_DayNight initialize
  343.   def initialize
  344.     initialize_KGC_DayNight
  345.  
  346.     @manual_daynight_duration = nil
  347.   end
  348. end
  349.  
  350. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  351.  
  352. #==============================================================================
  353. # ■ Game_System
  354. #==============================================================================
  355.  
  356. class Game_System
  357.   #--------------------------------------------------------------------------
  358.   # ● 定义实例变量
  359.   #--------------------------------------------------------------------------
  360.   attr_writer   :daynight_counter         # 天色阶段转换的计数器
  361.   attr_writer   :daynight_change_enabled  # 使昼夜交替有效
  362.   #--------------------------------------------------------------------------
  363.   # ● 初始化对象
  364.   #--------------------------------------------------------------------------
  365.   alias initialize_KGC_DayNight initialize
  366.   def initialize
  367.     initialize_KGC_DayNight
  368.  
  369.     @daynight_counter = 0
  370.     @daynight_change_enabled = true
  371.   end
  372.   #--------------------------------------------------------------------------
  373.   # ○ 获取天色阶段转换的计数器
  374.   #--------------------------------------------------------------------------
  375.   def daynight_counter
  376.     @daynight_counter = 0 if @daynight_counter == nil
  377.     return @daynight_counter
  378.   end
  379.   #--------------------------------------------------------------------------
  380.   # ○ 获取现在的天色阶段
  381.   #--------------------------------------------------------------------------
  382.   def daynight_phase
  383.     return $game_variables[KGC::DayNight::PHASE_VARIABLE]
  384.   end
  385.   #--------------------------------------------------------------------------
  386.   # ○ 变换现在的天色阶段
  387.   #--------------------------------------------------------------------------
  388.   def daynight_phase=(value)
  389.     $game_variables[KGC::DayNight::PHASE_VARIABLE] = value
  390.   end
  391.   #--------------------------------------------------------------------------
  392.   # ○ 获取使昼夜交替有效的标志
  393.   #--------------------------------------------------------------------------
  394.   def daynight_change_enabled
  395.     @daynight_change_enabled = 0 if @daynight_change_enabled == nil
  396.     return @daynight_change_enabled
  397.   end
  398.   #--------------------------------------------------------------------------
  399.   # ○ 进行天色阶段
  400.   #--------------------------------------------------------------------------
  401.   def progress_daynight_phase
  402.     self.daynight_phase += 1
  403.     if self.daynight_phase >= KGC::DayNight::PHASE.size
  404.       self.daynight_phase = 0
  405.     end
  406.     $game_map.need_refresh = true
  407.   end
  408.   #--------------------------------------------------------------------------
  409.   # ○ 获取现在的天色阶段对象
  410.   #--------------------------------------------------------------------------
  411.   def daynight_phase_object
  412.     return KGC::DayNight::PHASE[daynight_phase]
  413.   end
  414.   #--------------------------------------------------------------------------
  415.   # ○ 获取以前的天色阶段对象
  416.   #--------------------------------------------------------------------------
  417.   def previous_daynight_phase_object
  418.     return KGC::DayNight::PHASE[daynight_phase - 1]
  419.   end
  420. end
  421.  
  422. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  423.  
  424. #==============================================================================
  425. # ■ Game_Screen
  426. #==============================================================================
  427.  
  428. class Game_Screen
  429.   #--------------------------------------------------------------------------
  430.   # ● 定义实例变量
  431.   #--------------------------------------------------------------------------
  432.   attr_reader   :daynight_tone            # 昼夜的色调
  433.   #--------------------------------------------------------------------------
  434.   # ● 清除
  435.   #--------------------------------------------------------------------------
  436.   alias clear_KGC_DayNight clear
  437.   def clear
  438.     clear_KGC_DayNight
  439.  
  440.     clear_daynight
  441.   end
  442.   #--------------------------------------------------------------------------
  443.   # ○ 清除昼夜交替的变量
  444.   #--------------------------------------------------------------------------
  445.   def clear_daynight
  446.     @default_tone = Tone.new(0, 0, 0)
  447.  
  448.     # 初期化用于确认移动的坐标
  449.     @daynight_x = 0
  450.     @daynight_y = 0
  451.  
  452.     # 初期化用于更新天色阶段的计数器
  453.     @frame_count = Graphics.frame_count
  454.     @daynight_tone_duration = 0
  455.  
  456.     apply_daynight
  457.   end
  458.   #--------------------------------------------------------------------------
  459.   # ○ 使用昼夜的色调
  460.   #--------------------------------------------------------------------------
  461.   def apply_daynight
  462.     return if $game_map == nil
  463.  
  464.     # 切换成无效的地图时
  465.     if $game_map.daynight_void?
  466.       if @daynight_tone_changed
  467.         # 返回到处起的色调
  468.         @tone = @default_tone.clone
  469.         @daynight_tone_changed = false
  470.       end
  471.       @daynight_tone = @tone.clone
  472.       return
  473.     end
  474.  
  475.     # 天色阶段奇怪时修复它
  476.     if $game_system.daynight_phase_object == nil
  477.       $game_system.daynight_phase = 0
  478.     end
  479.  
  480.     # 使用现在的色调
  481.     @tone = $game_system.daynight_phase_object[1].clone
  482.     @daynight_tone = @tone.clone
  483.  
  484.     # 现实时间经过时
  485.     if KGC::DayNight::METHOD == KGC::DayNight::METHOD_RTIME
  486.       time = Time.now
  487.       # 变换到调和的天色阶段
  488.       KGC::DayNight::PHASE.each_with_index { |phase, i|
  489.         if phase[2] <= time.hour
  490.           start_tone_change(phase[1], 1)
  491.           $game_system.daynight_phase = i
  492.           break
  493.         end
  494.       }
  495.     end
  496.  
  497.     @daynight_tone_changed = true
  498.   end
  499.   #--------------------------------------------------------------------------
  500.   # ○ 色调的获取
  501.   #--------------------------------------------------------------------------
  502.   def tone
  503.     if $game_temp.in_battle && KGC::DayNight::TONE_BACK_ONLY_IN_BATTLE
  504.       return @default_tone
  505.     else
  506.       return @tone
  507.     end
  508.   end
  509.   #--------------------------------------------------------------------------
  510.   # ● 色调更改的开始
  511.   #     tone     : 色调
  512.   #     duration : 时间
  513.   #--------------------------------------------------------------------------
  514.   alias start_tone_change_KGC_DayNight start_tone_change
  515.   def start_tone_change(tone, duration)
  516.     duration = [duration, 1].max
  517.     start_tone_change_KGC_DayNight(tone, duration)
  518.  
  519.     @daynight_tone_target = tone.clone
  520.     @daynight_tone_duration = duration
  521.   end
  522.   #--------------------------------------------------------------------------
  523.   # ● 更新画面
  524.   #--------------------------------------------------------------------------
  525.   alias update_KGC_DayNight update
  526.   def update
  527.     update_KGC_DayNight
  528.  
  529.     update_daynight_transit
  530.   end
  531.   #--------------------------------------------------------------------------
  532.   # ● 色调的更新
  533.   #--------------------------------------------------------------------------
  534.   alias update_tone_KGC_DayNight update_tone
  535.   def update_tone
  536.     update_tone_KGC_DayNight
  537.  
  538.     if @daynight_tone_duration >= 1
  539.       d = @daynight_tone_duration
  540.       target = @daynight_tone_target
  541.       @daynight_tone.red = (@daynight_tone.red * (d - 1) + target.red) / d
  542.       @daynight_tone.green = (@daynight_tone.green * (d - 1) + target.green) / d
  543.       @daynight_tone.blue = (@daynight_tone.blue * (d - 1) + target.blue) / d
  544.       @daynight_tone.gray = (@daynight_tone.gray * (d - 1) + target.gray) / d
  545.       @daynight_tone_duration -= 1
  546.     end
  547.   end
  548.   #--------------------------------------------------------------------------
  549.   # ○ 天色阶段变换的更新
  550.   #--------------------------------------------------------------------------
  551.   def update_daynight_transit
  552.     # 不能手动切换时
  553.     if $game_temp.manual_daynight_duration
  554.       start_tone_change($game_system.daynight_phase_object[1],
  555.         $game_temp.manual_daynight_duration)
  556.       $game_temp.manual_daynight_duration = nil
  557.       @daynight_tone_changed = true
  558.     end
  559.  
  560.     return unless $game_system.daynight_change_enabled  # 将切换
  561.     return if $game_map.daynight_stop?                  # 停止
  562.  
  563.     if KGC::DayNight::STOP_ON_EVENT
  564.       interpreter = ($game_temp.in_battle ? $game_troop.interpreter :
  565.         $game_map.interpreter)
  566.       return if interpreter.running?                    # 事件进行中
  567.     end
  568.  
  569.     case KGC::DayNight::METHOD
  570.     when KGC::DayNight::METHOD_TIME   # 时间
  571.       update_daynight_pass_time
  572.     when KGC::DayNight::METHOD_STEP   # 步数
  573.       update_daynight_step
  574.     when KGC::DayNight::METHOD_RTIME  # 现实时间
  575.       update_daynight_real_time
  576.     end
  577.   end
  578.   #--------------------------------------------------------------------------
  579.   # ○ 转换 : 时间切换
  580.   #--------------------------------------------------------------------------
  581.   def update_daynight_pass_time
  582.     # 计算出计算器的增加量
  583.     inc_count = Graphics.frame_count - @frame_count
  584.     # 加算量很奇怪时,取消
  585.     if inc_count >= 100
  586.       @frame_count = Graphics.frame_count
  587.       return
  588.     end
  589.     # 计算器的加算
  590.     $game_system.daynight_counter += inc_count
  591.     @frame_count = Graphics.frame_count
  592.  
  593.     # 确认状态转换
  594.     count = $game_system.daynight_counter / Graphics.frame_rate
  595.     if count >= $game_system.daynight_phase_object[2]
  596.       transit_daynight_next
  597.     end
  598.   end
  599.   #--------------------------------------------------------------------------
  600.   # ○ 转换 : 步数
  601.   #--------------------------------------------------------------------------
  602.   def update_daynight_step
  603.     # 没有移动时  取消
  604.     return if @daynight_x == $game_player.x && @daynight_y == $game_player.y
  605.  
  606.     @daynight_x = $game_player.x
  607.     @daynight_y = $game_player.y
  608.     # 计算器的加算
  609.     $game_system.daynight_counter += 1
  610.     # 确认状态转换
  611.     count = $game_system.daynight_counter
  612.     if count >= $game_system.daynight_phase_object[2]
  613.       transit_daynight_next
  614.     end
  615.   end
  616.   #--------------------------------------------------------------------------
  617.   # ○ 转换 : 现实时间
  618.   #--------------------------------------------------------------------------
  619.   def update_daynight_real_time
  620.     time = Time.now
  621.     # 确认状态的转换
  622.     time1 = $game_system.daynight_phase_object[2]
  623.     transit = (time1 <= time.hour)
  624.     if $game_system.previous_daynight_phase_object != nil
  625.       time2 = $game_system.previous_daynight_phase_object[2]
  626.       if time1 < time2
  627.         transit &= (time.hour < time2)
  628.       end
  629.     end
  630.  
  631.     if transit
  632.       transit_daynight_next
  633.     end
  634.   end
  635.   #--------------------------------------------------------------------------
  636.   # ○ 转换到下一个状态
  637.   #     duration : 转换时间
  638.   #--------------------------------------------------------------------------
  639.   def transit_daynight_next(duration = KGC::DayNight::PHASE_DURATION)
  640.     $game_system.daynight_counter = 0
  641.     $game_system.progress_daynight_phase
  642.     # 确认日数的经过
  643.     if $game_system.daynight_phase == KGC::DayNight::PASS_DAY_PHASE
  644.       $game_variables[KGC::DayNight::PASS_DAYS_VARIABLE] += 1
  645.     end
  646.     # 色调的切换
  647.     start_tone_change($game_system.daynight_phase_object[1], duration)
  648.     @daynight_tone_changed = true
  649.   end
  650.   #--------------------------------------------------------------------------
  651.   # ○ 还原到画面的状态(0, 0, 0)
  652.   #     duration : 转换时间
  653.   #--------------------------------------------------------------------------
  654.   def set_daynight_default(duration)
  655.     start_tone_change(@default_tone, duration)
  656.   end
  657.   #--------------------------------------------------------------------------
  658.   # ○ 复原现在的天色阶段
  659.   #     duration : 转换时间
  660.   #--------------------------------------------------------------------------
  661.   def restore_daynight_phase(duration)
  662.     start_tone_change($game_system.daynight_phase_object[1], duration)
  663.     @daynight_tone_changed = true
  664.   end
  665. end
  666.  
  667. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  668.  
  669. #==============================================================================
  670. # ■ Game_Map
  671. #==============================================================================
  672.  
  673. class Game_Map
  674.   #--------------------------------------------------------------------------
  675.   # ● 组合地图
  676.   #     map_id : 地图 ID
  677.   #--------------------------------------------------------------------------
  678.   alias setup_KGC_DayNight setup
  679.   def setup(map_id)
  680.     setup_KGC_DayNight(map_id)
  681.  
  682.     @screen.apply_daynight
  683.   end
  684.   #--------------------------------------------------------------------------
  685.   # ○ 是否停止昼夜交替
  686.   #--------------------------------------------------------------------------
  687.   def daynight_stop?
  688.     info = $data_mapinfos[map_id]
  689.     return false if info == nil
  690.     return (info.daynight_stop || info.daynight_void)
  691.   end
  692.   #--------------------------------------------------------------------------
  693.   # ○ 是否让昼夜交替无效
  694.   #--------------------------------------------------------------------------
  695.   def daynight_void?
  696.     info = $data_mapinfos[map_id]
  697.     return false if info == nil
  698.     return info.daynight_void
  699.   end
  700.   #--------------------------------------------------------------------------
  701.   # ● 遇敌的获取
  702.   #--------------------------------------------------------------------------
  703.   alias encounter_list_KGC_DayNight encounter_list
  704.   def encounter_list
  705.     list = encounter_list_KGC_DayNight.clone
  706.  
  707.     # 确认出现条件
  708.     list.each_index { |i|
  709.       list[i] = nil unless KGC::DayNight.troop_appear?($data_troops[list[i]])
  710.     }
  711.     return list.compact
  712.   end
  713. end
  714.  
  715. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  716.  
  717. #==============================================================================
  718. # ■ Spriteset_Battle
  719. #==============================================================================
  720.  
  721. if KGC::DayNight::TONE_BACK_ONLY_IN_BATTLE
  722. class Spriteset_Battle
  723.   #--------------------------------------------------------------------------
  724.   # ● 袭击的精灵的作成
  725.   #--------------------------------------------------------------------------
  726.   alias create_battleback_KGC_DayNight create_battleback
  727.   def create_battleback
  728.     create_battleback_KGC_DayNight
  729.  
  730.     if @battleback_sprite.wave_amp == 0
  731.       @battleback_sprite.tone = $game_troop.screen.daynight_tone
  732.     end
  733.   end
  734.   #--------------------------------------------------------------------------
  735.   # ● 战斗层精灵的作成
  736.   #--------------------------------------------------------------------------
  737.   alias create_battlefloor_KGC_DayNight create_battlefloor
  738.   def create_battlefloor
  739.     create_battlefloor_KGC_DayNight
  740.  
  741.     @battlefloor_sprite.tone = $game_troop.screen.daynight_tone
  742.   end
  743. end
  744. end
  745.  
  746. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  747.  
  748. #==============================================================================
  749. # ■ Scene_Map
  750. #==============================================================================
  751.  
  752. class Scene_Map < Scene_Base
  753.   #--------------------------------------------------------------------------
  754.   # ● 开始处理
  755.   #--------------------------------------------------------------------------
  756.   alias start_KGC_DayNight start
  757.   def start
  758.     $game_map.screen.clear_daynight
  759.  
  760.     start_KGC_DayNight
  761.   end
  762. end


QQ图片20130503161449.jpg (75.7 KB, 下载次数: 15)

这个用来测试事件脚本

这个用来测试事件脚本

QQ图片20130503161547.jpg (16.55 KB, 下载次数: 18)

一对话就报错

一对话就报错
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2024-11-15 14:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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