Avangs

  • 게임 정보
    • 게임 소개
    • 게임 리뷰
    • 게임 실황
    • 게임 공략
    • 모바일 테스트
  • 게임 작품new
    • 완성작 게임new
    • 체험판 게임
    • 한글판 게임new
    • 온라인 게임
    • 추천작 제작자 저장소
  • 투표선정 작품
    • 아방스 추천작
    • 완성 기대작
    • 투표 신청
    • 투표소
    • 투표 결과
  • 강좌
    • 아방스 칼럼
    • 비주얼노벨 강좌
    • 알만툴 강좌
      • MZ 강좌
      • MV 강좌
      • VX Ace 강좌
      • VX 강좌
      • XP 강좌
      • 2003 강좌
      • 2000 강좌
    • 게임메이커 강좌
    • 울프툴 강좌
    • 3D 게임제작 강좌
    • 2D 게임제작 강좌
    • 그래픽 제작 강좌
    • 기타 강좌
  • 질문과 답변
    • 자주 묻는 질문
    • 질문과 답변
    • 제작의뢰
  • 커뮤니티
    • 구인·구직·외주
    • 테스트 요청
    • 자유게시판
    • 게임계 소식
    • 유머&정보
    • 사이트링크
    • 이벤트&대회
  • 창작
    • 게임 기획
    • 맵배치
    • 글쓰기
    • 그리기
    • 음악
  • 자료실
    • 게임제작툴
    • 예제 및 샘플
    • 그래픽 소재
      • 오리지널 소재
      • 이차창작 소재
      • 수정·개조 소재
      • 외부 소재
    • 사운드 소재
    • 확장·플러그인·스크립트
      • MZ 플러그인
      • MV 플러그인
      • Ace 스크립트
      • VX 스크립트
      • XP 스크립트
      • 2k3 플러그인
      • VN 플러그인·확장
    • 외부 소재사이트
    • 기타 자료
      • 한글화툴
      • 무료 폰트
      • 유틸리티
    • 디자인 참고자료
  • 고객센터
    • 공지사항
    • 건의 및 신고
    • 핫 이슈
로그인 회원가입
Avangs
  • 게임 정보
    • 게임 소개
    • 게임 리뷰
    • 게임 실황
    • 게임 공략
    • 모바일 테스트
  • 게임 작품new
    • 완성작 게임new
    • 체험판 게임
    • 한글판 게임new
    • 온라인 게임
    • 추천작 제작자 저장소
  • 투표선정 작품
    • 아방스 추천작
    • 완성 기대작
    • 투표 신청
    • 투표소
    • 투표 결과
  • 강좌
    • 아방스 칼럼
    • 비주얼노벨 강좌
    • 알만툴 강좌
      • MZ 강좌
      • MV 강좌
      • VX Ace 강좌
      • VX 강좌
      • XP 강좌
      • 2003 강좌
      • 2000 강좌
    • 게임메이커 강좌
    • 울프툴 강좌
    • 3D 게임제작 강좌
    • 2D 게임제작 강좌
    • 그래픽 제작 강좌
    • 기타 강좌
  • 질문과 답변
    • 자주 묻는 질문
    • 질문과 답변
    • 제작의뢰
  • 커뮤니티
    • 구인·구직·외주
    • 테스트 요청
    • 자유게시판
    • 게임계 소식
    • 유머&정보
    • 사이트링크
    • 이벤트&대회
  • 창작
    • 게임 기획
    • 맵배치
    • 글쓰기
    • 그리기
    • 음악
  • 자료실
    • 게임제작툴
    • 예제 및 샘플
    • 그래픽 소재
      • 오리지널 소재
      • 이차창작 소재
      • 수정·개조 소재
      • 외부 소재
    • 사운드 소재
    • 확장·플러그인·스크립트
      • MZ 플러그인
      • MV 플러그인
      • Ace 스크립트
      • VX 스크립트
      • XP 스크립트
      • 2k3 플러그인
      • VN 플러그인·확장
    • 외부 소재사이트
    • 기타 자료
      • 한글화툴
      • 무료 폰트
      • 유틸리티
    • 디자인 참고자료
  • 고객센터
    • 공지사항
    • 건의 및 신고
    • 핫 이슈
로그인 회원가입

NOTICE

공지사항
더보기
  • 서버 안정성 및 보안 강화 조치 04.20

Recently Added Games

최근 등록 게임
  • 어드벤쳐 고철에 파묻힌 데모나 (屑鉄まとうデモナ) newfile 08.19
  • 어드벤쳐 비올레 저택의 시온 : 꽃눈의 저택|RPG Maker MZ 단편 심리공포 어드벤처 newfile 08.17
  • 기타 (똥 주의)그저 똥을 누러 가는 게임 Re:Boot updatefile 08.16
  • 롤플레잉 SACCHARINE SYNC (DEMO) 배포 file 08.12
  • 기타 (완성작) 야구장에 가자4 file 2 07.07
그래픽
2008.03.23 22:13

밤낮 변환 VX용

독도2005
조회 수 4400 추천 수 0 댓글 26
크게 작게 위로 아래로 댓글로 가기 인쇄
크게 작게 위로 아래로 댓글로 가기 인쇄
VX용 스크립트입니다.

코드 보기
닫기
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/    ◆ 昼夜切り替え - KGC_DayNight ◆ VX ◆
#_/    ◇ Last update : 2008/02/01 ◇
#_/----------------------------------------------------------------------------
#_/  ゲーム中に昼夜の概念を作成します。
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

#==============================================================================
# ★ カスタマイズ項目 - Customize ★
#==============================================================================

module KGC
module 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 = ["日", "月", "火", "水", "木", "金", "土"]
end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

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

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

module 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
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# □ KGC::Commands
#==============================================================================

module KGC::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
  end
  #--------------------------------------------------------------------------
  # ○ 次のフェーズへ遷移
  #     duration : 切り替え時間(フレーム)
  #--------------------------------------------------------------------------
  def transit_daynight_phase(duration = KGC::DayNight::PHASE_DURATION)
    $game_screen.transit_daynight_phase(duration)
  end
  #--------------------------------------------------------------------------
  # ○ デフォルトの色調に戻す
  #     duration : 切り替え時間(フレーム)
  #--------------------------------------------------------------------------
  def set_daynight_default(duration = KGC::DayNight::PHASE_DURATION)
    $game_screen.set_daynight_default(duration)
  end
  #--------------------------------------------------------------------------
  # ○ 現在のフェーズを復元
  #     duration : 切り替え時間(フレーム)
  #--------------------------------------------------------------------------
  def restore_daynight_phase(duration = KGC::DayNight::PHASE_DURATION)
    $game_screen.restore_daynight_phase(duration)
  end
end

class Game_Interpreter
  include KGC::Commands
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ 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
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ 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]])
    }
    return list.compact
  end
end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ 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
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Game_Temp
#==============================================================================

class Game_Temp
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor :manual_daynight_duration # 手動フェーズ変更フラグ
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  alias initialize_KGC_DayNight initialize
  def initialize
    initialize_KGC_DayNight

    @manual_daynight_duration = nil
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ 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
  end
  #--------------------------------------------------------------------------
  # ○ 現在のフェーズオブジェクトを取得
  #--------------------------------------------------------------------------
  def daynight_phase_object
    return KGC::DayNight::PHASE[daynight_phase]
  end
  #--------------------------------------------------------------------------
  # ○ 以前のフェーズオブジェクトを取得
  #--------------------------------------------------------------------------
  def previous_daynight_phase_object
    return KGC::DayNight::PHASE[daynight_phase - 1]
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ 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]
    transit = (time1 <= time.hour)
    if $game_system.previous_daynight_phase_object != nil
      time2 = $game_system.previous_daynight_phase_object[2]
      if time1 < time2
        transit &= (time.hour < time2)
      end
    end

    if transit
      transit_daynight_next
    end
  end
  #--------------------------------------------------------------------------
  # ○ 次の状態へ遷移
  #     duration : 遷移時間
  #--------------------------------------------------------------------------
  def transit_daynight_next(duration = KGC::DayNight::PHASE_DURATION)
    $game_system.daynight_counter = 0
    $game_system.progress_daynight_phase
    # 日数経過判定
    if $game_system.daynight_phase == KGC::DayNight::PASS_DAY_PHASE
      $game_variables[KGC::DayNight::PASS_DAYS_VARIABLE] += 1
    end
    # 色調切り替え
    start_tone_change($game_system.daynight_phase_object[1], duration)
    @daynight_tone_changed = true
  end
  #--------------------------------------------------------------------------
  # ○ デフォルトの状態(0, 0, 0)に戻す
  #     duration : 遷移時間
  #--------------------------------------------------------------------------
  def set_daynight_default(duration)
    start_tone_change(@default_tone, duration)
  end
  #--------------------------------------------------------------------------
  # ○ 現在のフェーズを復元
  #     duration : 遷移時間
  #--------------------------------------------------------------------------
  def restore_daynight_phase(duration)
    start_tone_change($game_system.daynight_phase_object[1], duration)
    @daynight_tone_changed = true
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Game_Map
#==============================================================================

class Game_Map
  #--------------------------------------------------------------------------
  # ● セットアップ
  #     map_id : マップ ID
  #--------------------------------------------------------------------------
  alias setup_KGC_DayNight setup
  def setup(map_id)
    setup_KGC_DayNight(map_id)

    @screen.apply_daynight
  end
  #--------------------------------------------------------------------------
  # ○ 昼夜切り替えを停止するか
  #--------------------------------------------------------------------------
  def daynight_stop?
    info = $data_mapinfos[map_id]
    return false if info == nil
    return (info.daynight_stop || info.daynight_void)
  end
  #--------------------------------------------------------------------------
  # ○ 昼夜切り替えが無効か
  #--------------------------------------------------------------------------
  def daynight_void?
    info = $data_mapinfos[map_id]
    return false if info == nil
    return info.daynight_void
  end
  #--------------------------------------------------------------------------
  # ● エンカウントリストの取得
  #--------------------------------------------------------------------------
  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]])
    }
    return list.compact
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Spriteset_Battle
#==============================================================================

if KGC::DayNight::TONE_BACK_ONLY_IN_BATTLE
class Spriteset_Battle
  #--------------------------------------------------------------------------
  # ● バトルバックスプライトの作成
  #--------------------------------------------------------------------------
  alias create_battleback_KGC_DayNight create_battleback
  def create_battleback
    create_battleback_KGC_DayNight

    if @battleback_sprite.wave_amp == 0
      @battleback_sprite.tone = $game_troop.screen.daynight_tone
    end
  end
  #--------------------------------------------------------------------------
  # ● バトルフロアスプライトの作成
  #--------------------------------------------------------------------------
  alias create_battlefloor_KGC_DayNight create_battlefloor
  def create_battlefloor
    create_battlefloor_KGC_DayNight

    @battlefloor_sprite.tone = $game_troop.screen.daynight_tone
  end
end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Scene_Map
#==============================================================================

class Scene_Map < Scene_Base
  #--------------------------------------------------------------------------
  # ● 開始処理
  #--------------------------------------------------------------------------
  alias start_KGC_DayNight start
  def start
    $game_map.screen.clear_daynight

    start_KGC_DayNight
  end
end

출처 : http://www.rpgrevolution.com/

ps. 47번 글은 XP용이더군요..VX용으로 찾았습니다.
0 추천 0 비추천
Facebook Twitter Google Pinterest KakaoStory Band
위로 아래로 댓글로 가기 인쇄
에디터 선택하기
✔ 텍스트 모드 ✔ 에디터 모드
?
댓글 쓰기 권한이 없습니다. 로그인 하시겠습니까?
Comment '26'
  • ?
    시라소몬 2008.03.24 17:26

    움..... 감사합니다.....
    독도에 관한 RPG게임이라도 만드셨나요!?

    댓글
  • ?
    작은악마 2008.03.24 17:32

    xp용이긴 하지만 vx도 잘됩니다..(그래서 vx용이라고 한;;)
    단지 이건 짧고 (변환하는 시간) 이건 좀 길더군요;;;

    댓글
  • ?
    Incubus 2008.05.24 21:59
    어떤게 '이거'가 '이거'죠? ;;
    댓글
  • ?
    아나카시 2008.06.07 15:50
    이... 이건 잛고 이건 길다니... 나의 머리론 이해할 수 없는 논리이다... [퍽
    댓글
  • ?
    작은악마 2008.06.09 18:51
    독도님껀 작고
    제가 올린건 길다 이런말 같은데;; (언제쩍껀지원;;)
    댓글
  • ?
    레이니케 2008.03.25 18:14
    KGC자료인듯한데.. 중복 아닌가요..? 'ㅅ';
    댓글
  • ?
    독도2005 2008.03.29 13:58

    중복인거 압니다만..

    댓글
  • ?
    WMN 2008.04.06 17:38
     
     

    좋은자료입니다,
    감사합니다.

    고맙습니다.

    댓글
  • ?
    시라소몬 2008.05.24 19:05
    시간을 좀더 늘릴수는 없을까요?
    댓글
  • ?
    zeromax's joke 2008.05.31 13:03
    잘 사용할께요.. ㄳ
    댓글
  • ?
    쿠레아 2008.06.18 19:35
    이거 어디다가 복사하는거죠?;;;;;
    댓글
  • ?
    양념통닼 2008.06.18 20:38
    복사해서 메인위에 붙여넣기 하시면 되요.
    댓글
  • ?
    VX하쟈 2008.06.22 21:54
    시간 조절 어케?
    댓글
  • ?
    클레이모어 2008.06.26 19:02
    앙대요 ㅇ.ㅇ;
    댓글
  • ?
    undertaker 2008.07.31 21:46
    시간.............시간.......... 시간 조절!!!!!!!!!!!!!!!!!! 좀 알려주심 안됄까요?
    댓글
  • ?
    방황하는초보자 2008.08.21 19:12

    몇분에한번변하는거임?

    댓글
  • ?
    진월군 2008.12.14 13:33
    ㄳㄳㄳㄳㄳㄳㄳㄳㄳㄳ
    댓글
  • profile
    [RPG2003] 2008.12.29 16:38
    고맙습니다ㅎ
    댓글
  • ?
    event 2009.01.27 19:10
    좋은정보 감사합니다~
    댓글
  • ?
    Aakerse 2009.01.31 13:24
    잘쓸게요
    댓글
  • ?
    뱅뱅이 2009.08.04 23:17
    잘받아갑니당
    댓글
  • ?
    PianoWanderer 2009.08.05 13:10
    잘받아가요 ㅋㅋ
    댓글
  • ?
    킬레 2009.08.06 17:10
    잘 쓰게 습니다 ^^
    댓글
  • ?
    1000℃ 복숭아 2009.10.17 20:57

    잘 쓸게요. 감사합니다!

     

    수정 삭제 댓글
  • ?
    먹돼렐라 2010.03.01 12:41

    감사합니다^^

    댓글
  • ?
    vx맨 2011.04.07 22:42

    제발 대길 잘받아가요

    댓글

Category
  • 그래픽(10)
  • 맵/타일(20)
  • 메뉴(44)
  • 메시지(29)
  • 미니맵(6)
  • 버그픽스(3)
  • 변수/스위치(10)
  • 상점(12)
  • 상태/속성(7)
  • 스킬(26)
  • 아이템(16)
  • 액터(6)
  • 원경(1)
  • 영상(4)
  • 오디오(3)
  • 온라인(8)
  • 이동 및 탈것(25)
  • 이름입력(11)
  • 장비(23)
  • 저장(8)
  • 전투(81)
  • 제작도구(5)
  • 직업(3)
  • 퀘스트(7)
  • 키입력(8)
  • 타이틀/게임오버(27)
  • 파티(10)
  • HUD(16)
  • 기타(130)
List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 3 습작 2012.12.24 9256
10 그래픽 Arevulopapo's Particle Engine for VX/Ace by PK8 1 Alkaid 2012.05.13 2969
9 그래픽 KGC_BitmapExtension : 비트맵 클래스 확장 8 file soleone 2010.07.18 3283
8 그래픽 토마스 에디슨(파티클 엔진 비슷) 9 file 비극ㆍ 2010.04.19 3538
7 그래픽 그림자 없에는 스크립트(그런것 같음) 1 Man... 2008.10.27 1720
6 그래픽 3D그래픽 파티클엔진 45 file RPGbooster 2008.10.08 10259
» 그래픽 밤낮 변환 VX용 26 독도2005 2008.03.23 4400
4 그래픽 먼가이상한데... 밤낮 변환 vx 44 작은악마 2008.03.18 3495
3 그래픽 Multiple Fogs 1.0 4 아방스 2008.03.05 2961
2 그래픽 밤낮 변환 스크립트 18 kram3 2008.01.31 3842
1 그래픽 RPG XP의 Transitions효과를 VX에도 적용을 해보자 4 아방스 2008.01.27 4033
쓰기
Board Pagination Prev 1 Next
/ 1
AVANGS

게임 제작, 창작, 자료, 강좌를 연결하는 커뮤니티

  • 개인정보 취급방침

Copyright © 2026 Avangs