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

Project1

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

[已经解决] 武器及防具附带效果

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
40 小时
注册时间
2007-12-16
帖子
96
跳转到指定楼层
1
发表于 2012-3-18 20:38:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 银月湖子爵 于 2012-3-22 18:01 编辑

请问怎样做能达到武器及防具拥有百分比的属性?比如装备上武器能增加力量10%,或者加生命10%或其他属性10?

Lv1.梦旅人

梦石
0
星屑
137
在线时间
464 小时
注册时间
2012-1-16
帖子
1227
2
发表于 2012-3-18 21:09:23 | 只看该作者
本来装备上某样武器后就会加属性。

(我觉得百分比那样加太赖了....)原因:
       话说一人物的攻击力为:1  ,但他有买高级装备的钱,买了样攻击力加 百分之五十 的武器,那他的攻击力也只是..2....
           但一个人物的攻击力为:100,那他的总攻击就是150了,不协调呀!
这里什么都没有
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
354
在线时间
1036 小时
注册时间
2011-5-19
帖子
2098
3
发表于 2012-3-18 22:09:21 | 只看该作者
可以用公共事件。
1,装备上某样武器后附加状态,让状态中调整攻击力。
2,用公共事件。预先开启公共事件的开关,用条件的分歧来判断某主角是否装备了那样武器,如果装备了,可以附加150%攻击力的状态,或是用变量读取那个人的攻击力,除2后加入到主角的攻击力中。

评分

参与人数 1星屑 +60 收起 理由
iisnow + 60 认可答案

查看全部评分

回复

使用道具 举报

Lv3.寻梦者

灌水局大小姐

梦石
0
星屑
3960
在线时间
1690 小时
注册时间
2012-3-10
帖子
2469
4
发表于 2012-3-22 11:12:48 | 只看该作者
武器装备附加百分比属性 貌似只有随机装备才行的?

如果LZ喜欢附加百分比的话,那就请搜索 “复杂装备系统之随机属性 by 沉影不器”
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
210
在线时间
56 小时
注册时间
2011-11-22
帖子
57
5
发表于 2012-3-24 16:55:23 | 只看该作者
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ パッシブスキル - KGC_PassiveSkill ◆ VX ◆
  3. #_/    ◇ Last update : 2008/11/16 ◇
  4. #_/----------------------------------------------------------------------------
  5. #_/  習得するだけで能力値上昇効果を発揮するスキルを作成します。
  6. #_/============================================================================
  7. #_/ 【基本機能】≪200x/XP 機能再現≫ より下に導入してください。
  8. #_/ 【装備】≪装備品オプション追加≫ より下に導入してください。
  9. #_/ 【装備】≪装備拡張≫ より下に導入してください。
  10. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

  11. $imported = {} if $imported == nil
  12. $imported["PassiveSkill"] = true

  13. module KGC
  14. module PassiveSkill
  15.   # パッシブスキル用パラメータリスト
  16.   PARAMS = {
  17.     :maxhp => "MAXHP|最大HP",
  18.     :maxmp => "MAXMP|最大MP",
  19.     :atk   => "ATK|攻撃力",
  20.     :def   => "DEF|防御力",
  21.     :spi   => "SPI|精神力",
  22.     :agi   => "AGI|敏捷性",
  23.     :hit   => "HIT|命中率",
  24.     :eva   => "EVA|回避率",
  25.     :cri   => "CRI|クリティカル率",
  26.     :odds  => "ODDS|狙われやすさ",
  27.   }

  28.   # パッシブスキル用属性・ステートリスト
  29.   ARRAYS = {
  30.     :attack_element => "ATTACK_ELEMENT|攻撃属性",
  31.     :plus_state     => "PLUS_STATE|付加ステート",
  32.     :invalid_state  => "INVALID_STATE|無効化ステート",
  33.     :auto_state     => "AUTO_STATE|オートステート",
  34.   }

  35.   # パッシブスキル用耐性リスト
  36.   RESISTANCES = {
  37.     # ≪装備品オプション追加≫
  38.     :element => "ELEMENT_RESISTANCE|属性耐性",
  39.     :state   => "STATE_RESISTANCE|ステート耐性",
  40.   }

  41.   # パッシブスキル用特殊効果リスト
  42.   EFFECTS = {
  43.     # デフォ
  44.     :two_swords_style => "TWO_SWORDS_STYLE|二刀流",
  45.     :auto_battle      => "AUTO_BATTLE|自動戦闘",
  46.     :super_guard      => "SUPER_GUARD|強力防御",
  47.     :pharmacology     => "PHARMACOLOGY|薬の知識",
  48.     :fast_attack      => "FAST_ATTACK|ターン内先制",
  49.     :dual_attack      => "DUAL_ATTACK|連続攻撃",
  50.     :critical_bonus   => "CRITICAL_BONUS|クリティカル頻発",
  51.     :prevent_critical => "PREVENT_CRITICAL|クリティカル防止",
  52.     :half_mp_cost     => "HALF_MP_COST|消費MP半分",
  53.     :double_exp_gain  => "DOUBLE_EXP_GAIN|取得経験値[22]倍",
  54.     # ≪200x/XP 機能再現≫
  55.     :whole_attack => "WHOLE_ATTACK|全体攻撃",
  56.     :ignore_eva   => "IGNORE_EVA|回避無視",
  57.     # ≪装備品オプション追加≫
  58.     :multi_attack_count => '(\d+)\s*(?:TIMES_ATTACK|回攻撃)',
  59.   }

  60.   # 正規表現
  61.   module Regexp
  62.     # スキル
  63.     module Skill
  64.       # パッシブスキル開始
  65.       BEGIN_PASSIVE = /<(?:PASSIVE_SKILL|パッシブスキル)>/i
  66.       # パッシブスキル終了
  67.       END_PASSIVE = /<\/(?:PASSIVE_SKILL|パッシブスキル)>/i

  68.       # パラメータ修正
  69.       #  MAXHP +20  など
  70.       PASSIVE_PARAMS = /^\s*([^:\+\-\d\s]+)\s*([\+\-]\d+)([%%])?\s*$/
  71.       # 属性・ステートリスト
  72.       #  攻撃属性 1,2,3  など
  73.       PASSIVE_ARRAYS = /^\s*([^:\+\-\d\s]+)\s*(\d+(?:\s*,\s*\d+)*)\s*$/
  74.       # 耐性
  75.       PASSIVE_RESISTANCES = /^\s*([^:\+\-\d\s]+)\s(\d+):(\-?\d+)[%%]?\s*$/
  76.       # 特殊効果
  77.       PASSIVE_EFFECTS = /^\s*([^:\+\-\d\s]+)/
  78.     end
  79.   end
  80. end
  81. end

  82. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  83. #==============================================================================
  84. # □ KGC::Commands
  85. #==============================================================================

  86. module KGC
  87. module Commands
  88.   module_function
  89.   #--------------------------------------------------------------------------
  90.   # ○ パッシブスキルの修正値を再設定
  91.   #--------------------------------------------------------------------------
  92.   def restore_passive_rev
  93.     (1...$data_actors.size).each { |i|
  94.       actor = $game_actors[i]
  95.       actor.restore_passive_rev
  96.     }
  97.   end
  98. end
  99. end

  100. class Game_Interpreter
  101.   include KGC::Commands
  102. end

  103. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  104. #==============================================================================
  105. # ■ RPG::Skill
  106. #==============================================================================

  107. class RPG::Skill < RPG::UsableItem
  108.   #--------------------------------------------------------------------------
  109.   # ○ パッシブスキルのキャッシュを生成
  110.   #--------------------------------------------------------------------------
  111.   def create_passive_skill_cache
  112.     @__passive = false
  113.     @__passive_params = {}
  114.     @__passive_params_rate = {}
  115.     @__passive_arrays = {}
  116.     @__passive_resistances = {}
  117.     @__passive_effects = { :multi_attack_count => 1 }

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

  268. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  269. #==============================================================================
  270. # ■ Game_Actor
  271. #==============================================================================

  272. class Game_Actor < Game_Battler
  273.   #--------------------------------------------------------------------------
  274.   # ○ クラス変数
  275.   #--------------------------------------------------------------------------
  276.   @@passive_equip_test = false  # パッシブスキル用装備テストフラグ
  277.   #--------------------------------------------------------------------------
  278.   # ● セットアップ
  279.   #     actor_id : アクター ID
  280.   #--------------------------------------------------------------------------
  281.   alias setup_KGC_PassiveSkill setup
  282.   def setup(actor_id)
  283.     reset_passive_rev

  284.     setup_KGC_PassiveSkill(actor_id)

  285.     restore_passive_rev
  286.   end
  287.   #--------------------------------------------------------------------------
  288.   # ○ パッシブスキルの修正値を初期化
  289.   #--------------------------------------------------------------------------
  290.   def reset_passive_rev
  291.     @passive_params = {}
  292.     @passive_params_rate = {}
  293.     @passive_arrays = {}
  294.     @passive_resistances = {}
  295.     @passive_effects = {}
  296.     KGC::PassiveSkill::PARAMS.each_key { |k|
  297.       @passive_params[k] = 0
  298.       @passive_params_rate[k] = 100
  299.     }
  300.     KGC::PassiveSkill::ARRAYS.each_key { |k| @passive_arrays[k] = [] }
  301.     KGC::PassiveSkill::RESISTANCES.each_key { |k| @passive_resistances[k] = [] }
  302.     KGC::PassiveSkill::EFFECTS.each_key { |k| @passive_effects[k] = false }
  303.     @passive_effects[:multi_attack_count] = 1
  304.   end
  305.   #--------------------------------------------------------------------------
  306.   # ○ パッシブスキルの修正値を再設定
  307.   #--------------------------------------------------------------------------
  308.   def restore_passive_rev
  309.     return if @__passive_rev_restoring

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

  312.     reset_passive_rev

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

  319.       skill.passive_params.each { |k, v| @passive_params[k] += v }
  320.       skill.passive_params_rate.each { |k, v| @passive_params_rate[k] += v }
  321.       skill.passive_arrays.each { |k, v| @passive_arrays[k] |= v }
  322.       skill.passive_resistances.each { |k, v|
  323.         v.each_with_index { |n, i|
  324.           next if n == nil
  325.           @passive_resistances[k][i] = 100 if @passive_resistances[k][i] == nil
  326.           @passive_resistances[k][i] += n - 100
  327.         }
  328.       }
  329.       skill.passive_effects.each { |k, v|
  330.         case k
  331.         when :multi_attack_count
  332.           @passive_effects[k] = [ v, @passive_effects[k] ].max
  333.         else
  334.           @passive_effects[k] |= v
  335.         end
  336.       }
  337.     }
  338.     $game_temp.in_battle = last_in_battle

  339.     @__passive_rev_restoring = true
  340.     # HP/MP を修正
  341.     self.hp = self.hp
  342.     self.mp = self.mp

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

  397.     change_equip_KGC_PassiveSkill(equip_type, item, test)

  398.     restore_passive_rev
  399.     @@passive_equip_test = false
  400.   end
  401.   #--------------------------------------------------------------------------
  402.   # ● 装備の破棄
  403.   #     item : 破棄する武器 or 防具
  404.   #    武器/防具の増減で「装備品も含める」のとき使用する。
  405.   #--------------------------------------------------------------------------
  406.   alias discard_equip_KGC_PassiveSkill discard_equip
  407.   def discard_equip(item)
  408.     discard_equip_KGC_PassiveSkill(item)

  409.     restore_passive_rev
  410.   end

  411.   if $imported["AddEquipmentOptions"]
  412.   #--------------------------------------------------------------------------
  413.   # ○ 属性耐性の取得
  414.   #     element_id : 属性 ID
  415.   #--------------------------------------------------------------------------
  416.   alias element_resistance_KGC_PassiveSkill element_resistance
  417.   def element_resistance(element_id)
  418.     n = element_resistance_KGC_PassiveSkill(element_id)
  419.     rate = passive_resistances[:element][element_id]
  420.     n += (rate == nil ? 100 : rate) - 100
  421.     return n
  422.   end
  423.   #--------------------------------------------------------------------------
  424.   # ○ ステート耐性の取得
  425.   #     state_id : ステート ID
  426.   #--------------------------------------------------------------------------
  427.   alias state_resistance_KGC_PassiveSkill state_resistance
  428.   def state_resistance(state_id)
  429.     n = state_resistance_KGC_PassiveSkill(state_id)
  430.     rate = passive_resistances[:state][state_id]
  431.     n += (rate == nil ? 100 : rate) - 100
  432.     return [n, 0].max
  433.   end
  434.   end  # <-- if $imported["AddEquipmentOptions"]

  435.   #--------------------------------------------------------------------------
  436.   # ● ステート無効化判定
  437.   #     state_id : ステート ID
  438.   #--------------------------------------------------------------------------
  439.   alias state_resist_KGC_PassiveSkill? state_resist?
  440.   def state_resist?(state_id)
  441.     return true if passive_arrays[:invalid_state].include?(state_id)

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

  555.     return (two_swords_style_KGC_PassiveSkill ||
  556.       passive_effects[:two_swords_style])
  557.   end
  558.   #--------------------------------------------------------------------------
  559.   # ● オプション [自動戦闘] の取得
  560.   #--------------------------------------------------------------------------
  561.   alias auto_battle_KGC_PassiveSkill auto_battle
  562.   def auto_battle
  563.     return (auto_battle_KGC_PassiveSkill || passive_effects[:auto_battle])
  564.   end
  565.   #--------------------------------------------------------------------------
  566.   # ● オプション [強力防御] の取得
  567.   #--------------------------------------------------------------------------
  568.   alias super_guard_KGC_PassiveSkill super_guard
  569.   def super_guard
  570.     return (super_guard_KGC_PassiveSkill || passive_effects[:super_guard])
  571.   end
  572.   #--------------------------------------------------------------------------
  573.   # ● オプション [薬の知識] の取得
  574.   #--------------------------------------------------------------------------
  575.   alias pharmacology_KGC_PassiveSkill pharmacology
  576.   def pharmacology
  577.     return (pharmacology_KGC_PassiveSkill || passive_effects[:pharmacology])
  578.   end
  579.   #--------------------------------------------------------------------------
  580.   # ● 武器オプション [ターン内先制] の取得
  581.   #--------------------------------------------------------------------------
  582.   alias fast_attack_KGC_PassiveSkill fast_attack
  583.   def fast_attack
  584.     return (fast_attack_KGC_PassiveSkill || passive_effects[:fast_attack])
  585.   end
  586.   #--------------------------------------------------------------------------
  587.   # ● 武器オプション [連続攻撃] の取得
  588.   #--------------------------------------------------------------------------
  589.   alias dual_attack_KGC_PassiveSkill dual_attack
  590.   def dual_attack
  591.     if $imported["AddEquipmentOptions"]
  592.       # 2回攻撃以上なら無視
  593.       return false if passive_effects[:multi_attack_count] >= 2
  594.     end

  595.     return (dual_attack_KGC_PassiveSkill || passive_effects[:dual_attack])
  596.   end
  597.   #--------------------------------------------------------------------------
  598.   # ● 防具オプション [クリティカル防止] の取得
  599.   #--------------------------------------------------------------------------
  600.   alias prevent_critical_KGC_PassiveSkill prevent_critical
  601.   def prevent_critical
  602.     return (prevent_critical_KGC_PassiveSkill ||
  603.       passive_effects[:prevent_critical])
  604.   end
  605.   #--------------------------------------------------------------------------
  606.   # ● 防具オプション [消費 MP 半分] の取得
  607.   #--------------------------------------------------------------------------
  608.   alias half_mp_cost_KGC_KGC_PassiveSkill half_mp_cost
  609.   def half_mp_cost
  610.     return (half_mp_cost_KGC_KGC_PassiveSkill ||
  611.       passive_effects[:half_mp_cost])
  612.   end
  613.   #--------------------------------------------------------------------------
  614.   # ● 防具オプション [取得経験値 2 倍] の取得
  615.   #--------------------------------------------------------------------------
  616.   alias double_exp_gain_KGC_PassiveSkill double_exp_gain
  617.   def double_exp_gain
  618.     return (double_exp_gain_KGC_PassiveSkill ||
  619.       passive_effects[:double_exp_gain])
  620.   end
  621.   #--------------------------------------------------------------------------
  622.   # ● スキルを覚える
  623.   #     skill_id : スキル ID
  624.   #--------------------------------------------------------------------------
  625.   alias learn_skill_KGC_PassiveSkill learn_skill
  626.   def learn_skill(skill_id)
  627.     learn_skill_KGC_PassiveSkill(skill_id)

  628.     restore_passive_rev
  629.   end
  630.   #--------------------------------------------------------------------------
  631.   # ● スキルを忘れる
  632.   #     skill_id : スキル ID
  633.   #--------------------------------------------------------------------------
  634.   alias forget_skill_KGC_PassiveSkill forget_skill
  635.   def forget_skill(skill_id)
  636.     forget_skill_KGC_PassiveSkill(skill_id)

  637.     restore_passive_rev
  638.   end

  639. if $imported["ReproduceFunctions"]

  640.   #--------------------------------------------------------------------------
  641.   # ○ オートステートの配列を取得
  642.   #     id_only : ID のみを取得
  643.   #--------------------------------------------------------------------------
  644.   alias auto_states_KGC_PassiveSkill auto_states
  645.   def auto_states(id_only = false)
  646.     result = auto_states_KGC_PassiveSkill(id_only)

  647.     passive_arrays[:auto_state].each { |i|
  648.       result << (id_only ? i : $data_states[i])
  649.     }
  650.     result.uniq!
  651.     return result
  652.   end
  653.   #--------------------------------------------------------------------------
  654.   # ○ 装備オプション [全体攻撃] の取得
  655.   #--------------------------------------------------------------------------
  656.   alias whole_attack_KGC_PassiveSkill whole_attack
  657.   def whole_attack
  658.     return (whole_attack_KGC_PassiveSkill || passive_effects[:whole_attack])
  659.   end
  660.   #--------------------------------------------------------------------------
  661.   # ○ 装備オプション [回避無視] の取得
  662.   #--------------------------------------------------------------------------
  663.   alias ignore_eva_KGC_PassiveSkill ignore_eva
  664.   def ignore_eva
  665.     return (ignore_eva_KGC_PassiveSkill || passive_effects[:ignore_eva])
  666.   end

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

  668. if $imported["AddEquipmentOptions"]

  669.   #--------------------------------------------------------------------------
  670.   # ○ 攻撃回数の取得
  671.   #--------------------------------------------------------------------------
  672.   alias multi_attack_count_KGC_PassiveSkill multi_attack_count
  673.   def multi_attack_count
  674.     n = multi_attack_count_KGC_PassiveSkill
  675.     return [ n, passive_effects[:multi_attack_count] ].max
  676.   end

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

  678. end  # <-- class

  679. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  680. #==============================================================================
  681. # ■ Window_EquipItem
  682. #==============================================================================

  683. class Window_EquipItem < Window_Item
  684.   #--------------------------------------------------------------------------
  685.   # ● オブジェクト初期化
  686.   #     x          : ウィンドウの X 座標
  687.   #     y          : ウィンドウの Y 座標
  688.   #     width      : ウィンドウの幅
  689.   #     height     : ウィンドウの高さ
  690.   #     actor      : アクター
  691.   #     equip_type : 装備部位 (0~4)
  692.   #--------------------------------------------------------------------------
  693.   alias initialize_KGC_PassiveSkill initialize unless $@
  694.   def initialize(x, y, width, height, actor, equip_type)
  695.     @original_equip_type = equip_type

  696.     initialize_KGC_PassiveSkill(x, y, width, height, actor, equip_type)
  697.   end
  698.   #--------------------------------------------------------------------------
  699.   # ● リフレッシュ
  700.   #--------------------------------------------------------------------------
  701.   alias refresh_KGC_PassiveSkill refresh unless $@
  702.   def refresh
  703.     if @original_equip_type == 1
  704.       @equip_type = (@actor.two_swords_style ? 0 : 1)
  705.     end

  706.     refresh_KGC_PassiveSkill
  707.   end
  708. end

  709. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  710. #==============================================================================
  711. # ■ Scene_File
  712. #==============================================================================

  713. class Scene_File < Scene_Base
  714.   #--------------------------------------------------------------------------
  715.   # ● セーブデータの読み込み
  716.   #     file : 読み込み用ファイルオブジェクト (オープン済み)
  717.   #--------------------------------------------------------------------------
  718.   alias read_save_data_KGC_PassiveSkill read_save_data
  719.   def read_save_data(file)
  720.     read_save_data_KGC_PassiveSkill(file)

  721.     KGC::Commands.restore_passive_rev
  722.     Graphics.frame_reset
  723.   end
  724. end
复制代码
拥有装备后设置习得某被动技能。在此技能的备注里填上
  1. <パッシブスキル>
  2. 精神力 +50%
  3. </パッシブスキル>
复制代码
攻击力什么的也是。
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
149 小时
注册时间
2010-8-10
帖子
53
6
发表于 2013-10-9 17:31:08 | 只看该作者
在复杂装备系统里加入上面的脚本,用了没有效果怎么回事儿?有冲突么?

评分

参与人数 1星屑 -100 收起 理由
怪蜀黍 -100 挖到的古坟

查看全部评分

回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
367
在线时间
41 小时
注册时间
2011-12-16
帖子
8
7
发表于 2022-9-1 09:15:45 | 只看该作者
很强大啊
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-21 23:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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