# ▼▲▼ XBCS1. ElementEx. ver.0.9 ▼▲▼ # by 桜雅 在土 #============================================================================== # --- XRXS. 付加属性名称判定モジュール --- #============================================================================== module XRXS #-------------------------------------------------------------------------- # ○ 配列が指定名の属性を持つか判定 #-------------------------------------------------------------------------- def self.element_check(set, element_name) returnar = [false, 0, 0, []] # 存在したか?, 固定値の合計、%値の合計 return returnar if !set.is_a?(Array) or set.size == 0 or element_name == "" for i in set if $data_system.elements[i] =~ /^#{element_name}([+-]?([1-9]\d*|0)\.?\d*)?(~([+-]?([1-9]\d*|0)\.?\d*))?([%%])?/ returnar[0] = true if $6 == nil if $3 != nil random = rand($4.to_i - $1.to_i + 1) + $1.to_i returnar[1] += random returnar[3].push(random) else returnar[1] += $1.to_i returnar[3].push($1.to_i) end else if $3 != nil random = rand($4.to_i - $1.to_i + 1) + $1.to_i returnar[2] += random else returnar[2] += $1.to_i end end end end return returnar end def XRXS.element_include?(set, element_name) return element_check(set, element_name)[0] end def XRXS.element_amount(set, element_name) return element_check(set, element_name)[1] end def XRXS.element_percent(set, element_name) return element_check(set, element_name)[2] end def XRXS.element_numbers(set, element_name) return element_check(set, element_name)[3] end end #============================================================================== # ■ Game_Battler #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ○ スキルの属性取得 #-------------------------------------------------------------------------- def skill_element_set(skill) return skill.nil? ? [] : skill.element_set end #-------------------------------------------------------------------------- # ○ 全装備の属性取得 #-------------------------------------------------------------------------- def equip_element_set return self.element_set + self.guard_element_set end #-------------------------------------------------------------------------- # ○ 全ステートの属性取得 #-------------------------------------------------------------------------- def state_element_set set = [] self.states.each{|s| set += $data_states[s].guard_element_set} return set end #-------------------------------------------------------------------------- # ○ 全装備+ステートの属性取得 #-------------------------------------------------------------------------- def multy_element_set return self.element_set + self.guard_element_set + self.state_element_set end #-------------------------------------------------------------------------- # ○ 全防具の属性取得 #-------------------------------------------------------------------------- def guard_element_set set = [] for id in self.armor_ids next if id.nil? armor = $data_armors[id] set += (armor != nil ? armor.guard_element_set : []) end return set end #-------------------------------------------------------------------------- # ○ 装備配列の取得 #-------------------------------------------------------------------------- def equipments equipments = [] self.weapon_ids.each {|id| equipments.push($data_weapons[id])} self.armor_ids.each {|id| equipments.push($data_armors[id])} return equipments end #-------------------------------------------------------------------------- # ○ 装備中? #-------------------------------------------------------------------------- def equiping?(item) case item when RPG::Weapon return self.weapon_ids.include?(item.id) when RPG::Armor return self.armor_ids.include?(item.id) else return false end end end #============================================================================== # ■ Game_Actor #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ○ 武器 ID配列 #-------------------------------------------------------------------------- def weapon_ids @weapon_ids = [] if @weapon_ids == nil @weapon_ids[0] = @weapon_id return @weapon_ids end #-------------------------------------------------------------------------- # ○ 防具 ID配列 #-------------------------------------------------------------------------- def armor_ids @armor_ids = [] if @armor_ids == nil @armor_ids[0] = @armor1_id @armor_ids[1] = @armor2_id @armor_ids[2] = @armor3_id @armor_ids[3] = @armor4_id return @armor_ids end end #============================================================================== # ■ Game_Enemy #============================================================================== class Game_Enemy < Game_Battler #-------------------------------------------------------------------------- # ○ 武器 ID配列 #-------------------------------------------------------------------------- def weapon_ids if self.class.method_defined?("enemy_weapon") return [enemy_weapon.id] else return [] end end #-------------------------------------------------------------------------- # ○ 防具 ID配列 #-------------------------------------------------------------------------- def armor_ids set = [] if self.class.method_defined?("enemy_armor") for i in 0..3 set.push[enemy_armor(i).id] end end return set end end