#============================================================================== # ○素手攻撃アニメーション・属性個別設定 Ver1.02 # for RGSS2 # 西瓜 / Space not far # http://muspell.raindrop.jp/ # アクター、エネミーごとに素手時通常攻撃のアニメーションと # アクターごとの素手攻撃属性を設定することが出来ます。 #============================================================================== # ■更新履歴 # Ver1.02 # ・デバッグ用メソッドを消し忘れていたのを修正。 # Ver1.01 # ・攻撃属性が設定できるようになりました。 # ・機能追加に伴う改題。 #============================================================================== module SNF ACTOR_UNARMED_ANIME = [] # 初期化 ENEMY_ATTACK_ANIME = [] # 初期化 ACTOR_UNARMED_ELEMENT = [] # 初期化 # ●戦闘アニメ # 素手で攻撃したさい表示される戦闘アニメを表示します。 ACTOR_ATTACK_ANIME_BASIC = 1 # 未設定の場合のアクターの戦闘アニメIDです。 ACTOR_UNARMED_ANIME[1] = 19 # ACTOR_UNARMED_ANIME[アクターID] = 戦闘アニメID ENEMY_ATTACK_ANIME_BASIC = 0 # 未設定の場合のエネミーの戦闘アニメIDです。 # 0がVXデフォルトです。 ENEMY_ATTACK_ANIME[1] = 1 # ACTOR_UNARMED_ANIME[エネミーID] = 戦闘アニメID # ●属性 # 素手の時の攻撃属性を設定します。 ACTOR_UNARMED_ELEMENT_BASIC = [1] # => デフォルト:格闘属性 # 未設定の場合の属性です。 # ACTOR_UNARMED_ELEMENT[アクターID] = [属性ID] ACTOR_UNARMED_ELEMENT[1] = [1,2] # ラルフ素手攻撃 => 格闘・斬撃属性 end class Game_Actor < Game_Battler alias snf_unarmed_element_set element_set def element_set result = [] if weapons.compact == [] # 素手属性が未設定か否か if SNF::ACTOR_UNARMED_ELEMENT[actor.id] == nil return SNF::ACTOR_UNARMED_ELEMENT_BASIC else return SNF::ACTOR_UNARMED_ELEMENT[actor.id] end end for weapon in weapons.compact result |= weapon == nil ? [] : weapon.element_set end return result end def atk_animation_id unarmed = SNF::ACTOR_UNARMED_ANIME[actor.id] unarmed = SNF::ACTOR_ATTACK_ANIME_BASIC if unarmed == nil # 素手アニメが未設定か否か if two_swords_style return weapons[0].animation_id if weapons[0] != nil return weapons[1] == nil ? unarmed : 0 else return weapons[0] == nil ? unarmed : weapons[0].animation_id end end def atk_animation_id2 unarmed = SNF::ACTOR_UNARMED_ANIME[actor.id] unarmed = SNF::ACTOR_ATTACK_ANIME_BASIC if unarmed == nil if two_swords_style return weapons[1] == nil ? unarmed : weapons[1].animation_id else return 0 end end end class Scene_Battle < Scene_Base def display_attack_animation(targets) if @active_battler.is_a?(Game_Enemy) enemy_anime = SNF::ENEMY_ATTACK_ANIME[@active_battler.enemy_id] if enemy_anime == nil or enemy_anime == 0 # 敵攻撃アニメが未設定か否か if SNF::ENEMY_ATTACK_ANIME_BASIC == 0 Sound.play_enemy_attack wait(15, true) else enemy_anime = SNF::ENEMY_ATTACK_ANIME_BASIC display_normal_animation(targets, enemy_anime, false) end else display_normal_animation(targets, enemy_anime, false) end else aid1 = @active_battler.atk_animation_id aid2 = @active_battler.atk_animation_id2 display_normal_animation(targets, aid1, false) display_normal_animation(targets, aid2, true) end wait_for_animation end end