#============================================================================== # ■ RGSS3 装備品名称・アイコン・性能変化 Ver1.02 by 星潟 #------------------------------------------------------------------------------ # 特定IDの武器もしくは防具の名称・アイコン・性能を変化させます。 # このスクリプトによって強化された値は便宜上、追加強化値と呼びます。 # 武器・防具共に名称・価格・アイコン・最大HP・最大MP・攻撃力・防御力 # 魔法力・魔法防御・敏捷性・運の10項目を変更できます。 # # リネーム前の装備品名称・性能変化を使用していたセーブデータからも # 設定の引継ぎが可能です。 # リネーム前よりもセーブデータに保存するデータ容量を抑制しているので # 基本的にこちらの使用をオススメします。 # リネーム前のスクリプトを使用したセーブデータをロードした際 # こちらのスクリプトに合わせてデータが修正された状態でロードされます。 # 修正される際に装備品の数に応じて少し時間がかかりますが # 修正処理後のセーブデータをセーブすると、それ以降そのセーブデータでは # 修正処理は行われなくなります。 #============================================================================== # イベントコマンドのスクリプトを使用します。 #------------------------------------------------------------------------------ # 武器の場合 #------------------------------------------------------------------------------ # ex_w_name(1,"ひのきのぼう") # # 武器ID1の名前をひのきのぼうに変更 #------------------------------------------------------------------------------ # ex_w_name(1,nil) # # 武器ID1の名前を初期化 #------------------------------------------------------------------------------ # ex_w_icon_index(1, 151) # # 武器ID1のアイコンインデックスを151に変更 #------------------------------------------------------------------------------ # ex_w_icon_index(1, nil) # # 武器ID1のアイコンインデックスを初期化 #------------------------------------------------------------------------------ # ex_w_price(1,"+",5000) # # 武器ID1の価格を+5000 #------------------------------------------------------------------------------ # ex_w_price(1,"+",5000) # # 武器ID1の価格を+5000 #------------------------------------------------------------------------------ # ex_w_price(1,"=",0) # # 武器ID1の価格を初期化 #------------------------------------------------------------------------------ # ex_w_mhp(2,"+",5) # # 武器ID2の最大HP追加強化値を+5 #------------------------------------------------------------------------------ # ex_w_mmp(2,"-",5) # # 武器ID2の最大MP追加強化値を-5 #------------------------------------------------------------------------------ # ex_w_atk(2,"-",5) # # 武器ID2の攻撃力追加強化値を-5 #------------------------------------------------------------------------------ # ex_w_def(3,"*",2) # # 武器ID3の防御力追加強化値を2倍 #------------------------------------------------------------------------------ # ex_w_mat(4,"/",2) # # 武器ID4の魔法力追加強化値を半減 #------------------------------------------------------------------------------ # ex_w_mdf(4,"/",2) # # 武器ID4の魔法防御追加強化値を半減 #------------------------------------------------------------------------------ # ex_w_agi(5,"=",0) # # 武器ID5の敏捷性追加強化値を初期化 #------------------------------------------------------------------------------ # ex_w_luk(5,"=",0) # # 武器ID5の運追加強化値を初期化 #------------------------------------------------------------------------------ # ex_w_clear(1) # # 武器ID1の変更設定を初期化 #------------------------------------------------------------------------------ # ex_w_clear # # 全ての武器の変更設定を初期化 #------------------------------------------------------------------------------ # 防具の場合 #------------------------------------------------------------------------------ # ex_a_name(3,"ガラスの盾") # # 防具ID3の名前をガラスの盾に変更 #------------------------------------------------------------------------------ # ex_a_name(3,nil) # # 防具ID3の名前を初期化 #------------------------------------------------------------------------------ # ex_w_icon_index(6, 501) # # 防具ID6のアイコンインデックスを501に変更 #------------------------------------------------------------------------------ # ex_w_icon_index(6, nil) # # 防具ID6のアイコンインデックスを初期化 #------------------------------------------------------------------------------ # ex_a_price(9,"+",10000) # # 防具ID9の価格を+10000 #------------------------------------------------------------------------------ # ex_a_price(9,"=",0) # # 防具ID9の価格を初期化 #------------------------------------------------------------------------------ # ex_a_mhp(2,"+",5) # # 防具ID2の最大HP追加強化値を+5 #------------------------------------------------------------------------------ # ex_a_mmp(2,"-",5) # # 防具ID2の最大MP追加強化値を-5 #------------------------------------------------------------------------------ # ex_a_atk(7,"/",2) # # 防具ID7の攻撃力追加強化値を半減 #------------------------------------------------------------------------------ # ex_a_def(8,"*",2) # # 防具ID8の防御力追加強化値を2倍 #------------------------------------------------------------------------------ # ex_a_mat(9,"-",5) # # 防具ID9の魔法力追加強化値を-5 #------------------------------------------------------------------------------ # ex_a_mdf(9,"-",5) # # 防具ID9の魔法防御追加強化値を-5 #------------------------------------------------------------------------------ # ex_a_agi(10,"+",5) # # 防具ID10の敏捷性追加強化値を+5 #------------------------------------------------------------------------------ # ex_a_luk(10,"+",5) # # 防具ID10の運追加強化値を+5 #------------------------------------------------------------------------------ # ex_a_clear(11) # # 防具ID11の変更設定を初期化 #------------------------------------------------------------------------------ # ex_a_clear # # 全ての防具の変更設定を初期化 #============================================================================== # 括弧内の2番目に演算子の文字列("+"や"-"など)を設定するものに関しては # 4番目に上限、5番目に下限を設定できます。 # 下限のみを設定したい場合、4番目にnilを入れてください。 # 以下、例となります。 #------------------------------------------------------------------------------ # ex_a_mhp(2,"+",5,100) # # 防具ID2の最大HP追加強化値を+5 #------------------------------------------------------------------------------ # ex_a_mhp(2,"+",rand(101) - 50,100,-100) # # 防具ID2の最大HP追加強化値を-50〜50。 # ただし、追加強化値の合計の上限は100、下限は-100とする。 # (あくまで追加強化値の合計であって、元の能力値との合計ではないので注意) #------------------------------------------------------------------------------ # ex_a_mhp(2,"-",5,nil,-100) # # 防具ID2の最大HP追加強化値を-5。 # ただし、追加強化値の合計の下限は-5とする。 #============================================================================== # なお、除算処理でゼロ除算を引き起こした場合、計算はキャンセルされます。 # その場合でも上限・下限設定は有効です。 #============================================================================== class Game_Party < Game_Unit attr_accessor :ex_e_change_data attr_accessor :ex_e_changed_flag attr_accessor :ex_e_version_check #-------------------------------------------------------------------------- # オブジェクト初期化 #-------------------------------------------------------------------------- alias initialize_ex_equip_change initialize def initialize initialize_ex_equip_change @ex_e_version_check = 1 @ex_e_changed_flag = {:weapon => {},:armor => {}} end #-------------------------------------------------------------------------- # 武器の変更情報 #-------------------------------------------------------------------------- def ex_e_change_data @ex_e_change_data ||= {:weapon => {},:armor => {}} end #-------------------------------------------------------------------------- # 武器の変更済みフラグ #-------------------------------------------------------------------------- def ex_e_changed_flag @ex_e_changed_flag ||= {:weapon => {},:armor => {}} end #-------------------------------------------------------------------------- # 旧バージョンからの引継ぎ処理 #-------------------------------------------------------------------------- def ex_equip_change_convert_old_version case @ex_e_version_check when 1 when 0 @ex_e_version_check = 1 @ex_e_change_data = {:weapon => {},:armor => {}} if @ex_w_change_data @ex_e_change_data[:weapon] = @ex_w_change_data keys = @ex_e_change_data[:weapon].keys keys.each {|k| h1 = @ex_e_change_data[:weapon][k] if h1[:params] h2 = {} h1[:params].each_with_index {|n,i| h2[i] = n if n != 0} if !h2.empty? @ex_e_change_data[:weapon][k][:params] = h2 else @ex_e_change_data[:weapon][k].delete(:params) end end @ex_e_change_data[:weapon].delete(k) if @ex_e_change_data[:weapon][k].empty?} remove_instance_variable(:@ex_w_change_data) end if @ex_a_change_data @ex_e_change_data[:armor] = @ex_a_change_data keys = @ex_e_change_data[:armor].keys keys.each {|k| h1 = @ex_e_change_data[:armor][k] if h1[:params] h2 = {} h1[:params].each_with_index {|n,i| h2[i] = n if n != 0} if !h2.empty? @ex_e_change_data[:armor][k][:params] = h2 else @ex_e_change_data[:armor][k].delete(:params) end end @ex_e_change_data[:armor].delete(k) if @ex_e_change_data[:armor][k].empty?} remove_instance_variable(:@ex_a_change_data) end remove_instance_variable(:@ex_e_changed_flag) if @ex_e_changed_flag remove_instance_variable(:@ex_a_changed_flag) if @ex_a_changed_flag when nil @ex_e_version_check = 1 @ex_e_change_data = {} h = {} if @ex_w_name @ex_w_name.each_with_index {|n,i| next unless n h[i] ||= {} h[i][:name] = n} remove_instance_variable(:@ex_w_name) end if @ex_w_price @ex_w_price.each_with_index {|n,i| next unless n h[i] ||= {} h[i][:price] = n} remove_instance_variable(:@ex_w_price) end if @ex_w_mhp r = @ex_w_mhp.compact if !r.empty? && r[0] != 0 @ex_w_mhp.each_with_index {|n,i| next if !n or n == 0 h[i] ||= {} h[i][:params] ||= {} h[i][:params][0] = n} end remove_instance_variable(:@ex_w_mhp) end if @ex_w_mmp r = @ex_w_mmp.compact if !r.empty? && r[0] != 0 @ex_w_mmp.each_with_index {|n,i| next if !n or n == 0 h[i] ||= {} h[i][:params] ||= {} h[i][:params][1] = n} end remove_instance_variable(:@ex_w_mmp) end if @ex_w_atk r = @ex_w_atk.compact if !r.empty? && r[0] != 0 @ex_w_atk.each_with_index {|n,i| next if !n or n == 0 h[i] ||= {} h[i][:params] ||= {} h[i][:params][2] = n} end remove_instance_variable(:@ex_w_atk) end if @ex_w_def r = @ex_w_def.compact if !r.empty? && r[0] != 0 @ex_w_def.each_with_index {|n,i| next if !n or n == 0 h[i] ||= {} h[i][:params] ||= {} h[i][:params][3] = n} end remove_instance_variable(:@ex_w_def) end if @ex_w_mat r = @ex_w_mat.compact if !r.empty? && r[0] != 0 @ex_w_mat.each_with_index {|n,i| next if !n or n == 0 h[i] ||= {} h[i][:params] ||= {} h[i][:params][4] = n} end remove_instance_variable(:@ex_w_mat) end if @ex_w_mdf r = @ex_w_mdf.compact if !r.empty? && r[0] != 0 @ex_w_mdf.each_with_index {|n,i| next if !n or n == 0 h[i] ||= {} h[i][:params] ||= {} h[i][:params][5] = n} end remove_instance_variable(:@ex_w_mdf) end if @ex_w_agi r = @ex_w_agi.compact if !r.empty? && r[0] != 0 @ex_w_agi.each_with_index {|n,i| next if !n or n == 0 h[i] ||= {} h[i][:params] ||= {} h[i][:params][6] = n} end remove_instance_variable(:@ex_w_agi) end if @ex_w_luk r = @ex_w_luk.compact if !r.empty? && r[0] != 0 @ex_w_luk.each_with_index {|n,i| next if !n or n == 0 h[i] ||= {} h[i][:params] ||= {} h[i][:params][7] = n} end remove_instance_variable(:@ex_w_luk) end @ex_e_change_data[:weapon] = h h = {} if @ex_a_name @ex_a_name.each_with_index {|n,i| next unless n h[i] ||= {} h[i][:name] = n} remove_instance_variable(:@ex_a_name) end if @ex_a_price @ex_a_price.each_with_index {|n,i| next unless n h[i] ||= {} h[i][:price] = n} remove_instance_variable(:@ex_a_price) end if @ex_a_mhp r = @ex_a_mhp.compact if !r.empty? && r[0] != 0 @ex_a_mhp.each_with_index {|n,i| next if !n or n == 0 h[i] ||= {} h[i][:params] ||= {} h[i][:params][0] = n} end remove_instance_variable(:@ex_a_mhp) end if @ex_a_mmp r = @ex_a_mmp.compact if !r.empty? && r[0] != 0 @ex_a_mmp.each_with_index {|n,i| next if !n or n == 0 h[i] ||= {} h[i][:params] ||= {} h[i][:params][1] = n} end remove_instance_variable(:@ex_a_mmp) end if @ex_a_atk r = @ex_a_atk.compact if !r.empty? && r[0] != 0 @ex_a_atk.each_with_index {|n,i| next if !n or n == 0 h[i] ||= {} h[i][:params] ||= {} h[i][:params][2] = n} end remove_instance_variable(:@ex_a_atk) end if @ex_a_def r = @ex_a_def.compact if !r.empty? && r[0] != 0 @ex_a_def.each_with_index {|n,i| next if !n or n == 0 h[i] ||= {} h[i][:params] ||= {} h[i][:params][3] = n} end remove_instance_variable(:@ex_a_def) end if @ex_a_mat r = @ex_a_mat.compact if !r.empty? && r[0] != 0 @ex_a_mat.each_with_index {|n,i| next if !n or n == 0 h[i] ||= {} h[i][:params] ||= {} h[i][:params][4] = n} end remove_instance_variable(:@ex_a_mat) end if @ex_a_mdf r = @ex_a_mdf.compact if !r.empty? && r[0] != 0 @ex_a_mdf.each_with_index {|n,i| next if !n or n == 0 h[i] ||= {} h[i][:params] ||= {} h[i][:params][5] = n} end remove_instance_variable(:@ex_a_mdf) end if @ex_a_agi r = @ex_a_agi.compact if !r.empty? && r[0] != 0 @ex_a_agi.each_with_index {|n,i| next if !n or n == 0 h[i] ||= {} h[i][:params] ||= {} h[i][:params][6] = n} end remove_instance_variable(:@ex_a_agi) end if @ex_a_luk r = @ex_a_luk.compact if !r.empty? && r[0] != 0 @ex_a_luk.each_with_index {|n,i| next if !n or n == 0 h[i] ||= {} h[i][:params] ||= {} h[i][:params][7] = n} end remove_instance_variable(:@ex_a_luk) end @ex_e_change_data[:armor] = h end end #-------------------------------------------------------------------------- # 武器・防具の変更後の設定値計算処理 #-------------------------------------------------------------------------- def ex_equip_change_main(data0,c,data1,data2,data3) r = ( case c when "+";data0 + data1 when "-";data0 - data1 when "*";data0 * data1 when "/";data1 == 0 ? data0 : data0 / data1 when "=";data1 else ;data0 end) r = data2 if data2 && data2 < r r = data3 if data3 && data3 > r r end #-------------------------------------------------------------------------- # 空になったデータを削除 #-------------------------------------------------------------------------- def ex_equip_delete_empty(type,item_id) if ex_e_change_data[type][item_id] && ex_e_change_data[type][item_id].empty? ex_e_change_data[type].delete(item_id) end end #-------------------------------------------------------------------------- # データの直接変更(名前・アイコンインデックス用) #-------------------------------------------------------------------------- def ex_equip_direct_change(type,item_id,symbol,data) ex_e_changed_flag[type].delete(item_id) if data ex_e_change_data[type][item_id] ||= {} ex_e_change_data[type][item_id][symbol] = data else ex_e_change_data[type][item_id].delete(symbol) if ex_e_change_data[type][item_id] end ex_equip_delete_empty(type,item_id) end #-------------------------------------------------------------------------- # データの直接変更(価格用) #-------------------------------------------------------------------------- def ex_equip_direct_change_anti_zero(type,item_id,symbol,c,data1,data2 = nil,data3 = nil) ex_e_changed_flag[type].delete(item_id) n0 = ex_e_change_data[type][item_id] n1 = n0 ? n0[symbol] : nil n2 = ex_equip_change_main(n1 ? n1 : 0,c,data1,data2,data3) if n2 && n2 != 0 ex_e_change_data[type][item_id] ||= {} ex_e_change_data[type][item_id][symbol] = n2 else ex_e_change_data[type][item_id].delete(symbol) if n0 end ex_equip_delete_empty(type,item_id) end #-------------------------------------------------------------------------- # データの直接変更(能力値用) #-------------------------------------------------------------------------- def ex_equip_direct_change_param(type,item_id,param_id,c,data1,data2 = nil,data3 = nil) ex_e_changed_flag[type].delete(item_id) h = ex_e_change_data[type][item_id] n0 = h ? h[:params] : nil n1 = n0 ? n0[param_id] : 0 n2 = ex_equip_change_main(n1 ? n1 : 0,c,data1,data2,data3) if n2 && n2 != 0 ex_e_change_data[type][item_id] ||= {} ex_e_change_data[type][item_id][:params] ||= {} ex_e_change_data[type][item_id][:params][param_id] = n2 else if h && h[:params] if h[:params][param_id] ex_e_change_data[type][item_id][:params].delete(param_id) ex_e_change_data[type][item_id].delete(:params) if ex_e_change_data[type][item_id][:params].empty? end end end ex_equip_delete_empty(type,item_id) end #-------------------------------------------------------------------------- # 装備の設定消去 #-------------------------------------------------------------------------- def ex_e_clear(type,item_id = nil) if item_id ex_e_change_data[type].delete(item_id) ex_e_changed_flag[type].delete(item_id) else ex_e_change_data[type].clear ex_e_changed_flag[type].clear end end #-------------------------------------------------------------------------- # 武器の名前変更処理 #-------------------------------------------------------------------------- def ex_e_name(type,item_id, text) ex_equip_direct_change(type,item_id,:name,text) end #-------------------------------------------------------------------------- # 武器のアイコン変更処理 #-------------------------------------------------------------------------- def ex_e_icon_index(type,item_id, icon_index) ex_equip_direct_change(type,item_id,:icon_index,icon_index) end #-------------------------------------------------------------------------- # 武器の価格変更処理 #-------------------------------------------------------------------------- def ex_e_price(type,item_id,c,data1,data2 = nil,data3 = nil) ex_equip_direct_change_anti_zero(type,item_id,:price,c,data1,data2,data3) end #-------------------------------------------------------------------------- # 武器の能力値変更共通処理 #-------------------------------------------------------------------------- def ex_e_params(type,item_id,param_id,c,data1,data2 = nil,data3 = nil) ex_equip_direct_change_param(type,item_id,param_id,c,data1,data2,data3) end end class Game_System #-------------------------------------------------------------------------- # ロード後の処理 #-------------------------------------------------------------------------- alias on_after_load_ex_equip_change on_after_load def on_after_load $game_party.ex_equip_change_convert_old_version $game_party.ex_e_changed_flag = {:weapon => {},:armor => {}} on_after_load_ex_equip_change end end class Game_Interpreter #-------------------------------------------------------------------------- # 武器の設定消去 #-------------------------------------------------------------------------- def ex_w_clear(item_id = nil) $game_party.ex_e_clear(:weapon,item_id) end #-------------------------------------------------------------------------- # 武器の名前変更処理 #-------------------------------------------------------------------------- def ex_w_name(item_id, text = nil) $game_party.ex_e_name(:weapon,item_id,text) end #-------------------------------------------------------------------------- # 武器のアイコン変更処理 #-------------------------------------------------------------------------- def ex_w_icon_index(item_id, icon_index = nil) $game_party.ex_e_icon_index(:weapon,item_id,icon_index) end #-------------------------------------------------------------------------- # 武器の価格変更処理 #-------------------------------------------------------------------------- def ex_w_price(item_id,c,data1,data2 = nil,data3 = nil) $game_party.ex_e_price(:weapon,item_id,c,data1,data2,data3) end #-------------------------------------------------------------------------- # 武器の最大HP変更処理 #-------------------------------------------------------------------------- def ex_w_mhp(item_id,c,data1,data2 = nil,data3 = nil) $game_party.ex_e_params(:weapon,item_id,0,c,data1,data2,data3) end #-------------------------------------------------------------------------- # 武器の最大MP変更処理 #-------------------------------------------------------------------------- def ex_w_mmp(item_id,c,data1,data2 = nil,data3 = nil) $game_party.ex_e_params(:weapon,item_id,1,c,data1,data2,data3) end #-------------------------------------------------------------------------- # 武器の攻撃力変更処理 #-------------------------------------------------------------------------- def ex_w_atk(item_id,c,data1,data2 = nil,data3 = nil) $game_party.ex_e_params(:weapon,item_id,2,c,data1,data2,data3) end #-------------------------------------------------------------------------- # 武器の防御力変更処理 #-------------------------------------------------------------------------- def ex_w_def(item_id,c,data1,data2 = nil,data3 = nil) $game_party.ex_e_params(:weapon,item_id,3,c,data1,data2,data3) end #-------------------------------------------------------------------------- # 武器の魔法力変更処理 #-------------------------------------------------------------------------- def ex_w_mat(item_id,c,data1,data2 = nil,data3 = nil) $game_party.ex_e_params(:weapon,item_id,4,c,data1,data2,data3) end #-------------------------------------------------------------------------- # 武器の魔法防御変更処理 #-------------------------------------------------------------------------- def ex_w_mdf(item_id,c,data1,data2 = nil,data3 = nil) $game_party.ex_e_params(:weapon,item_id,5,c,data1,data2,data3) end #-------------------------------------------------------------------------- # 武器の敏捷性変更処理 #-------------------------------------------------------------------------- def ex_w_agi(item_id,c,data1,data2 = nil,data3 = nil) $game_party.ex_e_params(:weapon,item_id,6,c,data1,data2,data3) end #-------------------------------------------------------------------------- # 武器の運変更処理 #-------------------------------------------------------------------------- def ex_w_luk(item_id,c,data1,data2 = nil,data3 = nil) $game_party.ex_e_params(:weapon,item_id,7,c,data1,data2,data3) end #-------------------------------------------------------------------------- # 防具の設定消去 #-------------------------------------------------------------------------- def ex_a_clear(item_id = nil) $game_party.ex_e_clear(:armor,item_id) end #-------------------------------------------------------------------------- # 防具の名前変更処理 #-------------------------------------------------------------------------- def ex_a_name(item_id, text) $game_party.ex_e_name(:armor,item_id,text) end #-------------------------------------------------------------------------- # 防具のアイコン変更処理 #-------------------------------------------------------------------------- def ex_a_icon_index(item_id, icon_index) $game_party.ex_e_icon_index(:armor,item_id,icon_index) end #-------------------------------------------------------------------------- # 防具の価格変更処理 #-------------------------------------------------------------------------- def ex_a_price(item_id,c,data1,data2 = nil,data3 = nil) $game_party.ex_e_price(:armor,item_id,c,data1,data2,data3) end #-------------------------------------------------------------------------- # 防具の最大HP変更処理 #-------------------------------------------------------------------------- def ex_a_mhp(item_id,c,data1,data2 = nil,data3 = nil) $game_party.ex_e_params(:armor,item_id,0,c,data1,data2,data3) end #-------------------------------------------------------------------------- # 防具の最大MP変更処理 #-------------------------------------------------------------------------- def ex_a_mmp(item_id,c,data1,data2 = nil,data3 = nil) $game_party.ex_e_params(:armor,item_id,1,c,data1,data2,data3) end #-------------------------------------------------------------------------- # 防具の攻撃力変更処理 #-------------------------------------------------------------------------- def ex_a_atk(item_id,c,data1,data2 = nil,data3 = nil) $game_party.ex_e_params(:armor,item_id,2,c,data1,data2,data3) end #-------------------------------------------------------------------------- # 防具の防御力変更処理 #-------------------------------------------------------------------------- def ex_a_def(item_id,c,data1,data2 = nil,data3 = nil) $game_party.ex_e_params(:armor,item_id,3,c,data1,data2,data3) end #-------------------------------------------------------------------------- # 防具の魔法力変更処理 #-------------------------------------------------------------------------- def ex_a_mat(item_id,c,data1,data2 = nil,data3 = nil) $game_party.ex_e_params(:armor,item_id,4,c,data1,data2,data3) end #-------------------------------------------------------------------------- # 防具の魔法防御変更処理 #-------------------------------------------------------------------------- def ex_a_mdf(item_id,c,data1,data2 = nil,data3 = nil) $game_party.ex_e_params(:armor,item_id,5,c,data1,data2,data3) end #-------------------------------------------------------------------------- # 防具の敏捷性変更処理 #-------------------------------------------------------------------------- def ex_a_agi(item_id,c,data1,data2 = nil,data3 = nil) $game_party.ex_e_params(:armor,item_id,6,c,data1,data2,data3) end #-------------------------------------------------------------------------- # 防具の運変更処理 #-------------------------------------------------------------------------- def ex_a_luk(item_id,c,data1,data2 = nil,data3 = nil) $game_party.ex_e_params(:armor,item_id,7,c,data1,data2,data3) end end class RPG::BaseItem #-------------------------------------------------------------------------- # アイコンインデックス #-------------------------------------------------------------------------- unless method_defined?(:icon_index_ex_equip_change) alias icon_index_ex_equip_change icon_index def icon_index check_ex_equip_change icon_index_ex_equip_change end end #-------------------------------------------------------------------------- # 変更処理の確認 #-------------------------------------------------------------------------- def check_ex_equip_change end end class RPG::EquipItem < RPG::BaseItem #-------------------------------------------------------------------------- # 名前 #-------------------------------------------------------------------------- unless method_defined?(:name_ex_equip_change) alias name_ex_equip_change name def name check_ex_equip_change name_ex_equip_change end end #-------------------------------------------------------------------------- # 基礎能力値 #-------------------------------------------------------------------------- unless method_defined?(:params_ex_equip_change) alias params_ex_equip_change params def params check_ex_equip_change params_ex_equip_change end end #-------------------------------------------------------------------------- # 価格 #-------------------------------------------------------------------------- unless method_defined?(:price_ex_equip_change) alias price_ex_equip_change price def price check_ex_equip_change price_ex_equip_change end end #-------------------------------------------------------------------------- # 変更処理の確認 #-------------------------------------------------------------------------- def check_ex_equip_change if !party_ex_equip_changed_flag @origin_name ||= @name @origin_icon_index ||= @icon_index @origin_params ||= @params.clone @origin_price ||= @price h = ex_e_change_data @name = h && h[:name] ? h[:name] : @origin_name @icon_index = h && h[:icon_index] ? h[:icon_index] : @origin_icon_index @price = @origin_price + (h && h[:price] ? h[:price] : 0) if h && h[:params] 8.times {|i| @params[i] = @origin_params[i] + (h[:params][i] ? h[:params][i] : 0)} else 8.times {|i| @params[i] = @origin_params[i]} end change_ex_equip_changed_flag end end #-------------------------------------------------------------------------- # 変更済みフラグを立てる #-------------------------------------------------------------------------- def change_ex_equip_changed_flag $game_party.ex_e_changed_flag[ex_e_symbol][self.id] = true end #-------------------------------------------------------------------------- # 変更データ #-------------------------------------------------------------------------- def ex_e_change_data $game_party.ex_e_change_data[ex_e_symbol][self.id] end #-------------------------------------------------------------------------- # 変更済みフラグ #-------------------------------------------------------------------------- def party_ex_equip_changed_flag $game_party.ex_e_changed_flag[ex_e_symbol][self.id] end end class RPG::Weapon < RPG::EquipItem #-------------------------------------------------------------------------- # データシンボル #-------------------------------------------------------------------------- def ex_e_symbol :weapon end end class RPG::Armor < RPG::EquipItem #-------------------------------------------------------------------------- # データシンボル #-------------------------------------------------------------------------- def ex_e_symbol :armor end end