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

Project1

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

[已经解决] 昼夜交替 -问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
289 小时
注册时间
2014-12-12
帖子
165
跳转到指定楼层
1
发表于 2015-5-17 13:43:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
怎么用???????


昼夜交替 - KGC_DayNight ◆ VX ◆
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ 昼夜交替 - KGC_DayNight ◆ VX ◆
  3. #_/    ◇ Last update : 2008/03/08 ◇
  4. #_/                                       汉化 by 约束
  5. #_/
  6. #_/----------------------------------------------------------------------------
  7. #_/  在游戏中加入了昼夜交替。
  8. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

  9. #==============================================================================
  10. # ★ 指导项目 - Customize ★
  11. #==============================================================================

  12. module KGC
  13. module DayNight
  14.   # ◆ 昼夜切换方式
  15.   #  0..根据时间的经过  1..根据行走步数  2..根据现实时间(微妙)
  16.   METHOD = 1

  17.   # ◆ 保存天色阶段的变量号码
  18.   # 在这里被设定的变量中、存入现在的天色阶段。
  19.   PHASE_VARIABLE     = 11
  20.   # ◆ 保存日期的变量号码
  21.   #  在这里被设定的变量中、存入经过日数的阶段。
  22.   PASS_DAYS_VARIABLE = 12

  23.   # ◆ 在事件中不变更天色阶段
  24.   STOP_ON_EVENT = true
  25.   # ◆ 在战斗中、只有背景使用当前色调
  26.   # 改成 false 时、夜晚时会变的不合常理。
  27.   TONE_BACK_ONLY_IN_BATTLE = true

  28.   # ◆ 各个天色阶段的设置
  29.   #  将各个天色阶段
  30.   #   ["名称", 色调(Tone), 切换时间],
  31.   #  像如上设置。
  32.   #  可以增加天色阶段、但是在不习惯时不推荐增加。
  33.   #
  34.   #  [名称]
  35.   #    天色阶段的名字。
  36.   #    名字自身没有意义。
  37.   #  [色调]
  38.   #    画面全体的颜色。
  39.   #    并不是很明白时请不要轻易变更。
  40.   #  [切换时间]
  41.   #    到下个天色阶段的间隔时间。
  42.   #    切换方式是 使用时间经过方式为秒、步数方式为步数。
  43.   #    现实时间方式时、到下个状态切换的时刻 (24小时方式)。
  44.   PHASE = [
  45.     ["白日",   Tone.new(   0,    0,   0), 300],  # 天色阶段 0
  46.     ["傍晚",   Tone.new( -32,  -96, -96), 100],  # 天色阶段 1
  47.     ["夜晚",   Tone.new(-128, -128, -32), 250],  # 天色阶段 2
  48.     ["早晨",   Tone.new( -48,  -48, -16), 100],  # 天色阶段 3
  49.   ]  # ← 这里不要消去!

  50.   # 现实时间时、
  51.   #  ["白日",   Tone.new(  0,   0,   0), 16],  # 天色阶段 0 (现实为16点时傍晚)
  52.   #  ["傍晚",   Tone.new(  0, -96, -96), 20],  # 天色阶段 1 (现实为20点时夜晚)
  53.   #  ["夜晚",   Tone.new(-96, -96, -64),  6],  # 天色阶段 2 (现实为6点时早上)
  54.   #  ["早晨",   Tone.new(-48, -48, -16), 10],  # 天色阶段 3 (现实为10点时白日)
  55.   # 像这样的。

  56.   # ◆ 变换日期的天色阶段
  57.   #  到了这里设定过的天色阶段时、日数增加。
  58.   #  初期状况  0..白日  1..傍晚  2..夜晚  3..早上
  59.   # ※ 现实时间时、并不能与现实使用相同日数,请注意。
  60.   PASS_DAY_PHASE = 3

  61.   # ◆ 切换状态是的天色阶段时间 (画面)
  62.   #  省略时也会使用这个数值。
  63.   PHASE_DURATION = 60

  64.   # ◆ 日期名
  65.   #  从最初开始、到最后一个日期然后再从第一个循环开始。
  66.   #  日期名自身没有任何意义。
  67.   # ※ 使用现实时间时 请设置为7个日期。
  68.   WEEK_NAME = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]
  69. end
  70. end

  71. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  72. $imported = {} if $imported == nil
  73. $imported["DayNight"] = true

  74. if $data_mapinfos == nil
  75.   $data_mapinfos = load_data("Data/MapInfos.rvdata")
  76. end

  77. module KGC::DayNight
  78.   METHOD_TIME  = 0  # 时间经过
  79.   METHOD_STEP  = 1  # 步数
  80.   METHOD_RTIME = 2  # 现实时间

  81.   # 正规表现
  82.   module Regexp
  83.     # 地图情报
  84.     module MapInfo
  85.       # 停止变换
  86.       DAYNIGHT_STOP = /\[DN_STOP\]/i
  87.       # 使昼夜系统无效
  88.       DAYNIGHT_VOID = /\[DN_VOID\]/i
  89.     end

  90.     # 敌人队伍
  91.     module Troop
  92.       # 出现天色阶段
  93.       APPEAR_PHASE = /\[DN((?:[ ]*[\-]?\d+(?:[ ]*,)?)+)\]/i
  94.     end
  95.   end

  96.   #--------------------------------------------------------------------------
  97.   # ○ 确认敌人队伍的出现
  98.   #     troop : 确认对象的敌人队伍
  99.   #     phase : 确认天色阶段
  100.   #--------------------------------------------------------------------------
  101.   def self.troop_appear?(troop, phase = $game_system.daynight_phase)
  102.     # 确认出现
  103.     unless troop.appear_daynight_phase.empty?
  104.       return false unless troop.appear_daynight_phase.include?(phase)
  105.     end
  106.     # 确认没出现
  107.     unless troop.nonappear_daynight_phase.empty?
  108.       return false if troop.nonappear_daynight_phase.include?(phase)
  109.     end

  110.     return true
  111.   end
  112. end

  113. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  114. #==============================================================================
  115. # □ KGC::Commands
  116. #==============================================================================

  117. module KGC
  118. module Commands
  119.   module_function
  120.   #--------------------------------------------------------------------------
  121.   # ○ 停止昼夜切换
  122.   #--------------------------------------------------------------------------
  123.   def stop_daynight
  124.     $game_system.daynight_change_enabled = false
  125.   end
  126.   #--------------------------------------------------------------------------
  127.   # ○ 启动昼夜却换
  128.   #--------------------------------------------------------------------------
  129.   def start_daynight
  130.     $game_system.daynight_change_enabled = true
  131.   end
  132.   #--------------------------------------------------------------------------
  133.   # ○ 获取现在的天色阶段名
  134.   #--------------------------------------------------------------------------
  135.   def get_daynight_name
  136.     return KGC::DayNight::PHASE[get_daynight_phase][0]
  137.   end
  138.   #--------------------------------------------------------------------------
  139.   # ○ 获取现在的日期名
  140.   #     variable_id : 代入变量 ID
  141.   #--------------------------------------------------------------------------
  142.   def get_daynight_week(variable_id = 0)
  143.     if KGC::DayNight::METHOD == KGC::DayNight::METHOD_RTIME
  144.       week = Time.now.wday
  145.     else
  146.       days = $game_variables[KGC::DayNight::PASS_DAYS_VARIABLE]
  147.       week = (days % KGC::DayNight::WEEK_NAME.size)
  148.     end

  149.     if variable_id > 0
  150.       $game_variables[variable_id] = week
  151.     end
  152.     return week
  153.   end
  154.   #--------------------------------------------------------------------------
  155.   # ○获取现在的日期名
  156.   #--------------------------------------------------------------------------
  157.   def get_daynight_week_name
  158.     return KGC::DayNight::WEEK_NAME[get_daynight_week]
  159.   end
  160.   #--------------------------------------------------------------------------
  161.   # ○ 天色阶段的切换
  162.   #     phase     : 切换后的天色阶段
  163.   #     duration  : 切换时间(画面)
  164.   #     pass_days : 经过日数  (省略时: 0)
  165.   #--------------------------------------------------------------------------
  166.   def change_daynight_phase(phase,
  167.       duration = KGC::DayNight::PHASE_DURATION,
  168.       pass_days = 0)
  169.     $game_temp.manual_daynight_duration = duration
  170.     $game_system.daynight_counter = 0
  171.     $game_system.daynight_phase = phase
  172.     $game_variables[KGC::DayNight::PASS_DAYS_VARIABLE] += pass_days
  173.     $game_map.need_refresh = true
  174.   end
  175.   #--------------------------------------------------------------------------
  176.   # ○ 转移到下一个天色阶段
  177.   #     duration : 切换时间(画面)
  178.   #--------------------------------------------------------------------------
  179.   def transit_daynight_phase(duration = KGC::DayNight::PHASE_DURATION)
  180.     $game_screen.transit_daynight_phase(duration)
  181.     $game_map.need_refresh = true
  182.   end
  183.   #--------------------------------------------------------------------------
  184.   # ○ 返回到默认的色调
  185.   #     duration : 切换时间(画面)
  186.   #--------------------------------------------------------------------------
  187.   def set_daynight_default(duration = KGC::DayNight::PHASE_DURATION)
  188.     $game_screen.set_daynight_default(duration)
  189.     $game_map.need_refresh = true
  190.   end
  191.   #--------------------------------------------------------------------------
  192.   # ○ 还原现在的天色阶段
  193.   #     duration : 切换时间(画面)
  194.   #--------------------------------------------------------------------------
  195.   def restore_daynight_phase(duration = KGC::DayNight::PHASE_DURATION)
  196.     $game_screen.restore_daynight_phase(duration)
  197.     $game_map.need_refresh = true
  198.   end
  199. end
  200. end

  201. class Game_Interpreter
  202.   include KGC::Commands
  203. end

  204. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  205. #==============================================================================
  206. # ■ RPG::MapInfo
  207. #==============================================================================

  208. class RPG::MapInfo
  209.   #--------------------------------------------------------------------------
  210.   # ● 获取地图名
  211.   #--------------------------------------------------------------------------
  212.   def name
  213.     return @name.gsub(/\[.*\]/) { "" }
  214.   end
  215.   #--------------------------------------------------------------------------
  216.   # ○ 获取自制地图名
  217.   #--------------------------------------------------------------------------
  218.   def original_name
  219.     return @name
  220.   end
  221.   #--------------------------------------------------------------------------
  222.   # ○ 停止昼夜交替
  223.   #--------------------------------------------------------------------------
  224.   def daynight_stop
  225.     return @name =~ KGC::DayNight::Regexp::MapInfo::DAYNIGHT_STOP
  226.   end
  227.   #--------------------------------------------------------------------------
  228.   # ○ 使昼夜效果无效
  229.   #--------------------------------------------------------------------------
  230.   def daynight_void
  231.     return @name =~ KGC::DayNight::Regexp::MapInfo::DAYNIGHT_VOID
  232.   end
  233. end

  234. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  235. #==============================================================================
  236. # ■ RPG::Area
  237. #==============================================================================

  238. unless $@
  239. class RPG::Area
  240.   #--------------------------------------------------------------------------
  241.   # ○ 获取遇敌
  242.   #--------------------------------------------------------------------------
  243.   alias encounter_list_KGC_DayNight encounter_list
  244.   def encounter_list
  245.     list = encounter_list_KGC_DayNight.clone

  246.     # 确认出现条件
  247.     list.each_index { |i|
  248.       list[i] = nil unless KGC::DayNight.troop_appear?($data_troops[list[i]])
  249.     }
  250.     return list.compact
  251.   end
  252. end
  253. end

  254. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  255. #==============================================================================
  256. # ■ RPG::Troop
  257. #==============================================================================

  258. class RPG::Troop
  259.   #--------------------------------------------------------------------------
  260.   # ○ 作成昼夜交替的存储
  261.   #--------------------------------------------------------------------------
  262.   def create_daynight_cache
  263.     @__appear_daynight_phase = []
  264.     @__nonappear_daynight_phase = []

  265.     # 出现的天色阶段
  266.     if @name =~ KGC::DayNight::Regexp::Troop::APPEAR_PHASE
  267.       $1.scan(/[\-]?\d+/).each { |num|
  268.         phase = num.to_i
  269.         if phase < 0
  270.           # 不出现
  271.           @__nonappear_daynight_phase << phase.abs
  272.         else
  273.           # 出现
  274.           @__appear_daynight_phase << phase
  275.         end
  276.       }
  277.     end
  278.   end
  279.   #--------------------------------------------------------------------------
  280.   # ○ 出现的天色阶段
  281.   #--------------------------------------------------------------------------
  282.   def appear_daynight_phase
  283.     create_daynight_cache if @__appear_daynight_phase == nil
  284.     return @__appear_daynight_phase
  285.   end
  286.   #--------------------------------------------------------------------------
  287.   # ○ 不出现的天色阶段
  288.   #--------------------------------------------------------------------------
  289.   def nonappear_daynight_phase
  290.     create_daynight_cache if @__nonappear_daynight_phase == nil
  291.     return @__nonappear_daynight_phase
  292.   end
  293. end

  294. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  295. #==============================================================================
  296. # ■ Game_Temp
  297. #==============================================================================

  298. class Game_Temp
  299.   #--------------------------------------------------------------------------
  300.   # ● 定义实例变量
  301.   #--------------------------------------------------------------------------
  302.   attr_accessor :manual_daynight_duration # 手动改变天色阶段的标志
  303.   #--------------------------------------------------------------------------
  304.   # ● 初始化对象
  305.   #--------------------------------------------------------------------------
  306.   alias initialize_KGC_DayNight initialize
  307.   def initialize
  308.     initialize_KGC_DayNight

  309.     @manual_daynight_duration = nil
  310.   end
  311. end

  312. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  313. #==============================================================================
  314. # ■ Game_System
  315. #==============================================================================

  316. class Game_System
  317.   #--------------------------------------------------------------------------
  318.   # ● 定义实例变量
  319.   #--------------------------------------------------------------------------
  320.   attr_writer   :daynight_counter         # 天色阶段转换的计数器
  321.   attr_writer   :daynight_change_enabled  # 使昼夜交替有效
  322.   #--------------------------------------------------------------------------
  323.   # ● 初始化对象
  324.   #--------------------------------------------------------------------------
  325.   alias initialize_KGC_DayNight initialize
  326.   def initialize
  327.     initialize_KGC_DayNight

  328.     @daynight_counter = 0
  329.     @daynight_change_enabled = true
  330.   end
  331.   #--------------------------------------------------------------------------
  332.   # ○ 获取天色阶段转换的计数器
  333.   #--------------------------------------------------------------------------
  334.   def daynight_counter
  335.     @daynight_counter = 0 if @daynight_counter == nil
  336.     return @daynight_counter
  337.   end
  338.   #--------------------------------------------------------------------------
  339.   # ○ 获取现在的天色阶段
  340.   #--------------------------------------------------------------------------
  341.   def daynight_phase
  342.     return $game_variables[KGC::DayNight::PHASE_VARIABLE]
  343.   end
  344.   #--------------------------------------------------------------------------
  345.   # ○ 变换现在的天色阶段
  346.   #--------------------------------------------------------------------------
  347.   def daynight_phase=(value)
  348.     $game_variables[KGC::DayNight::PHASE_VARIABLE] = value
  349.   end
  350.   #--------------------------------------------------------------------------
  351.   # ○ 获取使昼夜交替有效的标志
  352.   #--------------------------------------------------------------------------
  353.   def daynight_change_enabled
  354.     @daynight_change_enabled = 0 if @daynight_change_enabled == nil
  355.     return @daynight_change_enabled
  356.   end
  357.   #--------------------------------------------------------------------------
  358.   # ○ 进行天色阶段
  359.   #--------------------------------------------------------------------------
  360.   def progress_daynight_phase
  361.     self.daynight_phase += 1
  362.     if self.daynight_phase >= KGC::DayNight::PHASE.size
  363.       self.daynight_phase = 0
  364.     end
  365.     $game_map.need_refresh = true
  366.   end
  367.   #--------------------------------------------------------------------------
  368.   # ○ 获取现在的天色阶段对象
  369.   #--------------------------------------------------------------------------
  370.   def daynight_phase_object
  371.     return KGC::DayNight::PHASE[daynight_phase]
  372.   end
  373.   #--------------------------------------------------------------------------
  374.   # ○ 获取以前的天色阶段对象
  375.   #--------------------------------------------------------------------------
  376.   def previous_daynight_phase_object
  377.     return KGC::DayNight::PHASE[daynight_phase - 1]
  378.   end
  379. end

  380. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  381. #==============================================================================
  382. # ■ Game_Screen
  383. #==============================================================================

  384. class Game_Screen
  385.   #--------------------------------------------------------------------------
  386.   # ● 定义实例变量
  387.   #--------------------------------------------------------------------------
  388.   attr_reader   :daynight_tone            # 昼夜的色调
  389.   #--------------------------------------------------------------------------
  390.   # ● 清除
  391.   #--------------------------------------------------------------------------
  392.   alias clear_KGC_DayNight clear
  393.   def clear
  394.     clear_KGC_DayNight

  395.     clear_daynight
  396.   end
  397.   #--------------------------------------------------------------------------
  398.   # ○ 清除昼夜交替的变量
  399.   #--------------------------------------------------------------------------
  400.   def clear_daynight
  401.     @default_tone = Tone.new(0, 0, 0)

  402.     # 初期化用于确认移动的坐标
  403.     @daynight_x = 0
  404.     @daynight_y = 0

  405.     # 初期化用于更新天色阶段的计数器
  406.     @frame_count = Graphics.frame_count
  407.     @daynight_tone_duration = 0

  408.     apply_daynight
  409.   end
  410.   #--------------------------------------------------------------------------
  411.   # ○ 使用昼夜的色调
  412.   #--------------------------------------------------------------------------
  413.   def apply_daynight
  414.     return if $game_map == nil

  415.     # 切换成无效的地图时
  416.     if $game_map.daynight_void?
  417.       if @daynight_tone_changed
  418.         # 返回到处起的色调
  419.         @tone = @default_tone.clone
  420.         @daynight_tone_changed = false
  421.       end
  422.       @daynight_tone = @tone.clone
  423.       return
  424.     end

  425.     # 天色阶段奇怪时修复它
  426.     if $game_system.daynight_phase_object == nil
  427.       $game_system.daynight_phase = 0
  428.     end

  429.     # 使用现在的色调
  430.     @tone = $game_system.daynight_phase_object[1].clone
  431.     @daynight_tone = @tone.clone

  432.     # 现实时间经过时
  433.     if KGC::DayNight::METHOD == KGC::DayNight::METHOD_RTIME
  434.       time = Time.now
  435.       # 变换到调和的天色阶段
  436.       KGC::DayNight::PHASE.each_with_index { |phase, i|
  437.         if phase[2] <= time.hour
  438.           start_tone_change(phase[1], 1)
  439.           $game_system.daynight_phase = i
  440.           break
  441.         end
  442.       }
  443.     end

  444.     @daynight_tone_changed = true
  445.   end
  446.   #--------------------------------------------------------------------------
  447.   # ○ 色调的获取
  448.   #--------------------------------------------------------------------------
  449.   def tone
  450.     if $game_temp.in_battle && KGC::DayNight::TONE_BACK_ONLY_IN_BATTLE
  451.       return @default_tone
  452.     else
  453.       return @tone
  454.     end
  455.   end
  456.   #--------------------------------------------------------------------------
  457.   # ● 色调更改的开始
  458.   #     tone     : 色调
  459.   #     duration : 时间
  460.   #--------------------------------------------------------------------------
  461.   alias start_tone_change_KGC_DayNight start_tone_change
  462.   def start_tone_change(tone, duration)
  463.     duration = [duration, 1].max
  464.     start_tone_change_KGC_DayNight(tone, duration)

  465.     @daynight_tone_target = tone.clone
  466.     @daynight_tone_duration = duration
  467.   end
  468.   #--------------------------------------------------------------------------
  469.   # ● 更新画面
  470.   #--------------------------------------------------------------------------
  471.   alias update_KGC_DayNight update
  472.   def update
  473.     update_KGC_DayNight

  474.     update_daynight_transit
  475.   end
  476.   #--------------------------------------------------------------------------
  477.   # ● 色调的更新
  478.   #--------------------------------------------------------------------------
  479.   alias update_tone_KGC_DayNight update_tone
  480.   def update_tone
  481.     update_tone_KGC_DayNight

  482.     if @daynight_tone_duration >= 1
  483.       d = @daynight_tone_duration
  484.       target = @daynight_tone_target
  485.       @daynight_tone.red = (@daynight_tone.red * (d - 1) + target.red) / d
  486.       @daynight_tone.green = (@daynight_tone.green * (d - 1) + target.green) / d
  487.       @daynight_tone.blue = (@daynight_tone.blue * (d - 1) + target.blue) / d
  488.       @daynight_tone.gray = (@daynight_tone.gray * (d - 1) + target.gray) / d
  489.       @daynight_tone_duration -= 1
  490.     end
  491.   end
  492.   #--------------------------------------------------------------------------
  493.   # ○ 天色阶段变换的更新
  494.   #--------------------------------------------------------------------------
  495.   def update_daynight_transit
  496.     # 不能手动切换时
  497.     if $game_temp.manual_daynight_duration
  498.       start_tone_change($game_system.daynight_phase_object[1],
  499.         $game_temp.manual_daynight_duration)
  500.       $game_temp.manual_daynight_duration = nil
  501.       @daynight_tone_changed = true
  502.     end

  503.     return unless $game_system.daynight_change_enabled  # 将切换
  504.     return if $game_map.daynight_stop?                  # 停止

  505.     if KGC::DayNight::STOP_ON_EVENT
  506.       interpreter = ($game_temp.in_battle ? $game_troop.interpreter :
  507.         $game_map.interpreter)
  508.       return if interpreter.running?                    # 事件进行中
  509.     end

  510.     case KGC::DayNight::METHOD
  511.     when KGC::DayNight::METHOD_TIME   # 时间
  512.       update_daynight_pass_time
  513.     when KGC::DayNight::METHOD_STEP   # 步数
  514.       update_daynight_step
  515.     when KGC::DayNight::METHOD_RTIME  # 现实时间
  516.       update_daynight_real_time
  517.     end
  518.   end
  519.   #--------------------------------------------------------------------------
  520.   # ○ 转换 : 时间切换
  521.   #--------------------------------------------------------------------------
  522.   def update_daynight_pass_time
  523.     # 计算出计算器的增加量
  524.     inc_count = Graphics.frame_count - @frame_count
  525.     # 加算量很奇怪时,取消
  526.     if inc_count >= 100
  527.       @frame_count = Graphics.frame_count
  528.       return
  529.     end
  530.     # 计算器的加算
  531.     $game_system.daynight_counter += inc_count
  532.     @frame_count = Graphics.frame_count

  533.     # 确认状态转换
  534.     count = $game_system.daynight_counter / Graphics.frame_rate
  535.     if count >= $game_system.daynight_phase_object[2]
  536.       transit_daynight_next
  537.     end
  538.   end
  539.   #--------------------------------------------------------------------------
  540.   # ○ 转换 : 步数
  541.   #--------------------------------------------------------------------------
  542.   def update_daynight_step
  543.     # 没有移动时  取消
  544.     return if @daynight_x == $game_player.x && @daynight_y == $game_player.y

  545.     @daynight_x = $game_player.x
  546.     @daynight_y = $game_player.y
  547.     # 计算器的加算
  548.     $game_system.daynight_counter += 1
  549.     # 确认状态转换
  550.     count = $game_system.daynight_counter
  551.     if count >= $game_system.daynight_phase_object[2]
  552.       transit_daynight_next
  553.     end
  554.   end
  555.   #--------------------------------------------------------------------------
  556.   # ○ 转换 : 现实时间
  557.   #--------------------------------------------------------------------------
  558.   def update_daynight_real_time
  559.     time = Time.now
  560.     # 确认状态的转换
  561.     time1 = $game_system.daynight_phase_object[2]
  562.     transit = (time1 <= time.hour)
  563.     if $game_system.previous_daynight_phase_object != nil
  564.       time2 = $game_system.previous_daynight_phase_object[2]
  565.       if time1 < time2
  566.         transit &= (time.hour < time2)
  567.       end
  568.     end

  569.     if transit
  570.       transit_daynight_next
  571.     end
  572.   end
  573.   #--------------------------------------------------------------------------
  574.   # ○ 转换到下一个状态
  575.   #     duration : 转换时间
  576.   #--------------------------------------------------------------------------
  577.   def transit_daynight_next(duration = KGC::DayNight::PHASE_DURATION)
  578.     $game_system.daynight_counter = 0
  579.     $game_system.progress_daynight_phase
  580.     # 确认日数的经过
  581.     if $game_system.daynight_phase == KGC::DayNight::PASS_DAY_PHASE
  582.       $game_variables[KGC::DayNight::PASS_DAYS_VARIABLE] += 1
  583.     end
  584.     # 色调的切换
  585.     start_tone_change($game_system.daynight_phase_object[1], duration)
  586.     @daynight_tone_changed = true
  587.   end
  588.   #--------------------------------------------------------------------------
  589.   # ○ 还原到画面的状态(0, 0, 0)
  590.   #     duration : 转换时间
  591.   #--------------------------------------------------------------------------
  592.   def set_daynight_default(duration)
  593.     start_tone_change(@default_tone, duration)
  594.   end
  595.   #--------------------------------------------------------------------------
  596.   # ○ 复原现在的天色阶段
  597.   #     duration : 转换时间
  598.   #--------------------------------------------------------------------------
  599.   def restore_daynight_phase(duration)
  600.     start_tone_change($game_system.daynight_phase_object[1], duration)
  601.     @daynight_tone_changed = true
  602.   end
  603. end

  604. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  605. #==============================================================================
  606. # ■ Game_Map
  607. #==============================================================================

  608. class Game_Map
  609.   #--------------------------------------------------------------------------
  610.   # ● 组合地图
  611.   #     map_id : 地图 ID
  612.   #--------------------------------------------------------------------------
  613.   alias setup_KGC_DayNight setup
  614.   def setup(map_id)
  615.     setup_KGC_DayNight(map_id)

  616.     @screen.apply_daynight
  617.   end
  618.   #--------------------------------------------------------------------------
  619.   # ○ 是否停止昼夜交替
  620.   #--------------------------------------------------------------------------
  621.   def daynight_stop?
  622.     info = $data_mapinfos[map_id]
  623.     return false if info == nil
  624.     return (info.daynight_stop || info.daynight_void)
  625.   end
  626.   #--------------------------------------------------------------------------
  627.   # ○ 是否让昼夜交替无效
  628.   #--------------------------------------------------------------------------
  629.   def daynight_void?
  630.     info = $data_mapinfos[map_id]
  631.     return false if info == nil
  632.     return info.daynight_void
  633.   end
  634.   #--------------------------------------------------------------------------
  635.   # ● 遇敌的获取
  636.   #--------------------------------------------------------------------------
  637.   alias encounter_list_KGC_DayNight encounter_list
  638.   def encounter_list
  639.     list = encounter_list_KGC_DayNight.clone

  640.     # 确认出现条件
  641.     list.each_index { |i|
  642.       list[i] = nil unless KGC::DayNight.troop_appear?($data_troops[list[i]])
  643.     }
  644.     return list.compact
  645.   end
  646. end

  647. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  648. #==============================================================================
  649. # ■ Spriteset_Battle
  650. #==============================================================================

  651. if KGC::DayNight::TONE_BACK_ONLY_IN_BATTLE
  652. class Spriteset_Battle
  653.   #--------------------------------------------------------------------------
  654.   # ● 袭击的精灵的作成
  655.   #--------------------------------------------------------------------------
  656.   alias create_battleback_KGC_DayNight create_battleback
  657.   def create_battleback
  658.     create_battleback_KGC_DayNight

  659.     if @battleback_sprite.wave_amp == 0
  660.       @battleback_sprite.tone = $game_troop.screen.daynight_tone
  661.     end
  662.   end
  663.   #--------------------------------------------------------------------------
  664.   # ● 战斗层精灵的作成
  665.   #--------------------------------------------------------------------------
  666.   alias create_battlefloor_KGC_DayNight create_battlefloor
  667.   def create_battlefloor
  668.     create_battlefloor_KGC_DayNight

  669.     @battlefloor_sprite.tone = $game_troop.screen.daynight_tone
  670.   end
  671. end
  672. end

  673. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  674. #==============================================================================
  675. # ■ Scene_Map
  676. #==============================================================================

  677. class Scene_Map < Scene_Base
  678.   #--------------------------------------------------------------------------
  679.   # ● 开始处理
  680.   #--------------------------------------------------------------------------
  681.   alias start_KGC_DayNight start
  682.   def start
  683.     $game_map.screen.clear_daynight

  684.     start_KGC_DayNight
  685.   end
  686. end
复制代码
怎么用,怎么色调没有什么变化{:4_137:}


求检查....


66RGP都是好人,感谢各位好人脚本...
PPT 制作

Lv1.梦旅人

梦石
0
星屑
90
在线时间
357 小时
注册时间
2006-3-3
帖子
181
来自 9楼
发表于 2015-5-24 10:14:45 | 只看该作者
本帖最后由 duchen5779 于 2015-5-24 10:20 编辑

 #  [切换时间]
  #    到下个天色阶段的间隔时间。
  #    切换方式是 使用时间经过方式为秒、步数方式为步数
  #    现实时间方式时、到下个状态切换的时刻 (24小时方式)。

黑体字即是答案

你现在设定的是步数模式,你自己每个时段谁的内功的步数至少都是100步往上,你测试的时候会走上100多步吗……把100啊,300啊,250啊,那几个数设小点不就行了?可以先设3或者5,测试时走三五步就能有效果了。

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
226 小时
注册时间
2015-5-8
帖子
329
2
发表于 2015-5-17 13:51:15 | 只看该作者
這個腳本插入就可以使用了哦。
  1. # ◆ 保存天色阶段的变量号码
  2.   # 在这里被设定的变量中、存入现在的天色阶段。
  3.   PHASE_VARIABLE     = 11
复制代码
這裡試試調節一下變量就有效果了。
其他參數請設置module模塊

评分

参与人数 1星屑 +60 收起 理由
Luciffer + 60 我很赞同

查看全部评分

我是妖精蕾貝卡,沉默少言,孤獨自卑。完成了一個小遊戲,歡迎試玩。同時也歡迎試玩師傅的遊戲,謝謝。
現正在努力學習事件中,有不明白的地方請各位指教。

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
289 小时
注册时间
2014-12-12
帖子
165
3
 楼主| 发表于 2015-5-17 14:08:13 | 只看该作者
妖精蕾贝卡 发表于 2015-5-17 13:51
這個腳本插入就可以使用了哦。這裡試試調節一下變量就有效果了。
其他參數請設置module模塊 ...

{:2_271:}然后呢?@.... @怎么 @弄 @看 @了 @竟然 没有(。◕∀◕。)
PPT 制作
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
226 小时
注册时间
2015-5-8
帖子
329
4
发表于 2015-5-17 14:10:29 | 只看该作者
13790758417 发表于 2015-5-17 14:08
然后呢?@.... @怎么 @弄 @看 @了 @竟然 没有(。◕∀◕。)  ...

試試執行變量11操作等於1看看效果。
或者在遊戲中步行指定的步數。
我是妖精蕾貝卡,沉默少言,孤獨自卑。完成了一個小遊戲,歡迎試玩。同時也歡迎試玩師傅的遊戲,謝謝。
現正在努力學習事件中,有不明白的地方請各位指教。

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
289 小时
注册时间
2014-12-12
帖子
165
5
 楼主| 发表于 2015-5-17 14:15:58 | 只看该作者
妖精蕾贝卡 发表于 2015-5-17 14:10
試試執行變量11操作等於1看看效果。
或者在遊戲中步行指定的步數。

需要多少步呢???
PPT 制作
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
226 小时
注册时间
2015-5-8
帖子
329
6
发表于 2015-5-17 14:19:44 | 只看该作者
  1. # ◆ 切换状态是的天色阶段时间 (画面)
  2.   #  省略时也会使用这个数值。
  3.   PHASE_DURATION = 60
复制代码
請自行設定切換的步數
我是妖精蕾貝卡,沉默少言,孤獨自卑。完成了一個小遊戲,歡迎試玩。同時也歡迎試玩師傅的遊戲,謝謝。
現正在努力學習事件中,有不明白的地方請各位指教。

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
289 小时
注册时间
2014-12-12
帖子
165
7
 楼主| 发表于 2015-5-17 14:37:34 | 只看该作者
妖精蕾贝卡 发表于 2015-5-17 14:19
請自行設定切換的步數

    ["白日",   Tone.new(   0,    0,   0), 300],  # 天色阶段 0
    ["傍晚",   Tone.new( -32,  -96, -96), 100],  # 天色阶段 1
    ["夜晚",   Tone.new(-128, -128, -32), 250],  # 天色阶段 2
    ["早晨",   Tone.new( -48,  -48, -16), 100],  # 天色阶段 3

这个怎么设置步数????
PPT 制作
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
289 小时
注册时间
2014-12-12
帖子
165
8
 楼主| 发表于 2015-5-23 19:24:09 | 只看该作者
{:4_137:}顶啊{:4_132:}{:4_132:}{:4_132:}
PPT 制作
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 18:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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