rpgmaker mv 新手入门求教.rpg中的开关如何与事件连接

【新手求助】VX怎样按照开关设置昼夜交替啊?_rpg制作大师吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:44,478贴子:
【新手求助】VX怎样按照开关设置昼夜交替啊?收藏
是不是需要脚本呢?我有一个脚本是从66RPG上copy下来的,不过上面貌似没有按照开关设置的。是按照步数、变量、显示时间(微秒)来算的,说明书如下:(脚本放在2L)◆当地图名后加上[DN_STOP]时,这个地图将不会有昼夜交替,但效果保持在进去前的天色上◆当地图名后加上[DN_VOID]时,这个地图不单不会有昼夜交替,也会不显示进去前的天色◆当敌方队名上加入[DN ...]时,(此处点省略的是天色的编号),就会使这个敌人在某个时段不出现,或者只有某个时段才会出现&& 例如&& [DN 2] 就是让这个敌人只有在夜晚(3号)才会出现&&&&&&& 而[DN -0,-3] 则是让他在白天(0号)和早晨(3号)不会出现◆可以变更每个时段的天色,具体请在脚本开头寻找&& PHASE = [&&&& ["白日",&&& 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&&&& 会自动从第一个编号0开始循环&& 这里括号中的内容为色调,后面的数字在根据时间经过变更天色时为到下个时段所需要用的时间,步数计算时为到下个时段所需要用的步数&&◆本脚本默认为事件进行中不变更天色&& 如果有需要变更时,请用事件,脚本 调用change_daynight_phase 即可◆关于事件中脚本可以控制的部分&& ◇stop_daynight&&&&&&&&&&&& 停止昼夜交替&& ◇start_daynight&&&&&&&&&&& 开启昼夜交替(游戏开始&&&& 时自动开启)&& ◇get_daynight_name&&&&&&&& 获取现在时段名&& ◇get_daynight_week(variable_id)&&&& 现在的日期从variable_id所设置的变量中获取日期(星期日数)是从0~6的整数值,使用显示时间时,会获取显示中的日期&&&& 例如 &&&& get_daynight_week(21)&&&& 是从21号变量中获取现在的日期&& ◇get_daynight_week_name&&& 获取现在的日期名&& ◇change_daynight_phase(phase[, duration[, pass_days]]) &&&& 切换时段&&&& phase处为切换到的时段编号&&&& duration处为切换时段所用的时间(最小值为1),省略时会自动采用指导项目中默认的(默认的为60=1秒)&&&& pass_days处为切换后经过的日期数,省略时日期将不会改变&&&& 例如&&&& change_daynight_phase(2)&&&&&&&&&&&& 为使天色变为夜晚(2号)&&&& change_daynight_phase(0, 1)&&&&&&&&& 为一瞬间使天色变为早晨(0号)&&&& change_daynight_phase(3, 1, 1)&&&&&& 为一瞬间使天色变为早晨并且使日期经过1&& ◇transit_daynight_phase(duration)&&&& 变换到下一个天色阶段(括号中duration是变换时所用的时间)&& ◇set_daynight_default(duration)&&&& 将色调还原到初期状态(括号中duration是变换时所用的时间)&& ◇restore_daynight_phase(duration)&&&& 将画面的色调返回到现在的时段(括号中duration是变换时所用的时间)
3D双端东方魔幻网游「大青云」勾魂公测,穿越逆转,封神故事,全新演绎!
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/#_/&&&& ◆ 昼夜交替 - KGC_DayNight ◆ VX ◆#_/&&&& ◇ Last update :
◇#_/&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 汉化 by 约束#_/#_/----------------------------------------------------------------------------#_/&& 在游戏中加入了昼夜交替。#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/#==============================================================================# ★ 指导项目 - Customize ★#==============================================================================module KGCmodule DayNight&& # ◆ 昼夜切换方式&& #&& 0..根据时间的经过&& 1..根据行走步数&& 2..根据现实时间(微妙)&& METHOD = 1&& # ◆ 保存天色阶段的变量号码&& # 在这里被设定的变量中、存入现在的天色阶段。&& PHASE_VARIABLE&&&&& = 11&& # ◆ 保存日期的变量号码&& #&& 在这里被设定的变量中、存入经过日数的阶段。&& PASS_DAYS_VARIABLE = 12&& # ◆ 在事件中不变更天色阶段&& STOP_ON_EVENT = true&& # ◆ 在战斗中、只有背景使用当前色调&& # 改成 false 时、夜晚时会变的不合常理。&& TONE_BACK_ONLY_IN_BATTLE = true&& # ◆ 各个天色阶段的设置&& #&& 将各个天色阶段&& #&&& ["名称", 色调(Tone), 切换时间],&& #&& 像如上设置。&& #&& 可以增加天色阶段、但是在不习惯时不推荐增加。&& #&& #&& [名称]&& #&&&& 天色阶段的名字。&& #&&&& 名字自身没有意义。&& #&& [色调]&& #&&&& 画面全体的颜色。&& #&&&& 并不是很明白时请不要轻易变更。&& #&& [切换时间]&& #&&&& 到下个天色阶段的间隔时间。&& #&&&& 切换方式是 使用时间经过方式为秒、步数方式为步数。&& #&&&& 现实时间方式时、到下个状态切换的时刻 (24小时方式)。&& PHASE = [&&&& ["白日",&&& 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
&& ]&& # ← 这里不要消去!&& # 现实时间时、&& #&& ["白日",&&& Tone.new(&& 0,&&& 0,&&& 0), 16],&& # 天色阶段 0 (现实为16点时傍晚)&& #&& ["傍晚",&&& Tone.new(&& 0, -96, -96), 20],&& # 天色阶段 1 (现实为20点时夜晚)&& #&& ["夜晚",&&& Tone.new(-96, -96, -64),&& 6],&& # 天色阶段 2 (现实为6点时早上)&& #&& ["早晨",&&& Tone.new(-48, -48, -16), 10],&& # 天色阶段 3 (现实为10点时白日)&& # 像这样的。&& # ◆ 变换日期的天色阶段&& #&& 到了这里设定过的天色阶段时、日数增加。&& #&& 初期状况&& 0..白日&& 1..傍晚&& 2..夜晚&& 3..早上&& # ※ 现实时间时、并不能与现实使用相同日数,请注意。&& PASS_DAY_PHASE = 3&& # ◆ 切换状态是的天色阶段时间 (画面)&& #&& 省略时也会使用这个数值。&& PHASE_DURATION = 60&& # ◆ 日期名&& #&& 从最初开始、到最后一个日期然后再从第一个循环开始。&& #&& 日期名自身没有任何意义。&& # ※ 使用现实时间时 请设置为7个日期。&& WEEK_NAME = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]endend#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★$imported = {} if $imported == nil$imported["DayNight"] = trueif $data_mapinfos == nil&& $data_mapinfos = load_data("Data/MapInfos.rvdata")endmodule KGC::DayNight&& METHOD_TIME&& = 0&& # 时间经过&& METHOD_STEP&& = 1&& # 步数&& METHOD_RTIME = 2&& # 现实时间&& # 正规表现&& module Regexp&&&& # 地图情报&&&& module MapInfo&&&&&& # 停止变换&&&&&& DAYNIGHT_STOP = /\[DN_STOP\]/i&&&&&& # 使昼夜系统无效&&&&&& DAYNIGHT_VOID = /\[DN_VOID\]/i&&&& end&&&& # 敌人队伍&&&& module Troop&&&&&& # 出现天色阶段&&&&&& APPEAR_PHASE = /\[DN((?:[ ]*[\-]?\d+(?:[ ]*,)?)+)\]/i&&&& end&& end&& #--------------------------------------------------------------------------&& # ○ 确认敌人队伍的出现&& #&&&&& troop : 确认对象的敌人队伍&& #&&&&& phase : 确认天色阶段&& #--------------------------------------------------------------------------
&& def self.troop_appear?(troop, phase = $game_system.daynight_phase)&&&& # 确认出现&&&& unless troop.appear_daynight_phase.empty?&&&&&& return false unless troop.appear_daynight_phase.include?(phase)&&&& end&&&& # 确认没出现&&&& unless troop.nonappear_daynight_phase.empty?&&&&&& return false if troop.nonappear_daynight_phase.include?(phase)&&&& end&&&& return true&& endend#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★#==============================================================================# □ KGC::Commands#==============================================================================module KGCmodule Commands&& module_function&& #--------------------------------------------------------------------------&& # ○ 停止昼夜切换&& #--------------------------------------------------------------------------&& def stop_daynight&&&& $game_system.daynight_change_enabled = false&& end&& #--------------------------------------------------------------------------&& # ○ 启动昼夜却换&& #--------------------------------------------------------------------------&& def start_daynight&&&& $game_system.daynight_change_enabled = true&& end&& #--------------------------------------------------------------------------&& # ○ 获取现在的天色阶段名&& #--------------------------------------------------------------------------&& def get_daynight_name&&&& return KGC::DayNight::PHASE[get_daynight_phase][0]&& end&& #--------------------------------------------------------------------------&& # ○ 获取现在的日期名&& #&&&&& variable_id : 代入变量 ID&& #--------------------------------------------------------------------------&& def get_daynight_week(variable_id = 0)&&&& if KGC::DayNight::METHOD == KGC::DayNight::METHOD_RTIME&&&&&& week = Time.now.wday&&&& else&&&&&& days = $game_variables[KGC::DayNight::PASS_DAYS_VARIABLE]&&&&&& week = (days % KGC::DayNight::WEEK_NAME.size)&&&& end&&&& if variable_id & 0&&&&&& $game_variables[variable_id] = week&&&& end&&&& return week&& end&& #--------------------------------------------------------------------------
&& # ○获取现在的日期名&& #--------------------------------------------------------------------------&& def get_daynight_week_name&&&& return KGC::DayNight::WEEK_NAME[get_daynight_week]&& end&& #--------------------------------------------------------------------------&& # ○ 天色阶段的切换&& #&&&&& phase&&&&& : 切换后的天色阶段&& #&&&&& duration&& : 切换时间(画面)&& #&&&&& pass_days : 经过日数&& (省略时: 0)&& #--------------------------------------------------------------------------&& def change_daynight_phase(phase,&&&&&& duration = KGC::DayNight::PHASE_DURATION,&&&&&& pass_days = 0)&&&& $game_temp.manual_daynight_duration = duration&&&& $game_system.daynight_counter = 0&&&& $game_system.daynight_phase = phase&&&& $game_variables[KGC::DayNight::PASS_DAYS_VARIABLE] += pass_days&&&& $game_map.need_refresh = true&& end&& #--------------------------------------------------------------------------&& # ○ 转移到下一个天色阶段&& #&&&&& duration : 切换时间(画面)&& #--------------------------------------------------------------------------&& def transit_daynight_phase(duration = KGC::DayNight::PHASE_DURATION)&&&& $game_screen.transit_daynight_phase(duration)&&&& $game_map.need_refresh = true&& end&& #--------------------------------------------------------------------------&& # ○ 返回到默认的色调&& #&&&&& duration : 切换时间(画面)&& #--------------------------------------------------------------------------&& def set_daynight_default(duration = KGC::DayNight::PHASE_DURATION)&&&& $game_screen.set_daynight_default(duration)&&&& $game_map.need_refresh = true&& end&& #--------------------------------------------------------------------------&& # ○ 还原现在的天色阶段&& #&&&&& duration : 切换时间(画面)&& #--------------------------------------------------------------------------&& def restore_daynight_phase(duration = KGC::DayNight::PHASE_DURATION)&&&& $game_screen.restore_daynight_phase(duration)&&&& $game_map.need_refresh = true&& endendendclass Game_Interpreter&& include KGC::Commandsend#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================# ■ RPG::MapInfo#==============================================================================class RPG::MapInfo&& #--------------------------------------------------------------------------&& # ● 获取地图名&& #--------------------------------------------------------------------------&& def name&&&& return @name.gsub(/\[.*\]/) { "" }&& end&& #--------------------------------------------------------------------------&& # ○ 获取自制地图名&& #--------------------------------------------------------------------------&& def original_name&&&& return @name&& end&& #--------------------------------------------------------------------------&& # ○ 停止昼夜交替&& #--------------------------------------------------------------------------&& def daynight_stop&&&& return @name =~ KGC::DayNight::Regexp::MapInfo::DAYNIGHT_STOP&& end&& #--------------------------------------------------------------------------&& # ○ 使昼夜效果无效&& #--------------------------------------------------------------------------&& def daynight_void&&&& return @name =~ KGC::DayNight::Regexp::MapInfo::DAYNIGHT_VOID&& endend#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★#==============================================================================# ■ RPG::Area#==============================================================================unless $@class RPG::Area&& #--------------------------------------------------------------------------&& # ○ 获取遇敌&& #--------------------------------------------------------------------------&& alias encounter_list_KGC_DayNight encounter_list&& def encounter_list&&&& list = encounter_list_KGC_DayNight.clone&&&& # 确认出现条件&&&& list.each_index { |i|&&&&&& list[i] = nil unless KGC::DayNight.troop_appear?($data_troops[list[i]])&&&& }&&&& pact&& endendend#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★#==============================================================================# ■ RPG::Troop#==============================================================================class RPG::Troop&& #--------------------------------------------------------------------------&& # ○ 作成昼夜交替的存储&& #--------------------------------------------------------------------------
&& def create_daynight_cache&&&& @__appear_daynight_phase = []&&&& @__nonappear_daynight_phase = []&&&& # 出现的天色阶段&&&& if @name =~ KGC::DayNight::Regexp::Troop::APPEAR_PHASE&&&&&& $1.scan(/[\-]?\d+/).each { |num|&&&&&&&& phase = num.to_i&&&&&&&& if phase & 0&&&&&&&&&& # 不出现&&&&&&&&&& @__nonappear_daynight_phase && phase.abs&&&&&&&& else&&&&&&&&&& # 出现&&&&&&&&&& @__appear_daynight_phase && phase&&&&&&&& end&&&&&& }&&&& end&& end&& #--------------------------------------------------------------------------&& # ○ 出现的天色阶段&& #--------------------------------------------------------------------------&& def appear_daynight_phase&&&& create_daynight_cache if @__appear_daynight_phase == nil&&&& return @__appear_daynight_phase&& end&& #--------------------------------------------------------------------------&& # ○ 不出现的天色阶段&& #--------------------------------------------------------------------------&& def nonappear_daynight_phase&&&& create_daynight_cache if @__nonappear_daynight_phase == nil&&&& return @__nonappear_daynight_phase&& endend#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★#==============================================================================# ■ Game_Temp#==============================================================================class Game_Temp&& #--------------------------------------------------------------------------&& # ● 定义实例变量&& #--------------------------------------------------------------------------&& attr_accessor :manual_daynight_duration # 手动改变天色阶段的标志&& #--------------------------------------------------------------------------&& # ● 初始化对象&& #--------------------------------------------------------------------------&& alias initialize_KGC_DayNight initialize&& def initialize&&&& initialize_KGC_DayNight&&&& @manual_daynight_duration = nil&& endend#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================# ■ Game_System#==============================================================================class Game_System&& #--------------------------------------------------------------------------&& # ● 定义实例变量&& #--------------------------------------------------------------------------&& attr_writer&&& :daynight_counter&&&&&&&&& # 天色阶段转换的计数器&& attr_writer&&& :daynight_change_enabled&& # 使昼夜交替有效&& #--------------------------------------------------------------------------&& # ● 初始化对象&& #--------------------------------------------------------------------------&& alias initialize_KGC_DayNight initialize&& def initialize&&&& initialize_KGC_DayNight&&&& @daynight_counter = 0&&&& @daynight_change_enabled = true&& end&& #--------------------------------------------------------------------------&& # ○ 获取天色阶段转换的计数器&& #--------------------------------------------------------------------------&& def daynight_counter&&&& @daynight_counter = 0 if @daynight_counter == nil&&&& return @daynight_counter&& end&& #--------------------------------------------------------------------------&& # ○ 获取现在的天色阶段&& #--------------------------------------------------------------------------&& def daynight_phase&&&& return $game_variables[KGC::DayNight::PHASE_VARIABLE]&& end&& #--------------------------------------------------------------------------&& # ○ 变换现在的天色阶段&& #--------------------------------------------------------------------------&& def daynight_phase=(value)&&&& $game_variables[KGC::DayNight::PHASE_VARIABLE] = value&& end&& #--------------------------------------------------------------------------&& # ○ 获取使昼夜交替有效的标志&& #--------------------------------------------------------------------------&& def daynight_change_enabled&&&& @daynight_change_enabled = 0 if @daynight_change_enabled == nil&&&& return @daynight_change_enabled&& end&& #--------------------------------------------------------------------------&& # ○ 进行天色阶段&& #--------------------------------------------------------------------------&& def progress_daynight_phase&&&& self.daynight_phase += 1&&&& if self.daynight_phase &= KGC::DayNight::PHASE.size
&&&&&& self.daynight_phase = 0&&&& end&&&& $game_map.need_refresh = true&& end&& #--------------------------------------------------------------------------&& # ○ 获取现在的天色阶段对象&& #--------------------------------------------------------------------------&& def daynight_phase_object&&&& return KGC::DayNight::PHASE[daynight_phase]&& end&& #--------------------------------------------------------------------------&& # ○ 获取以前的天色阶段对象&& #--------------------------------------------------------------------------&& def previous_daynight_phase_object&&&& return KGC::DayNight::PHASE[daynight_phase - 1]&& endend#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★#==============================================================================# ■ Game_Screen#==============================================================================class Game_Screen&& #--------------------------------------------------------------------------&& # ● 定义实例变量&& #--------------------------------------------------------------------------&& attr_reader&&& :daynight_tone&&&&&&&&&&&& # 昼夜的色调&& #--------------------------------------------------------------------------&& # ● 清除&& #--------------------------------------------------------------------------&& alias clear_KGC_DayNight clear&& def clear&&&& clear_KGC_DayNight&&&& clear_daynight&& end&& #--------------------------------------------------------------------------&& # ○ 清除昼夜交替的变量&& #--------------------------------------------------------------------------&& def clear_daynight&&&& @default_tone = Tone.new(0, 0, 0)&&&& # 初期化用于确认移动的坐标&&&& @daynight_x = 0&&&& @daynight_y = 0&&&& # 初期化用于更新天色阶段的计数器&&&& @frame_count = Graphics.frame_count&&&& @daynight_tone_duration = 0&&&& apply_daynight&& end&& #--------------------------------------------------------------------------&& # ○ 使用昼夜的色调&& #--------------------------------------------------------------------------&& def apply_daynight&&&& return if $game_map == nil&&&& # 切换成无效的地图时&&&& if $game_map.daynight_void?
&&&&&& if @daynight_tone_changed&&&&&&&& # 返回到处起的色调&&&&&&&& @tone = @default_tone.clone&&&&&&&& @daynight_tone_changed = false&&&&&& end&&&&&& @daynight_tone = @tone.clone&&&&&& return&&&& end&&&& # 天色阶段奇怪时修复它&&&& if $game_system.daynight_phase_object == nil&&&&&& $game_system.daynight_phase = 0&&&& end&&&& # 使用现在的色调&&&& @tone = $game_system.daynight_phase_object[1].clone&&&& @daynight_tone = @tone.clone&&&& # 现实时间经过时&&&& if KGC::DayNight::METHOD == KGC::DayNight::METHOD_RTIME&&&&&& time = Time.now&&&&&& # 变换到调和的天色阶段&&&&&& KGC::DayNight::PHASE.each_with_index { |phase, i|&&&&&&&& if phase[2] &= time.hour&&&&&&&&&& start_tone_change(phase[1], 1)&&&&&&&&&& $game_system.daynight_phase = i&&&&&&&&&& break&&&&&&&& end&&&&&& }&&&& end&&&& @daynight_tone_changed = true&& end&& #--------------------------------------------------------------------------&& # ○ 色调的获取&& #--------------------------------------------------------------------------&& def tone&&&& if $game_temp.in_battle && KGC::DayNight::TONE_BACK_ONLY_IN_BATTLE&&&&&& return @default_tone&&&& else&&&&&& return @tone&&&& end&& end&& #--------------------------------------------------------------------------&& # ● 色调更改的开始&& #&&&&& tone&&&&& : 色调&& #&&&&& duration : 时间&& #--------------------------------------------------------------------------&& alias start_tone_change_KGC_DayNight start_tone_change&& def start_tone_change(tone, duration)&&&& duration = [duration, 1].max&&&& start_tone_change_KGC_DayNight(tone, duration)&&&& @daynight_tone_target = tone.clone&&&& @daynight_tone_duration = duration
文档翻译,年终钜惠!注册就送268元体验金!
&& end&& #--------------------------------------------------------------------------&& # ● 更新画面&& #--------------------------------------------------------------------------&& alias update_KGC_DayNight update&& def update&&&& update_KGC_DayNight&&&& update_daynight_transit&& end&& #--------------------------------------------------------------------------&& # ● 色调的更新&& #--------------------------------------------------------------------------&& alias update_tone_KGC_DayNight update_tone&& def update_tone&&&& update_tone_KGC_DayNight&&&& if @daynight_tone_duration &= 1&&&&&& d = @daynight_tone_duration&&&&&& target = @daynight_tone_target&&&&&& @daynight_tone.red = (@daynight_tone.red * (d - 1) + target.red) / d&&&&&& @daynight_tone.green = (@daynight_tone.green * (d - 1) + target.green) / d&&&&&& @daynight_tone.blue = (@daynight_tone.blue * (d - 1) + target.blue) / d&&&&&& @daynight_tone.gray = (@daynight_tone.gray * (d - 1) + target.gray) / d&&&&&& @daynight_tone_duration -= 1&&&& end&& end&& #--------------------------------------------------------------------------&& # ○ 天色阶段变换的更新&& #--------------------------------------------------------------------------&& def update_daynight_transit&&&& # 不能手动切换时&&&& if $game_temp.manual_daynight_duration&&&&&& start_tone_change($game_system.daynight_phase_object[1],&&&&&&&& $game_temp.manual_daynight_duration)&&&&&& $game_temp.manual_daynight_duration = nil&&&&&& @daynight_tone_changed = true&&&& end&&&& return unless $game_system.daynight_change_enabled&& # 将切换&&&& return if $game_map.daynight_stop?&&&&&&&&&&&&&&&&&& # 停止&&&& if KGC::DayNight::STOP_ON_EVENT&&&&&& interpreter = ($game_temp.in_battle ? $game_troop.interpreter :&&&&&&&& $game_map.interpreter)&&&&&& return if interpreter.running?&&&&&&&&&&&&&&&&&&&& # 事件进行中&&&& end
&&&& case KGC::DayNight::METHOD&&&& when KGC::DayNight::METHOD_TIME&&& # 时间&&&&&& update_daynight_pass_time&&&& when KGC::DayNight::METHOD_STEP&&& # 步数&&&&&& update_daynight_step&&&& when KGC::DayNight::METHOD_RTIME&& # 现实时间&&&&&& update_daynight_real_time&&&& end&& end&& #--------------------------------------------------------------------------&& # ○ 转换 : 时间切换&& #--------------------------------------------------------------------------&& def update_daynight_pass_time&&&& # 计算出计算器的增加量&&&& inc_count = Graphics.frame_count - @frame_count&&&& # 加算量很奇怪时,取消&&&& if inc_count &= 100&&&&&& @frame_count = Graphics.frame_count&&&&&& return&&&& end&&&& # 计算器的加算&&&& $game_system.daynight_counter += inc_count&&&& @frame_count = Graphics.frame_count&&&& # 确认状态转换&&&& count = $game_system.daynight_counter / Graphics.frame_rate&&&& if count &= $game_system.daynight_phase_object[2]&&&&&& transit_daynight_next&&&& end&& end&& #--------------------------------------------------------------------------&& # ○ 转换 : 步数&& #--------------------------------------------------------------------------&& def update_daynight_step&&&& # 没有移动时&& 取消&&&& return if @daynight_x == $game_player.x && @daynight_y == $game_player.y&&&& @daynight_x = $game_player.x&&&& @daynight_y = $game_player.y&&&& # 计算器的加算&&&& $game_system.daynight_counter += 1&&&& # 确认状态转换&&&& count = $game_system.daynight_counter&&&& if count &= $game_system.daynight_phase_object[2]&&&&&& transit_daynight_next&&&& end&& end&& #--------------------------------------------------------------------------&& # ○ 转换 : 现实时间&& #--------------------------------------------------------------------------&& def update_daynight_real_time&&&& time = Time.now&&&& # 确认状态的转换&&&& time1 = $game_system.daynight_phase_object[2]
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/#_/&&&& ◆ 昼夜交替 - KGC_DayNight ◆ VX ◆#_/&&&& ◇ Last update :
◇#_/&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 汉化 by 约束#_/#_/----------------------------------------------------------------------------#_/&& 在游戏中加入了昼夜交替。#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/#==============================================================================# ★ 指导项目 - Customize ★#==============================================================================module KGCmodule DayNight&& # ◆ 昼夜切换方式&& #&& 0..根据时间的经过&& 1..根据行走步数&& 2..根据现实时间(微妙)&& METHOD = 1&& # ◆ 保存天色阶段的变量号码&& # 在这里被设定的变量中、存入现在的天色阶段。&& PHASE_VARIABLE&&&&& = 11&& # ◆ 保存日期的变量号码&& #&& 在这里被设定的变量中、存入经过日数的阶段。&& PASS_DAYS_VARIABLE = 12&& # ◆ 在事件中不变更天色阶段&& STOP_ON_EVENT = true&& # ◆ 在战斗中、只有背景使用当前色调&& # 改成 false 时、夜晚时会变的不合常理。&& TONE_BACK_ONLY_IN_BATTLE = true&& # ◆ 各个天色阶段的设置&& #&& 将各个天色阶段&& #&&& ["名称", 色调(Tone), 切换时间],&& #&& 像如上设置。&& #&& 可以增加天色阶段、但是在不习惯时不推荐增加。&& #&& #&& [名称]&& #&&&& 天色阶段的名字。&& #&&&& 名字自身没有意义。&& #&& [色调]&& #&&&& 画面全体的颜色。&& #&&&& 并不是很明白时请不要轻易变更。&& #&& [切换时间]&& #&&&& 到下个天色阶段的间隔时间。&& #&&&& 切换方式是 使用时间经过方式为秒、步数方式为步数。&& #&&&& 现实时间方式时、到下个状态切换的时刻 (24小时方式)。&& PHASE = [&&&& ["白日",&&& 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
&& ]&& # ← 这里不要消去!&& # 现实时间时、&& #&& ["白日",&&& Tone.new(&& 0,&&& 0,&&& 0), 16],&& # 天色阶段 0 (现实为16点时傍晚)&& #&& ["傍晚",&&& Tone.new(&& 0, -96, -96), 20],&& # 天色阶段 1 (现实为20点时夜晚)&& #&& ["夜晚",&&& Tone.new(-96, -96, -64),&& 6],&& # 天色阶段 2 (现实为6点时早上)&& #&& ["早晨",&&& Tone.new(-48, -48, -16), 10],&& # 天色阶段 3 (现实为10点时白日)&& # 像这样的。&& # ◆ 变换日期的天色阶段&& #&& 到了这里设定过的天色阶段时、日数增加。&& #&& 初期状况&& 0..白日&& 1..傍晚&& 2..夜晚&& 3..早上&& # ※ 现实时间时、并不能与现实使用相同日数,请注意。&& PASS_DAY_PHASE = 3&& # ◆ 切换状态是的天色阶段时间 (画面)&& #&& 省略时也会使用这个数值。&& PHASE_DURATION = 60&& # ◆ 日期名&& #&& 从最初开始、到最后一个日期然后再从第一个循环开始。&& #&& 日期名自身没有任何意义。&& # ※ 使用现实时间时 请设置为7个日期。&& WEEK_NAME = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]endend#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★$imported = {} if $imported == nil$imported["DayNight"] = trueif $data_mapinfos == nil&& $data_mapinfos = load_data("Data/MapInfos.rvdata")endmodule KGC::DayNight&& METHOD_TIME&& = 0&& # 时间经过&& METHOD_STEP&& = 1&& # 步数&& METHOD_RTIME = 2&& # 现实时间&& # 正规表现&& module Regexp&&&& # 地图情报&&&& module MapInfo&&&&&& # 停止变换&&&&&& DAYNIGHT_STOP = /\[DN_STOP\]/i&&&&&& # 使昼夜系统无效&&&&&& DAYNIGHT_VOID = /\[DN_VOID\]/i&&&& end&&&& # 敌人队伍&&&& module Troop&&&&&& # 出现天色阶段&&&&&& APPEAR_PHASE = /\[DN((?:[ ]*[\-]?\d+(?:[ ]*,)?)+)\]/i&&&& end&& end&& #--------------------------------------------------------------------------&& # ○ 确认敌人队伍的出现&& #&&&&& troop : 确认对象的敌人队伍&& #&&&&& phase : 确认天色阶段&& #--------------------------------------------------------------------------
&& def self.troop_appear?(troop, phase = $game_system.daynight_phase)&&&& # 确认出现&&&& unless troop.appear_daynight_phase.empty?&&&&&& return false unless troop.appear_daynight_phase.include?(phase)&&&& end&&&& # 确认没出现&&&& unless troop.nonappear_daynight_phase.empty?&&&&&& return false if troop.nonappear_daynight_phase.include?(phase)&&&& end&&&& return true&& endend#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★#==============================================================================# □ KGC::Commands#==============================================================================module KGCmodule Commands&& module_function&& #--------------------------------------------------------------------------&& # ○ 停止昼夜切换&& #--------------------------------------------------------------------------&& def stop_daynight&&&& $game_system.daynight_change_enabled = false&& end&& #--------------------------------------------------------------------------&& # ○ 启动昼夜却换&& #--------------------------------------------------------------------------&& def start_daynight&&&& $game_system.daynight_change_enabled = true&& end&& #--------------------------------------------------------------------------&& # ○ 获取现在的天色阶段名&& #--------------------------------------------------------------------------&& def get_daynight_name&&&& return KGC::DayNight::PHASE[get_daynight_phase][0]&& end&& #--------------------------------------------------------------------------&& # ○ 获取现在的日期名&& #&&&&& variable_id : 代入变量 ID&& #--------------------------------------------------------------------------&& def get_daynight_week(variable_id = 0)&&&& if KGC::DayNight::METHOD == KGC::DayNight::METHOD_RTIME&&&&&& week = Time.now.wday&&&& else&&&&&& days = $game_variables[KGC::DayNight::PASS_DAYS_VARIABLE]&&&&&& week = (days % KGC::DayNight::WEEK_NAME.size)&&&& end&&&& if variable_id & 0&&&&&& $game_variables[variable_id] = week&&&& end&&&& return week&& end&& #--------------------------------------------------------------------------
&& # ○获取现在的日期名&& #--------------------------------------------------------------------------&& def get_daynight_week_name&&&& return KGC::DayNight::WEEK_NAME[get_daynight_week]&& end&& #--------------------------------------------------------------------------&& # ○ 天色阶段的切换&& #&&&&& phase&&&&& : 切换后的天色阶段&& #&&&&& duration&& : 切换时间(画面)&& #&&&&& pass_days : 经过日数&& (省略时: 0)&& #--------------------------------------------------------------------------&& def change_daynight_phase(phase,&&&&&& duration = KGC::DayNight::PHASE_DURATION,&&&&&& pass_days = 0)&&&& $game_temp.manual_daynight_duration = duration&&&& $game_system.daynight_counter = 0&&&& $game_system.daynight_phase = phase&&&& $game_variables[KGC::DayNight::PASS_DAYS_VARIABLE] += pass_days&&&& $game_map.need_refresh = true&& end&& #--------------------------------------------------------------------------&& # ○ 转移到下一个天色阶段&& #&&&&& duration : 切换时间(画面)&& #--------------------------------------------------------------------------&& def transit_daynight_phase(duration = KGC::DayNight::PHASE_DURATION)&&&& $game_screen.transit_daynight_phase(duration)&&&& $game_map.need_refresh = true&& end&& #--------------------------------------------------------------------------&& # ○ 返回到默认的色调&& #&&&&& duration : 切换时间(画面)&& #--------------------------------------------------------------------------&& def set_daynight_default(duration = KGC::DayNight::PHASE_DURATION)&&&& $game_screen.set_daynight_default(duration)&&&& $game_map.need_refresh = true&& end&& #--------------------------------------------------------------------------&& # ○ 还原现在的天色阶段&& #&&&&& duration : 切换时间(画面)&& #--------------------------------------------------------------------------&& def restore_daynight_phase(duration = KGC::DayNight::PHASE_DURATION)&&&& $game_screen.restore_daynight_phase(duration)&&&& $game_map.need_refresh = true&& endendendclass Game_Interpreter&& include KGC::Commandsend#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================# ■ RPG::MapInfo#==============================================================================class RPG::MapInfo&& #--------------------------------------------------------------------------&& # ● 获取地图名&& #--------------------------------------------------------------------------&& def name&&&& return @name.gsub(/\[.*\]/) { "" }&& end&& #--------------------------------------------------------------------------&& # ○ 获取自制地图名&& #--------------------------------------------------------------------------&& def original_name&&&& return @name&& end&& #--------------------------------------------------------------------------&& # ○ 停止昼夜交替&& #--------------------------------------------------------------------------&& def daynight_stop&&&& return @name =~ KGC::DayNight::Regexp::MapInfo::DAYNIGHT_STOP&& end&& #--------------------------------------------------------------------------&& # ○ 使昼夜效果无效&& #--------------------------------------------------------------------------&& def daynight_void&&&& return @name =~ KGC::DayNight::Regexp::MapInfo::DAYNIGHT_VOID&& endend#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★#==============================================================================# ■ RPG::Area#==============================================================================unless $@class RPG::Area&& #--------------------------------------------------------------------------&& # ○ 获取遇敌&& #--------------------------------------------------------------------------&& alias encounter_list_KGC_DayNight encounter_list&& def encounter_list&&&& list = encounter_list_KGC_DayNight.clone&&&& # 确认出现条件&&&& list.each_index { |i|&&&&&& list[i] = nil unless KGC::DayNight.troop_appear?($data_troops[list[i]])&&&& }&&&& pact&& endendend#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★#==============================================================================# ■ RPG::Troop#==============================================================================class RPG::Troop&& #--------------------------------------------------------------------------&& # ○ 作成昼夜交替的存储&& #--------------------------------------------------------------------------
&& def create_daynight_cache&&&& @__appear_daynight_phase = []&&&& @__nonappear_daynight_phase = []&&&& # 出现的天色阶段&&&& if @name =~ KGC::DayNight::Regexp::Troop::APPEAR_PHASE&&&&&& $1.scan(/[\-]?\d+/).each { |num|&&&&&&&& phase = num.to_i&&&&&&&& if phase & 0&&&&&&&&&& # 不出现&&&&&&&&&& @__nonappear_daynight_phase && phase.abs&&&&&&&& else&&&&&&&&&& # 出现&&&&&&&&&& @__appear_daynight_phase && phase&&&&&&&& end&&&&&& }&&&& end&& end&& #--------------------------------------------------------------------------&& # ○ 出现的天色阶段&& #--------------------------------------------------------------------------&& def appear_daynight_phase&&&& create_daynight_cache if @__appear_daynight_phase == nil&&&& return @__appear_daynight_phase&& end&& #--------------------------------------------------------------------------&& # ○ 不出现的天色阶段&& #--------------------------------------------------------------------------&& def nonappear_daynight_phase&&&& create_daynight_cache if @__nonappear_daynight_phase == nil&&&& return @__nonappear_daynight_phase&& endend#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★#==============================================================================# ■ Game_Temp#==============================================================================class Game_Temp&& #--------------------------------------------------------------------------&& # ● 定义实例变量&& #--------------------------------------------------------------------------&& attr_accessor :manual_daynight_duration # 手动改变天色阶段的标志&& #--------------------------------------------------------------------------&& # ● 初始化对象&& #--------------------------------------------------------------------------&& alias initialize_KGC_DayNight initialize&& def initialize&&&& initialize_KGC_DayNight&&&& @manual_daynight_duration = nil&& endend#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================# ■ Game_System#==============================================================================class Game_System&& #--------------------------------------------------------------------------&& # ● 定义实例变量&& #--------------------------------------------------------------------------&& attr_writer&&& :daynight_counter&&&&&&&&& # 天色阶段转换的计数器&& attr_writer&&& :daynight_change_enabled&& # 使昼夜交替有效&& #--------------------------------------------------------------------------&& # ● 初始化对象&& #--------------------------------------------------------------------------&& alias initialize_KGC_DayNight initialize&& def initialize&&&& initialize_KGC_DayNight&&&& @daynight_counter = 0&&&& @daynight_change_enabled = true&& end&& #--------------------------------------------------------------------------&& # ○ 获取天色阶段转换的计数器&& #--------------------------------------------------------------------------&& def daynight_counter&&&& @daynight_counter = 0 if @daynight_counter == nil&&&& return @daynight_counter&& end&& #--------------------------------------------------------------------------&& # ○ 获取现在的天色阶段&& #--------------------------------------------------------------------------&& def daynight_phase&&&& return $game_variables[KGC::DayNight::PHASE_VARIABLE]&& end&& #--------------------------------------------------------------------------&& # ○ 变换现在的天色阶段&& #--------------------------------------------------------------------------&& def daynight_phase=(value)&&&& $game_variables[KGC::DayNight::PHASE_VARIABLE] = value&& end&& #--------------------------------------------------------------------------&& # ○ 获取使昼夜交替有效的标志&& #--------------------------------------------------------------------------&& def daynight_change_enabled&&&& @daynight_change_enabled = 0 if @daynight_change_enabled == nil&&&& return @daynight_change_enabled&& end&& #--------------------------------------------------------------------------&& # ○ 进行天色阶段&& #--------------------------------------------------------------------------&& def progress_daynight_phase&&&& self.daynight_phase += 1&&&& if self.daynight_phase &= KGC::DayNight::PHASE.size
&&&&&& self.daynight_phase = 0&&&& end&&&& $game_map.need_refresh = true&& end&& #--------------------------------------------------------------------------&& # ○ 获取现在的天色阶段对象&& #--------------------------------------------------------------------------&& def daynight_phase_object&&&& return KGC::DayNight::PHASE[daynight_phase]&& end&& #--------------------------------------------------------------------------&& # ○ 获取以前的天色阶段对象&& #--------------------------------------------------------------------------&& def previous_daynight_phase_object&&&& return KGC::DayNight::PHASE[daynight_phase - 1]&& endend#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★#==============================================================================# ■ Game_Screen#==============================================================================class Game_Screen&& #--------------------------------------------------------------------------&& # ● 定义实例变量&& #--------------------------------------------------------------------------&& attr_reader&&& :daynight_tone&&&&&&&&&&&& # 昼夜的色调&& #--------------------------------------------------------------------------&& # ● 清除&& #--------------------------------------------------------------------------&& alias clear_KGC_DayNight clear&& def clear&&&& clear_KGC_DayNight&&&& clear_daynight&& end&& #--------------------------------------------------------------------------&& # ○ 清除昼夜交替的变量&& #--------------------------------------------------------------------------&& def clear_daynight&&&& @default_tone = Tone.new(0, 0, 0)&&&& # 初期化用于确认移动的坐标&&&& @daynight_x = 0&&&& @daynight_y = 0&&&& # 初期化用于更新天色阶段的计数器&&&& @frame_count = Graphics.frame_count&&&& @daynight_tone_duration = 0&&&& apply_daynight&& end&& #--------------------------------------------------------------------------&& # ○ 使用昼夜的色调&& #--------------------------------------------------------------------------&& def apply_daynight&&&& return if $game_map == nil&&&& # 切换成无效的地图时&&&& if $game_map.daynight_void?
&&&&&& if @daynight_tone_changed&&&&&&&& # 返回到处起的色调&&&&&&&& @tone = @default_tone.clone&&&&&&&& @daynight_tone_changed = false&&&&&& end&&&&&& @daynight_tone = @tone.clone&&&&&& return&&&& end&&&& # 天色阶段奇怪时修复它&&&& if $game_system.daynight_phase_object == nil&&&&&& $game_system.daynight_phase = 0&&&& end&&&& # 使用现在的色调&&&& @tone = $game_system.daynight_phase_object[1].clone&&&& @daynight_tone = @tone.clone&&&& # 现实时间经过时&&&& if KGC::DayNight::METHOD == KGC::DayNight::METHOD_RTIME&&&&&& time = Time.now&&&&&& # 变换到调和的天色阶段&&&&&& KGC::DayNight::PHASE.each_with_index { |phase, i|&&&&&&&& if phase[2] &= time.hour&&&&&&&&&& start_tone_change(phase[1], 1)&&&&&&&&&& $game_system.daynight_phase = i&&&&&&&&&& break&&&&&&&& end&&&&&& }&&&& end&&&& @daynight_tone_changed = true&& end&& #--------------------------------------------------------------------------&& # ○ 色调的获取&& #--------------------------------------------------------------------------&& def tone&&&& if $game_temp.in_battle && KGC::DayNight::TONE_BACK_ONLY_IN_BATTLE&&&&&& return @default_tone&&&& else&&&&&& return @tone&&&& end&& end&& #--------------------------------------------------------------------------&& # ● 色调更改的开始&& #&&&&& tone&&&&& : 色调&& #&&&&& duration : 时间&& #--------------------------------------------------------------------------&& alias start_tone_change_KGC_DayNight start_tone_change&& def start_tone_change(tone, duration)&&&& duration = [duration, 1].max&&&& start_tone_change_KGC_DayNight(tone, duration)&&&& @daynight_tone_target = tone.clone&&&& @daynight_tone_duration = duration
&& end&& #--------------------------------------------------------------------------&& # ● 更新画面&& #--------------------------------------------------------------------------&& alias update_KGC_DayNight update&& def update&&&& update_KGC_DayNight&&&& update_daynight_transit&& end&& #--------------------------------------------------------------------------&& # ● 色调的更新&& #--------------------------------------------------------------------------&& alias update_tone_KGC_DayNight update_tone&& def update_tone&&&& update_tone_KGC_DayNight&&&& if @daynight_tone_duration &= 1&&&&&& d = @daynight_tone_duration&&&&&& target = @daynight_tone_target&&&&&& @daynight_tone.red = (@daynight_tone.red * (d - 1) + target.red) / d&&&&&& @daynight_tone.green = (@daynight_tone.green * (d - 1) + target.green) / d&&&&&& @daynight_tone.blue = (@daynight_tone.blue * (d - 1) + target.blue) / d&&&&&& @daynight_tone.gray = (@daynight_tone.gray * (d - 1) + target.gray) / d&&&&&& @daynight_tone_duration -= 1&&&& end&& end&& #--------------------------------------------------------------------------&& # ○ 天色阶段变换的更新&& #--------------------------------------------------------------------------&& def update_daynight_transit&&&& # 不能手动切换时&&&& if $game_temp.manual_daynight_duration&&&&&& start_tone_change($game_system.daynight_phase_object[1],&&&&&&&& $game_temp.manual_daynight_duration)&&&&&& $game_temp.manual_daynight_duration = nil&&&&&& @daynight_tone_changed = true&&&& end&&&& return unless $game_system.daynight_change_enabled&& # 将切换&&&& return if $game_map.daynight_stop?&&&&&&&&&&&&&&&&&& # 停止&&&& if KGC::DayNight::STOP_ON_EVENT&&&&&& interpreter = ($game_temp.in_battle ? $game_troop.interpreter :&&&&&&&& $game_map.interpreter)&&&&&& return if interpreter.running?&&&&&&&&&&&&&&&&&&&& # 事件进行中&&&& end
&&&& case KGC::DayNight::METHOD&&&& when KGC::DayNight::METHOD_TIME&&& # 时间&&&&&& update_daynight_pass_time&&&& when KGC::DayNight::METHOD_STEP&&& # 步数&&&&&& update_daynight_step&&&& when KGC::DayNight::METHOD_RTIME&& # 现实时间&&&&&& update_daynight_real_time&&&& end&& end&& #--------------------------------------------------------------------------&& # ○ 转换 : 时间切换&& #--------------------------------------------------------------------------&& def update_daynight_pass_time&&&& # 计算出计算器的增加量&&&& inc_count = Graphics.frame_count - @frame_count&&&& # 加算量很奇怪时,取消&&&& if inc_count &= 100&&&&&& @frame_count = Graphics.frame_count&&&&&& return&&&& end&&&& # 计算器的加算&&&& $game_system.daynight_counter += inc_count&&&& @frame_count = Graphics.frame_count&&&& # 确认状态转换&&&& count = $game_system.daynight_counter / Graphics.frame_rate&&&& if count &= $game_system.daynight_phase_object[2]&&&&&& transit_daynight_next&&&& end&& end&& #--------------------------------------------------------------------------&& # ○ 转换 : 步数&& #--------------------------------------------------------------------------&& def update_daynight_step&&&& # 没有移动时&& 取消&&&& return if @daynight_x == $game_player.x && @daynight_y == $game_player.y&&&& @daynight_x = $game_player.x&&&& @daynight_y = $game_player.y&&&& # 计算器的加算&&&& $game_system.daynight_counter += 1&&&& # 确认状态转换&&&& count = $game_system.daynight_counter&&&& if count &= $game_system.daynight_phase_object[2]&&&&&& transit_daynight_next&&&& end&& end&& #--------------------------------------------------------------------------&& # ○ 转换 : 现实时间&& #--------------------------------------------------------------------------&& def update_daynight_real_time&&&& time = Time.now&&&& # 确认状态的转换&&&& time1 = $game_system.daynight_phase_object[2]
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/#_/&&&& ◆ 昼夜交替 - KGC_DayNight ◆ VX ◆#_/&&&& ◇ Last update :
◇#_/&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 汉化 by 约束#_/#_/----------------------------------------------------------------------------#_/&& 在游戏中加入了昼夜交替。#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/#==============================================================================# ★ 指导项目 - Customize ★#==============================================================================module KGCmodule DayNight&& # ◆ 昼夜切换方式&& #&& 0..根据时间的经过&& 1..根据行走步数&& 2..根据现实时间(微妙)&& METHOD = 1&& # ◆ 保存天色阶段的变量号码&& # 在这里被设定的变量中、存入现在的天色阶段。&& PHASE_VARIABLE&&&&& = 11&& # ◆ 保存日期的变量号码&& #&& 在这里被设定的变量中、存入经过日数的阶段。&& PASS_DAYS_VARIABLE = 12&& # ◆ 在事件中不变更天色阶段&& STOP_ON_EVENT = true&& # ◆ 在战斗中、只有背景使用当前色调&& # 改成 false 时、夜晚时会变的不合常理。&& TONE_BACK_ONLY_IN_BATTLE = true&& # ◆ 各个天色阶段的设置&& #&& 将各个天色阶段&& #&&& ["名称", 色调(Tone), 切换时间],&& #&& 像如上设置。&& #&& 可以增加天色阶段、但是在不习惯时不推荐增加。&& #&& #&& [名称]&& #&&&& 天色阶段的名字。&& #&&&& 名字自身没有意义。&& #&& [色调]&& #&&&& 画面全体的颜色。&& #&&&& 并不是很明白时请不要轻易变更。&& #&& [切换时间]&& #&&&& 到下个天色阶段的间隔时间。&& #&&&& 切换方式是 使用时间经过方式为秒、步数方式为步数。&& #&&&& 现实时间方式时、到下个状态切换的时刻 (24小时方式)。&& PHASE = [&&&& ["白日",&&& 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
&& ]&& # ← 这里不要消去!&& # 现实时间时、&& #&& ["白日",&&& Tone.new(&& 0,&&& 0,&&& 0), 16],&& # 天色阶段 0 (现实为16点时傍晚)&& #&& ["傍晚",&&& Tone.new(&& 0, -96, -96), 20],&& # 天色阶段 1 (现实为20点时夜晚)&& #&& ["夜晚",&&& Tone.new(-96, -96, -64),&& 6],&& # 天色阶段 2 (现实为6点时早上)&& #&& ["早晨",&&& Tone.new(-48, -48, -16), 10],&& # 天色阶段 3 (现实为10点时白日)&& # 像这样的。&& # ◆ 变换日期的天色阶段&& #&& 到了这里设定过的天色阶段时、日数增加。&& #&& 初期状况&& 0..白日&& 1..傍晚&& 2..夜晚&& 3..早上&& # ※ 现实时间时、并不能与现实使用相同日数,请注意。&& PASS_DAY_PHASE = 3&& # ◆ 切换状态是的天色阶段时间 (画面)&& #&& 省略时也会使用这个数值。&& PHASE_DURATION = 60&& # ◆ 日期名&& #&& 从最初开始、到最后一个日期然后再从第一个循环开始。&& #&& 日期名自身没有任何意义。&& # ※ 使用现实时间时 请设置为7个日期。&& WEEK_NAME = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]endend#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★$imported = {} if $imported == nil$imported["DayNight"] = trueif $data_mapinfos == nil&& $data_mapinfos = load_data("Data/MapInfos.rvdata")endmodule KGC::DayNight&& METHOD_TIME&& = 0&& # 时间经过&& METHOD_STEP&& = 1&& # 步数&& METHOD_RTIME = 2&& # 现实时间&& # 正规表现&& module Regexp&&&& # 地图情报&&&& module MapInfo&&&&&& # 停止变换&&&&&& DAYNIGHT_STOP = /\[DN_STOP\]/i&&&&&& # 使昼夜系统无效&&&&&& DAYNIGHT_VOID = /\[DN_VOID\]/i&&&& end&&&& # 敌人队伍&&&& module Troop&&&&&& # 出现天色阶段&&&&&& APPEAR_PHASE = /\[DN((?:[ ]*[\-]?\d+(?:[ ]*,)?)+)\]/i&&&& end&& end&& #--------------------------------------------------------------------------&& # ○ 确认敌人队伍的出现&& #&&&&& troop : 确认对象的敌人队伍&& #&&&&& phase : 确认天色阶段&& #--------------------------------------------------------------------------
#==============================================================================# ■ RPG::MapInfo#==============================================================================class RPG::MapInfo&& #--------------------------------------------------------------------------&& # ● 获取地图名&& #--------------------------------------------------------------------------&& def name&&&& return @name.gsub(/\[.*\]/) { "" }&& end&& #--------------------------------------------------------------------------&& # ○ 获取自制地图名&& #--------------------------------------------------------------------------&& def original_name&&&& return @name&& end&& #--------------------------------------------------------------------------&& # ○ 停止昼夜交替&& #--------------------------------------------------------------------------&& def daynight_stop&&&& return @name =~ KGC::DayNight::Regexp::MapInfo::DAYNIGHT_STOP&& end&& #--------------------------------------------------------------------------&& # ○ 使昼夜效果无效&& #--------------------------------------------------------------------------&& def daynight_void&&&& return @name =~ KGC::DayNight::Regexp::MapInfo::DAYNIGHT_VOID&& endend#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★#==============================================================================# ■ RPG::Area#==============================================================================unless $@class RPG::Area&& #--------------------------------------------------------------------------&& # ○ 获取遇敌&& #--------------------------------------------------------------------------&& alias encounter_list_KGC_DayNight encounter_list&& def encounter_list&&&& list = encounter_list_KGC_DayNight.clone&&&& # 确认出现条件&&&& list.each_index { |i|&&&&&& list[i] = nil unless KGC::DayNight.troop_appear?($data_troops[list[i]])&&&& }&&&& pact&& endendend#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★#==============================================================================# ■ RPG::Troop#==============================================================================class RPG::Troop&& #--------------------------------------------------------------------------&& # ○ 作成昼夜交替的存储&& #--------------------------------------------------------------------------
&&&&&& if @daynight_tone_changed&&&&&&&& # 返回到处起的色调&&&&&&&& @tone = @default_tone.clone&&&&&&&& @daynight_tone_changed = false&&&&&& end&&&&&& @daynight_tone = @tone.clone&&&&&& return&&&& end&&&& # 天色阶段奇怪时修复它&&&& if $game_system.daynight_phase_object == nil&&&&&& $game_system.daynight_phase = 0&&&& end&&&& # 使用现在的色调&&&& @tone = $game_system.daynight_phase_object[1].clone&&&& @daynight_tone = @tone.clone&&&& # 现实时间经过时&&&& if KGC::DayNight::METHOD == KGC::DayNight::METHOD_RTIME&&&&&& time = Time.now&&&&&& # 变换到调和的天色阶段&&&&&& KGC::DayNight::PHASE.each_with_index { |phase, i|&&&&&&&& if phase[2] &= time.hour&&&&&&&&&& start_tone_change(phase[1], 1)&&&&&&&&&& $game_system.daynight_phase = i&&&&&&&&&& break&&&&&&&& end&&&&&& }&&&& end&&&& @daynight_tone_changed = true&& end&& #--------------------------------------------------------------------------&& # ○ 色调的获取&& #--------------------------------------------------------------------------&& def tone&&&& if $game_temp.in_battle && KGC::DayNight::TONE_BACK_ONLY_IN_BATTLE&&&&&& return @default_tone&&&& else&&&&&& return @tone&&&& end&& end&& #--------------------------------------------------------------------------&& # ● 色调更改的开始&& #&&&&& tone&&&&& : 色调&& #&&&&& duration : 时间&& #--------------------------------------------------------------------------&& alias start_tone_change_KGC_DayNight start_tone_change&& def start_tone_change(tone, duration)&&&& duration = [duration, 1].max&&&& start_tone_change_KGC_DayNight(tone, duration)&&&& @daynight_tone_target = tone.clone&&&& @daynight_tone_duration = duration
&& end&& #--------------------------------------------------------------------------&& # ● 更新画面&& #--------------------------------------------------------------------------&& alias update_KGC_DayNight update&& def update&&&& update_KGC_DayNight&&&& update_daynight_transit&& end&& #--------------------------------------------------------------------------&& # ● 色调的更新&& #--------------------------------------------------------------------------&& alias update_tone_KGC_DayNight update_tone&& def update_tone&&&& update_tone_KGC_DayNight&&&& if @daynight_tone_duration &= 1&&&&&& d = @daynight_tone_duration&&&&&& target = @daynight_tone_target&&&&&& @daynight_tone.red = (@daynight_tone.red * (d - 1) + target.red) / d&&&&&& @daynight_tone.green = (@daynight_tone.green * (d - 1) + target.green) / d&&&&&& @daynight_tone.blue = (@daynight_tone.blue * (d - 1) + target.blue) / d&&&&&& @daynight_tone.gray = (@daynight_tone.gray * (d - 1) + target.gray) / d&&&&&& @daynight_tone_duration -= 1&&&& end&& end&& #--------------------------------------------------------------------------&& # ○ 天色阶段变换的更新&& #--------------------------------------------------------------------------&& def update_daynight_transit&&&& # 不能手动切换时&&&& if $game_temp.manual_daynight_duration&&&&&& start_tone_change($game_system.daynight_phase_object[1],&&&&&&&& $game_temp.manual_daynight_duration)&&&&&& $game_temp.manual_daynight_duration = nil&&&&&& @daynight_tone_changed = true&&&& end&&&& return unless $game_system.daynight_change_enabled&& # 将切换&&&& return if $game_map.daynight_stop?&&&&&&&&&&&&&&&&&& # 停止&&&& if KGC::DayNight::STOP_ON_EVENT&&&&&& interpreter = ($game_temp.in_battle ? $game_troop.interpreter :&&&&&&&& $game_map.interpreter)&&&&&& return if interpreter.running?&&&&&&&&&&&&&&&&&&&& # 事件进行中&&&& end
&&&& case KGC::DayNight::METHOD&&&& when KGC::DayNight::METHOD_TIME&&& # 时间&&&&&& update_daynight_pass_time&&&& when KGC::DayNight::METHOD_STEP&&& # 步数&&&&&& update_daynight_step&&&& when KGC::DayNight::METHOD_RTIME&& # 现实时间&&&&&& update_daynight_real_time&&&& end&& end&& #--------------------------------------------------------------------------&& # ○ 转换 : 时间切换&& #--------------------------------------------------------------------------&& def update_daynight_pass_time&&&& # 计算出计算器的增加量&&&& inc_count = Graphics.frame_count - @frame_count&&&& # 加算量很奇怪时,取消&&&& if inc_count &= 100&&&&&& @frame_count = Graphics.frame_count&&&&&& return&&&& end&&&& # 计算器的加算&&&& $game_system.daynight_counter += inc_count&&&& @frame_count = Graphics.frame_count&&&& # 确认状态转换&&&& count = $game_system.daynight_counter / Graphics.frame_rate&&&& if count &= $game_system.daynight_phase_object[2]&&&&&& transit_daynight_next&&&& end&& end&& #--------------------------------------------------------------------------&& # ○ 转换 : 步数&& #--------------------------------------------------------------------------&& def update_daynight_step&&&& # 没有移动时&& 取消&&&& return if @daynight_x == $game_player.x && @daynight_y == $game_player.y&&&& @daynight_x = $game_player.x&&&& @daynight_y = $game_player.y&&&& # 计算器的加算&&&& $game_system.daynight_counter += 1&&&& # 确认状态转换&&&& count = $game_system.daynight_counter&&&& if count &= $game_system.daynight_phase_object[2]&&&&&& transit_daynight_next&&&& end&& end&& #--------------------------------------------------------------------------&& # ○ 转换 : 现实时间&& #--------------------------------------------------------------------------&& def update_daynight_real_time&&&& time = Time.now&&&& # 确认状态的转换&&&& time1 = $game_system.daynight_phase_object[2]
事件中插入脚本(指令页第三页左下方)change_daynight_phase(0) #变成天色阶段 0,下面以此类推change_daynight_phase(1)change_daynight_phase(2) change_daynight_phase(3)
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或}

我要回帖

更多关于 村民rpg新手攻略 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信