#============================================================================== # 本脚本来自www.66RPG.com,使用和转载请保留此信息 #============================================================================== # ▼▲▼ XRXS19. 特殊効果詰め合わせ:戦闘用 with 29 parts ver..18a ▼▲▼ # by 桜雅 在土, 和希, シムナフ #============================================================================== # ■ 以下内容定义各特技的属性名 #============================================================================== class Game_Battler RERAISE_STATE_NAME = /复活/ LIBLA_SKILL_ELEMENT_NAME = "透视" POWERSTOCK_SKILL_ELEMENT_NAME = "聚气" POWERSTOCK_BASE_RATE = 0.5 #——每回合聚气威力上升倍率 STEAL_SKILL_ELEMENT_NAME = "偷窃" ELEMENT_NAME_SP_DAMAGE = "SP损伤" ELEMENT_NAME_HP_DRAIN = "HP吸收" ELEMENT_NAME_SP_DRAIN = "SP吸收" ELEMENT_NAME_CRITICAL_HIT = "必杀" ELEMENT_NAME_CERTAIN_HIT = "必中" ELEMENT_NAME_HP_COST = "HP消耗" end class Game_BattleAction ELEMENT_NAME_SPEED_PRIORITY = "优先度" end class Scene_Battle ELEMENT_NAME_HP_COST = "HP消耗" ELEMENT_NAME_DERIVER = "派生" ELEMENT_NAME_MOVE_TIMES = "行动回数" ELEMENT_NAME_AREA_ENEMY_ALL = "全体化" ELEMENT_NAME_AREA_WHOLE = "全域化" ELEMENT_NAME_AREA_ENEMY_RAND = "敌方随机" ELEMENT_NAME_AREA_ACTOR_RAND ="我方随机" ELEMENT_NAME_AREA_ALL_RANDOM ="对象随机" RERAISE_HP = 1 RERAISE_HP_PERCENT = 0 RERAISE_ANIMATION_ID = 26 end module Cover_Module ELEMENT_NAME_COVER = "援助" STATE_NAME_COVER = "援助" COVER_HP_PERCENT = 100 COVER_EFFECT_PERCENT = 100 COVER_EFFECT_CHAR = "Covered!" COVER_ANIMATION_ID = 64 COVER_DEFAULT_NUMBER = 2 end #============================================================================== $xrxs19_special_effections_set_work = true #-------------------------------------------------------------------------- # ● 属性修正の計算?改 #-------------------------------------------------------------------------- class Game_Battler def elements_correct(element_set) # 無属性の場合 100 を返す return 100 if element_set == [] # 与えられた属性のレートを全て乗算 result = 100 for i in element_set result *= self.element_rate(i) / 100.0 end return result.to_i end end #============================================================================== # ■ Game_Battler #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ● 追加公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :reraise_state attr_accessor :reraised # リレイズしたかどうか attr_accessor :metamor_target # 変身対象 attr_accessor :battler_name # バトラーグラフィック attr_reader :battler_name_original # バトラーグラフィック初期値 attr_writer :hp0_ban # HP/SPの 0 化または最大制限の解除 attr_writer :certain_hit # 必中受け(Trueだと攻撃を避けられない) attr_accessor :covered_friends #庇っている味方の配列 attr_accessor :effect_message # attr_accessor :current_friend #かばっている味方 attr_accessor :cover_remain #かばう可能な残り回数 #-------------------------------------------------------------------------- # ● 初期化 #-------------------------------------------------------------------------- alias xrxs19_battler_initialize initialize def initialize xrxs19_battler_initialize # 「かばう」用変数初期化 @covered_friends = [] @effect_message = nil @current_friend = nil @cover_remain = 0 end #-------------------------------------------------------------------------- # ● ステートの付加 # state_id : ステート ID # force : 強制付加フラグ (オートステートの処理で使用) #-------------------------------------------------------------------------- alias xrxs19_add_state add_state def add_state(state_id, force = false) xrxs19_add_state(state_id, force) # 「かばう」のステート付加の場合 if state_id == get_cover_state_id() self.cover_remain = COVER_DEFAULT_NUMBER end end #-------------------------------------------------------------------------- # ● HP の変更 #-------------------------------------------------------------------------- def hp=(hp) if @hp0_ban @hp = hp else @hp = [[hp, maxhp].min, 0].max # 戦闘不能を付加または解除 for i in 1...$data_states.size if $data_states[i].zero_hp if self.dead? # 追加 for x in 1...$data_states.size # ステート名は変更可。 if $data_states[x].name[RERAISE_STATE_NAME] != nil reraise_id = $data_states[x].id break end end # リレイズ復活 if reraise_id != nil && self.state?(reraise_id) self.remove_state(reraise_id) @reraised = true # 戦闘不能マイナスステートに設定されているものを解除 if $data_states[i].minus_state_set != [] for j in $data_states[i].minus_state_set remove_state(j) end end elsif # ここまで add_state(i) end else remove_state(i) end end end end end #-------------------------------------------------------------------------- # ● SP の変更 #-------------------------------------------------------------------------- def sp=(sp) if @hp0_ban @sp = sp else @sp = [[sp, maxsp].min, 0].max end end #-------------------------------------------------------------------------- # ● ステート [攻撃を回避できない] 判定 #-------------------------------------------------------------------------- alias xrxs19_cant_evade? cant_evade? def cant_evade? return true if @certain_hit return xrxs19_cant_evade? end #-------------------------------------------------------------------------- # ● 通常攻撃の効果適用 #-------------------------------------------------------------------------- alias xrxs19_attack_effect attack_effect# alias したものは effect_it 内で使用 def attack_effect(attacker) # 通常攻撃の場合、skill = nil で呼ぶ return effect_it(attacker, nil) end #-------------------------------------------------------------------------- # ● スキルの効果適用 #-------------------------------------------------------------------------- alias xrxs19_skill_effect skill_effect # alias したものは effect_it 内で使用 def skill_effect(user, skill) # スキルの場合は、skill を指定して呼ぶ return effect_it(user, skill) end #-------------------------------------------------------------------------- # ● 効果適用 #-------------------------------------------------------------------------- def effect_it(user, skill = nil) # 実行前の数値を保持 last_hp = self.hp last_sp = self.sp @hp0_ban = true # 武器IDの取得 weapon_id = user.is_a?(Game_Actor) ? user.weapon_id : 0 # 特殊効果:必中 if skill != nil and skill_element_include?(skill, ELEMENT_NAME_CERTAIN_HIT) self.certain_hit = true elsif skill == nil and equip_weapon_element_include?(user, ELEMENT_NAME_CERTAIN_HIT) self.certain_hit = true end # 基本実行、skill が nil かどうかで通常攻撃とスキルを分別 if skill == nil bool = xrxs19_attack_effect(user) else bool = xrxs19_skill_effect(user, skill) end # ダメージ測定 damage = last_hp - self.hp # 必中の解除 self.certain_hit = false # 特殊効果:スティール/アイテム奪取 if skill != nil and skill_element_include?(skill, STEAL_SKILL_ELEMENT_NAME) self.steal_effect(user, skill) if self.is_a?(Game_Enemy) elsif skill == nil and equip_weapon_element_include?(user, STEAL_SKILL_ELEMENT_NAME) self.steal_effect(user, skill) if self.is_a?(Game_Enemy) end # 特殊効果:対象に変身 if skill != nil and skill_element_include?(skill, "变身") if user.metamor_target == nil if self.metamor_target == nil # 変身状態で無い場合、変身 user.metamor_target = self else # 対象が変身状態の場合、対象の変身対象に変身する。 user.metamor_target = self.metamor_target end else # 変身状態の場合、変身を解除する user.metamor_target = user end # 自分への変身を禁止 user.metamor_target = nil if user.metamor_target == user # 対象のダメージ表示を消す self.damage = nil if self.damage == "Miss" # HP/SP最大値変更への対応 @hp0_ban = false user.hp = user.hp user.sp = user.sp end # 特殊効果:武器を投げる if (skill != nil and skill_element_include?(skill, "武器投掷")) # 投擲武器の取得 throw_weapon = $data_weapons[user.current_action.basic] # 武器の消費 if $xrxs24_weapon_property_system_work $game_party.lose_weapon(throw_weapon.id, user.current_action.basic_ex) else $game_party.lose_weapon(throw_weapon.id, 1) end # ダメージの変更 self.hp += damage if bool damage = throw_weapon.atk if weapon_element_include?(throw_weapon.id, "投掷威力") damage = damage * @one.to_i / 100 end self.damage = damage self.hp -= self.damage bool = true end # 特殊効果:消費金額に順ずる固定ダメージ if skill != nil and skill_element_include?(skill, "金钱投掷") # ゴールドの消費 last_gold = $game_party.gold $game_party.gain_gold(-1 * ($game_party.gold * skill.variance / 100 + skill.power)) self.hp += damage if bool damage = last_gold - $game_party.gold self.damage = damage self.hp -= self.damage bool = true end # 基本実行でfalse(Miss等)の場合、ここで終了する # つまり、この上までにダメージに関係なく実行される特殊効果をいれて # これより下はダメージに関係する特殊効果を入れる。 # "武器投擲"と"銭投げ"はMissでも金額を消費するため上に。 return false if bool == false # 特殊効果:防御能力の判定 if damage > 0 and self.guarding? # 特殊効果:防御能力 2(強防御) if battler_element_rank?(self, "防御能力") == 2 damage /= 2 self.damage -= damage self.hp += damage end # 特殊効果:防御能力 1(無効防御) if battler_element_rank?(self, "防御能力") == 1 self.hp += damage damage = 0 self.damage = damage end end # 特殊効果:必殺確実クリティカル if (skill != nil and skill_element_include?(skill, ELEMENT_NAME_CRITICAL_HIT)) or (skill == nil and equip_weapon_element_include?(user, ELEMENT_NAME_CRITICAL_HIT)) and damage > 0 if self.critical self.critical = false damage /= 2 self.damage -= damage self.hp += damage end if @one == nil or rand(100) < @one.to_i self.critical = true self.hp -= damage damage *= 2 self.damage = damage end end # 特殊効果:使用者の 最大HP - 現在HP 固定ダメージ if skill != nil and skill_element_include?(skill, "固定HP差分") self.hp += damage damage = user.maxhp - user.hp self.damage = damage self.hp -= self.damage self.critical = false # 固定ダメージ故クリティカルを禁止 end # 特殊効果:使用者の 現在HP 固定ダメージ if skill != nil and skill_element_include?(skill, "现在HP损伤") self.hp += damage damage = user.hp self.damage = damage self.hp -= self.damage self.critical = false # 固定ダメージ故クリティカルを禁止 end # 特殊効果:現在HPに順ずる固定ダメージ if skill != nil and skill_element_include?(skill, "固定现在HP") self.hp += damage damage = self.hp * skill.variance / 100 + skill.power damage *= -1 if skill.power < 0 self.damage = damage self.hp -= self.damage self.critical = false # 固定ダメージ故クリティカルを禁止 end # 特殊効果:最大HPに順ずる固定ダメージ if skill != nil and skill_element_include?(skill, "固定最大HP") self.hp += damage damage = self.maxhp * @one.to_i / 100 damage *= -1 if skill.power < 0 self.damage = damage self.hp -= self.damage self.critical = false # 固定ダメージ故クリティカルを禁止 end # 特殊効果:HPではなくSPにダメージを与える if (skill != nil and skill_element_include?(skill, ELEMENT_NAME_SP_DAMAGE)) or (skill == nil and equip_weapon_element_include?(user, ELEMENT_NAME_SP_DAMAGE)) self.hp += damage self.sp -= damage self.damage = "SP " + damage.to_s # このタイミングで戦闘不能判定 @hp0_ban = false self.sp = self.sp real_damage = last_sp - self.sp else # このタイミングで戦闘不能判定 @hp0_ban = false self.hp = self.hp real_damage = last_hp - self.hp end # 使用者のHP/SPもリセット user.hp = user.hp user.sp = user.sp # 特殊効果:与えたダメージを自分のHPとして吸収 if (skill != nil and skill_element_include?(skill, ELEMENT_NAME_HP_DRAIN)) or (skill == nil and equip_weapon_element_include?(user, ELEMENT_NAME_HP_DRAIN)) user.damage = -real_damage * @one.to_i / 100 user.hp -= user.damage end # 特殊効果:与えたダメージを自分のSPとして吸収 if (skill != nil and skill_element_include?(skill, ELEMENT_NAME_SP_DRAIN)) or (skill == nil and equip_weapon_element_include?(user, ELEMENT_NAME_SP_DRAIN)) user.damage = -real_damage * @one.to_i / 100 user.sp -= user.damage user.damage = "SP " + user.damage.to_s end return true end #-------------------------------------------------------------------------- # ● バトラーの指定名の属性のランクを判定 #-------------------------------------------------------------------------- def battler_element_rank?(battler, element_name) for i in 1..$data_system.elements.size if $data_system.elements[i] == element_name if self.is_a?(Game_Actor) return $data_classes[battler.class_id].element_ranks[i] else return $data_enemies[battler.id].element_ranks[i] end end end return 3 end #-------------------------------------------------------------------------- # ● MaxHP の取得 #-------------------------------------------------------------------------- alias xrxs19_maxhp maxhp def maxhp if !@metamor_target.nil? return @metamor_target.maxhp end xrxs19_maxhp end #-------------------------------------------------------------------------- # ● MaxSP の取得 #-------------------------------------------------------------------------- alias xrxs19_maxsp maxsp def maxsp if !@metamor_target.nil? return @metamor_target.maxsp end xrxs19_maxsp end #-------------------------------------------------------------------------- # ● 腕力の取得 #-------------------------------------------------------------------------- alias xrxs19_str str def str if !@metamor_target.nil? return @metamor_target.str end xrxs19_str end #-------------------------------------------------------------------------- # ● 器用さの取得 #-------------------------------------------------------------------------- alias xrxs19_dex dex def dex if !@metamor_target.nil? return @metamor_target.dex end xrxs19_dex end #-------------------------------------------------------------------------- # ● 素早さの取得 #-------------------------------------------------------------------------- alias xrxs19_agi agi def agi if !@metamor_target.nil? return @metamor_target.agi end xrxs19_agi end #-------------------------------------------------------------------------- # ● 魔力の取得 #-------------------------------------------------------------------------- alias xrxs19_int int def int if !@metamor_target.nil? return @metamor_target.int end xrxs19_int end #-------------------------------------------------------------------------- # ● 攻撃力の取得 #-------------------------------------------------------------------------- alias xrxs19_atk atk def atk if !@metamor_target.nil? return @metamor_target.atk end xrxs19_atk end #-------------------------------------------------------------------------- # ● 物理防御の取得 #-------------------------------------------------------------------------- alias xrxs19_pdef pdef def pdef if !@metamor_target.nil? return @metamor_target.pdef end xrxs19_pdef end #-------------------------------------------------------------------------- # ● 魔法防御の取得 #-------------------------------------------------------------------------- alias xrxs19_mdef mdef def mdef if !@metamor_target.nil? return @metamor_target.mdef end xrxs19_mdef end #-------------------------------------------------------------------------- # ● 回避修正の取得 #-------------------------------------------------------------------------- alias xrxs19_eva eva def eva if !@metamor_target.nil? return @metamor_target.eva end xrxs19_eva end end #============================================================================== # ■ Game_BattleAction #============================================================================== class Game_BattleAction #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :speed_priority # スピード優先度 attr_accessor :weapon_id # 武器 ID attr_accessor :basic_ex # 基本拡張(補助的に数値を保持) #-------------------------------------------------------------------------- # ● クリア #-------------------------------------------------------------------------- alias xrxs19_clear clear def clear @weapon_id = 0 xrxs19_clear end #-------------------------------------------------------------------------- # ● スキルの優先度取得 #-------------------------------------------------------------------------- def speed_priority if @kind == 0 and @basic == 0 # 通常攻撃の場合 elsif @kind == 1 # スキルの場合 return 0 if $data_skills[@skill_id] == nil for i in $data_skills[@skill_id].element_set if $data_system.elements[i] != nil if $data_system.elements[i] =~ /^#{ELEMENT_NAME_SPEED_PRIORITY}([+-]?[0-9]+)/ return $1.to_i end end end end return 0 end end #============================================================================== # ■ Game_Actor #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● セットアップ #-------------------------------------------------------------------------- alias xrxs19_setup setup def setup(actor_id) xrxs19_setup(actor_id) @reraised = false @reraise_state = 0 @metamor_target = nil @battler_name_original = @battler_name end #-------------------------------------------------------------------------- # ● MaxHP の取得 #-------------------------------------------------------------------------- alias xrxs19_maxhp maxhp def maxhp if !@metamor_target.nil? return @metamor_target.maxhp end xrxs19_maxhp end #-------------------------------------------------------------------------- # ● スキルの使用可能判定 #-------------------------------------------------------------------------- alias xrxs19_skill_can_use? skill_can_use? def skill_can_use?(skill_id) # スキルを取得 @skill = $data_skills[skill_id] # HP消費スキルの場合 if skill_element_include?(@skill, ELEMENT_NAME_HP_COST) and @actor_id > 0 # HP が足りない場合は使用不可 if $data_skills[skill_id].sp_cost > self.hp return false end # SP消費量を回復させ、SP が足りない場合を回避(最大値を超えて回復) self.hp0_ban = true self.sp += @skill.sp_cost bool = xrxs19_skill_can_use?(skill_id) # SPを元に戻す self.sp -= @skill.sp_cost self.hp0_ban = false return bool else return xrxs19_skill_can_use?(skill_id) end end end #============================================================================== # ■ Game_Enemy #============================================================================== class Game_Enemy < Game_Battler #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias xrxs19_initialize initialize def initialize(troop_id, member_index) xrxs19_initialize(troop_id, member_index) @reraised = false @reraise_state = 0 @metamor_target = nil @battler_name_original = @battler_name end end #============================================================================== # ■ Window_Item #============================================================================== class Window_Item < Window_Selectable #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias xrxs19_initialize initialize def initialize xrxs19_initialize refresh end #-------------------------------------------------------------------------- # ● 値の受け渡し #-------------------------------------------------------------------------- def set_itemkind(itemkind) @itemkind = itemkind refresh end #-------------------------------------------------------------------------- # ● 値の受け渡し #-------------------------------------------------------------------------- def set_restrict(restrict) @restrict = restrict refresh end #-------------------------------------------------------------------------- # ● リフレッシュ #-------------------------------------------------------------------------- alias xrxs19_refresh refresh def refresh if @itemkind != 11 xrxs19_refresh return end # 11 = 制限:投擲武器のみ if self.contents != nil self.contents.dispose self.contents = nil end @data = [] @data_id = [] for i in 1...$data_weapons.size if $game_party.weapon_number(i) > 0 @data.push($data_weapons[i]) if weapon_element_include?(i, "投掷威力") end end # 項目数が 0 でなければビットマップを作成し、全項目を描画 @item_max = @data.size if @item_max > 0 self.contents = Bitmap.new(width - 32, row_max * 32) for i in 0...@item_max draw_item(i) end end end #-------------------------------------------------------------------------- # ● 項目の描画 #-------------------------------------------------------------------------- alias xrxs19_draw_item draw_item def draw_item(index) if @itemkind != 11 xrxs19_draw_item(index) return end # 11 = 制限:投擲武器のみ item = @data[index] number = $game_party.weapon_number(item.id) self.contents.font.color = normal_color x = 4 + index % @column_max * (288 + 32) y = index / @column_max * 32 rect = Rect.new(x, y, self.width / @column_max - 32, 32) self.contents.fill_rect(rect, Color.new(0, 0, 0, 0)) bitmap = RPG::Cache.icon(item.icon_name) opacity = self.contents.font.color == normal_color ? 255 : 128 self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity) self.contents.draw_text(x + 28, y, 212, 32, item.name, 0) self.contents.draw_text(x + 240, y, 16, 32, ":", 1) self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2) end end #============================================================================== # ■ Scene_Battle #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # ● メイン処理 #-------------------------------------------------------------------------- alias xrxs19_main main def main @phase4_5_done = false xrxs19_main end #-------------------------------------------------------------------------- # ● フレーム更新 (アクターコマンドフェーズ) #-------------------------------------------------------------------------- alias xrxs19_update_phase3 update_phase3 def update_phase3 # 武器のみアイテムウィンドウが有効の場合 if @item_window_weapons != nil and @item_window_weapons.visible update_phase3_item_window_weapons return end # 他 xrxs19_update_phase3 end #-------------------------------------------------------------------------- # ● フレーム更新 (アクターコマンドフェーズ : スキル選択) #-------------------------------------------------------------------------- alias xrxs19_update_phase3_skill_select update_phase3_skill_select def update_phase3_skill_select # C ボタンが押された場合 if Input.trigger?(Input::C) # スキルウィンドウで現在選択されているデータを取得 @skill = @skill_window.skill if skill_element_include?(@skill, "武器投掷") # 使用できない場合 if @skill == nil or not @active_battler.skill_can_use?(@skill.id) # ブザー SE を演奏 $game_system.se_play($data_system.buzzer_se) return end # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # アクションを設定 @active_battler.current_action.skill_id = @skill.id # アイテム選択へ移行する start_item_select_from_skill(@one.to_i) return end end xrxs19_update_phase3_skill_select end #-------------------------------------------------------------------------- # ● フレーム更新 (アクターコマンドフェーズ : 武器のみアイテム選択) #-------------------------------------------------------------------------- def update_phase3_item_window_weapons # 武器アイテムウィンドウを可視状態にする @item_window_weapons.visible = true # 武器アイテムウィンドウを更新 @item_window_weapons.update # B ボタンが押された場合 if Input.trigger?(Input::B) # キャンセル SE を演奏 $game_system.se_play($data_system.cancel_se) # 武器アイテムの選択を終了 end_item_select_from_skill return end # C ボタンが押された場合 if Input.trigger?(Input::C) # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # アイテムウィンドウで現在選択されているデータを取得 @item = @item_window_weapons.item # アクションを設定 @active_battler.current_action.basic = @item.id if $xrxs24_weapon_property_system_work # アイテムウィンドウで現在選択されているデータを取得 @item_room_no = @item_window_weapons.item_room_no # アクションを設定 @active_battler.current_action.basic_ex = @item_room_no end # 武器のみアイテムウィンドウを不可視化 @item_window_weapons.visible = false # 効果範囲が敵単体の場合 if @skill.scope == 1 # エネミーの選択を開始 start_enemy_select # 効果範囲が味方単体の場合 elsif @skill.scope == 3 or @skill.scope == 5 # アクターの選択を開始 start_actor_select # 効果範囲が単体ではない場合 else # アイテムの選択を終了 end_item_select_from_skill # 次のアクターのコマンド入力へ phase3_next_actor end return end end #-------------------------------------------------------------------------- # ● スキルからのアイテム選択開始 #-------------------------------------------------------------------------- def start_item_select_from_skill(restrict = 0) # 投擲アイテムウィンドウを作成 ( 武器のみ:投擲可能のみ ) @item_window_weapons = Window_Item.new if restrict == 1 @item_window_weapons.set_itemkind(11) else @item_window_weapons.set_itemkind(1) end # ヘルプウィンドウを関連付け @item_window_weapons.help_window = @help_window # スキルウィンドウを無効化 @skill_window.active = false @skill_window.visible = false end #-------------------------------------------------------------------------- # ● スキルからのアイテム選択終了 #-------------------------------------------------------------------------- def end_item_select_from_skill # 武器のみアイテムウィンドウを解放 @item_window_weapons.dispose @item_window_weapons = nil # ヘルプウィンドウを隠す @help_window.visible = false # スキルウィンドウを有効化 @skill_window.active = true @skill_window.visible = true end #-------------------------------------------------------------------------- # ● エネミー選択開始 #-------------------------------------------------------------------------- alias xrxs19_start_enemy_select start_enemy_select def start_enemy_select return if start_select_check xrxs19_start_enemy_select end #-------------------------------------------------------------------------- # ● アクター選択開始 #-------------------------------------------------------------------------- alias xrxs19_start_actor_select start_actor_select def start_actor_select return if start_select_check xrxs19_start_actor_select end #-------------------------------------------------------------------------- # ● 選択開始時のチェック #-------------------------------------------------------------------------- def start_select_check # "全体化"、"全域化"、"対象ランダム"の判定 case @active_battler.current_action.kind when 0 # 攻撃 # ここで「攻撃」使用者の武器IDを保持しておく @active_battler.current_action.weapon_id = @active_battler.weapon_id # チェックに戻る if equip_weapon_element_include?(@active_battler, ELEMENT_NAME_AREA_ENEMY_ALL) or equip_weapon_element_include?(@active_battler, ELEMENT_NAME_AREA_WHOLE) or equip_weapon_element_include?(@active_battler, ELEMENT_NAME_AREA_ENEMY_RAND) or equip_weapon_element_include?(@active_battler, ELEMENT_NAME_AREA_ACTOR_RAND) or equip_weapon_element_include?(@active_battler, ELEMENT_NAME_AREA_ALL_RANDOM) phase3_next_actor return true end when 1 # スキル if skill_element_include?(@skill, ELEMENT_NAME_AREA_ENEMY_ALL) or skill_element_include?(@skill, ELEMENT_NAME_AREA_WHOLE) or skill_element_include?(@skill, ELEMENT_NAME_AREA_ENEMY_RAND) or skill_element_include?(@skill, ELEMENT_NAME_AREA_ACTOR_RAND) or skill_element_include?(@skill, ELEMENT_NAME_AREA_ALL_RANDOM) end_skill_select phase3_next_actor return true end when 2 # アイテム if item_element_include?(@item, ELEMENT_NAME_AREA_ENEMY_ALL) or item_element_include?(@item, ELEMENT_NAME_AREA_WHOLE) or item_element_include?(@item, ELEMENT_NAME_AREA_ENEMY_RAND) or item_element_include?(@item, ELEMENT_NAME_AREA_ACTOR_RAND) or item_element_include?(@item, ELEMENT_NAME_AREA_ALL_RANDOM) end_item_select phase3_next_actor return true end end return false end #-------------------------------------------------------------------------- # ● フレーム更新 (メインフェーズ ステップ 1 : アクション準備) #-------------------- |