#============================================================================== # 「装備条件の追加」(ACE) Ver.1.2 # 製作者:奈々(なな) # へぷたなすくろーる http://heptanas.mamagoto.com/ # # ◇使用規約 # 使用される場合はスクリプト作成者として「奈々」を明記して下さい。 # スクリプトの改変は自由に行って頂いて構いませんが # その場合も元のスクリプトの作成者として名前を載せて下さい。 # また配布前に必ず、ブログにある利用規約を確認して下さい。 # #------------------------------------------------------------------------------ # # アイテムの装備条件に、アクター、クラスの指定や # 一定以上のステータスを必要とする設定を追加できます。 # これにより武器防具タイプの簡略化や、より装備品の特色を出せます。 # # 使い方は、アイテムのメモ欄にタグを記述します。 # # <装備条件 アクター n> n番のアクター専用装備 # <装備条件 クラス n> n番のクラス専用装備 # # アクターとクラスのタグは、複数設定が可能です。 # # <装備条件 level n> レベルがn以上の場合、装備可能 # # ステータスのタグは、levelの他に # mhp,mmp,atk,def,mat,mdf,agi,lukが指定可能です。 # タグは各ステータス毎に1つだけ設定可能です。 # # 通常の武器防具タイプの条件に「加えて」 # 設定されているアクター、クラス、各ステータスの # 全ての装備条件を満たした場合、装備可能になります。 # #============================================================================== class Game_BattlerBase #-------------------------------------------------------------------------- # ● 装備可能判定(再定義) #-------------------------------------------------------------------------- def equippable?(item) return false unless item.is_a?(RPG::EquipItem) return false if equip_type_sealed?(item.etype_id) return false unless equip_actorid_ok?(item) return false unless equip_classid_ok?(item) return false unless equip_status_ok?(item) return equip_wtype_ok?(item.wtype_id) if item.is_a?(RPG::Weapon) return equip_atype_ok?(item.atype_id) if item.is_a?(RPG::Armor) return false end #-------------------------------------------------------------------------- # ● 装備条件(アクター) #-------------------------------------------------------------------------- def equip_actorid_ok?(item) list = [] item.note.scan(/\<\s*装備条件\s*アクター\s*(\d+)\s*\>/){|s| list.push($1.to_i)} return list.empty? ? true : list.include?(self.id) end #-------------------------------------------------------------------------- # ● 装備条件(クラス) #-------------------------------------------------------------------------- def equip_classid_ok?(item) list = [] item.note.scan(/\<\s*装備条件\s*クラス\s*(\d+)\s*\>/){|s| list.push($1.to_i)} return list.empty? ? true : list.include?(self.class.id) end #-------------------------------------------------------------------------- # ● 装備条件(ステータス) #-------------------------------------------------------------------------- def equip_status_ok?(item) return false if item.note[/\<\s*装備条件\s*[Ll][Ee][Vv][Ee][Ll]\s*(\d+)\s*\>/] && $1.to_i >= self.level return false if item.note[/\<\s*装備条件\s*[Mm][Hh][Pp]\s*(\d+)\s*\>/] && $1.to_i >= self.mhp return false if item.note[/\<\s*装備条件\s*[Mm][Mm][Pp]\s*(\d+)\s*\>/] && $1.to_i >= self.mmp return false if item.note[/\<\s*装備条件\s*[Aa][Tt][Kk]\s*(\d+)\s*\>/] && $1.to_i >= self.atk return false if item.note[/\<\s*装備条件\s*[Dd][Ee][Ff]\s*(\d+)\s*\>/] && $1.to_i >= self.def return false if item.note[/\<\s*装備条件\s*[Mm][Aa][Tt]\s*(\d+)\s*\>/] && $1.to_i >= self.mat return false if item.note[/\<\s*装備条件\s*[Mm][Dd][Ff]\s*(\d+)\s*\>/] && $1.to_i >= self.mdf return false if item.note[/\<\s*装備条件\s*[Aa][Gg][Ii]\s*(\d+)\s*\>/] && $1.to_i >= self.agi return false if item.note[/\<\s*装備条件\s*[Ll][Uu][Kk]\s*(\d+)\s*\>/] && $1.to_i >= self.luk return true end end