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

Project1

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

[已经过期] 请问有技能类的护援脚本吗?

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
262 小时
注册时间
2009-10-13
帖子
112
跳转到指定楼层
1
发表于 2011-9-28 18:10:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
能在投能选单中 使用
然后帮队友进行防御

Lv2.观梦者

(?????)

梦石
0
星屑
736
在线时间
1327 小时
注册时间
2011-7-18
帖子
3184

贵宾

2
发表于 2011-9-28 22:23:21 | 只看该作者
可以附加一个一回合之后解除的防御力上升的状态,然后技能附加这个状态,对象是己方单体。
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
262 小时
注册时间
2009-10-13
帖子
112
3
 楼主| 发表于 2011-9-29 01:50:50 | 只看该作者
各种压力的猫君 发表于 2011-9-28 22:23
可以附加一个一回合之后解除的防御力上升的状态,然后技能附加这个状态,对象是己方单体。 ...

但这样无法令前者因受伤而减血....
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1165
在线时间
274 小时
注册时间
2011-7-24
帖子
272
4
发表于 2011-9-30 20:28:16 | 只看该作者
脚本      我神马都不知道.....:sleepy:
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ DQ特技風スキル - KGC_DQSkill ◆ VX ◆
  3. #_/    ◇ Last update : 2009/09/04 ◇
  4. #_/----------------------------------------------------------------------------
  5. #_/  どこかで見たようなスキルを作成します。
  6. #_/============================================================================
  7. #_/ 【基本機能】≪ターゲット拡張≫ より下に導入してください。
  8. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

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

  12. module KGC
  13. module DQSkill
  14.   # ◆ 「かばう」発動時のメッセージ
  15.   #   1つ目の %s : かばう側
  16.   #   2つ目の %s : かばわれる側
  17.   PROTECT_NORMAL_MSG = "%sは%sをかばった!"
  18. end
  19. end

  20. #==============================================================================
  21. # ☆ カスタマイズ項目終了 - Customize END ☆
  22. #==============================================================================

  23. $imported = {} if $imported == nil
  24. $imported["DQSkill"] = true

  25. module KGC
  26. module DQSkill
  27.   module Regexp
  28.     module Skill
  29.       # 大防御
  30.       HYPER_GUARD = /<(?:HYPER_GUARD|大防御)\s*(\d+)[%%]?>/i
  31.       # 被ダメージ変動
  32.       DAMAGE_CHANGE = /<(?:DAMAGE_CHANGE|被ダメージ変動)\s*(\d+)[%%]?>/i
  33.       # かばう
  34.       PROTECT_NORMAL = /<(?:PROTECT_NORMAL|かばう)>/i
  35.       # 仁王立ち
  36.       PROTECT_ALL = /<(?:PROTECT_ALL|仁王立ち|におうだち)>/i
  37.       # ガードアタック
  38.       GUARD_ATTACK = /<(?:GUARD_ATTACK|ガードアタック|シールドアタック)>/i
  39.     end
  40.   end
  41. end
  42. end

  43. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  44. #==============================================================================
  45. # ■ Vocab
  46. #==============================================================================

  47. module Vocab
  48.   # 「かばう」発動メッセージ
  49.   ProtectNormal = KGC::DQSkill::PROTECT_NORMAL_MSG
  50. end

  51. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  52. #==============================================================================
  53. # ■ RPG::Skill
  54. #==============================================================================

  55. class RPG::Skill < RPG::UsableItem
  56.   #--------------------------------------------------------------------------
  57.   # ○ DQ特技のキャッシュを生成
  58.   #--------------------------------------------------------------------------
  59.   def create_dq_skill_cache
  60.     @__hyper_guard        = false
  61.     @__hyper_guard_rate   = 10
  62.     @__damage_change      = false
  63.     @__damage_change_rate = 100
  64.     @__protect_normal     = false
  65.     @__protect_all        = false
  66.     @__guard_attack       = false

  67.     self.note.each_line { |line|
  68.       case line
  69.       when KGC::DQSkill::Regexp::Skill::HYPER_GUARD
  70.         # 大防御
  71.         @__hyper_guard      = true
  72.         @__hyper_guard_rate = $1.to_i
  73.       when KGC::DQSkill::Regexp::Skill::DAMAGE_CHANGE
  74.         # ダメージ変動
  75.         @__damage_change      = true
  76.         @__damage_change_rate = $1.to_i
  77.       when KGC::DQSkill::Regexp::Skill::PROTECT_NORMAL
  78.         # かばう
  79.         @__protect_normal = true
  80.       when KGC::DQSkill::Regexp::Skill::PROTECT_ALL
  81.         # 仁王立ち
  82.         @__protect_all = true
  83.       when KGC::DQSkill::Regexp::Skill::GUARD_ATTACK
  84.         # ガードアタック
  85.         @__guard_attack = true
  86.       end
  87.     }
  88.   end
  89.   #--------------------------------------------------------------------------
  90.   # ○ 大防御
  91.   #--------------------------------------------------------------------------
  92.   def hyper_guard
  93.     create_dq_skill_cache if @__hyper_guard == nil
  94.     return @__hyper_guard
  95.   end
  96.   alias hyper_guard? hyper_guard
  97.   #--------------------------------------------------------------------------
  98.   # ○ 大防御変動率
  99.   #--------------------------------------------------------------------------
  100.   def hyper_guard_rate
  101.     create_dq_skill_cache if @__hyper_guard_rate == nil
  102.     return @__hyper_guard_rate
  103.   end
  104.   #--------------------------------------------------------------------------
  105.   # ○ 被ダメージ変動
  106.   #--------------------------------------------------------------------------
  107.   def damage_change
  108.     create_dq_skill_cache if @__damage_change == nil
  109.     return @__damage_change
  110.   end
  111.   alias damage_change? damage_change
  112.   #--------------------------------------------------------------------------
  113.   # ○ 被ダメージ変動率
  114.   #--------------------------------------------------------------------------
  115.   def damage_change_rate
  116.     create_dq_skill_cache if @__damage_change_rate == nil
  117.     return @__damage_change_rate
  118.   end
  119.   #--------------------------------------------------------------------------
  120.   # ○ かばう
  121.   #--------------------------------------------------------------------------
  122.   def protect_normal
  123.     create_dq_skill_cache if @__protect_normal == nil
  124.     return @__protect_normal
  125.   end
  126.   alias protect_normal? protect_normal
  127.   #--------------------------------------------------------------------------
  128.   # ○ 仁王立ち
  129.   #--------------------------------------------------------------------------
  130.   def protect_all
  131.     create_dq_skill_cache if @__protect_all == nil
  132.     return @__protect_all
  133.   end
  134.   alias protect_all? protect_all
  135.   #--------------------------------------------------------------------------
  136.   # ○ ガードアタック
  137.   #--------------------------------------------------------------------------
  138.   def guard_attack
  139.     create_dq_skill_cache if @__guard_attack == nil
  140.     return @__guard_attack
  141.   end
  142.   alias guard_attack? guard_attack
  143. end

  144. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  145. #==============================================================================
  146. # ■ Game_Battler
  147. #==============================================================================

  148. class Game_Battler
  149.   #--------------------------------------------------------------------------
  150.   # ● 公開インスタンス変数
  151.   #--------------------------------------------------------------------------
  152.   attr_accessor :unprotectable            # 「かばう」不可フラグ
  153.   attr_accessor :protected                # 「かばう」発動済みフラグ
  154.   #--------------------------------------------------------------------------
  155.   # ● 行動効果の保持用変数をクリア
  156.   #--------------------------------------------------------------------------
  157.   alias clear_action_results_KGC_DQSkill clear_action_results
  158.   def clear_action_results
  159.     clear_action_results_KGC_DQSkill

  160.     @protected = false
  161.   end
  162.   #--------------------------------------------------------------------------
  163.   # ● 防御中判定
  164.   #--------------------------------------------------------------------------
  165.   alias guarding_KGC_DQSkill? guarding?
  166.   def guarding?
  167.     return (guarding_KGC_DQSkill? || action.guard_attack?)
  168.   end
  169.   #--------------------------------------------------------------------------
  170.   # ● 防御修正の適用
  171.   #     damage : ダメージ
  172.   #--------------------------------------------------------------------------
  173.   alias apply_guard_KGC_DQSkill apply_guard
  174.   def apply_guard(damage)
  175.     damage = apply_guard_KGC_DQSkill(damage)

  176.     if damage > 0
  177.       if action.hyper_guard?
  178.         damage = damage * action.hyper_guard_rate / 100
  179.       end
  180.       if action.damage_change?
  181.         damage = damage * action.damage_change_rate / 100
  182.       end
  183.     end
  184.     return damage
  185.   end
  186.   #--------------------------------------------------------------------------
  187.   # ○ かばわれているバトラーを取得
  188.   #--------------------------------------------------------------------------
  189.   def protected_battler
  190.     return nil if unprotectable  # 「かばう」不可

  191.     ($game_party.members + $game_troop.members).each { |battler|
  192.       next if battler == self
  193.       next unless battler.movable?
  194.       next unless battler.action.protect_normal?

  195.       if battler.action.skill?
  196.         obj = battler.action.skill
  197.       elsif battler.action.item?
  198.         obj = battler.action.item
  199.       else
  200.         next
  201.       end
  202.       return battler if battler.action.make_obj_targets(obj).include?(self)
  203.     }
  204.     return nil
  205.   end
  206.   #--------------------------------------------------------------------------
  207.   # ● 通常攻撃の効果適用
  208.   #     attacker : 攻撃者
  209.   #--------------------------------------------------------------------------
  210.   alias attack_effect_KGC_DQSkill attack_effect
  211.   def attack_effect(attacker)
  212.     protect_normal_effect(attacker)
  213.     return if @skipped

  214.     attack_effect_KGC_DQSkill(attacker)
  215.   end
  216.   #--------------------------------------------------------------------------
  217.   # ● スキルの効果適用
  218.   #     user  : スキルの使用者
  219.   #     skill : スキル
  220.   #--------------------------------------------------------------------------
  221.   alias skill_effect_KGC_DQSkill skill_effect
  222.   def skill_effect(user, skill)
  223.     protect_normal_effect(user, skill)
  224.     return if @skipped

  225.     skill_effect_KGC_DQSkill(user, skill)
  226.   end
  227.   #--------------------------------------------------------------------------
  228.   # ○ 「かばう」効果の適用
  229.   #     user  : 行動者
  230.   #     skill : スキル (nil なら通常攻撃)
  231.   #--------------------------------------------------------------------------
  232.   def protect_normal_effect(user, skill = nil)
  233.     @protected = false
  234.     battler    = protected_battler
  235.     clear_action_results
  236.     return if battler == nil || user == battler

  237.     @skipped   = true
  238.     @protected = true
  239.     battler.unprotectable = true
  240.     if skill == nil
  241.       battler.attack_effect(user)
  242.     else
  243.       battler.skill_effect(user, skill)
  244.     end
  245.     battler.unprotectable = false
  246.   end
  247. end

  248. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  249. #==============================================================================
  250. # ■ Game_BattleAction
  251. #==============================================================================

  252. class Game_BattleAction
  253.   #--------------------------------------------------------------------------
  254.   # ○ 大防御判定
  255.   #--------------------------------------------------------------------------
  256.   def hyper_guard?
  257.     return (skill? && skill.hyper_guard?)
  258.   end
  259.   #--------------------------------------------------------------------------
  260.   # ○ 大防御変動率取得
  261.   #--------------------------------------------------------------------------
  262.   def hyper_guard_rate
  263.     return 100 unless hyper_guard?

  264.     return skill.hyper_guard_rate
  265.   end
  266.   #--------------------------------------------------------------------------
  267.   # ○ 被ダメージ変動判定
  268.   #--------------------------------------------------------------------------
  269.   def damage_change?
  270.     return (skill? && skill.damage_change?)
  271.   end
  272.   #--------------------------------------------------------------------------
  273.   # ○ 被ダメージ変動率取得
  274.   #--------------------------------------------------------------------------
  275.   def damage_change_rate
  276.     return 100 unless damage_change?

  277.     return skill.damage_change_rate
  278.   end
  279.   #--------------------------------------------------------------------------
  280.   # ○ かばう判定
  281.   #--------------------------------------------------------------------------
  282.   def protect_normal?
  283.     return (skill? && skill.protect_normal?)
  284.   end
  285.   #--------------------------------------------------------------------------
  286.   # ○ 仁王立ち判定
  287.   #--------------------------------------------------------------------------
  288.   def protect_all?
  289.     return (skill? && skill.protect_all?)
  290.   end
  291.   #--------------------------------------------------------------------------
  292.   # ○ ガードアタック判定
  293.   #--------------------------------------------------------------------------
  294.   def guard_attack?
  295.     return (skill? && skill.guard_attack?)
  296.   end
  297.   #--------------------------------------------------------------------------
  298.   # ● 行動スピードの決定
  299.   #--------------------------------------------------------------------------
  300.   alias make_speed_KGC_DQSkill make_speed
  301.   def make_speed
  302.     make_speed_KGC_DQSkill

  303.     @speed += 2000 if hyper_guard?
  304.     @speed += 1500 if protect_all?
  305.   end
  306.   #--------------------------------------------------------------------------
  307.   # ● 通常攻撃のターゲット作成
  308.   #--------------------------------------------------------------------------
  309.   alias make_attack_targets_KGC_DQSkill make_attack_targets
  310.   def make_attack_targets
  311.     result = make_attack_targets_KGC_DQSkill

  312.     unless battler.confusion?
  313.       result = apply_protect_all(result)
  314.     end
  315.     return result
  316.   end
  317.   #--------------------------------------------------------------------------
  318.   # ● スキルまたはアイテムのターゲット作成
  319.   #     obj : スキルまたはアイテム
  320.   #--------------------------------------------------------------------------
  321.   alias make_obj_targets_KGC_DQSkill make_obj_targets
  322.   def make_obj_targets(obj)
  323.     result = make_obj_targets_KGC_DQSkill(obj)

  324.     if obj.for_opponent?
  325.       result = apply_protect_all(result)
  326.     end
  327.     return result
  328.   end
  329.   #--------------------------------------------------------------------------
  330.   # ○ 仁王立ちを適用
  331.   #     targets : ターゲット
  332.   #--------------------------------------------------------------------------
  333.   def apply_protect_all(targets)
  334.     result = targets
  335.     # 仁王立ち使用者取得
  336.     protect_battlers = []
  337.     opponents_unit.existing_members.each { |battler|
  338.       protect_battlers << battler if battler.action.protect_all?
  339.     }
  340.     unless protect_battlers.empty?
  341.       # 攻撃を仁王立ち使用者に集中
  342.       num    = targets.size
  343.       result = []
  344.       num.times { |i|
  345.         result << protect_battlers[rand(protect_battlers.size)]
  346.       }
  347.     end
  348.     return result
  349.   end
  350. end

  351. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  352. #==============================================================================
  353. # ■ Scene_Battle
  354. #==============================================================================

  355. class Scene_Battle < Scene_Base
  356.   #--------------------------------------------------------------------------
  357.   # ● アニメーションの表示
  358.   #     targets      : 対象者の配列
  359.   #     animation_id : アニメーション ID (-1: 通常攻撃と同じ)
  360.   #--------------------------------------------------------------------------
  361.   alias display_animation_KGC_DQSkill display_animation
  362.   def display_animation(targets, animation_id)
  363.     display_animation_KGC_DQSkill(
  364.       remove_protected_targets(targets), animation_id)
  365.   end
  366.   #--------------------------------------------------------------------------
  367.   # ● 攻撃アニメーションの表示
  368.   #     targets : 対象者の配列
  369.   #    敵キャラの場合は [敵の通常攻撃] 効果音を演奏して一瞬待つ。
  370.   #    アクターの場合は二刀流を考慮 (左手武器は反転して表示) 。
  371.   #--------------------------------------------------------------------------
  372.   alias display_attack_animation_KGC_DQSkill display_attack_animation
  373.   def display_attack_animation(targets)
  374.     display_attack_animation_KGC_DQSkill(remove_protected_targets(targets))
  375.   end
  376.   #--------------------------------------------------------------------------
  377.   # ○ かばわれた対象者を除去
  378.   #     targets : 対象者の配列
  379.   #--------------------------------------------------------------------------
  380.   def remove_protected_targets(targets)
  381.     return targets if @protected

  382.     targets = targets.clone
  383.     targets.delete_if { |target| target.protected_battler != nil }
  384.     return targets
  385.   end
  386.   #--------------------------------------------------------------------------
  387.   # ● 行動結果の表示
  388.   #     target : 対象者
  389.   #     obj    : スキルまたはアイテム
  390.   #--------------------------------------------------------------------------
  391.   alias display_action_effects_KGC_DQSkill display_action_effects
  392.   def display_action_effects(target, obj = nil)
  393.     if target.protected
  394.       @protected = true
  395.       display_protect(target, obj)
  396.       display_action_effects(target.protected_battler, obj)
  397.       target.protected = false
  398.       @protected = false
  399.       return
  400.     end

  401.     display_action_effects_KGC_DQSkill(target, obj)
  402.   end
  403.   #--------------------------------------------------------------------------
  404.   # ○ 「かばう」時のメッセージを表示
  405.   #     target : 対象者
  406.   #     obj    : スキルまたはアイテム
  407.   #--------------------------------------------------------------------------
  408.   def display_protect(target, obj)
  409.     text = sprintf(Vocab::ProtectNormal,
  410.       target.protected_battler.name, target.name)
  411.     @message_window.add_instant_text(text)
  412.     wait(30)

  413.     if obj == nil
  414.       unless @active_battler.is_a?(Game_Enemy)
  415.         display_attack_animation([@active_battler])
  416.       end
  417.     else
  418.       display_animation([@active_battler], obj.animation_id)
  419.     end

  420.     @message_window.back_one
  421.   end
  422. end
复制代码
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
262 小时
注册时间
2009-10-13
帖子
112
5
 楼主| 发表于 2011-10-1 06:14:28 | 只看该作者
昔日辉煌灬 发表于 2011-9-30 20:28
脚本      我神马都不知道.....

那以上脚本是什么作用...
里面日文看不懂....请解释一下..谢谢
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-9 01:38

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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