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

Project1

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

[已经解决] 用什么脚本能使角色有武器精通的技能?

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
22 小时
注册时间
2010-6-16
帖子
85
跳转到指定楼层
1
发表于 2011-4-15 04:05:03 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

Lv1.梦旅人

梦石
0
星屑
50
在线时间
73 小时
注册时间
2008-5-30
帖子
84
3
发表于 2011-4-18 11:14:40 | 只看该作者
额,应该是把被动技能脚本和武器修炼技能脚本合起来用吧 武器技能修炼脚本你搜索一下就有了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
116 小时
注册时间
2008-5-12
帖子
264
2
发表于 2011-4-18 06:34:56 | 只看该作者
本帖最后由 shinliwei 于 2011-4-18 06:36 编辑

回复 伪娘小司 的帖子

有个脚本叫武器决定技能  还有个脚本叫被动技能
两个合起来就是你想要的了

被动技能  日站上的
  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
复制代码
武器决定技能  沉影不器写的
  1. #==============================================================================
  2. # ■ Game_Battler
  3. #------------------------------------------------------------------------------
  4. #  处理战斗者的类。这个类作为 Game_Actor 类与 Game_Enemy 类的
  5. # 超级类来使用。
  6. #==============================================================================
  7.   SW_SET = [1,2,3,4,5,6,7,8,9,10]    # 此处设定武器和技能关联的属性id
  8. #==============================================================================
  9. class Game_Battler
  10.   #--------------------------------------------------------------------------
  11.   # ● 判断是否可以使用技能
  12.   #     skill : 技能
  13.   #     self.weapons : 武器id的数组
  14.   #--------------------------------------------------------------------------
  15.   def skill_can_use?(skill)
  16.     if self.is_a?(Game_Actor)
  17.       $data_weapons[0] = RPG::Weapon.new
  18.       $data_weapons[0].element_set =[]
  19.       sw_boolean = false # 判断武器和技能关联
  20.       s = SW_SET & $data_skills[skill.id].element_set
  21.       if s.empty?
  22.         sw_boolean = true
  23.       else
  24.         for i in s
  25.           if  $data_weapons[self.weapon_id].element_set.include?(i)
  26.             sw_boolean = true
  27.             break
  28.           end
  29.         end
  30.       end
  31.       $data_weapons[0] = nil
  32.       return false if sw_boolean == false
  33.     end
  34.     return false unless skill.is_a?(RPG::Skill)
  35.     return false unless movable?
  36.     return false if silent? and skill.spi_f > 0
  37.     return false if calc_mp_cost(skill) > mp
  38.     if $game_temp.in_battle
  39.       return skill.battle_ok?
  40.     else
  41.       return skill.menu_ok?
  42.     end
  43.   end
  44. end
复制代码

点评

我找到了一个比这个好一点的脚本 这个不能设置装备XX武器时才出现效果吧?  发表于 2011-4-29 15:48
<passive_skill> 需要提升的能力 如ATK +10 就是攻击加10 </passive_skill> 在技能的背猪栏里写这个 能力见34行~78行 57、58、75、76、78行能力需别的脚本支持   发表于 2011-4-24 15:49
谢谢了 不过有汉化的就跟好了  发表于 2011-4-23 22:59

评分

参与人数 1星屑 +2 收起 理由
伪娘小司 + 2

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-11 23:51

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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