Project1

标题: RMVA如何设置攻击群体化 [打印本页]

作者: 塚痕    时间: 2012-7-11 19:33
标题: RMVA如何设置攻击群体化
RT,即人物装备某武器后攻击群体化
作者: 布兰度西特    时间: 2012-7-11 19:42
给那件武器设置添加技能如何?
作者: 萌系丶雅    时间: 2012-7-11 19:43
先自定义一把武器,然后在特性里选择 “添加技能”复制第一个技能到任意空白技能区域,然后修改效果范围为全体敌人。
接着添加这个被你修改过的攻击技能进你的武器就行了。
作者: chxush    时间: 2012-7-29 00:00
  1. #==============================================================================
  2. # ★ RGSS3_スコープ拡張 Ver1.01
  3. #==============================================================================
  4. =begin

  5. 作者:tomoaky
  6. webサイト:ひきも記 (http://hikimoki.sakura.ne.jp/)

  7. 通常攻撃の効果範囲にランダム化、全体化などを追加します、
  8. アクター、職業、武器、防具のメモ欄に以下のタグを書き込んでください。
  9. 在 角色 职业 武器 防具 注释栏 填写
  10.   <普通攻击全体化>
  11.   通常攻撃の効果範囲が敵全体になります
  12.   
  13.   <普通攻击随机化>
  14.   通常攻撃の効果範囲が敵 1 体ランダムになります
  15.   ただし、攻撃追加回数が設定されている場合は、ランダムなターゲットへ
  16.   追加攻撃が発生します。

  17. スキル(アイテム)の効果範囲を『敵味方全体』にする、
  18. スキル、アイテムのメモ欄に以下のタグを書き込んでください。
  19. 物品 技能 注释栏
  20.  <敌我方全体>
  21.   
  22. スキル(アイテム)の効果範囲から使用者を除外する、
  23. スキル、アイテムのメモ欄に以下のタグを書き込んでください。
  24.   <使用者除外>

  25. 2012.01.11  Ver1.01
  26.  混乱時にエラー落ちする不具合を修正
  27.   
  28. 2011.12.19 Ver1.0
  29.   公開

  30. =end

  31. #==============================================================================
  32. # □ 設定項目
  33. #==============================================================================
  34. module TMSCOPEEX
  35.   # 全体化に攻撃追加回数の設定を適用するかどうか、false にすれば
  36.   # 全体化攻撃はすべての敵に1回だけダメージを与えるようになります。
  37.   # 『攻撃追加回数8の武器』と『通常攻撃全体化の装飾品』などを
  38.   # 組み合わせられるとまずい場合は false にしてください。
  39.   APPLY_ALL_REPEATS = true
  40.   
  41.   # 混乱時にも全体化を適用するかどうか、false なら混乱時は単体攻撃になります
  42.   APPLY_ALL_CONFUSION = true
  43. end

  44. #==============================================================================
  45. # ■ RPG::UsableItem
  46. #==============================================================================
  47. class RPG::UsableItem
  48.   #--------------------------------------------------------------------------
  49.   # ● 対象の選択操作が必要か否かを判定する
  50.   #--------------------------------------------------------------------------
  51.   alias tmscopeex_usable_item_need_selection? need_selection?
  52.   def need_selection?
  53.     tmscopeex_usable_item_need_selection? && !for_field?
  54.   end
  55.   #--------------------------------------------------------------------------
  56.   # ○ 敵味方全体スキルかどうかを返す
  57.   #--------------------------------------------------------------------------
  58.   def for_field?
  59.     /<敌我方全体>/ =~ @note
  60.   end
  61.   #--------------------------------------------------------------------------
  62.   # ○ 使用者除外スキルかどうかを返す
  63.   #--------------------------------------------------------------------------
  64.   def for_not_user?
  65.     /<使用者除外>/ =~ @note
  66.   end
  67. end

  68. #==============================================================================
  69. # ■ Game_Action
  70. #==============================================================================
  71. class Game_Action
  72.   #--------------------------------------------------------------------------
  73.   # ● 混乱時のターゲット
  74.   #--------------------------------------------------------------------------
  75.   alias tmscopeex_game_action_confusion_target confusion_target
  76.   def confusion_target
  77.     if subject.actor? && attack? &&
  78.         TMSCOPEEX::APPLY_ALL_CONFUSION && subject.attack_for_all?
  79.       case subject.confusion_level
  80.       when 1
  81.         opponents_unit.alive_members
  82.       when 2
  83.         if rand(2) == 0
  84.           opponents_unit.alive_members
  85.         else
  86.           friends_unit.alive_members
  87.         end
  88.       else
  89.         friends_unit.alive_members
  90.       end
  91.     else
  92.       tmscopeex_game_action_confusion_target
  93.     end
  94.   end
  95.   #--------------------------------------------------------------------------
  96.   # ● 敵に対するターゲット
  97.   #--------------------------------------------------------------------------
  98.   alias tmscopeex_game_action_targets_for_opponents targets_for_opponents
  99.   def targets_for_opponents
  100.     if item.for_field?                    # 敵味方全体
  101.       opponents_unit.alive_members + friends_unit.alive_members -
  102.         (item.for_not_user? ? [subject] : [])
  103.     elsif subject.actor? && attack?
  104.       if subject.attack_for_all?          # 全体化
  105.         num = 1
  106.         num += subject.atk_times_add.to_i if TMSCOPEEX::APPLY_ALL_REPEATS
  107.         opponents_unit.alive_members * num
  108.       elsif subject.attack_for_random?    # ランダム化
  109.         Array.new(1 + subject.atk_times_add.to_i) { opponents_unit.random_target }
  110.       else
  111.         num = 1 + subject.atk_times_add.to_i
  112.         if @target_index < 0
  113.           [opponents_unit.random_target] * num
  114.         else
  115.           [opponents_unit.smooth_target(@target_index)] * num
  116.         end
  117.       end
  118.     else
  119.       tmscopeex_game_action_targets_for_opponents
  120.     end
  121.   end
  122.   #--------------------------------------------------------------------------
  123.   # ● 味方に対するターゲット
  124.   #--------------------------------------------------------------------------
  125.   alias tmscopeex_game_action_targets_for_friends targets_for_friends
  126.   def targets_for_friends
  127.     tmscopeex_game_action_targets_for_friends -
  128.       (item.for_not_user? ? [subject] : [])
  129.   end
  130. end

  131. #==============================================================================
  132. # ■ Game_Actor
  133. #==============================================================================
  134. class Game_Actor
  135.   #--------------------------------------------------------------------------
  136.   # ○ 通常攻撃が全体化されているかを返す
  137.   #--------------------------------------------------------------------------
  138.   def attack_for_all?
  139.     text = self.actor.note + self.class.note
  140.     equips.compact.each {|item| text += item.note }
  141.     states.each {|state| text += state.note }
  142.     /<普通攻击\s*全体化>/ =~ text
  143.   end
  144.   #--------------------------------------------------------------------------
  145.   # ○ 通常攻撃がランダム化されているかを返す
  146.   #--------------------------------------------------------------------------
  147.   def attack_for_random?
  148.     text = self.actor.note + self.class.note
  149.     equips.compact.each {|item| text += item.note }
  150.     states.each {|state| text += state.note }
  151.     /<普通攻击\s*随机化>/ =~ text
  152.   end
  153.   #--------------------------------------------------------------------------
  154.   # ○ 通常攻撃のターゲット選択が必要かどうかを返す
  155.   #--------------------------------------------------------------------------
  156.   def need_attack_selection?
  157.     (!attack_for_all? && !attack_for_random?)
  158.   end
  159. end

  160. #==============================================================================
  161. # ■ Scene_Battle
  162. #==============================================================================
  163. class Scene_Battle
  164.   #--------------------------------------------------------------------------
  165.   # ● コマンド[攻撃] 【再定義】
  166.   #--------------------------------------------------------------------------
  167.   def command_attack
  168.     BattleManager.actor.input.set_attack
  169.     if BattleManager.actor.need_attack_selection?
  170.       select_enemy_selection
  171.     else
  172.       next_command
  173.     end
  174.   end
  175. end


复制代码





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1