设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1682|回复: 8
打印 上一主题 下一主题

[已经解决] 想问问怎么设置被动的技能

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
6 小时
注册时间
2011-5-18
帖子
10
跳转到指定楼层
1
发表于 2011-5-18 23:06:18 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
比如让一个技能被动的提高闪避率或者暴击率

Lv1.梦旅人

梦石
0
星屑
55
在线时间
116 小时
注册时间
2008-5-12
帖子
264
2
发表于 2011-5-19 08:35:22 | 只看该作者
这个东西问的人很多了,其实你只要一搜索就能找到了
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ パッシブスキル - KGC_PassiveSkill ◆ VX ◆
  3. #_/    ◇ Last update : 2008/11/16 ◇
  4. #_/----------------------------------------------------------------------------
  5. #_/  習得するだけで能力値上昇効果を発揮するスキルを作成します。
  6. #_/============================================================================
  7. #_/ 【基本機能】≪200x/XP 機能再現≫ より下に導入してください。
  8. #_/ 【装備】≪装備品オプション追加≫ より下に導入してください。
  9. #_/ 【装備】≪装備拡張≫ より下に導入してください。
  10. #_/   <パッシブスキル>
  11. #_/   MAXHP +10%
  12. #_/   MAXMP -5%
  13. #_/   攻撃力 +30
  14. #_/   攻撃属性 10,11
  15. #_/   付加ステート 2
  16. #_/   無効化ステート 3,4,5
  17. #_/   クリティカル防止
  18. #_/   全体攻撃
  19. #_/   4回攻撃
  20. #_/   属性耐性 10:50%
  21. #_/   属性耐性 15:-100%
  22. #_/   ステート耐性 2:50%
  23. #_/   </パッシブスキル>
  24. #_/
  25. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

  26. $imported = {} if $imported == nil
  27. $imported["PassiveSkill"] = true

  28. module KGC
  29. module PassiveSkill
  30.   # パッシブスキル用パラメータリスト
  31.   PARAMS = {
  32.     :maxhp => "MAXHP|最大HP",
  33.     :maxmp => "MAXMP|最大MP",
  34.     :atk   => "ATK|攻击力",
  35.     :def   => "DEF|防御力",
  36.     :spi   => "SPI|智谋力",
  37.     :agi   => "AGI|敏捷力",
  38.     :hit   => "HIT|命中率",
  39.     :eva   => "EVA|回避率",
  40.     :cri   => "CRI|爆击率",
  41.     :odds  => "ODDS|受击率",
  42.   }

  43.   # パッシブスキル用属性・ステートリスト
  44.   ARRAYS = {
  45.     :attack_element => "ATTACK_ELEMENT|攻击属性",
  46.     :plus_state     => "PLUS_STATE|付加状态",
  47.     :invalid_state  => "INVALID_STATE|无效化状态",
  48.     :auto_state     => "AUTO_STATE|自动状态",
  49.   }

  50.   # パッシブスキル用耐性リスト
  51.   RESISTANCES = {
  52.     # ≪装備品オプション追加≫
  53.     :element => "ELEMENT_RESISTANCE|属性耐性",
  54.     :state   => "STATE_RESISTANCE|状态耐性",
  55.   }

  56.   # パッシブスキル用特殊効果リスト
  57.   EFFECTS = {
  58.     # デフォ
  59.     :two_swords_style => "TWO_SWORDS_STYLE|二刀流",
  60.     :auto_battle      => "AUTO_BATTLE|自动战斗",
  61.     :super_guard      => "SUPER_GUARD|强力防御",
  62.     :pharmacology     => "PHARMACOLOGY|药物知识",
  63.     :fast_attack      => "FAST_ATTACK|回合内内先制",
  64.     :dual_attack      => "DUAL_ATTACK|连续攻击",
  65.     :critical_bonus   => "CRITICAL_BONUS|爆击频发",
  66.     :prevent_critical => "PREVENT_CRITICAL|爆击防止",
  67.     :half_mp_cost     => "HALF_MP_COST|消耗MP减半",
  68.     :double_exp_gain  => "DOUBLE_EXP_GAIN|取得经验值[2]倍",
  69.     # ≪200x/XP 機能再現≫
  70.     :whole_attack => "WHOLE_ATTACK|全体攻击",
  71.     :ignore_eva   => "IGNORE_EVA|回避无视",
  72.     # ≪装備品オプション追加≫
  73.     :multi_attack_count => '(\d+)\s*(?:TIMES_ATTACK|回攻撃)',
  74.   }

  75.   # 正規表現
  76.   module Regexp
  77.     # スキル
  78.     module Skill
  79.       # パッシブスキル開始
  80.       BEGIN_PASSIVE = /<(?:PASSIVE_SKILL|パッシブスキル)>/i
  81.       # パッシブスキル終了
  82.       END_PASSIVE = /<\/(?:PASSIVE_SKILL|パッシブスキル)>/i

  83.       # パラメータ修正
  84.       #  MAXHP +20  など
  85.       PASSIVE_PARAMS = /^\s*([^:\+\-\d\s]+)\s*([\+\-]\d+)([%%])?\s*$/
  86.       # 属性・ステートリスト
  87.       #  攻撃属性 1,2,3  など
  88.       PASSIVE_ARRAYS = /^\s*([^:\+\-\d\s]+)\s*(\d+(?:\s*,\s*\d+)*)\s*$/
  89.       # 耐性
  90.       PASSIVE_RESISTANCES = /^\s*([^:\+\-\d\s]+)\s(\d+):(\-?\d+)[%%]?\s*$/
  91.       # 特殊効果
  92.       PASSIVE_EFFECTS = /^\s*([^:\+\-\d\s]+)/
  93.     end
  94.   end
  95. end
  96. end

  97. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  98. #==============================================================================
  99. # □ KGC::Commands
  100. #==============================================================================

  101. module KGC
  102. module Commands
  103.   module_function
  104.   #--------------------------------------------------------------------------
  105.   # ○ パッシブスキルの修正値を再設定
  106.   #--------------------------------------------------------------------------
  107.   def restore_passive_rev
  108.     (1...$data_actors.size).each { |i|
  109.       actor = $game_actors[i]
  110.       actor.restore_passive_rev
  111.     }
  112.   end
  113. end
  114. end

  115. class Game_Interpreter
  116.   include KGC::Commands
  117. end

  118. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  119. #==============================================================================
  120. # ■ RPG::Skill
  121. #==============================================================================

  122. class RPG::Skill < RPG::UsableItem
  123.   #--------------------------------------------------------------------------
  124.   # ○ パッシブスキルのキャッシュを生成
  125.   #--------------------------------------------------------------------------
  126.   def create_passive_skill_cache
  127.     @__passive = false
  128.     @__passive_params = {}
  129.     @__passive_params_rate = {}
  130.     @__passive_arrays = {}
  131.     @__passive_resistances = {}
  132.     @__passive_effects = { :multi_attack_count => 1 }

  133.     passive_flag = false
  134.     self.note.each_line { |line|
  135.       case line
  136.       when KGC::PassiveSkill::Regexp::Skill::BEGIN_PASSIVE
  137.         # パッシブスキル定義開始
  138.         passive_flag = true
  139.         @__passive = true
  140.       when KGC::PassiveSkill::Regexp::Skill::END_PASSIVE
  141.         # パッシブスキル定義終了
  142.         passive_flag = false
  143.       when KGC::PassiveSkill::Regexp::Skill::PASSIVE_PARAMS
  144.         # 能力値修正
  145.         if passive_flag
  146.           apply_passive_params($1, $2.to_i, $3 != nil)
  147.         end
  148.       when KGC::PassiveSkill::Regexp::Skill::PASSIVE_ARRAYS
  149.         # 属性・ステート
  150.         if passive_flag
  151.           apply_passive_arrays($1, $2.scan(/\d+/))
  152.         end
  153.       when KGC::PassiveSkill::Regexp::Skill::PASSIVE_RESISTANCES
  154.         # 耐性
  155.         if passive_flag
  156.           apply_passive_resistances($1, $2.to_i, $3.to_i)
  157.         end
  158.       else
  159.         # 特殊効果
  160.         if passive_flag
  161.           apply_passive_effects(line)
  162.         end
  163.       end
  164.     }
  165.   end
  166.   #--------------------------------------------------------------------------
  167.   # ○ パッシブスキルの能力値修正を適用
  168.   #     param : 対象パラメータ
  169.   #     value : 修正値
  170.   #     rate  : true なら % 指定
  171.   #--------------------------------------------------------------------------
  172.   def apply_passive_params(param, value, rate)
  173.     KGC::PassiveSkill::PARAMS.each { |k, v|
  174.       if param =~ /(?:#{v})/i
  175.         if rate
  176.           @__passive_params_rate[k] = 0 if @__passive_params_rate[k] == nil
  177.           @__passive_params_rate[k] += value
  178.         else
  179.           @__passive_params[k] = 0 if @__passive_params[k] == nil
  180.           @__passive_params[k] += value
  181.         end
  182.         break
  183.       end
  184.     }
  185.   end
  186.   #--------------------------------------------------------------------------
  187.   # ○ パッシブスキルの追加属性・ステートを適用
  188.   #     param : 対象パラメータ
  189.   #     list  : 属性・ステート一覧
  190.   #--------------------------------------------------------------------------
  191.   def apply_passive_arrays(param, list)
  192.     KGC::PassiveSkill::ARRAYS.each { |k, v|
  193.       if param =~ /(?:#{v})/i
  194.         values = []
  195.         list.each { |num| values << num.to_i }
  196.         @__passive_arrays[k] = [] if @__passive_arrays[k] == nil
  197.         @__passive_arrays[k] |= values
  198.         break
  199.       end
  200.     }
  201.   end
  202.   #--------------------------------------------------------------------------
  203.   # ○ パッシブスキルの耐性を適用
  204.   #     param : 対象パラメータ
  205.   #     id    : 属性・ステート ID
  206.   #     rate  : 変動率
  207.   #--------------------------------------------------------------------------
  208.   def apply_passive_resistances(param, id, rate)
  209.     KGC::PassiveSkill::RESISTANCES.each { |k, v|
  210.       if param =~ /(?:#{v})/i
  211.         if @__passive_resistances[k] == nil
  212.           @__passive_resistances[k] = []
  213.         end
  214.         n = @__passive_resistances[k][id]
  215.         n = 100 if n == nil
  216.         @__passive_resistances[k][id] = n + rate - 100
  217.         break
  218.       end
  219.     }
  220.   end
  221.   #--------------------------------------------------------------------------
  222.   # ○ パッシブスキルの特殊効果を適用
  223.   #     effect : 対象効果
  224.   #--------------------------------------------------------------------------
  225.   def apply_passive_effects(effect)
  226.     KGC::PassiveSkill::EFFECTS.each { |k, v|
  227.       if effect =~ /^\s*(#{v})/i
  228.         case k
  229.         when :multi_attack_count
  230.           # 攻撃回数
  231.           $1 =~ /#{v}/i
  232.           @__passive_effects[k] = [ $1.to_i, @__passive_effects[k] ].max
  233.         else
  234.           @__passive_effects[k] = true
  235.         end
  236.         break
  237.       end
  238.     }
  239.   end
  240.   #--------------------------------------------------------------------------
  241.   # ○ パッシブスキルであるか
  242.   #--------------------------------------------------------------------------
  243.   def passive
  244.     create_passive_skill_cache if @__passive == nil
  245.     return @__passive
  246.   end
  247.   #--------------------------------------------------------------------------
  248.   # ○ パッシブスキルの能力値修正 (即値)
  249.   #--------------------------------------------------------------------------
  250.   def passive_params
  251.     create_passive_skill_cache if @__passive_params == nil
  252.     return @__passive_params
  253.   end
  254.   #--------------------------------------------------------------------------
  255.   # ○ パッシブスキルの能力値修正 (割合)
  256.   #--------------------------------------------------------------------------
  257.   def passive_params_rate
  258.     create_passive_skill_cache if @__passive_params_rate == nil
  259.     return @__passive_params_rate
  260.   end
  261.   #--------------------------------------------------------------------------
  262.   # ○ パッシブスキルの属性・ステートリスト
  263.   #--------------------------------------------------------------------------
  264.   def passive_arrays
  265.     create_passive_skill_cache if @__passive_arrays == nil
  266.     return @__passive_arrays
  267.   end
  268.   #--------------------------------------------------------------------------
  269.   # ○ パッシブスキルの耐性リスト
  270.   #--------------------------------------------------------------------------
  271.   def passive_resistances
  272.     create_passive_skill_cache if @__passive_resistances == nil
  273.     return @__passive_resistances
  274.   end
  275.   #--------------------------------------------------------------------------
  276.   # ○ パッシブスキルの特殊効果リスト
  277.   #--------------------------------------------------------------------------
  278.   def passive_effects
  279.     create_passive_skill_cache if @__passive_effects == nil
  280.     return @__passive_effects
  281.   end
  282. end

  283. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  284. #==============================================================================
  285. # ■ Game_Actor
  286. #==============================================================================

  287. class Game_Actor < Game_Battler
  288.   #--------------------------------------------------------------------------
  289.   # ○ クラス変数
  290.   #--------------------------------------------------------------------------
  291.   @@passive_equip_test = false  # パッシブスキル用装備テストフラグ
  292.   #--------------------------------------------------------------------------
  293.   # ● セットアップ
  294.   #     actor_id : アクター ID
  295.   #--------------------------------------------------------------------------
  296.   alias setup_KGC_PassiveSkill setup
  297.   def setup(actor_id)
  298.     reset_passive_rev

  299.     setup_KGC_PassiveSkill(actor_id)

  300.     restore_passive_rev
  301.   end
  302.   #--------------------------------------------------------------------------
  303.   # ○ パッシブスキルの修正値を初期化
  304.   #--------------------------------------------------------------------------
  305.   def reset_passive_rev
  306.     @passive_params = {}
  307.     @passive_params_rate = {}
  308.     @passive_arrays = {}
  309.     @passive_resistances = {}
  310.     @passive_effects = {}
  311.     KGC::PassiveSkill::PARAMS.each_key { |k|
  312.       @passive_params[k] = 0
  313.       @passive_params_rate[k] = 100
  314.     }
  315.     KGC::PassiveSkill::ARRAYS.each_key { |k| @passive_arrays[k] = [] }
  316.     KGC::PassiveSkill::RESISTANCES.each_key { |k| @passive_resistances[k] = [] }
  317.     KGC::PassiveSkill::EFFECTS.each_key { |k| @passive_effects[k] = false }
  318.     @passive_effects[:multi_attack_count] = 1
  319.   end
  320.   #--------------------------------------------------------------------------
  321.   # ○ パッシブスキルの修正値を再設定
  322.   #--------------------------------------------------------------------------
  323.   def restore_passive_rev
  324.     return if @__passive_rev_restoring

  325.     # 修正前の値を保持
  326.     last_effects = @passive_effects.clone if @passive_effects != nil

  327.     reset_passive_rev

  328.     # ≪スキルCP制≫ の併用を考慮し、戦闘中フラグを一時的にオン
  329.     last_in_battle = $game_temp.in_battle
  330.     $game_temp.in_battle = true
  331.     # 修正値を取得
  332.     self.skills.each { |skill|
  333.       next unless skill.passive

  334.       skill.passive_params.each { |k, v| @passive_params[k] += v }
  335.       skill.passive_params_rate.each { |k, v| @passive_params_rate[k] += v }
  336.       skill.passive_arrays.each { |k, v| @passive_arrays[k] |= v }
  337.       skill.passive_resistances.each { |k, v|
  338.         v.each_with_index { |n, i|
  339.           next if n == nil
  340.           @passive_resistances[k][i] = 100 if @passive_resistances[k][i] == nil
  341.           @passive_resistances[k][i] += n - 100
  342.         }
  343.       }
  344.       skill.passive_effects.each { |k, v|
  345.         case k
  346.         when :multi_attack_count
  347.           @passive_effects[k] = [ v, @passive_effects[k] ].max
  348.         else
  349.           @passive_effects[k] |= v
  350.         end
  351.       }
  352.     }
  353.     $game_temp.in_battle = last_in_battle

  354.     @__passive_rev_restoring = true
  355.     # HP/MP を修正
  356.     self.hp = self.hp
  357.     self.mp = self.mp

  358.     # 二刀流違反を修正
  359.     if !two_swords_style_KGC_PassiveSkill &&
  360.         last_effects[:two_swords_style] != nil &&
  361.         last_effects[:two_swords_style] != two_swords_style
  362.       @__one_time_two_swords_style = last_effects[:two_swords_style]
  363.       change_equip(1, nil, @@passive_equip_test)
  364.       @__one_time_two_swords_style = nil
  365.     end
  366.     @__passive_rev_restoring = nil
  367.   end
  368.   #--------------------------------------------------------------------------
  369.   # ○ パッシブスキルによるパラメータ修正値 (即値)
  370.   #--------------------------------------------------------------------------
  371.   def passive_params
  372.     restore_passive_rev if @passive_params == nil
  373.     return @passive_params
  374.   end
  375.   #--------------------------------------------------------------------------
  376.   # ○ パッシブスキルによるパラメータ修正値 (割合)
  377.   #--------------------------------------------------------------------------
  378.   def passive_params_rate
  379.     restore_passive_rev if @passive_params_rate == nil
  380.     return @passive_params_rate
  381.   end
  382.   #--------------------------------------------------------------------------
  383.   # ○ パッシブスキルによる追加属性・ステート
  384.   #--------------------------------------------------------------------------
  385.   def passive_arrays
  386.     restore_passive_rev if @passive_arrays == nil
  387.     return @passive_arrays
  388.   end
  389.   #--------------------------------------------------------------------------
  390.   # ○ パッシブスキルによる耐性
  391.   #--------------------------------------------------------------------------
  392.   def passive_resistances
  393.     restore_passive_rev if @passive_resistances == nil
  394.     return @passive_resistances
  395.   end
  396.   #--------------------------------------------------------------------------
  397.   # ○ パッシブスキルによる特殊効果
  398.   #--------------------------------------------------------------------------
  399.   def passive_effects
  400.     restore_passive_rev if @passive_effects == nil
  401.     return @passive_effects
  402.   end
  403.   #--------------------------------------------------------------------------
  404.   # ● 装備の変更 (オブジェクトで指定)
  405.   #     equip_type : 装備部位 (0..4)
  406.   #     item       : 武器 or 防具 (nil なら装備解除)
  407.   #     test       : テストフラグ (戦闘テスト、または装備画面での一時装備)
  408.   #--------------------------------------------------------------------------
  409.   alias change_equip_KGC_PassiveSkill change_equip
  410.   def change_equip(equip_type, item, test = false)
  411.     @@passive_equip_test = test

  412.     change_equip_KGC_PassiveSkill(equip_type, item, test)

  413.     restore_passive_rev
  414.     @@passive_equip_test = false
  415.   end
  416.   #--------------------------------------------------------------------------
  417.   # ● 装備の破棄
  418.   #     item : 破棄する武器 or 防具
  419.   #    武器/防具の増減で「装備品も含める」のとき使用する。
  420.   #--------------------------------------------------------------------------
  421.   alias discard_equip_KGC_PassiveSkill discard_equip
  422.   def discard_equip(item)
  423.     discard_equip_KGC_PassiveSkill(item)

  424.     restore_passive_rev
  425.   end

  426.   if $imported["AddEquipmentOptions"]
  427.   #--------------------------------------------------------------------------
  428.   # ○ 属性耐性の取得
  429.   #     element_id : 属性 ID
  430.   #--------------------------------------------------------------------------
  431.   alias element_resistance_KGC_PassiveSkill element_resistance
  432.   def element_resistance(element_id)
  433.     n = element_resistance_KGC_PassiveSkill(element_id)
  434.     rate = passive_resistances[:element][element_id]
  435.     n += (rate == nil ? 100 : rate) - 100
  436.     return n
  437.   end
  438.   #--------------------------------------------------------------------------
  439.   # ○ ステート耐性の取得
  440.   #     state_id : ステート ID
  441.   #--------------------------------------------------------------------------
  442.   alias state_resistance_KGC_PassiveSkill state_resistance
  443.   def state_resistance(state_id)
  444.     n = state_resistance_KGC_PassiveSkill(state_id)
  445.     rate = passive_resistances[:state][state_id]
  446.     n += (rate == nil ? 100 : rate) - 100
  447.     return [n, 0].max
  448.   end
  449.   end  # <-- if $imported["AddEquipmentOptions"]

  450.   #--------------------------------------------------------------------------
  451.   # ● ステート無効化判定
  452.   #     state_id : ステート ID
  453.   #--------------------------------------------------------------------------
  454.   alias state_resist_KGC_PassiveSkill? state_resist?
  455.   def state_resist?(state_id)
  456.     return true if passive_arrays[:invalid_state].include?(state_id)

  457.     return state_resist_KGC_PassiveSkill?(state_id)
  458.   end
  459.   #--------------------------------------------------------------------------
  460.   # ● 通常攻撃の属性取得
  461.   #--------------------------------------------------------------------------
  462.   alias element_set_KGC_PassiveSkill element_set
  463.   def element_set
  464.     return (element_set_KGC_PassiveSkill | passive_arrays[:attack_element])
  465.   end
  466.   #--------------------------------------------------------------------------
  467.   # ● 通常攻撃の追加効果 (ステート変化) 取得
  468.   #--------------------------------------------------------------------------
  469.   alias plus_state_set_KGC_PassiveSkill plus_state_set
  470.   def plus_state_set
  471.     return (plus_state_set_KGC_PassiveSkill | passive_arrays[:plus_state])
  472.   end
  473.   #--------------------------------------------------------------------------
  474.   # ● 基本 MaxHP の取得
  475.   #--------------------------------------------------------------------------
  476.   alias base_maxhp_KGC_PassiveSkill base_maxhp
  477.   def base_maxhp
  478.     n = base_maxhp_KGC_PassiveSkill + passive_params[:maxhp]
  479.     n = n * passive_params_rate[:maxhp] / 100
  480.     return n
  481.   end
  482.   #--------------------------------------------------------------------------
  483.   # ● 基本 MaxMP の取得
  484.   #--------------------------------------------------------------------------
  485.   alias base_maxmp_KGC_PassiveSkill base_maxmp
  486.   def base_maxmp
  487.     n = base_maxmp_KGC_PassiveSkill + passive_params[:maxmp]
  488.     n = n * passive_params_rate[:maxmp] / 100
  489.     return n
  490.   end
  491.   #--------------------------------------------------------------------------
  492.   # ● 基本攻撃力の取得
  493.   #--------------------------------------------------------------------------
  494.   alias base_atk_KGC_PassiveSkill base_atk
  495.   def base_atk
  496.     n = base_atk_KGC_PassiveSkill + passive_params[:atk]
  497.     n = n * passive_params_rate[:atk] / 100
  498.     return n
  499.   end
  500.   #--------------------------------------------------------------------------
  501.   # ● 基本防御力の取得
  502.   #--------------------------------------------------------------------------
  503.   alias base_def_KGC_PassiveSkill base_def
  504.   def base_def
  505.     n = base_def_KGC_PassiveSkill + passive_params[:def]
  506.     n = n * passive_params_rate[:def] / 100
  507.     return n
  508.   end
  509.   #--------------------------------------------------------------------------
  510.   # ● 基本精神力の取得
  511.   #--------------------------------------------------------------------------
  512.   alias base_spi_KGC_PassiveSkill base_spi
  513.   def base_spi
  514.     n = base_spi_KGC_PassiveSkill + passive_params[:spi]
  515.     n = n * passive_params_rate[:spi] / 100
  516.     return n
  517.   end
  518.   #--------------------------------------------------------------------------
  519.   # ● 基本敏捷性の取得
  520.   #--------------------------------------------------------------------------
  521.   alias base_agi_KGC_PassiveSkill base_agi
  522.   def base_agi
  523.     n = base_agi_KGC_PassiveSkill + passive_params[:agi]
  524.     n = n * passive_params_rate[:agi] / 100
  525.     return n
  526.   end
  527.   #--------------------------------------------------------------------------
  528.   # ● 命中率の取得
  529.   #--------------------------------------------------------------------------
  530.   alias hit_KGC_PassiveSkill hit
  531.   def hit
  532.     n = hit_KGC_PassiveSkill + passive_params[:hit]
  533.     n = n * passive_params_rate[:hit] / 100
  534.     return n
  535.   end
  536.   #--------------------------------------------------------------------------
  537.   # ● 回避率の取得
  538.   #--------------------------------------------------------------------------
  539.   alias eva_KGC_PassiveSkill eva
  540.   def eva
  541.     n = eva_KGC_PassiveSkill + passive_params[:eva]
  542.     n = n * passive_params_rate[:eva] / 100
  543.     return n
  544.   end
  545.   #--------------------------------------------------------------------------
  546.   # ● クリティカル率の取得
  547.   #--------------------------------------------------------------------------
  548.   alias cri_KGC_PassiveSkill cri
  549.   def cri
  550.     n = cri_KGC_PassiveSkill + passive_params[:cri]
  551.     n = n * passive_params_rate[:cri] / 100
  552.     n += 4 if passive_effects[:critical_bonus]
  553.     return n
  554.   end
  555.   #--------------------------------------------------------------------------
  556.   # ● 狙われやすさの取得
  557.   #--------------------------------------------------------------------------
  558.   alias odds_KGC_PassiveSkill odds
  559.   def odds
  560.     n = odds_KGC_PassiveSkill + passive_params[:odds]
  561.     n = n * passive_params_rate[:odds] / 100
  562.     return n
  563.   end
  564.   #--------------------------------------------------------------------------
  565.   # ● オプション [二刀流] の取得
  566.   #--------------------------------------------------------------------------
  567.   alias two_swords_style_KGC_PassiveSkill two_swords_style
  568.   def two_swords_style
  569.     return @__one_time_two_swords_style if @__one_time_two_swords_style != nil

  570.     return (two_swords_style_KGC_PassiveSkill ||
  571.       passive_effects[:two_swords_style])
  572.   end
  573.   #--------------------------------------------------------------------------
  574.   # ● オプション [自動戦闘] の取得
  575.   #--------------------------------------------------------------------------
  576.   alias auto_battle_KGC_PassiveSkill auto_battle
  577.   def auto_battle
  578.     return (auto_battle_KGC_PassiveSkill || passive_effects[:auto_battle])
  579.   end
  580.   #--------------------------------------------------------------------------
  581.   # ● オプション [強力防御] の取得
  582.   #--------------------------------------------------------------------------
  583.   alias super_guard_KGC_PassiveSkill super_guard
  584.   def super_guard
  585.     return (super_guard_KGC_PassiveSkill || passive_effects[:super_guard])
  586.   end
  587.   #--------------------------------------------------------------------------
  588.   # ● オプション [薬の知識] の取得
  589.   #--------------------------------------------------------------------------
  590.   alias pharmacology_KGC_PassiveSkill pharmacology
  591.   def pharmacology
  592.     return (pharmacology_KGC_PassiveSkill || passive_effects[:pharmacology])
  593.   end
  594.   #--------------------------------------------------------------------------
  595.   # ● 武器オプション [ターン内先制] の取得
  596.   #--------------------------------------------------------------------------
  597.   alias fast_attack_KGC_PassiveSkill fast_attack
  598.   def fast_attack
  599.     return (fast_attack_KGC_PassiveSkill || passive_effects[:fast_attack])
  600.   end
  601.   #--------------------------------------------------------------------------
  602.   # ● 武器オプション [連続攻撃] の取得
  603.   #--------------------------------------------------------------------------
  604.   alias dual_attack_KGC_PassiveSkill dual_attack
  605.   def dual_attack
  606.     if $imported["AddEquipmentOptions"]
  607.       # 2回攻撃以上なら無視
  608.       return false if passive_effects[:multi_attack_count] >= 2
  609.     end

  610.     return (dual_attack_KGC_PassiveSkill || passive_effects[:dual_attack])
  611.   end
  612.   #--------------------------------------------------------------------------
  613.   # ● 防具オプション [クリティカル防止] の取得
  614.   #--------------------------------------------------------------------------
  615.   alias prevent_critical_KGC_PassiveSkill prevent_critical
  616.   def prevent_critical
  617.     return (prevent_critical_KGC_PassiveSkill ||
  618.       passive_effects[:prevent_critical])
  619.   end
  620.   #--------------------------------------------------------------------------
  621.   # ● 防具オプション [消費 MP 半分] の取得
  622.   #--------------------------------------------------------------------------
  623.   alias half_mp_cost_KGC_KGC_PassiveSkill half_mp_cost
  624.   def half_mp_cost
  625.     return (half_mp_cost_KGC_KGC_PassiveSkill ||
  626.       passive_effects[:half_mp_cost])
  627.   end
  628.   #--------------------------------------------------------------------------
  629.   # ● 防具オプション [取得経験値 2 倍] の取得
  630.   #--------------------------------------------------------------------------
  631.   alias double_exp_gain_KGC_PassiveSkill double_exp_gain
  632.   def double_exp_gain
  633.     return (double_exp_gain_KGC_PassiveSkill ||
  634.       passive_effects[:double_exp_gain])
  635.   end
  636.   #--------------------------------------------------------------------------
  637.   # ● スキルを覚える
  638.   #     skill_id : スキル ID
  639.   #--------------------------------------------------------------------------
  640.   alias learn_skill_KGC_PassiveSkill learn_skill
  641.   def learn_skill(skill_id)
  642.     learn_skill_KGC_PassiveSkill(skill_id)

  643.     restore_passive_rev
  644.   end
  645.   #--------------------------------------------------------------------------
  646.   # ● スキルを忘れる
  647.   #     skill_id : スキル ID
  648.   #--------------------------------------------------------------------------
  649.   alias forget_skill_KGC_PassiveSkill forget_skill
  650.   def forget_skill(skill_id)
  651.     forget_skill_KGC_PassiveSkill(skill_id)

  652.     restore_passive_rev
  653.   end

  654. if $imported["ReproduceFunctions"]

  655.   #--------------------------------------------------------------------------
  656.   # ○ オートステートの配列を取得
  657.   #     id_only : ID のみを取得
  658.   #--------------------------------------------------------------------------
  659.   alias auto_states_KGC_PassiveSkill auto_states
  660.   def auto_states(id_only = false)
  661.     result = auto_states_KGC_PassiveSkill(id_only)

  662.     passive_arrays[:auto_state].each { |i|
  663.       result << (id_only ? i : $data_states[i])
  664.     }
  665.     result.uniq!
  666.     return result
  667.   end
  668.   #--------------------------------------------------------------------------
  669.   # ○ 装備オプション [全体攻撃] の取得
  670.   #--------------------------------------------------------------------------
  671.   alias whole_attack_KGC_PassiveSkill whole_attack
  672.   def whole_attack
  673.     return (whole_attack_KGC_PassiveSkill || passive_effects[:whole_attack])
  674.   end
  675.   #--------------------------------------------------------------------------
  676.   # ○ 装備オプション [回避無視] の取得
  677.   #--------------------------------------------------------------------------
  678.   alias ignore_eva_KGC_PassiveSkill ignore_eva
  679.   def ignore_eva
  680.     return (ignore_eva_KGC_PassiveSkill || passive_effects[:ignore_eva])
  681.   end

  682. end  # <-- if $imported["ReproduceFunctions"]

  683. if $imported["AddEquipmentOptions"]

  684.   #--------------------------------------------------------------------------
  685.   # ○ 攻撃回数の取得
  686.   #--------------------------------------------------------------------------
  687.   alias multi_attack_count_KGC_PassiveSkill multi_attack_count
  688.   def multi_attack_count
  689.     n = multi_attack_count_KGC_PassiveSkill
  690.     return [ n, passive_effects[:multi_attack_count] ].max
  691.   end

  692. end  # <-- if $imported["AddEquipmentOptions"]

  693. end  # <-- class

  694. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  695. #==============================================================================
  696. # ■ Window_EquipItem
  697. #==============================================================================

  698. class Window_EquipItem < Window_Item
  699.   #--------------------------------------------------------------------------
  700.   # ● オブジェクト初期化
  701.   #     x          : ウィンドウの X 座標
  702.   #     y          : ウィンドウの Y 座標
  703.   #     width      : ウィンドウの幅
  704.   #     height     : ウィンドウの高さ
  705.   #     actor      : アクター
  706.   #     equip_type : 装備部位 (0~4)
  707.   #--------------------------------------------------------------------------
  708.   alias initialize_KGC_PassiveSkill initialize unless $@
  709.   def initialize(x, y, width, height, actor, equip_type)
  710.     @original_equip_type = equip_type

  711.     initialize_KGC_PassiveSkill(x, y, width, height, actor, equip_type)
  712.   end
  713.   #--------------------------------------------------------------------------
  714.   # ● リフレッシュ
  715.   #--------------------------------------------------------------------------
  716.   alias refresh_KGC_PassiveSkill refresh unless $@
  717.   def refresh
  718.     if @original_equip_type == 1
  719.       @equip_type = (@actor.two_swords_style ? 0 : 1)
  720.     end

  721.     refresh_KGC_PassiveSkill
  722.   end
  723. end

  724. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  725. #==============================================================================
  726. # ■ Scene_File
  727. #==============================================================================

  728. class Scene_File < Scene_Base
  729.   #--------------------------------------------------------------------------
  730.   # ● セーブデータの読み込み
  731.   #     file : 読み込み用ファイルオブジェクト (オープン済み)
  732.   #--------------------------------------------------------------------------
  733.   alias read_save_data_KGC_PassiveSkill read_save_data
  734.   def read_save_data(file)
  735.     read_save_data_KGC_PassiveSkill(file)

  736.     KGC::Commands.restore_passive_rev
  737.     Graphics.frame_reset
  738.   end
  739. end
复制代码
使用方法就是技能设置为不可用,然后在技能的背猪栏上写
<passive_skill>
CRI +9
EVA +10
</passive_skill>
这样学会这个技能爆击就+9% 闪避就+10%了 另外还能提升其他能力 你自己仔细看看脚本应该就明白了
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
6 小时
注册时间
2011-5-18
帖子
10
3
 楼主| 发表于 2011-5-19 12:02:08 | 只看该作者
怎么老是显示脚本的第XXX行模块发生错误啊···
我用的是中文版得····日文没问题吗??
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
116 小时
注册时间
2008-5-12
帖子
264
4
发表于 2011-5-19 12:04:02 | 只看该作者
回复 578136632 的帖子

脚本跟中文日文有啥关系?脚本的语句语法都是一样的
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
6 小时
注册时间
2011-5-18
帖子
10
5
 楼主| 发表于 2011-5-19 13:58:32 | 只看该作者
····好吧 ···在下其实完全不知道脚本怎么用···不是把那些东西全都复制到脚本编辑器后就可以直接设置了吗···难道还要在脚本里面进行被动技能设置???
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
116 小时
注册时间
2008-5-12
帖子
264
6
发表于 2011-5-19 15:09:17 | 只看该作者
本帖最后由 shinliwei 于 2011-5-19 15:09 编辑

把脚本放在这里


技能设置在



shinliwei于2011-5-19 15:10补充以下内容:
把效果范围改成无,使用的场合改为不能使用就OK了
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
6 小时
注册时间
2011-5-18
帖子
10
7
 楼主| 发表于 2011-5-19 22:36:33 | 只看该作者
~~非常感谢~~~~
对了还有个问题想问下  为什么在脚本里面的那个  无视回避   我按照你教我的方法加进去然后我把史莱姆的回避设成百分之一百··我试了试 但还是攻击不到他


578136632于2011-5-19 23:05补充以下内容:
a ``忽然想到  如果想让一个被动技能能够让主角攻击时吸血···该怎么办····(好吧···我的问题有点过多了·····)
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
116 小时
注册时间
2008-5-12
帖子
264
8
发表于 2011-5-20 06:33:14 | 只看该作者
无视回避需要  ≪200x/XP 機能再現≫ 这个脚本的支持 你没有当然没效果

    # ≪200x/XP 機能再現≫
    :whole_attack => "WHOLE_ATTACK|全体攻击",
    :ignore_eva   => "IGNORE_EVA|回避无视",
    # ≪装備品オプション追加≫
    :multi_attack_count => '(\d+)\s*(?:TIMES_ATTACK|回攻撃)',
  }
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ 200x/XP 機能再現 - KGC_ReproduceFunctions ◆ VX ◆
  3. #_/    ◇ Last update : 2009/01/18 ◇
  4. #_/----------------------------------------------------------------------------
  5. #_/  200x/XP の機能を再現します。
  6. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

  7. #==============================================================================
  8. # ★ カスタマイズ項目 - Customize BEGIN ★
  9. #==============================================================================

  10. module KGC
  11. module ReproduceFunctions
  12.   # ◆ MP 消費武器使用時、消費した MP を表示する
  13.   SHOW_WEAPON_MP_COST_ON_ATTACK = true

  14.   # ◆ 「武器属性」と見なす属性の範囲
  15.   #  この属性を持つスキルは、同じ属性を持つ武器を装備していないと
  16.   #  使用できなくなります。
  17.   #   ※素手は 1(格闘)扱いです。
  18.   #  範囲オブジェクト(1..6 など)または整数の配列で指定します。
  19.   WEAPON_ELEMENTS = [1..6]
  20.   # [1..6] は [1, 2, 3, 4, 5, 6] と書いてもOK。
  21.   # [1..4, 5, 6] のように、両方が混ざってもOK。
  22. end
  23. end

  24. #==============================================================================
  25. # ☆ カスタマイズ項目終了 - Customize END ☆
  26. #==============================================================================

  27. $imported = {} if $imported == nil
  28. $imported["ReproduceFunctions"] = true

  29. module KGC::ReproduceFunctions
  30.   #--------------------------------------------------------------------------
  31.   # ○ 武器属性を整数配列に変換
  32.   #--------------------------------------------------------------------------
  33.   def self.create_weapon_element_list
  34.     result = []
  35.     WEAPON_ELEMENTS.each { |e|
  36.       if e.is_a?(Range)
  37.         result |= e.to_a
  38.       elsif e.is_a?(Integer)
  39.         result |= [e]
  40.       end
  41.     }
  42.     return result.sort
  43.   end

  44.   # 武器属性配列
  45.   WEAPON_ELEMENT_ID_LIST = create_weapon_element_list

  46.   module Regexp
  47.     module BaseItem
  48.       # オートステート
  49.       AUTO_STATE = /<(?:AUTO_STATE|オートステート)\s*(\d+(?:\s*,\s*\d+)*)>/i
  50.       # 全体攻撃
  51.       WHOLE_ATTACK = /<(?:WHOLE_ATTACK|全体攻撃)>/i
  52.       # 回避率無視
  53.       IGNORE_EVA = /<(?:IGNORE_EVA|回避率?無視)>/i
  54.       # 消費MP
  55.       MP_COST = /<(?:MP_COST|消費MP)\s*([\-]?\d+)>/i
  56.       # クリティカル率
  57.       CRITICAL = /<(?:CRITICAL|クリティカル率)\s*(\-?\d+)>/i
  58.     end

  59.     module Item
  60.       # アイテム使用回数
  61.       MULTI_USABLE = /<(?:MULTI_USABLE|使用回数)\s*(\d+)>/i
  62.       # スキル発動アイテム
  63.       EXEC_SKILL = /<(?:EXEC_SKILL|スキル発動)\s*(\d+)>/i
  64.     end

  65.     module Enemy
  66.       # 半透明
  67.       TRANSLUCENT = /<(?:TRANSLUCENT|半透明)>/i
  68.       # クリティカル率
  69.       CRITICAL = /<(?:CRITICAL|クリティカル率)\s*(\d+)>/i
  70.     end

  71.     module State
  72.       # パラメータ名
  73.       PARAMETER_NAME = {
  74.         "maxhp"=>"MAXHP_RATE|最大HP",
  75.         "maxmp"=>"MAXMP_RATE|最大MP"
  76.       }
  77.       # 打撃関係度で封印 (日本語)
  78.       SEAL_ATK_F_JP = /<打撃関係度\s*(\d+)\s*以上封印>/
  79.       # 打撃関係度で封印 (英語)
  80.       SEAL_ATK_F_EN = /<SEAL_ATK_F\s*(\d+)>/i
  81.       # 精神関係度で封印 (日本語)
  82.       SEAL_SPI_F_JP = /<精神関係度\s*(\d+)\s*以上封印>/
  83.       # 精神関係度で封印 (英語)
  84.       SEAL_SPI_F_EN = /<SEAL_SPI_F\s*(\d+)>/i
  85.       # 付加ステート
  86.       PLUS_STATE = /<(?:PLUS_STATE|付加ステート)\s*(\d+(?:\s*,\s*\d+)*)>/i
  87.     end
  88.   end
  89. end

  90. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  91. #==============================================================================
  92. # ■ RPG::BaseItem
  93. #==============================================================================

  94. class RPG::BaseItem
  95.   #--------------------------------------------------------------------------
  96.   # ○ 再現機能のキャッシュ生成
  97.   #--------------------------------------------------------------------------
  98.   def create_reproduce_functions_cache
  99.     @__whole_attack = false
  100.     @__ignore_eva = false
  101.     @__mp_cost = 0
  102.     @__cri = 0

  103.     self.note.each_line { |line|
  104.       case line
  105.       when KGC::ReproduceFunctions::Regexp::BaseItem::WHOLE_ATTACK
  106.         # 全体攻撃
  107.         @__whole_attack = true
  108.       when KGC::ReproduceFunctions::Regexp::BaseItem::IGNORE_EVA
  109.         # 回避率無視
  110.         @__ignore_eva = true
  111.       when KGC::ReproduceFunctions::Regexp::BaseItem::MP_COST
  112.         # 通常攻撃消費 MP
  113.         @__mp_cost += $1.to_i
  114.       when KGC::ReproduceFunctions::Regexp::BaseItem::CRITICAL
  115.         # クリティカル修正
  116.         @__cri += $1.to_i
  117.       end
  118.     }

  119.     create_auto_state_cache
  120.   end
  121.   #--------------------------------------------------------------------------
  122.   # ○ オートステートのキャッシュ生成
  123.   #--------------------------------------------------------------------------
  124.   def create_auto_state_cache
  125.     # ID のキャッシュ生成
  126.     @__auto_state_ids = []
  127.     @__auto_state_ids_battle = []
  128.     self.note.each_line { |line|
  129.       next unless line =~ KGC::ReproduceFunctions::Regexp::BaseItem::AUTO_STATE
  130.       $1.scan(/\d+/).each { |num|
  131.         if (state = $data_states[num.to_i]) != nil
  132.           @__auto_state_ids_battle << state.id
  133.           unless state.battle_only
  134.             @__auto_state_ids << state.id
  135.           end
  136.         end
  137.       }
  138.     }

  139.     # オブジェクトのキャッシュ作成
  140.     @__auto_states = []
  141.     @__auto_state_ids.each { |i|
  142.       @__auto_states << $data_states[i]
  143.     }
  144.     @__auto_states_battle = []
  145.     @__auto_state_ids_battle.each { |i|
  146.       @__auto_states_battle << $data_states[i]
  147.     }
  148.   end
  149.   #--------------------------------------------------------------------------
  150.   # ○ 全体攻撃判定
  151.   #--------------------------------------------------------------------------
  152.   def whole_attack
  153.     create_reproduce_functions_cache if @__whole_attack == nil
  154.     return @__whole_attack
  155.   end
  156.   #--------------------------------------------------------------------------
  157.   # ○ 回避無視判定
  158.   #--------------------------------------------------------------------------
  159.   def ignore_eva
  160.     create_reproduce_functions_cache if @__ignore_eva == nil
  161.     return @__ignore_eva
  162.   end
  163.   #--------------------------------------------------------------------------
  164.   # ○ 通常攻撃消費 MP
  165.   #--------------------------------------------------------------------------
  166.   def mp_cost
  167.     create_reproduce_functions_cache if @__mp_cost == nil
  168.     return @__mp_cost
  169.   end
  170.   #--------------------------------------------------------------------------
  171.   # ○ クリティカル修正
  172.   #--------------------------------------------------------------------------
  173.   def cri
  174.     create_reproduce_functions_cache if @__cri == nil
  175.     return @__cri
  176.   end
  177.   #--------------------------------------------------------------------------
  178.   # ○ オートステート ID
  179.   #--------------------------------------------------------------------------
  180.   def auto_state_ids
  181.     return ($game_temp.in_battle ? auto_state_ids_battle : auto_state_ids_always)
  182.   end
  183.   #--------------------------------------------------------------------------
  184.   # ○ オートステート ID (常時)
  185.   #--------------------------------------------------------------------------
  186.   def auto_state_ids_always
  187.     create_reproduce_functions_cache if @__auto_state_ids == nil
  188.     return @__auto_state_ids
  189.   end
  190.   #--------------------------------------------------------------------------
  191.   # ○ オートステート ID (戦闘時)
  192.   #--------------------------------------------------------------------------
  193.   def auto_state_ids_battle
  194.     create_reproduce_functions_cache if @__auto_state_ids_battle == nil
  195.     return @__auto_state_ids_battle
  196.   end
  197.   #--------------------------------------------------------------------------
  198.   # ○ オートステート
  199.   #--------------------------------------------------------------------------
  200.   def auto_states
  201.     return ($game_temp.in_battle ? auto_states_battle : auto_states_always)
  202.   end
  203.   #--------------------------------------------------------------------------
  204.   # ○ オートステート (常時)
  205.   #--------------------------------------------------------------------------
  206.   def auto_states_always
  207.     create_reproduce_functions_cache if @__auto_states == nil
  208.     return @__auto_states
  209.   end
  210.   #--------------------------------------------------------------------------
  211.   # ○ オートステート (戦闘時)
  212.   #--------------------------------------------------------------------------
  213.   def auto_states_battle
  214.     create_reproduce_functions_cache if @__auto_states_battle == nil
  215.     return @__auto_states_battle
  216.   end
  217. end

  218. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  219. #==============================================================================
  220. # ■ RPG::Item
  221. #==============================================================================

  222. class RPG::Item < RPG::UsableItem
  223.   #--------------------------------------------------------------------------
  224.   # ○ 再現機能のキャッシュ生成
  225.   #--------------------------------------------------------------------------
  226.   def create_reproduce_functions_cache
  227.     super
  228.     @__usable_count = 1
  229.     @__skill_id = 0

  230.     self.note.each_line { |line|
  231.       case line
  232.       when KGC::ReproduceFunctions::Regexp::Item::MULTI_USABLE
  233.         # 使用可能回数
  234.         @__usable_count = $1.to_i
  235.       when KGC::ReproduceFunctions::Regexp::Item::EXEC_SKILL
  236.         # 発動スキル ID
  237.         @__skill_id = $1.to_i
  238.       end
  239.     }
  240.   end
  241.   #--------------------------------------------------------------------------
  242.   # ● アニメーション ID
  243.   #--------------------------------------------------------------------------
  244.   def animation_id
  245.     if exec_skill?
  246.       return $data_skills[skill_id].animation_id
  247.     else
  248.       return @animation_id
  249.     end
  250.   end
  251.   #--------------------------------------------------------------------------
  252.   # ○ 使用可能回数
  253.   #--------------------------------------------------------------------------
  254.   def usable_count
  255.     create_reproduce_functions_cache if @__usable_count == nil
  256.     return @__usable_count
  257.   end
  258.   #--------------------------------------------------------------------------
  259.   # ○ スキル発動判定
  260.   #--------------------------------------------------------------------------
  261.   def exec_skill?
  262.     return (skill_id > 0)
  263.   end
  264.   #--------------------------------------------------------------------------
  265.   # ○ 発動スキル ID
  266.   #--------------------------------------------------------------------------
  267.   def skill_id
  268.     create_reproduce_functions_cache if @__skill_id == nil
  269.     return @__skill_id
  270.   end
  271. end

  272. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  273. #==============================================================================
  274. # ■ RPG::Skill
  275. #==============================================================================

  276. class RPG::Skill < RPG::UsableItem
  277.   #--------------------------------------------------------------------------
  278.   # ○ 再現機能のキャッシュ生成
  279.   #--------------------------------------------------------------------------
  280.   def create_reproduce_functions_cache
  281.     super

  282.     @__weapon_element_set =
  283.       self.element_set & KGC::ReproduceFunctions::WEAPON_ELEMENT_ID_LIST
  284.   end
  285.   #--------------------------------------------------------------------------
  286.   # ○ 使用時に必要な武器属性を取得
  287.   #--------------------------------------------------------------------------
  288.   def weapon_element_set
  289.     create_reproduce_functions_cache if @__weapon_element_set == nil
  290.     return @__weapon_element_set
  291.   end
  292. end

  293. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  294. #==============================================================================
  295. # ■ RPG::Enemy
  296. #==============================================================================

  297. class RPG::Enemy
  298.   #--------------------------------------------------------------------------
  299.   # ○ 再現機能のキャッシュ生成
  300.   #--------------------------------------------------------------------------
  301.   def create_reproduce_functions_cache
  302.     @__translucent = false
  303.     @__cri = 0

  304.     self.note.each_line { |line|
  305.       case line
  306.       when KGC::ReproduceFunctions::Regexp::Enemy::TRANSLUCENT
  307.         # 半透明
  308.         @__translucent = true
  309.       when KGC::ReproduceFunctions::Regexp::Enemy::CRITICAL
  310.         # クリティカル修正
  311.         @__cri += $1.to_i
  312.       end
  313.     }
  314.   end
  315.   #--------------------------------------------------------------------------
  316.   # ○ 半透明
  317.   #--------------------------------------------------------------------------
  318.   def translucent?
  319.     create_reproduce_functions_cache if @__translucent == nil
  320.     return @__translucent
  321.   end
  322.   #--------------------------------------------------------------------------
  323.   # ○ クリティカル修正
  324.   #--------------------------------------------------------------------------
  325.   def cri
  326.     create_reproduce_functions_cache if @__cri == nil
  327.     return @__cri
  328.   end
  329. end

  330. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  331. #==============================================================================
  332. # ■ RPG::State
  333. #==============================================================================

  334. class RPG::State
  335.   #--------------------------------------------------------------------------
  336.   # ○ 再現機能のキャッシュ生成
  337.   #--------------------------------------------------------------------------
  338.   def create_reproduce_functions_cache
  339.     @__seal_atk_f = 999
  340.     @__seal_spi_f = 999
  341.     @__plus_state_set = []

  342.     self.note.each_line { |line|
  343.       case line
  344.       when KGC::ReproduceFunctions::Regexp::State::SEAL_ATK_F_JP,
  345.            KGC::ReproduceFunctions::Regexp::State::SEAL_ATK_F_EN
  346.         # 封印するスキルの打撃関係度
  347.         @__seal_atk_f = $1.to_i
  348.       when KGC::ReproduceFunctions::Regexp::State::SEAL_SPI_F_JP,
  349.            KGC::ReproduceFunctions::Regexp::State::SEAL_SPI_F_EN
  350.         # 封印するスキルの精神関係度
  351.         @__seal_spi_f = $1.to_i
  352.       when KGC::ReproduceFunctions::Regexp::State::PLUS_STATE
  353.         # 付加ステート
  354.         $1.scan(/\d+/).each { |num|
  355.           if (state = $data_states[num.to_i]) != nil
  356.             @__plus_state_set << state.id
  357.           end
  358.         }
  359.       end
  360.     }

  361.     create_parameter_rate_cache
  362.   end
  363.   #--------------------------------------------------------------------------
  364.   # ○ パラメータ修正値のキャッシュ生成
  365.   #--------------------------------------------------------------------------
  366.   def create_parameter_rate_cache
  367.     @__parameter_rate = {}
  368.     # 初期化
  369.     KGC::ReproduceFunctions::Regexp::State::PARAMETER_NAME.each_key { |k|
  370.       @__parameter_rate[k] = 100
  371.     }
  372.     # メモ反映
  373.     self.note.each_line { |line|
  374.       KGC::ReproduceFunctions::Regexp::State::PARAMETER_NAME.each { |k, v|
  375.         if line =~ /<(?:#{v})[ ]*(\d+)[%%]>/i
  376.           @__parameter_rate[k] = @__parameter_rate[k] * $1.to_i / 100
  377.           break
  378.         end
  379.       }
  380.     }
  381.   end
  382.   #--------------------------------------------------------------------------
  383.   # ○ MaxHP 修正
  384.   #--------------------------------------------------------------------------
  385.   def maxhp_rate
  386.     create_reproduce_functions_cache if @__parameter_rate == nil
  387.     return @__parameter_rate["maxhp"]
  388.   end
  389.   #--------------------------------------------------------------------------
  390.   # ○ MaxMP 修正
  391.   #--------------------------------------------------------------------------
  392.   def maxmp_rate
  393.     create_reproduce_functions_cache if @__parameter_rate == nil
  394.     return @__parameter_rate["maxmp"]
  395.   end
  396.   #--------------------------------------------------------------------------
  397.   # ○ 封印するスキルの打撃関係度
  398.   #--------------------------------------------------------------------------
  399.   def seal_atk_f
  400.     create_reproduce_functions_cache if @__seal_atk_f == nil
  401.     return @__seal_atk_f
  402.   end
  403.   #--------------------------------------------------------------------------
  404.   # ○ 封印するスキルの精神関係度
  405.   #--------------------------------------------------------------------------
  406.   def seal_spi_f
  407.     create_reproduce_functions_cache if @__seal_spi_f == nil
  408.     return @__seal_spi_f
  409.   end
  410.   #--------------------------------------------------------------------------
  411.   # ○ 付加ステート
  412.   #--------------------------------------------------------------------------
  413.   def plus_state_set
  414.     create_reproduce_functions_cache if @__plus_state_set == nil
  415.     return @__plus_state_set
  416.   end
  417. end

  418. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  419. #==============================================================================
  420. # ■ Game_Temp
  421. #==============================================================================

  422. class Game_Temp
  423.   #--------------------------------------------------------------------------
  424.   # ● 公開インスタンス変数
  425.   #--------------------------------------------------------------------------
  426.   attr_accessor :exec_skill_on_item       # アイテムによるスキル発動フラグ
  427.   #--------------------------------------------------------------------------
  428.   # ● オブジェクト初期化
  429.   #--------------------------------------------------------------------------
  430.   alias initialize_KGC_ReproduceFunctions initialize
  431.   def initialize
  432.     initialize_KGC_ReproduceFunctions

  433.     @exec_skill_on_item = false
  434.   end
  435. end

  436. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  437. #==============================================================================
  438. # ■ Game_Battler
  439. #==============================================================================

  440. class Game_Battler
  441.   #--------------------------------------------------------------------------
  442.   # ● 現在のステートをオブジェクトの配列で取得
  443.   #--------------------------------------------------------------------------
  444.   alias states_KGC_ReproduceFunctions states
  445.   def states
  446.     result = states_KGC_ReproduceFunctions + auto_states
  447.     result.sort! { |a, b| b.priority <=> a.priority }
  448.     return result
  449.   end
  450.   #--------------------------------------------------------------------------
  451.   # ● MaxHP の取得
  452.   #--------------------------------------------------------------------------
  453.   alias maxhp_KGC_ReproduceFunctions maxhp
  454.   def maxhp
  455.     n = maxhp_KGC_ReproduceFunctions
  456.     states.each { |state| n *= state.maxhp_rate / 100.0 }
  457.     return [[Integer(n), 1].max, maxhp_limit].min
  458.   end
  459.   #--------------------------------------------------------------------------
  460.   # ● MaxMP の取得
  461.   #--------------------------------------------------------------------------
  462.   alias maxmp_KGC_ReproduceFunctions maxmp
  463.   def maxmp
  464.     n = maxmp_KGC_ReproduceFunctions
  465.     states.each { |state| n *= state.maxmp_rate / 100.0 }
  466.     limit = (defined?(maxmp_limit) ? maxmp_limit : 9999)
  467.     return [[Integer(n), 0].max, limit].min
  468.   end
  469.   #--------------------------------------------------------------------------
  470.   # ● HP の取得
  471.   #--------------------------------------------------------------------------
  472.   alias hp_KGC_ReproduceFunctions_Battler hp
  473.   def hp
  474.     @hp = maxhp if @hp > maxhp
  475.     return hp_KGC_ReproduceFunctions_Battler
  476.   end
  477.   #--------------------------------------------------------------------------
  478.   # ● MP の取得
  479.   #--------------------------------------------------------------------------
  480.   alias mp_KGC_ReproduceFunctions_Battler mp
  481.   def mp
  482.     @mp = maxmp if @mp > maxmp
  483.     return mp_KGC_ReproduceFunctions_Battler
  484.   end
  485.   #--------------------------------------------------------------------------
  486.   # ○ オートステートの ID を取得
  487.   #--------------------------------------------------------------------------
  488.   def auto_state_ids
  489.     return auto_states(true)
  490.   end
  491.   #--------------------------------------------------------------------------
  492.   # ○ オートステートの配列を取得
  493.   #     id_only : ID のみを取得
  494.   #--------------------------------------------------------------------------
  495.   def auto_states(id_only = false)
  496.     return []
  497.   end
  498.   #--------------------------------------------------------------------------
  499.   # ● ステートの検査
  500.   #     state_id : ステート ID
  501.   #    該当するステートが付加されていれば true を返す。
  502.   #--------------------------------------------------------------------------
  503.   alias state_KGC_ReproduceFunctions? state?
  504.   def state?(state_id)
  505.     return (state_KGC_ReproduceFunctions?(state_id) || auto_state?(state_id))
  506.   end
  507.   #--------------------------------------------------------------------------
  508.   # ● ステートの付加
  509.   #     state_id : ステート ID
  510.   #--------------------------------------------------------------------------
  511.   alias add_state_KGC_ReproduceFunctions add_state
  512.   def add_state(state_id)
  513.     last_states = @states.dup

  514.     add_state_KGC_ReproduceFunctions(state_id)

  515.     if (@states - last_states).include?(state_id)  # ステートが付加された場合
  516.       state = $data_states[state_id]
  517.       # [付加するステート] を適用
  518.       state.plus_state_set.each { |i|
  519.         add_state(i)
  520.       }
  521.     end
  522.   end
  523.   #--------------------------------------------------------------------------
  524.   # ○ オートステートの検査
  525.   #     state_id : ステート ID
  526.   #    該当するステートが付加されていれば true を返す。
  527.   #--------------------------------------------------------------------------
  528.   def auto_state?(state_id)
  529.     return auto_state_ids.include?(state_id)
  530.   end
  531.   #--------------------------------------------------------------------------
  532.   # ● ステートの解除
  533.   #     state_id : ステート ID
  534.   #--------------------------------------------------------------------------
  535.   alias remove_state_KGC_ReproduceFunctions remove_state
  536.   def remove_state(state_id)
  537.     if auto_state?(state_id)  # オートステートは解除しない
  538.       return
  539.     end

  540.     remove_state_KGC_ReproduceFunctions(state_id)
  541.   end
  542.   #--------------------------------------------------------------------------
  543.   # ○ 半透明化判定
  544.   #--------------------------------------------------------------------------
  545.   def translucent?
  546.     # エネミーの場合は Game_Enemy で再定義
  547.     return false
  548.   end
  549.   #--------------------------------------------------------------------------
  550.   # ○ 装備オプション [全体攻撃] の取得
  551.   #--------------------------------------------------------------------------
  552.   def whole_attack
  553.     return false
  554.   end
  555.   #--------------------------------------------------------------------------
  556.   # ○ 装備オプション [回避無視] の取得
  557.   #--------------------------------------------------------------------------
  558.   def ignore_eva
  559.     return false
  560.   end
  561.   #--------------------------------------------------------------------------
  562.   # ○ MP ダメージ加算
  563.   #     value : 加算する値
  564.   #--------------------------------------------------------------------------
  565.   def add_mp_damage(value)
  566.     @mp_damage += value
  567.   end
  568.   #--------------------------------------------------------------------------
  569.   # ○ 通常攻撃の消費 MP 計算
  570.   #--------------------------------------------------------------------------
  571.   def calc_attack_mp_cost
  572.     return 0
  573.   end
  574.   #--------------------------------------------------------------------------
  575.   # ● スキルの使用可能判定
  576.   #     skill : スキル
  577.   #--------------------------------------------------------------------------
  578.   alias skill_can_use_KGC_ReproduceFunctions? skill_can_use?
  579.   def skill_can_use?(skill)
  580.     return false unless skill.is_a?(RPG::Skill)
  581.     unless $imported["CooperationSkill"] && $game_temp.judging_cooperation_skill
  582.       return false if skill_seal?(skill)
  583.       return false unless skill_satisfied_weapon_element?(skill)
  584.     end

  585.     return skill_can_use_KGC_ReproduceFunctions?(skill)
  586.   end
  587.   #--------------------------------------------------------------------------
  588.   # ○ スキル封印判定
  589.   #--------------------------------------------------------------------------
  590.   def skill_seal?(skill)
  591.     return (seal_atk_f <= skill.atk_f || seal_spi_f <= skill.spi_f)
  592.   end
  593.   #--------------------------------------------------------------------------
  594.   # ○ 封印する打撃関係度を取得
  595.   #--------------------------------------------------------------------------
  596.   def seal_atk_f
  597.     n = 999
  598.     states.each { |state| n = [n, state.seal_atk_f].min }
  599.     return n
  600.   end
  601.   #--------------------------------------------------------------------------
  602.   # ○ 封印する精神関係度を取得
  603.   #--------------------------------------------------------------------------
  604.   def seal_spi_f
  605.     n = 999
  606.     states.each { |state| n = [n, state.seal_spi_f].min }
  607.     return n
  608.   end
  609.   #--------------------------------------------------------------------------
  610.   # ○ 必要な武器属性を満たしているか判定
  611.   #--------------------------------------------------------------------------
  612.   def skill_satisfied_weapon_element?(skill)
  613.     return true
  614.   end
  615.   #--------------------------------------------------------------------------
  616.   # ● 最終回避率の計算
  617.   #     user : 攻撃者、スキルまたはアイテムの使用者
  618.   #     obj  : スキルまたはアイテム (通常攻撃の場合は nil)
  619.   #--------------------------------------------------------------------------
  620.   alias calc_eva_KGC_ReproduceFunctions calc_eva
  621.   def calc_eva(user, obj = nil)
  622.     eva = calc_eva_KGC_ReproduceFunctions(user, obj)

  623.     physical = (obj == nil || obj.physical_attack)
  624.     if physical && user.ignore_eva  # 物理攻撃かつ回避無視の場合
  625.       eva = 0
  626.     end
  627.     return eva
  628.   end
  629.   #--------------------------------------------------------------------------
  630.   # ● アイテムの効果適用
  631.   #     user : アイテムの使用者
  632.   #     item : アイテム
  633.   #--------------------------------------------------------------------------
  634.   alias item_effect_KGC_ReproduceFunctions item_effect
  635.   def item_effect(user, item)
  636.     # スキル発動判定
  637.     if item.exec_skill?
  638.       $game_temp.exec_skill_on_item = true
  639.       skill_effect(user, $data_skills[item.skill_id])
  640.       $game_temp.exec_skill_on_item = false
  641.     else
  642.       item_effect_KGC_ReproduceFunctions(user, item)
  643.     end
  644.   end
  645. end

  646. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  647. #==============================================================================
  648. # ■ Game_BattleAction
  649. #==============================================================================

  650. class Game_BattleAction
  651.   #--------------------------------------------------------------------------
  652.   # ● 通常攻撃のターゲット作成
  653.   #--------------------------------------------------------------------------
  654.   alias make_attack_targets_KGC_ReproduceFunctions make_attack_targets
  655.   def make_attack_targets
  656.     unless battler.whole_attack  # 全体攻撃でない
  657.       return make_attack_targets_KGC_ReproduceFunctions
  658.     end

  659.     targets = []
  660.     if battler.confusion?
  661.       targets += friends_unit.existing_members
  662.     else
  663.       targets += opponents_unit.existing_members
  664.     end
  665.     if battler.dual_attack      # 連続攻撃
  666.       targets += targets
  667.     end
  668.     return targets.compact
  669.   end
  670. end

  671. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  672. #==============================================================================
  673. # ■ Game_Actor
  674. #==============================================================================

  675. class Game_Actor < Game_Battler
  676.   #--------------------------------------------------------------------------
  677.   # ● クリティカル率の取得
  678.   #--------------------------------------------------------------------------
  679.   alias cri_KGC_ReproduceFunctions cri
  680.   def cri
  681.     n = cri_KGC_ReproduceFunctions

  682.     equips.compact.each { |item| n += item.cri }
  683.     return n
  684.   end
  685.   #--------------------------------------------------------------------------
  686.   # ○ オートステートの配列を取得
  687.   #     id_only : ID のみを取得
  688.   #--------------------------------------------------------------------------
  689.   def auto_states(id_only = false)
  690.     result = []
  691.     equips.compact.each { |item|
  692.       result |= (id_only ? item.auto_state_ids : item.auto_states)
  693.     }
  694.     return result
  695.   end
  696.   #--------------------------------------------------------------------------
  697.   # ○ 装備オプション [全体攻撃] の取得
  698.   #--------------------------------------------------------------------------
  699.   def whole_attack
  700.     equips.compact.each { |item|
  701.       return true if item.whole_attack
  702.     }
  703.     return false
  704.   end
  705.   #--------------------------------------------------------------------------
  706.   # ○ 装備オプション [回避無視] の取得
  707.   #--------------------------------------------------------------------------
  708.   def ignore_eva
  709.     equips.compact.each { |item|
  710.       return true if item.ignore_eva
  711.     }
  712.     return false
  713.   end
  714.   #--------------------------------------------------------------------------
  715.   # ○ 通常攻撃の消費 MP 計算
  716.   #--------------------------------------------------------------------------
  717.   def calc_attack_mp_cost
  718.     n = 0
  719.     equips.compact.each { |item|
  720.       n += item.mp_cost
  721.     }
  722.     return n
  723.   end
  724.   #--------------------------------------------------------------------------
  725.   # ○ 必要な武器属性を満たしているか判定
  726.   #--------------------------------------------------------------------------
  727.   def skill_satisfied_weapon_element?(skill)
  728.     elements = skill.weapon_element_set
  729.     return (self.element_set & elements) == elements
  730.   end
  731. end

  732. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  733. #==============================================================================
  734. # ■ Game_Enemy
  735. #==============================================================================

  736. class Game_Enemy < Game_Battler
  737.   #--------------------------------------------------------------------------
  738.   # ○ 半透明化判定
  739.   #--------------------------------------------------------------------------
  740.   def translucent?
  741.     return enemy.translucent?
  742.   end
  743.   #--------------------------------------------------------------------------
  744.   # ● クリティカル率の取得
  745.   #--------------------------------------------------------------------------
  746.   alias cri_KGC_ReproduceFunctions cri
  747.   def cri
  748.     n = cri_KGC_ReproduceFunctions
  749.     if enemy.has_critical && enemy.cri != 0
  750.       n += enemy.cri - 10
  751.     end
  752.     return n
  753.   end
  754. end

  755. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  756. #==============================================================================
  757. # ■ Game_Party
  758. #==============================================================================

  759. class Game_Party < Game_Unit
  760.   #--------------------------------------------------------------------------
  761.   # ● オブジェクト初期化
  762.   #--------------------------------------------------------------------------
  763.   alias initialize_KGC_ReproduceFunctions initialize
  764.   def initialize
  765.     initialize_KGC_ReproduceFunctions

  766.     @item_use_count = {}  # 所持品使用回数ハッシュ (アイテム ID)
  767.   end
  768.   #--------------------------------------------------------------------------
  769.   # ● アイテムの減少
  770.   #     item          : アイテム
  771.   #     n             : 個数
  772.   #     include_equip : 装備品も含める
  773.   #--------------------------------------------------------------------------
  774.   alias lose_item_KGC_ReproduceFunctions lose_item
  775.   def lose_item(item, n, include_equip = false)
  776.     lose_item_KGC_ReproduceFunctions(item, n, include_equip)

  777.     # アイテムが無くなったら使用回数をリセット
  778.     if item.is_a?(RPG::Item) && item.consumable && item_number(item) == 0
  779.       @item_use_count[item.id] = 0
  780.     end
  781.   end
  782.   #--------------------------------------------------------------------------
  783.   # ● アイテムの消耗
  784.   #     item : アイテム
  785.   #--------------------------------------------------------------------------
  786.   alias consume_item_KGC_ReproduceFunctions consume_item
  787.   def consume_item(item)
  788.     if item.is_a?(RPG::Item) && item.consumable
  789.       update_use_count(item)

  790.       # 使用回数が 0 の場合のみ消耗
  791.       if @item_use_count[item.id] == 0
  792.         consume_item_KGC_ReproduceFunctions(item)
  793.       end
  794.     else
  795.       consume_item_KGC_ReproduceFunctions(item)
  796.     end
  797.   end
  798.   #--------------------------------------------------------------------------
  799.   # ○ 使用回数の更新
  800.   #     item : アイテム
  801.   #    指定アイテムの使用回数を 1 増やす。
  802.   #    使用後に消耗する場合は、使用回数を 0 にする。
  803.   #--------------------------------------------------------------------------
  804.   def update_use_count(item)
  805.     if @item_use_count == nil
  806.       @item_use_count = {}
  807.     end

  808.     unless @item_use_count.has_key?(item.id)
  809.       @item_use_count[item.id] = 0
  810.     end
  811.     @item_use_count[item.id] += 1
  812.     # 使用可能回数に達したら、使用回数を 0 にする
  813.     if @item_use_count[item.id] >= item.usable_count
  814.       @item_use_count[item.id] = 0
  815.     end
  816.   end
  817. end

  818. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  819. #==============================================================================
  820. # ■ Sprite_Battler
  821. #==============================================================================

  822. class Sprite_Battler < Sprite_Base
  823.   #--------------------------------------------------------------------------
  824.   # ● エフェクトの更新
  825.   #--------------------------------------------------------------------------
  826.   alias update_effect_KGC_ReproduceFunctions update_effect
  827.   def update_effect
  828.     # エフェクト実行前に半透明化判定をしておく
  829.     trans_flag = (@effect_duration > 0 && @battler.translucent?)

  830.     update_effect_KGC_ReproduceFunctions

  831.     if trans_flag
  832.       self.opacity /= 2
  833.     end
  834.   end
  835. end

  836. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  837. #==============================================================================
  838. # ■ Scene_Battle
  839. #==============================================================================

  840. class Scene_Battle < Scene_Base
  841.   #--------------------------------------------------------------------------
  842.   # ● 対象敵キャラ選択の開始
  843.   #--------------------------------------------------------------------------
  844.   alias start_target_enemy_selection_KGC_ReproduceFunctions start_target_enemy_selection
  845.   def start_target_enemy_selection
  846.     # 全体通常攻撃なら選択をスキップ
  847.     if @active_battler.action.kind == 0 &&
  848.         @active_battler.action.basic == 0 &&
  849.         @active_battler.whole_attack
  850.       next_actor
  851.       return
  852.     end

  853.     start_target_enemy_selection_KGC_ReproduceFunctions
  854.   end
  855.   #--------------------------------------------------------------------------
  856.   # ● 戦闘行動の実行 : 攻撃
  857.   #--------------------------------------------------------------------------
  858.   alias execute_action_attack_KGC_ReproduceFunctions execute_action_attack
  859.   def execute_action_attack
  860.     execute_action_attack_KGC_ReproduceFunctions

  861.     # 攻撃者の MP 消費
  862.     mp_cost = @active_battler.calc_attack_mp_cost
  863.     return if mp_cost == 0
  864.     @active_battler.mp -= mp_cost
  865.     if KGC::ReproduceFunctions::SHOW_WEAPON_MP_COST_ON_ATTACK
  866.       @active_battler.add_mp_damage(mp_cost)
  867.       display_mp_damage(@active_battler)
  868.     end
  869.   end
  870. end
复制代码
另外请留意这行字 【基本機能】≪200x/XP 機能再現≫ より下に導入してください。
就是被动技能脚本要放在这个机能再现脚本的下面。
吸血我不会  我并不会写脚本。

虽然我不懂日文 但是这个是能看明白的
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
6 小时
注册时间
2011-5-18
帖子
10
9
 楼主| 发表于 2011-5-20 11:53:30 | 只看该作者
谢谢帮助~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-15 19:51

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表