#============================================================================== # ■ RGSS3 戦闘中行動時別アイテム・スキル発動 Ver1.00 by 星潟 #------------------------------------------------------------------------------ # アイテム・スキルに対し、 # 指定した条件を満たしている状態で戦闘中に使用した場合 # 別のアイテム・スキルが発動する機能を追加します。 # 使用コスト等もそのアイテム・スキルの物になります。 # # 条件設定の部分で、スクリプトの知識が若干必要になります。 #============================================================================== # アイテム・スキルのメモ欄で記述。 #------------------------------------------------------------------------------ # <別発動化条件:60,50>rand(100)> # # 50/100(1/2)の確率で # このアイテム・スキルはID60のアイテム・スキルになる。 #------------------------------------------------------------------------------ # <別発動化条件:65,state?(6)> # # ステートID6が付与されている場合 # このアイテム・スキルはID65のアイテム・スキルになる。 #------------------------------------------------------------------------------ # <別発動化条件:70,element_rate(50)>1> # # 属性ID50の有効度が1(100%)より高い場合 # このアイテム・スキルはID70のアイテム・スキルになる。 #------------------------------------------------------------------------------ # <別発動化条件:75,@buffs[0]>0> # # 最大HP強化が付与されている場合 # このアイテム・スキルはID75のアイテム・スキルになる。 #------------------------------------------------------------------------------ # <別発動化条件:80,@buffs[1]<0> # # 最大MP弱体が付与されている場合 # このアイテム・スキルはID80のアイテム・スキルになる。 #============================================================================== class UseAnotherItem #別発動化条件の設定用キーワードを指定。 Word = "別発動化条件" end class Game_Action #-------------------------------------------------------------------------- # 行動準備 #-------------------------------------------------------------------------- alias prepare_use_another_item prepare def prepare if item item.use_another_item.each {|a2| if @subject.check_use_another_item(a2[1]) @subject.current_action.use_another_item_change_execute(a2[0]) break end} end prepare_use_another_item end #-------------------------------------------------------------------------- # スキル/アイテムの変更 #-------------------------------------------------------------------------- def use_another_item_change_execute(item_id) f = item.is_a?(RPG::Item) i = eval(item_id) f ? set_item(i) : set_skill(i) end end class Game_Battler < Game_BattlerBase #-------------------------------------------------------------------------- # 別発動化条件の判定 #-------------------------------------------------------------------------- def check_use_another_item(text) eval(text) end end class RPG::UsableItem < RPG::BaseItem #-------------------------------------------------------------------------- # 別発動化条件 #-------------------------------------------------------------------------- def use_another_item @use_another_item ||= create_use_another_item end #-------------------------------------------------------------------------- # 別発動化条件作成 #-------------------------------------------------------------------------- def create_use_another_item a = [] note.each_line {|l| a.push([$1.to_s,$2.to_s]) if /<#{UseAnotherItem::Word}[::](\S+),(\S+)>/ =~ l} a end end