#============================================================================== # ■ RGSS3 全マップイベントコマンド簡易調査 Ver1.00 by 星潟 #------------------------------------------------------------------------------ # このイベントコマンドをテストプレイ中に実行する事で # ゲーム全体のマップイベント・コモンイベント内を調べて # 特定のイベントコマンドの使用状態についてコンソールに表示します。 # (エディタ内のコンソール表示にチェックを入れておく必要があります) # # また、スイッチの調査と、変数の調査に特化したコマンドもあります。 # (どちらかというと、この2つのコマンドの利用が主な利用方法となると思います) # # 予定外のイベントでスイッチや変数を操作している箇所を # 調べるのに役立つかもしれません。 # # コンソールに表示されるのは # マップイベントの場合、マップID、イベントID、イベントページ数、 # そして、そのページでの使用回数です。 # コモンイベントの場合、コモンイベントIDと使用回数です。 # # 使用例1.スイッチの場合 # スイッチID10を操作している『スイッチの操作』イベントコマンドを調査する場合 # イベントコマンドのスクリプトで easy_switch_search(10) と記述する。 # なお、複数IDを1コマンドで同時操作している場合は調査対象とはならない。 # # 使用例2.変数の場合 # 変数ID20を操作している『変数の操作』イベントコマンドを調査する場合 # イベントコマンドのスクリプトで easy_variable_search(20) と記述する。 # なお、複数IDを1コマンドで同時操作している場合は調査対象とはならない。 # # 使用例3.上級者向け 全イベントコマンド対応 # イベントコマンドのスクリプトで ame_i_check(order_id, param_data) と記述。 # order_idの部分にイベントコマンドの命令ID(Game_Interpreter参照)、 # param_dataの部分にイベントコマンドのパラメータ配列を指定する。 # パラメータ配列内の値をnilにした場合、その箇所のパラメータを飛ばして調査する。 # # 例えば「6桁の数値を入力させ、変数10に結果を代入させる」という # 『数値入力の処理』に対して調査を行う場合の例として # ame_i_check(103, [10, 6]) と記述する事で # 数値入力の処理について調査を実行することができる。 #============================================================================== class Game_Interpreter #-------------------------------------------------------------------------- # ● スイッチ調査(ただし、まとめて変更している場合は除外) #-------------------------------------------------------------------------- def easy_switch_search(s_id) return unless $TEST or $BTEST ame_i_check(121, [s_id]) end #-------------------------------------------------------------------------- # ● 変数調査(ただし、まとめて変更している場合は除外) #-------------------------------------------------------------------------- def easy_variable_search(v_id) return unless $TEST or $BTEST ame_i_check(122, [v_id]) end #-------------------------------------------------------------------------- # ● イベントコマンド調査 #-------------------------------------------------------------------------- def ame_i_check(order_id, param_data = []) return unless $TEST or $BTEST text = "調査イベント命令ID " + order_id.to_s text += " " + "イベントパラメータ " + param_data.to_s if !param_data.empty? p text $data_mapinfos = load_data("Data/MapInfos.rvdata2") if $data_mapinfos == nil for map_id in 0..999 if $data_mapinfos[map_id] != nil map = load_data(sprintf("Data/Map%03d.rvdata2", map_id)) map.events.keys.each do |i| next if i == nil event = map.events[i] next if event.pages == nil page_number = 0 event.pages.each do |page| number_data = 0 page_number += 1 page.list.each do |pld| next if pld == nil hantei = true if pld.code == order_id next if pld.parameters == nil if param_data.empty? number_data += 1 else param_number = -1 param_data.each do |pd| param_number += 1 if pd != nil && pld.parameters[param_number] != nil hantei = false if pld.parameters[param_number] != pd end end next if !hantei number_data += 1 end end end if number_data > 0 text = "MAPID" + map_id.to_s + "イベントID " + event.id.to_s + " " + page_number.to_s + "ページ 使用回数 " + number_data.to_s p text end end end end end $data_common_events.each do |cm| next if cm == nil number_data = 0 cm.list.each do |pld| next if pld == nil hantei = true if pld.code == order_id next if pld.parameters == nil if param_data.empty? number_data += 1 else param_number = -1 param_data.each do |pd| param_number += 1 if pd != nil && pld.parameters[param_number] != nil hantei = false if pld.parameters[param_number] != pd end end next if !hantei number_data += 1 end end end if number_data > 0 text = "コモンイベントID " + cm.id.to_s + " 使用回数 " + number_data.to_s p text end end end end