class Game_Switches
#--------------------------------------------------------------------------
# ● スイッチの設定
# switch_id : スイッチ ID
# value : ON (true) / OFF (false)
#--------------------------------------------------------------------------
alias indexer_equal_KGC_MapLightening []=
def []=(switch_id, value)
indexer_equal_KGC_MapLightening(switch_id, value)
$game_temp.valid_common_event_check = true
end
end
class Game_Map
#--------------------------------------------------------------------------
# ● セットアップ
# map_id : マップ ID
#--------------------------------------------------------------------------
alias setup_KGC_MapLightening setup
def setup(map_id)
setup_KGC_MapLightening(map_id)
update_valid_common_event_list
end
#--------------------------------------------------------------------------
# ○ 有効なコモンイベントのリストを更新
#--------------------------------------------------------------------------
def update_valid_common_event_list
@valid_common_events = {}
# 有効なコモンイベントのリストを作成
@common_events.each { |event_id, event|
if event.trigger == 2 && $game_switches[event.switch_id]
@valid_common_events[event_id] = event
end
}
$game_temp.valid_common_event_check = false
end
#--------------------------------------------------------------------------
# ● イベントの更新
#--------------------------------------------------------------------------
def update_events
for event in @events.values
event.update
end
if $game_temp.valid_common_event_check
update_valid_common_event_list
end
for common_event in @valid_common_events.values
common_event.update
end
end
end
class Game_Interpreter
@@_auto_start_common_event_list = nil
#--------------------------------------------------------------------------
# ● クリア
#--------------------------------------------------------------------------
alias clear_KGC_MapLightening clear
def clear
clear_KGC_MapLightening
if @@_auto_start_common_event_list == nil
create_auto_start_common_event_list
end
end
#--------------------------------------------------------------------------
# ○ 自動起動のコモンイベントのリストを作成
#--------------------------------------------------------------------------
def create_auto_start_common_event_list
@@_auto_start_common_event_list = []
$data_common_events.compact.each { |event|
# トリガーが自動実行のイベントのみ登録
@@_auto_start_common_event_list << event if event.trigger == 1
}
end
#--------------------------------------------------------------------------
# ● 起動中イベントのセットアップ
#--------------------------------------------------------------------------
def setup_starting_event
if $game_map.need_refresh # 必要ならマップをリフレッシュ
$game_map.refresh
end
if $game_temp.common_event_id > 0 # コモンイベントの呼び出し予約?
setup($data_common_events[$game_temp.common_event_id].list)
$game_temp.common_event_id = 0
return
end
for event in $game_map.events.values # マップイベント
if event.starting # 起動中のイベントが見つかった場合
event.clear_starting # 起動中フラグをクリア
setup(event.list, event.id) # イベントをセットアップ
return
end
end
for event in @@_auto_start_common_event_list # 自動起動のコモンイベント
if $game_switches[event.switch_id] # 条件スイッチが ON の場合
setup(event.list) # イベントをセットアップ
end
end
end
end
class Spriteset_Map
#--------------------------------------------------------------------------
# ● キャラクタースプライトの更新
#--------------------------------------------------------------------------
def update_characters
for sprite in @character_sprites
sprite.update if sprite.within_update_range?
end
end
end