#============================================================================== # ○スキル使用条件追加 Ver1.00 # for RGSS2 # 西瓜 / Space not far # http://muspell.raindrop.jp/ # 特定の条件でのみ、使用可能なスキルを作れるスクリプトです。 #============================================================================== # スキルのメモ欄に<使用条件○○:数値>と記入してください。 # 指定された使用条件を満たしていない場合、そのスキルは使用できなくなります。 # ・使用条件HP(MP):n # HP(MP)がn以上 # ・使用条件HP(MP)%:n # HP(MP)がn%以上 # ・使用条件HP(MP)以下:n # HP(MP)がn以下 # ・使用条件HP(MP)%以下:n # HP(MP)がn%以下 # ・使用条件スイッチ:n # スイッチn番がON # ・使用条件ステート:n # n番のステートにかかっている =begin ●設定例 <使用条件HP:10> →術者HPが10以上の時のみ使用可 <使用条件MP%以下:50> →術者MPが50%以下の時のみ使用可 <使用条件スイッチ:100> →100番スイッチがONの時のみ使用可 <使用条件ステート:2> →術者が毒にかかっている時のみ使用可 =end class Game_Battler SNF_CONHP = "使用条件HP以上" SNF_CONHPPER = "使用条件HP%以上" SNF_CONMP = "使用条件MP以上" SNF_CONMPPER = "使用条件MP%以上" SNF_CONHP2 = "使用条件HP以下" SNF_CONHPPER2 = "使用条件HP%以下" SNF_CONMP2 = "使用条件MP以下" SNF_CONMPPER2 = "使用条件MP%以下" SNF_CONSWITCH = "使用条件スイッチ" SNF_CONSTATE = "使用条件ステート" #-------------------------------------------------------------------------- # ● スキルの使用可能判定 # skill : スキル #-------------------------------------------------------------------------- alias snf110222_skill_can_use? skill_can_use? def skill_can_use?(skill) #術者HP memo = skill.note.scan(/<#{SNF_CONHP}:(\d+)>/) memo = memo.flatten if memo != nil and not memo.empty? return false if hp < memo[0].to_i end #術者HP% memo = skill.note.scan(/<#{SNF_CONHPPER}:(\d+)>/) memo = memo.flatten if memo != nil and not memo.empty? persent = (hp * 100) / maxhp return false if persent < memo[0].to_i end #術者MP memo = skill.note.scan(/<#{SNF_CONMP}:(\d+)>/) memo = memo.flatten if memo != nil and not memo.empty? return false if mp < memo[0].to_i end #術者MP% memo = skill.note.scan(/<#{SNF_CONMPPER}:(\d+)>/) memo = memo.flatten if memo != nil and not memo.empty? persent = (mp * 100) / maxmp return false if persent < memo[0].to_i end #術者HP以下 memo = skill.note.scan(/<#{SNF_CONHP2}:(\d+)>/) memo = memo.flatten if memo != nil and not memo.empty? return false if hp > memo[0].to_i end #術者HP%以下 memo = skill.note.scan(/<#{SNF_CONHPPER2}:(\d+)>/) memo = memo.flatten if memo != nil and not memo.empty? persent = (hp * 100) / maxhp return false if persent > memo[0].to_i end #術者MP以下 memo = skill.note.scan(/<#{SNF_CONMP2}:(\d+)>/) memo = memo.flatten if memo != nil and not memo.empty? return false if mp > memo[0].to_i end #術者MP%以下 memo = skill.note.scan(/<#{SNF_CONMPPER2}:(\d+)>/) memo = memo.flatten if memo != nil and not memo.empty? persent = (mp * 100) / maxmp return false if persent > memo[0].to_i end #特定スイッチ memo = skill.note.scan(/<#{SNF_CONSWITCH}:(\d+)>/) memo = memo.flatten if memo != nil and not memo.empty? return false unless $game_switches[memo[0].to_i] end #特定ステート memo = skill.note.scan(/<#{SNF_CONSTATE}:(\d+)>/) memo = memo.flatten if memo != nil and not memo.empty? return false unless state?(memo[0].to_i) end snf110222_skill_can_use?(skill) end end