#------------------------------------------------------------------------------- # アイテム/武器/防具増減コマンド出力 for VXAce 製作者:奏ねこま(おとぶきねこま) #------------------------------------------------------------------------------- # アイテム、武器、防具の増減のイベントコマンドを検索し、テキストに出力します。 # # [ 使い方 ] # #  タイトル画面でShift+F9を押してください。 # # [ 検索対象 ] # #  検索対象のイベントコマンドは以下となります。 # #   ・アイテムの増減 #   ・武器の増減 #   ・防具の増減 # #  イベントコマンドを検索する対象は以下となります。 # #   ・マップイベント # ・コモンイベント # ・バトルイベント # #  スクリプトによる増減は検索の対象外となりますのであらかじめご了承ください。 # ツクールのエディタ上で設定するもので、検索対象から漏れているものが # ありましたらご連絡ください。バージョンアップにて対応いたします。 # # [ 利用規約 ] ................................................................. # 本スクリプトの利用者は、RPGツクールVXAceの正規ユーザーに限られます。 # 商用、非商用、ゲームの内容(年齢制限など)を問わず利用可能です。 # ゲームへの利用の際、報告や出典元の記載等は必須ではありません。 # 二次配布や転載、ソースコードURLやダウンロードURLへの直接リンクは禁止します。 # (スクリプトを利用したゲームに同梱する形での結果的な配布はOKです) # 不具合対応以外のサポートやリクエストは受け付けておりません。 # 本スクリプトにより生じたいかなる問題においても、一切の責任を負いかねます。 # [ 改訂履歴 ] ................................................................. # Version 1.00 2019/08/17 初版 # -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ # Web Site: http://makonet.sakura.ne.jp/rpg_tkool/ # Twitter : https://twitter.com/koma_neko #------------------------------------------------------------------------------- # Scene_Title #------------------------------------------------------------------------------- class Scene_Title alias :makonet009_update :update def update makonet009_update if $TEST && Input.press?(:SHIFT) && Input.trigger?(:F9) if SceneManager.scene_is?(Scene_Title) SceneManager.call(Scene_ItemCheck) end end end end #------------------------------------------------------------------------------- # Scene_ItemCheck #------------------------------------------------------------------------------- class Scene_ItemCheck < Scene_MenuBase def start super @status_window = Window_ItemCheckStatus.new end def update super if !@check_start @check_start = true output_text = item_check File.open("アイテム武器防具増減リスト.txt", "w"){|file| output_text.each{|txt| file.printf("%s\n", txt) } } @status_window.add_text("") @status_window.add_text("Game.exeと同じ場所に「アイテム武器防具増減リスト.txt」を出力しました。") @status_window.add_text("出力内容をご確認ください。") @status_window.add_text("") @status_window.add_text("(タイトルに戻るにはF12でリセットしてください)") end end def item_check output_text = [] # マップイベント data_mapinfos_1 = $data_mapinfos.sort{|a,b| a[1].order - b[1].order } data_mapinfos_2 = [] $data_mapinfos.each{|d| data_mapinfos_2[d[0]] = d } data_mapinfos_1.each{|d| indent = 0 parent_id = d[1].parent_id while parent_id > 0 parent_id = data_mapinfos_2[parent_id][1].parent_id indent += 1 end sign = data_mapinfos_1.any?{|i| i[1].parent_id == d[0] } ? "+" : "-" output_text.push(sprintf("%s%s %s", " " * indent, sign, d[1].name)) map_data = load_data(sprintf("Data/Map%03d.rvdata2", d[0])) text_list = [] max_size = 0 map_data.events.each_value{|v| v.pages.each_index{|i| v.pages[i].list.each{|c| data = nil kind = "" if c.code == 126 data = $data_items kind = "i" elsif c.code == 127 data = $data_weapons kind = "w" elsif c.code == 128 data = $data_armors kind = "a" end if data ope = c.parameters[1] == 0 ? "+" : "-" val = c.parameters[2] == 0 ? c.parameters[3].to_s : "v[" + c.parameters[3].to_s + "]" txt1 = sprintf(" [%s] %03d:%s %s%s", kind, c.parameters[0], data[c.parameters[0]].name, ope, val) max_size = [max_size, txt1.encode("Shift_JIS").bytesize + 2].max txt2 = sprintf("-> %s(%d,%d):p%d", v.name, v.x, v.y, i + 1) text_list.push([indent, txt1, txt2]) end } } } text_list.each{|t| sp = max_size - t[1].encode("Shift_JIS").bytesize output_text.push(" " * t[0] + t[1] + " " * sp + t[2]) } } # コモンイベント output_text.push("- コモンイベント") text_list = [] max_size = 0 $data_common_events.each_index{|i| if i > 0 $data_common_events[i].list.each{|c| data = nil kind = "" if c.code == 126 data = $data_items kind = "i" elsif c.code == 127 data = $data_weapons kind = "w" elsif c.code == 128 data = $data_armors kind = "a" end if data ope = c.parameters[1] == 0 ? "+" : "-" val = c.parameters[2] == 0 ? c.parameters[3].to_s : "v[" + c.parameters[3].to_s + "]" txt1 = sprintf(" [%s] %03d:%s %s%s", kind, c.parameters[0], data[c.parameters[0]].name, ope, val) max_size = [max_size, txt1.encode("Shift_JIS").bytesize + 2].max txt2 = sprintf("-> %03d:%s", i, $data_common_events[i].name) text_list.push([txt1, txt2]) end } end } if text_list.size > 0 text_list.each{|t| sp = max_size - t[0].encode("Shift_JIS").bytesize output_text.push(t[0] + " " * sp + t[1]) } else output_text.push(" (アイテム/武器/防具の増減なし)") end # バトルイベント output_text.push("- バトルイベント") text_list = [] max_size = 0 $data_troops.each{|d| if d d.pages.each_index{|i| d.pages[i].list.each{|c| data = nil kind = "" if c.code == 126 data = $data_items kind = "i" elsif c.code == 127 data = $data_weapons kind = "w" elsif c.code == 128 data = $data_armors kind = "a" end if data ope = c.parameters[1] == 0 ? "+" : "-" val = c.parameters[2] == 0 ? c.parameters[3].to_s : "v[" + c.parameters[3].to_s + "]" txt1 = sprintf(" [%s] %03d:%s %s%s", kind, c.parameters[0], data[c.parameters[0]].name, ope, val) max_size = [max_size, txt1.encode("Shift_JIS").bytesize + 2].max txt2 = sprintf("-> %03d:%s:p%d", d.id, d.name, i + 1) text_list.push([txt1, txt2]) end } } end } if text_list.size > 0 text_list.each{|t| sp = max_size - t[0].encode("Shift_JIS").bytesize output_text.push(t[0] + " " * sp + t[1]) } else output_text.push(" (アイテム/武器/防具の増減なし)") end return output_text end end #------------------------------------------------------------------------------- # Window_ItemCheckStatus #------------------------------------------------------------------------------- class Window_ItemCheckStatus < Window_Base def initialize super(0, 0, Graphics.width, Graphics.height) draw_text(0, 0, contents_width, line_height, "アイテム/武器/防具の増減リストを出力しています...") @draw_line = line_height end def add_text(text) draw_text(0, @draw_line, contents_width, line_height, text) @draw_line += line_height end end