#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/ ◆昼夜切り替え - KGC_DayNight◆
#_/----------------------------------------------------------------------------
#_/ ゲーム中に昼夜の概念を作成します。
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
# 導入済みフラグをオン
#==============================================================================
# ★ カスタマイズ項目 ★
#==============================================================================
class Game_Screen
# 昼夜切り替え方式(0:時間経過 1:歩数 2:現実時間)
DAYNIGHT_METHOD = 0
# ★☆以下の3項目は全て同じ個数にしてください☆★
# 処理の都合上、最初を昼にするのがベスト(違っても大きな問題は無し)
# 昼夜の名称(あまり意味は無い)
DAYNIGHT_NAME = ["noon", "night", "mid-night", "morning"]
# 昼夜の色調(よく分からない場合はこのまま)
DAYNIGHT_TONE = [Tone.new(0, 0, 0),
Tone.new(-32, -96, -96),
Tone.new(-128, -128, -32),
Tone.new(-48, -48, -16)]
# 昼夜切り替え時間(次の状態へ移るまでの期間)
# 切り替え方式が時間の場合は秒数、歩数の場合は歩数そのまま
# 戦闘中は切り替え時間が10倍(1/10の速度)
# 現実時間の場合、次の状態へ切り替える時刻(24時間方式)
DAYNIGHT_TIME = [50, 30, 45, 30]
# DAYNIGHT_TIME = [16, 20, 6, 10]
# ↑現実時間用のサンプル。試す場合はコメントを解除
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#--------------------------------------------------------------------------
# ● 現在の状態
#--------------------------------------------------------------------------
def now_daynight
# 現在の状態を返す
return $game_system.daynight_phase
end
#--------------------------------------------------------------------------
# ● 状態名取得
#--------------------------------------------------------------------------
def now_daynight_name
# 現在の状態名を返す
return DAYNIGHT_NAME[now_daynight]
end
#--------------------------------------------------------------------------
# ● 昼夜手動切り替え
# phase : 切り替え後の状態INDEX
# duration : 切り替え時間(フレーム) (省略時:40)
#--------------------------------------------------------------------------
def change_daynight(phase, duration = 40)
# カウント初期化
$game_system.daynight_count = 0
# フェーズ更新
$game_system.daynight_phase = phase
# 手動切り替え有効
$manual_daynight_change = duration
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Game_System
#------------------------------------------------------------------------------
# システム周りのデータを扱うクラスです。BGM などの管理も行います。このクラス
# のインスタンスは $game_system で参照されます。
#==============================================================================
class Game_System
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :daynight_count # 昼夜判定用カウント
attr_accessor :daynight_phase # 現在の状態
attr_accessor :daynight_change # 昼夜変更可否フラグ
attr_accessor :daynight_change_battle # 戦闘中の昼夜変更可否フラグ
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias initialize_KGC_DayNight initialize
def initialize
# 元の処理を実行
initialize_KGC_DayNight
@daynight_count = 0
@daynight_phase = 0
@daynight_change = true
@daynight_change_battle = true
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Game_Screen
#------------------------------------------------------------------------------
# 色調変更やフラッシュなど、画面全体に関係する処理のデータを保持するクラスで
# す。このクラスのインスタンスは $game_screen で参照されます。
#==============================================================================
class Game_Screen
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias initialize_KGC_DayNight initialize
def initialize
# 元の処理を実行
initialize_KGC_DayNight
# とりあえず現在の状態に設定
@tone = DAYNIGHT_TONE[$game_system.daynight_phase].clone
# 移動判定用座標
@x = 0
@y = 0
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
alias update_KGC_DayNight update
def update
# 元の処理を実行
update_KGC_DayNight
# 昼夜切り替え判定
if (!$game_temp.in_battle && $game_system.daynight_change) ||
($game_temp.in_battle && $game_system.daynight_change &&
$game_system.daynight_change_battle)
case DAYNIGHT_METHOD
when 0 # 時間判定
# カウント加算
if $game_temp.in_battle
$game_system.daynight_count += 0.1
else
$game_system.daynight_count += 1
end
# 状態移行判定
count = $game_system.daynight_count / Graphics.frame_rate
if count >= DAYNIGHT_TIME[$game_system.daynight_phase]
# 次の状態へ移行
$game_system.daynight_count = 0
$game_system.daynight_phase += 1
# 最後の状態に達した場合
if $game_system.daynight_phase >= DAYNIGHT_TONE.size
# 最初の状態に戻す
$game_system.daynight_phase = 0
end
# 色調切り替え
start_tone_change(DAYNIGHT_TONE[$game_system.daynight_phase], 40)
end
when 1 # 歩数判定
# 移動判定
if @x != $game_player.x || @y != $game_player.y
# 座標更新
@x = $game_player.x
@y = $game_player.y
# カウント加算
$game_system.daynight_count += 1
# 状態移行判定
count = $game_system.daynight_count
if count >= DAYNIGHT_TIME[$game_system.daynight_phase]
# 次の状態へ移行
$game_system.daynight_count = 0
$game_system.daynight_phase += 1
# 最後の状態に達した場合
if $game_system.daynight_phase >= DAYNIGHT_TONE.size
# 最初の状態に戻す
$game_system.daynight_phase = 0
end
# 色調切り替え
start_tone_change(DAYNIGHT_TONE[$game_system.daynight_phase], 40)
end
end
when 2 # 現実時間
# 現在の時間を取得
time = Time.now
# 状態移行判定
time1 = DAYNIGHT_TIME[$game_system.daynight_phase]
time2 = DAYNIGHT_TIME[$game_system.daynight_phase - 1]
if time2 != nil && time2 > time1
change = time.hour < time2 && time.hour >= time1
else
change = time.hour >= time1
end
if change
# 次の状態へ移行
$game_system.daynight_count = 0
$game_system.daynight_phase += 1
# 最後の状態に達した場合
if $game_system.daynight_phase >= DAYNIGHT_TONE.size
# 最初の状態に戻す
$game_system.daynight_phase = 0
end
# 色調切り替え
start_tone_change(DAYNIGHT_TONE[$game_system.daynight_phase], 40)
end
end
end
# 手動切り替えが行われた場合
if $manual_daynight_change != nil
# 色調切り替え
start_tone_change(DAYNIGHT_TONE[$game_system.daynight_phase], $manual_daynight_change)
# 手動切り替え解除
$manual_daynight_change = nil
end
end
end
--------------------------------------------------------------------------------------------
이스크립트는 제 게임에서 사용중인건데요 시간이 지날때마다 오후가 되기도하고 밤이 되기도하고...
이스크립트에다가 night 상태가 되었을때 특정 스위치를 온 시키는 스크립트가 있나요?
#_/ ◆昼夜切り替え - KGC_DayNight◆
#_/----------------------------------------------------------------------------
#_/ ゲーム中に昼夜の概念を作成します。
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
# 導入済みフラグをオン
#==============================================================================
# ★ カスタマイズ項目 ★
#==============================================================================
class Game_Screen
# 昼夜切り替え方式(0:時間経過 1:歩数 2:現実時間)
DAYNIGHT_METHOD = 0
# ★☆以下の3項目は全て同じ個数にしてください☆★
# 処理の都合上、最初を昼にするのがベスト(違っても大きな問題は無し)
# 昼夜の名称(あまり意味は無い)
DAYNIGHT_NAME = ["noon", "night", "mid-night", "morning"]
# 昼夜の色調(よく分からない場合はこのまま)
DAYNIGHT_TONE = [Tone.new(0, 0, 0),
Tone.new(-32, -96, -96),
Tone.new(-128, -128, -32),
Tone.new(-48, -48, -16)]
# 昼夜切り替え時間(次の状態へ移るまでの期間)
# 切り替え方式が時間の場合は秒数、歩数の場合は歩数そのまま
# 戦闘中は切り替え時間が10倍(1/10の速度)
# 現実時間の場合、次の状態へ切り替える時刻(24時間方式)
DAYNIGHT_TIME = [50, 30, 45, 30]
# DAYNIGHT_TIME = [16, 20, 6, 10]
# ↑現実時間用のサンプル。試す場合はコメントを解除
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#--------------------------------------------------------------------------
# ● 現在の状態
#--------------------------------------------------------------------------
def now_daynight
# 現在の状態を返す
return $game_system.daynight_phase
end
#--------------------------------------------------------------------------
# ● 状態名取得
#--------------------------------------------------------------------------
def now_daynight_name
# 現在の状態名を返す
return DAYNIGHT_NAME[now_daynight]
end
#--------------------------------------------------------------------------
# ● 昼夜手動切り替え
# phase : 切り替え後の状態INDEX
# duration : 切り替え時間(フレーム) (省略時:40)
#--------------------------------------------------------------------------
def change_daynight(phase, duration = 40)
# カウント初期化
$game_system.daynight_count = 0
# フェーズ更新
$game_system.daynight_phase = phase
# 手動切り替え有効
$manual_daynight_change = duration
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Game_System
#------------------------------------------------------------------------------
# システム周りのデータを扱うクラスです。BGM などの管理も行います。このクラス
# のインスタンスは $game_system で参照されます。
#==============================================================================
class Game_System
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :daynight_count # 昼夜判定用カウント
attr_accessor :daynight_phase # 現在の状態
attr_accessor :daynight_change # 昼夜変更可否フラグ
attr_accessor :daynight_change_battle # 戦闘中の昼夜変更可否フラグ
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias initialize_KGC_DayNight initialize
def initialize
# 元の処理を実行
initialize_KGC_DayNight
@daynight_count = 0
@daynight_phase = 0
@daynight_change = true
@daynight_change_battle = true
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Game_Screen
#------------------------------------------------------------------------------
# 色調変更やフラッシュなど、画面全体に関係する処理のデータを保持するクラスで
# す。このクラスのインスタンスは $game_screen で参照されます。
#==============================================================================
class Game_Screen
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias initialize_KGC_DayNight initialize
def initialize
# 元の処理を実行
initialize_KGC_DayNight
# とりあえず現在の状態に設定
@tone = DAYNIGHT_TONE[$game_system.daynight_phase].clone
# 移動判定用座標
@x = 0
@y = 0
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
alias update_KGC_DayNight update
def update
# 元の処理を実行
update_KGC_DayNight
# 昼夜切り替え判定
if (!$game_temp.in_battle && $game_system.daynight_change) ||
($game_temp.in_battle && $game_system.daynight_change &&
$game_system.daynight_change_battle)
case DAYNIGHT_METHOD
when 0 # 時間判定
# カウント加算
if $game_temp.in_battle
$game_system.daynight_count += 0.1
else
$game_system.daynight_count += 1
end
# 状態移行判定
count = $game_system.daynight_count / Graphics.frame_rate
if count >= DAYNIGHT_TIME[$game_system.daynight_phase]
# 次の状態へ移行
$game_system.daynight_count = 0
$game_system.daynight_phase += 1
# 最後の状態に達した場合
if $game_system.daynight_phase >= DAYNIGHT_TONE.size
# 最初の状態に戻す
$game_system.daynight_phase = 0
end
# 色調切り替え
start_tone_change(DAYNIGHT_TONE[$game_system.daynight_phase], 40)
end
when 1 # 歩数判定
# 移動判定
if @x != $game_player.x || @y != $game_player.y
# 座標更新
@x = $game_player.x
@y = $game_player.y
# カウント加算
$game_system.daynight_count += 1
# 状態移行判定
count = $game_system.daynight_count
if count >= DAYNIGHT_TIME[$game_system.daynight_phase]
# 次の状態へ移行
$game_system.daynight_count = 0
$game_system.daynight_phase += 1
# 最後の状態に達した場合
if $game_system.daynight_phase >= DAYNIGHT_TONE.size
# 最初の状態に戻す
$game_system.daynight_phase = 0
end
# 色調切り替え
start_tone_change(DAYNIGHT_TONE[$game_system.daynight_phase], 40)
end
end
when 2 # 現実時間
# 現在の時間を取得
time = Time.now
# 状態移行判定
time1 = DAYNIGHT_TIME[$game_system.daynight_phase]
time2 = DAYNIGHT_TIME[$game_system.daynight_phase - 1]
if time2 != nil && time2 > time1
change = time.hour < time2 && time.hour >= time1
else
change = time.hour >= time1
end
if change
# 次の状態へ移行
$game_system.daynight_count = 0
$game_system.daynight_phase += 1
# 最後の状態に達した場合
if $game_system.daynight_phase >= DAYNIGHT_TONE.size
# 最初の状態に戻す
$game_system.daynight_phase = 0
end
# 色調切り替え
start_tone_change(DAYNIGHT_TONE[$game_system.daynight_phase], 40)
end
end
end
# 手動切り替えが行われた場合
if $manual_daynight_change != nil
# 色調切り替え
start_tone_change(DAYNIGHT_TONE[$game_system.daynight_phase], $manual_daynight_change)
# 手動切り替え解除
$manual_daynight_change = nil
end
end
end
--------------------------------------------------------------------------------------------
이스크립트는 제 게임에서 사용중인건데요 시간이 지날때마다 오후가 되기도하고 밤이 되기도하고...
이스크립트에다가 night 상태가 되었을때 특정 스위치를 온 시키는 스크립트가 있나요?