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

Project1

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

[已经过期] KGC的怒气必杀技显示怒气槽的问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
115 小时
注册时间
2010-5-3
帖子
346
跳转到指定楼层
1
发表于 2010-11-1 21:10:38 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 反斗奇彬 于 2010-11-1 21:15 编辑
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ オーバードライブ - KGC_OverDrive ◆ VX ◆
  3. #_/    ◇ Last update : 2009/11/01 ◇
  4. #_/----------------------------------------------------------------------------
  5. #_/  作成使用特殊气槽的技能(超必杀)
  6. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

  7. #==============================================================================
  8. # ★  Customize项目 - Customize BEGIN ★
  9. #==============================================================================
  10. =begin
  11. 特技的「备注 」栏加入 <オーバードライブ n> 。
  12. n是特殊气槽的消费量。(请输入半角文字)
  13. 写上了省略消费量的 <オーバードライブ>的话、消费1整格  (1000)。

  14. 一个技能不能使用气槽的1整格 (1000) 以上。
  15. (<オーバードライブ n> 的话、气槽在n以上的话可以)
  16. <オーバードライブ n>可以使用 <over_drive n> 代替使用。
  17. 数值之后加上 + 的话、会消费掉所有的气槽。
  18. (如果消费量没满就不能用)
  19. 这时,气槽量越多威力就越大
  20. =end
  21. module KGC
  22. module OverDrive
  23.   # ◆ 特殊气槽的最大值
  24.   #  一般1000便可以了,可以自己微调。
  25.   GAUGE_MAX = 1000
  26.   # ◆ 特殊气槽的增加量
  27.   #  若增加量高,则容易储满。
  28.   #  如果指定负数,则代表特殊气槽减少
  29.   #  「受到伤害」是、减少的HP乘上一定比例计算出来的增加量
  30.   #  (500的话、等于HP减少了500,气槽增加值也为500)
  31. #修改------------------------------------------------
  32. GAIN_RATE = [
  33.      30,  # 攻击
  34.     200,  # 受到伤害
  35.       0,  # 胜利
  36.    -300,  # 逃走
  37.     100,  # 单独战斗
  38.      20,  # 行动
  39.     300,  # 濒死
  40.      25,  # 防御
  41.   ]  # ← 这个 ] 不可以删掉!
  42. #修改------------------------------------------------
  43.   # ◆ 气槽的初始量
  44.   DEFAULT_GAUGE_NUMBER = 1

  45.   # ◆ 默认会增加气槽的类型
  46.   #   0..攻击  1..受到伤害  2..胜利  3..逃走  4..单独战斗  5..行动
  47.   #   6..濒死  7..防御
  48. #修改------------------------------------------------
  49.   DEFAULT_ACTOR_DRIVE_TYPE = [0, 1, 6]        # 角色DEFAULT_ACTOR_DRIVE_TYPE = [0, 1, 6]        # 角色
  50.   DEFAULT_ENEMY_DRIVE_TYPE = [0, 1, 4, 5, 6]  # 敌人DEFAULT_ENEMY_DRIVE_TYPE = [0, 1, 4, 5, 6]  # 敌人
  51. #修改------------------------------------------------
  52.   # ◆ 气槽中的能量颜色
  53.   #  数值  : 和 \C[n] 颜色一样。
  54.   #  Color : 指定颜色。 ( Color.new(255, 128, 128) 等 )
  55.   GAUGE_NORMAL_START_COLOR = 14  # 一般开始时的颜色
  56.   GAUGE_NORMAL_END_COLOR   =  6  # 一般结束时的颜色
  57.   GAUGE_MAX_START_COLOR    = 10  # 最大时的颜色
  58.   GAUGE_MAX_END_COLOR      =  2  # 最大结束时的颜色

  59.   # ◆ 特殊气槽设计为和一般气槽相同
  60.   #  只在导入≪一般气槽能量表现≫时有效
  61.   ENABLE_GENERIC_GAUGE = true
  62.   # ◆ 气槽中的能量设定
  63.   #  图片从 "Graphics/System" 中读取
  64.   GAUGE_IMAGE     = "GaugeOD"     # 一般时的图片
  65.   GAUGE_MAX_IMAGE = "GaugeODMax"  # 最大时的图片
  66.   GAUGE_OFFSET    = [-23, -2]     # 位置修正 [x, y]
  67.   GAUGE_LENGTH    = -4            # 长度修正
  68.   GAUGE_SLOPE     = 30            # 倾斜度 (-89 ~ 89)

  69.   # ◆ 气槽能量的Y坐标修正值
  70.   #  未使用一般气槽时,才有效
  71.   #  如果是 -8、HP/MP 和气槽在同一位置。
  72.   GAUGE_OFFSET_Y = -8
  73.   # ◆ 能量的数值表示
  74.   #   0 .. 不表示  ※如果有两个能量珠以上时,不推荐这种
  75.   #   1 .. 直接表示 (储存多少直接数字表示)
  76.   #   2 .. 百分比 --> x%
  77.   #   3 .. 百分比 (小数点后一位) --> x.x%
  78.   #   4 .. 百分比 (小数点后两位) --> x.xx%
  79.   #   5 .. 按能量珠表示
  80.   GAUGE_VALUE_STYLE = 2
  81.   # ◆ 能量储存值的表示文字的字体大小
  82.   #  太大的话字体会模糊
  83.   GAUGE_VALUE_FONT_SIZE = 14

  84.   # ◆ 死亡(HP 0)时气槽能量归0
  85.   EMPTY_ON_DEAD = true

  86.   # ◆ 不显示气槽的角色
  87.   # 通过输入角色ID归类为不显示气槽
  88.   HIDE_GAUGE_ACTOR = []
  89.   # ◆ 非战斗时不显示气槽
  90.   HIDE_GAUGE_NOT_IN_BATTLE = false
  91.   # ◆ 没有学习到超必杀技能时,不显示气槽
  92.   HIDE_GAUGE_NO_OD_SKILLS  = false#true
  93.   # ◆ 不显示气槽的场合,不能增加能量
  94.   NOT_GAIN_GAUGE_HIDING    = true

  95.   # ◆ 能量不足时不显示超必杀技能
  96.   HIDE_SKILL_LACK_OF_GAUGE = false

  97.   # ◆ 气槽能量的名字
  98.   GAUGE_NAME = "气槽能量"
  99.   # ◆ 使用影响气槽能量的道具时,显示的信息
  100.   OD_GAIN_MESSAGE = {
  101.     :drain_a   => "%s夺取了%s的能量!",  # 吸收: 角色
  102.     :drain_e   => "%s的%s能量被夺取了!",    # 吸收: 敌人
  103.     :loss_a    => "%s减少了%s的能量!",    # 减少: 角色
  104.     :loss_e    => "%s减少了%s的能量!",    # 减少: 敌人
  105.     :recover_a => "%s增加了%s的能量!",    # 增加: 角色
  106.     :recover_e => "%s增加了%s的能量!",    # 增加: 敌人
  107.   }
  108. end
  109. end

  110. #==============================================================================
  111. # ☆  Customize项目结束 - Customize END ☆
  112. #==============================================================================

  113. $imported = {} if $imported == nil
  114. $imported["OverDrive"] = true

  115. module KGC::OverDrive
  116.   # ドライブタイプ
  117.   module Type
  118.     ATTACK  = 0  # 攻击
  119.     DAMAGE  = 1  # 受到伤害
  120.     VICTORY = 2  # 胜利
  121.     ESCAPE  = 3  # 逃走
  122.     ALONE   = 4  # 单独战斗
  123.     ACTION  = 5  # 行动
  124.     FATAL   = 6  # 濒死
  125.     GUARD   = 7  # 防御
  126.   end

  127.   # 储存量表示
  128.   module ValueStyle
  129.     NONE         = 0  # 不显示
  130.     IMMEDIATE    = 1  # 直接表示
  131.     RATE         = 2  # 百分比
  132.     RATE_DETAIL1 = 3  # 百分比 (小数点后一位)
  133.     RATE_DETAIL2 = 4  # 百分比 (小数点后两位)
  134.     NUMBER       = 5  # 按能量珠表示
  135.   end

  136.   module Regexp
  137.     module UsableItem
  138.       # 气槽能量增加
  139.       OD_GAIN = /<(?:OD_GAIN|(?:OD|ドライブ)ゲージ増加)\s*([\+\-]?\d+)>/i
  140.     end

  141.     module Skill
  142.       # 超必杀技能
  143.       OVER_DRIVE = /<(?:OVER_DRIVE|オーバードライブ)\s*(\d+)?(\+)?>/i
  144.       # 能量的增加量
  145.       OD_GAIN_RATE =
  146.         /<(?:OD_GAIN_RATE|(?:OD|ドライブ)ゲージ増加率)\s*(\d+)[%%]?>/i
  147.     end
  148.   end
  149. end

  150. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  151. #==============================================================================
  152. # □ KGC::Commands
  153. #==============================================================================

  154. module KGC
  155. module Commands
  156.   module_function
  157.   #--------------------------------------------------------------------------
  158.   # ○ 角色的气槽能量的增减
  159.   #     actor_id : 角色 ID (-1 : 表示全体)
  160.   #     value    : 增加量 (可以是负数)
  161.   #--------------------------------------------------------------------------
  162.   def gain_actor_od_gauge(actor_id, value)
  163.     if actor_id == -1
  164.       # 操作生存中的我方角色全员的气槽能量
  165.       $game_party.existing_members.each { |actor|
  166.         next unless actor.can_gain_overdrive?
  167.         actor.overdrive += value
  168.       }
  169.     else
  170.       actor = $game_actors[actor_id]
  171.       actor.overdrive += value if actor != nil && actor.exist?
  172.     end
  173.   end
  174.   #--------------------------------------------------------------------------
  175.   # ○ 敌人的气槽能量的增减
  176.   #     enemy_index : 敌人 index (-1 : 表示全体)
  177.   #     value       : 增加量 (可以是负数)
  178.   #--------------------------------------------------------------------------
  179.   def gain_enemy_od_gauge(enemy_index, value)
  180.     if enemy_index == -1
  181.       # 操作生存中的敌方角色全员的气槽能量
  182.       $game_troop.existing_members.each { |enemy|
  183.         enemy.overdrive += value
  184.       }
  185.     else
  186.       enemy = $game_troop.members[enemy_index]
  187.       enemy.overdrive += value if enemy != nil && enemy.exist?
  188.     end
  189.   end
  190.   #--------------------------------------------------------------------------
  191.   # ○ 角色的气槽能量的获得
  192.   #     actor_id    : 角色 ID
  193.   #     variable_id : 可以容纳的返回值的变量数 ID
  194.   #--------------------------------------------------------------------------
  195.   def get_actor_od_gauge(actor_id, variable_id = 0)
  196.     actor = $game_actors[actor_id]
  197.     n = (actor != nil ? actor.overdrive : 0)
  198.     if variable_id > 0
  199.       $game_variables[variable_id] = n
  200.     end
  201.     return n
  202.   end
  203.   #--------------------------------------------------------------------------
  204.   # ○ 敌方的气槽能量的获得
  205.   #     enemy_index : 敌人 index
  206.   #     variable_id : 可以容纳的返回值的变量数 ID
  207.   #--------------------------------------------------------------------------
  208.   def get_enemy_od_gauge(enemy_index, variable_id = 0)
  209.     enemy = $game_troop.members[enemy_index]
  210.     n = (enemy != nil ? enemy.overdrive : 0)
  211.     if variable_id > 0
  212.       $game_variables[variable_id] = n
  213.     end
  214.     return n
  215.   end
  216.   #--------------------------------------------------------------------------
  217.   # ○ 角色的气槽能量的能量珠数
  218.   #     actor_id : 角色 ID (-1 : 表示全体)
  219.   #     number   : 能量珠数
  220.   #--------------------------------------------------------------------------
  221.   def set_actor_od_gauge_number(actor_id, number)
  222.     if actor_id == -1
  223.       # 设定我方角色全体的能量珠数
  224.       $game_party.members.each { |actor|
  225.         actor.drive_gauge_number = number
  226.       }
  227.     else
  228.       actor = $game_actors[actor_id]
  229.       actor.drive_gauge_number = number if actor != nil
  230.     end
  231.   end
  232.   #--------------------------------------------------------------------------
  233.   # ○ 敌方的气槽能量的能量珠数
  234.   #     enemy_index : 敌方 index (-1 : 表示全体)
  235.   #     number   : 能量猪数
  236.   #--------------------------------------------------------------------------
  237.   def set_enemy_od_gauge_number(enemy_index, number)
  238.     if enemy_index == -1
  239.       # 设定生存中的敌方全体的能量珠数
  240.       $game_troop.members.each { |enemy|
  241.         enemy.drive_gauge_number = number
  242.       }
  243.     else
  244.       enemy = $game_troop.members[enemy_index]
  245.       enemy.drive_gauge_number = number if enemy != nil
  246.     end
  247.   end
  248.   #--------------------------------------------------------------------------
  249.   # ○ 角色的气槽能量变为最大时的设置
  250.   #     actor_id : 角色 ID
  251.   #--------------------------------------------------------------------------
  252.   def actor_od_gauge_max?(actor_id)
  253.     actor = $game_actors[actor_id]
  254.     return false if actor == nil
  255.     return actor.overdrive == actor.max_overdrive
  256.   end
  257.   #--------------------------------------------------------------------------
  258.   # ○ 敌方的气槽能量变为最大时的设置
  259.   #     enemy_index : 敌方 index
  260.   #--------------------------------------------------------------------------
  261.   def enemy_od_gauge_max?(enemy_index)
  262.     enemy = $game_troop.members[enemy_index]
  263.     return false if enemy == nil
  264.     return enemy.overdrive == enemy.max_overdrive
  265.   end
  266.   #--------------------------------------------------------------------------
  267.   # ○ 改变角色的能量槽类型
  268.   #     actor_id : 角色 ID (-1 : 表示全体)
  269.   #     types    : 能量槽的类型列表 (省略时 : 初始化)
  270.   #--------------------------------------------------------------------------
  271.   def set_actor_drive_type(actor_id, types = nil)
  272.     if actor_id == -1
  273.       # 改变角色全体的能量槽类型
  274.       $game_party.members.each { |actor|
  275.         actor.drive_type = types
  276.       }
  277.     else
  278.       actor = $game_actors[actor_id]
  279.       actor.drive_type = types if actor != nil
  280.     end
  281.   end
  282.   #--------------------------------------------------------------------------
  283.   # ○ 改变敌方的能量槽类型
  284.   #     enemy_index : 敌方 index (-1 : 表示全体)
  285.   #     types       : 能量槽的类型列表 (省略时 : 初始化)
  286.   #--------------------------------------------------------------------------
  287.   def set_enemy_drive_type(enemy_index, types = nil)
  288.     if enemy_index == -1
  289.       # 改变敌方全体的能量槽类型
  290.       $game_troop.members.each { |enemy|
  291.         enemy.drive_type = types
  292.       }
  293.     else
  294.       enemy = $game_troop.members[enemy_index]
  295.       enemy.drive_type = types if enemy != nil
  296.     end
  297.   end
  298. end
  299. end

  300. class Game_Interpreter
  301.   include KGC::Commands
  302. end

  303. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  304. #==============================================================================
  305. # ■ RPG::UsableItem
  306. #==============================================================================

  307. class RPG::UsableItem < RPG::BaseItem
  308.   #--------------------------------------------------------------------------
  309.   # ○ 超必杀技能的生成
  310.   #--------------------------------------------------------------------------
  311.   def create_overdrive_cache
  312.     @__od_gain = 0

  313.     self.note.each_line { |line|
  314.       case line
  315.       when KGC::OverDrive::Regexp::UsableItem::OD_GAIN
  316.         # 增加气槽能量
  317.         @__od_gain = $1.to_i
  318.       end
  319.     }
  320.   end
  321.   #--------------------------------------------------------------------------
  322.   # ○ 气槽能量的增加量
  323.   #--------------------------------------------------------------------------
  324.   def od_gain
  325.     create_overdrive_cache if @__od_gain == nil
  326.     return @__od_gain
  327.   end
  328.   #--------------------------------------------------------------------------
  329.   # ○ 如果有超必杀技能的话
  330.   #--------------------------------------------------------------------------
  331.   def overdrive
  332.     return false
  333.   end
  334.   alias overdrive? overdrive
  335. end

  336. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  337. #==============================================================================
  338. # ■ RPG::Skill
  339. #==============================================================================

  340. class RPG::Skill < RPG::UsableItem
  341.   #--------------------------------------------------------------------------
  342.   # ○ 生成超必杀技能的内存
  343.   #--------------------------------------------------------------------------
  344.   def create_overdrive_cache
  345.     super

  346.     @__is_overdrive   = false
  347.     @__od_cost        = KGC::OverDrive::GAUGE_MAX
  348.     @__od_consume_all = false
  349.     @__od_gain_rate   = 100

  350.     self.note.each_line { |line|
  351.       case line
  352.       when KGC::OverDrive::Regexp::Skill::OVER_DRIVE
  353.         # オーバードライブ
  354.         @__is_overdrive   = true
  355.         @__od_cost        = $1.to_i if $1 != nil
  356.         @__od_consume_all = ($2 != nil)
  357.       when KGC::OverDrive::Regexp::Skill::OD_GAIN_RATE
  358.         # 能量增加率
  359.         @__od_gain_rate = $1.to_i
  360.       end
  361.     }

  362.     # 如果没有超必杀技能,则能量槽能量为0
  363.     unless @__is_overdrive
  364.       @__od_cost = 0
  365.     end
  366.   end
  367.   #--------------------------------------------------------------------------
  368.   # ○ 如果有超必杀技能
  369.   #--------------------------------------------------------------------------
  370.   def overdrive
  371.     create_overdrive_cache if @__is_overdrive == nil
  372.     return @__is_overdrive
  373.   end
  374.   alias overdrive? overdrive
  375.   #--------------------------------------------------------------------------
  376.   # ○ 气槽能量的消耗值
  377.   #--------------------------------------------------------------------------
  378.   def od_cost
  379.     create_overdrive_cache if @__od_cost == nil
  380.     return @__od_cost
  381.   end
  382.   #--------------------------------------------------------------------------
  383.   # ○ 气槽能量全部消耗掉
  384.   #--------------------------------------------------------------------------
  385.   def od_consume_all
  386.     create_overdrive_cache if @__od_consume_all == nil
  387.     return @__od_consume_all
  388.   end
  389.   alias od_consume_all? od_consume_all
  390.   #--------------------------------------------------------------------------
  391.   # ○ 气槽能量的增加率
  392.   #--------------------------------------------------------------------------
  393.   def od_gain_rate
  394.     create_overdrive_cache if @__od_gain_rate == nil
  395.     return @__od_gain_rate
  396.   end
  397. end

  398. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  399. #==============================================================================
  400. # ■ Vocab
  401. #==============================================================================

  402. module Vocab
  403.   # 气槽能量名
  404.   def self.overdrive
  405.     return KGC::OverDrive::GAUGE_NAME
  406.   end

  407.   # 角色这边的显示信息
  408.   ActorODDrain    = KGC::OverDrive::OD_GAIN_MESSAGE[:drain_a]
  409.   ActorODLoss     = KGC::OverDrive::OD_GAIN_MESSAGE[:loss_a]
  410.   ActorODRecovery = KGC::OverDrive::OD_GAIN_MESSAGE[:recover_a]

  411.   # 敌人那边的显示信息
  412.   EnemyODDrain    = KGC::OverDrive::OD_GAIN_MESSAGE[:drain_e]
  413.   EnemyODLoss     = KGC::OverDrive::OD_GAIN_MESSAGE[:loss_e]
  414.   EnemyODRecovery = KGC::OverDrive::OD_GAIN_MESSAGE[:recover_e]
  415. end

  416. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  417. #==============================================================================
  418. # ■ Game_Battler
  419. #==============================================================================

  420. class Game_Battler
  421.   #--------------------------------------------------------------------------
  422.   # ● 公开的公有变量
  423.   #--------------------------------------------------------------------------
  424.   attr_writer   :drive_type               # 气槽类型
  425.   attr_reader   :od_damage                # 行动结果: 气槽伤害
  426.   #--------------------------------------------------------------------------
  427.   # ● 清除保存行动效果的变量
  428.   #--------------------------------------------------------------------------
  429.   alias clear_action_results_KGC_OverDrive clear_action_results
  430.   def clear_action_results
  431.     clear_action_results_KGC_OverDrive

  432.     @od_damage = 0
  433.   end
  434.   #--------------------------------------------------------------------------
  435.   # ○ 获得气槽能量
  436.   #--------------------------------------------------------------------------
  437.   def overdrive
  438.     @overdrive = 0 if @overdrive == nil
  439.     return @overdrive
  440.   end
  441.   #--------------------------------------------------------------------------
  442.   # ○ 操作气槽能量
  443.   #--------------------------------------------------------------------------
  444.   def overdrive=(value)
  445.     @overdrive = [[value, max_overdrive].min, 0].max
  446.   end
  447.   #--------------------------------------------------------------------------
  448.   # ○ 获得气槽能量的最大值
  449.   #--------------------------------------------------------------------------
  450.   def max_overdrive
  451.     return KGC::OverDrive::GAUGE_MAX * drive_gauge_number
  452.   end
  453.   #--------------------------------------------------------------------------
  454.   # ○ 能量为MAX时的判定
  455.   #--------------------------------------------------------------------------
  456.   def overdrive_max?
  457.     return (overdrive == max_overdrive)
  458.   end
  459.   #--------------------------------------------------------------------------
  460.   # ○ 能量珠数的取得
  461.   #--------------------------------------------------------------------------
  462.   def drive_gauge_number
  463.     if @drive_gauge_number == nil
  464.       @drive_gauge_number = KGC::OverDrive::DEFAULT_GAUGE_NUMBER
  465.     end
  466.     return @drive_gauge_number
  467.   end
  468.   #--------------------------------------------------------------------------
  469.   # ○ 操作能量珠数
  470.   #--------------------------------------------------------------------------
  471.   def drive_gauge_number=(value)
  472.     @drive_gauge_number = [value, 1].max
  473.   end
  474.   #--------------------------------------------------------------------------
  475.   # ○ 气槽类型的取得
  476.   #--------------------------------------------------------------------------
  477.   def drive_type
  478.     return []
  479.   end
  480.   #--------------------------------------------------------------------------
  481.   # ○ 超必杀是否学习到的判断
  482.   #--------------------------------------------------------------------------
  483.   def overdrive_skill_learned?
  484.     return true
  485.   end
  486.   #--------------------------------------------------------------------------
  487.   # ○ 气槽是否表示的判断
  488.   #--------------------------------------------------------------------------
  489.   def od_gauge_visible?
  490.     return false
  491.   end
  492.   #--------------------------------------------------------------------------
  493.   # ○ 能量可否增加的判断
  494.   #--------------------------------------------------------------------------
  495.   def can_gain_overdrive?
  496.     return true
  497.   end
  498.   #--------------------------------------------------------------------------
  499.   # ○ 攻撃時増加判定
  500.   #--------------------------------------------------------------------------
  501.   def drive_attack?
  502.     return drive_type.include?(KGC::OverDrive::Type::ATTACK)
  503.   end
  504.   #--------------------------------------------------------------------------
  505.   # ○ 受到伤害时的增加判断
  506.   #--------------------------------------------------------------------------
  507.   def drive_damage?
  508.     return drive_type.include?(KGC::OverDrive::Type::DAMAGE)
  509.   end
  510.   #--------------------------------------------------------------------------
  511.   # ○ 胜利时的增加判断
  512.   #--------------------------------------------------------------------------
  513.   def drive_victory?
  514.     return drive_type.include?(KGC::OverDrive::Type::VICTORY)
  515.   end
  516.   #--------------------------------------------------------------------------
  517.   # ○ 逃走时的增加判断
  518.   #--------------------------------------------------------------------------
  519.   def drive_escape?
  520.     return drive_type.include?(KGC::OverDrive::Type::ESCAPE)
  521.   end
  522.   #--------------------------------------------------------------------------
  523.   # ○ 单独战斗时的增加判断
  524.   #--------------------------------------------------------------------------
  525.   def drive_alone?
  526.     return drive_type.include?(KGC::OverDrive::Type::ALONE)
  527.   end
  528.   #--------------------------------------------------------------------------
  529.   # ○ 行动时的增加判断
  530.   #--------------------------------------------------------------------------
  531.   def drive_action?
  532.     return drive_type.include?(KGC::OverDrive::Type::ACTION)
  533.   end
  534.   #--------------------------------------------------------------------------
  535.   # ○ 濒死的增加判断
  536.   #--------------------------------------------------------------------------
  537.   def drive_fatal?
  538.     return drive_type.include?(KGC::OverDrive::Type::FATAL)
  539.   end
  540.   #--------------------------------------------------------------------------
  541.   # ○ 防御时的增加判断
  542.   #--------------------------------------------------------------------------
  543.   def drive_guard?
  544.     return drive_type.include?(KGC::OverDrive::Type::GUARD)
  545.   end
  546.   #--------------------------------------------------------------------------
  547.   # ● 状态附加
  548.   #     state_id : 状态 ID
  549.   #--------------------------------------------------------------------------
  550.   alias add_state_KGC_OverDrive add_state
  551.   def add_state(state_id)
  552.     add_state_KGC_OverDrive(state_id)

  553.     reset_overdrive_on_dead if dead?
  554.   end
  555.   #--------------------------------------------------------------------------
  556.   # ○ 计算技能消耗的能量
  557.   #     skill : 技能
  558.   #--------------------------------------------------------------------------
  559.   def calc_od_cost(skill)
  560.     return 0 unless skill.is_a?(RPG::Skill)

  561.     return skill.od_cost
  562.   end
  563.   #--------------------------------------------------------------------------
  564.   # ● 技能是否可以使用的判断
  565.   #     skill : 技能
  566.   #--------------------------------------------------------------------------
  567.   alias skill_can_use_KGC_OverDrive? skill_can_use?
  568.   def skill_can_use?(skill)
  569.     return false unless skill_can_use_KGC_OverDrive?(skill)

  570.     return false if calc_od_cost(skill) > overdrive
  571.     return true
  572.   end
  573.   #--------------------------------------------------------------------------
  574.   # ● 基于技能或物品的伤害判定
  575.   #     user : 技能或物品的使用者
  576.   #     obj  : 技能或物品
  577.   #    结果将代入 @hp_damage 或 @mp_damage 。
  578.   #--------------------------------------------------------------------------
  579.   alias make_obj_damage_value_KGC_OverDrive make_obj_damage_value
  580.   def make_obj_damage_value(user, obj)
  581.     make_obj_damage_value_KGC_OverDrive(user, obj)

  582.     apply_od_consume_all_for_damage(user, obj)
  583.   end
  584.   #--------------------------------------------------------------------------
  585.   # ○ 适用于气槽能量全消耗时
  586.   #     user : 技能或物品的使用者
  587.   #     obj  : 技能或物品
  588.   #    结果将代入 @hp_damage 或 @mp_damage 。
  589.   #--------------------------------------------------------------------------
  590.   def apply_od_consume_all_for_damage(user, obj)
  591.     return unless obj.is_a?(RPG::Skill)
  592.     return unless obj.overdrive? && obj.od_consume_all?

  593.     # 剩余能量消耗的强化 (例: 最低消耗量为 1000 时消耗 1200 的话效果是 1.2 倍)
  594.     rate = [user.overdrive * 1000 / obj.od_cost, 1000].max
  595.     @hp_damage = @hp_damage * rate / 1000
  596.     @mp_damage = @mp_damage * rate / 1000
  597.   end
  598.   #--------------------------------------------------------------------------
  599.   # ● 受到伤害时的反映
  600.   #     user : 技能或物品的使用者
  601.   #    若要使用此部分,请先设置 @hp_damage、@mp_damage、@absorbed 。
  602.   #--------------------------------------------------------------------------
  603.   alias execute_damage_KGC_OverDrive execute_damage
  604.   def execute_damage(user)
  605.     execute_damage_KGC_OverDrive(user)

  606.     increase_overdrive(user)
  607.     increase_overdrive_by_item(user)
  608.   end
  609.   #--------------------------------------------------------------------------
  610.   # ○ 死亡时气槽能量的初始化
  611.   #--------------------------------------------------------------------------
  612.   def reset_overdrive_on_dead
  613.     return unless KGC::OverDrive::EMPTY_ON_DEAD

  614.     self.overdrive = 0
  615.   end
  616.   #--------------------------------------------------------------------------
  617.   # ○ 气槽能量的增加处理
  618.   #     attacker : 攻击者
  619.   #--------------------------------------------------------------------------
  620.   def increase_overdrive(attacker = nil)
  621.     return unless attacker.is_a?(Game_Battler)  # 攻击者非战场单位
  622.     return unless actor? ^ attacker.actor?      # 攻击者和防御者在同一阵型
  623.     return if hp_damage == 0 && mp_damage == 0  # 不受到伤害

  624.     increase_attacker_overdrive(attacker)
  625.     increase_defender_overdrive(attacker)
  626.     reset_overdrive_on_dead if dead?
  627.   end
  628.   #--------------------------------------------------------------------------
  629.   # ○ 攻击方的气槽能量处理
  630.   #     attacker : 攻击者
  631.   #--------------------------------------------------------------------------
  632.   def increase_attacker_overdrive(attacker)
  633.     return unless can_gain_overdrive?
  634.     return unless attacker.drive_attack?  # ドライブタイプ「攻撃」なし

  635.     od_gain = KGC::OverDrive::GAIN_RATE[KGC::OverDrive::Type::ATTACK]
  636.     if attacker.action.kind == 1
  637.       rate = attacker.action.skill.od_gain_rate  # スキルの倍率を適用
  638.       od_gain = od_gain * rate / 100
  639.       if rate > 0
  640.         od_gain = [od_gain, 1].max
  641.       elsif rate < 0
  642.         od_gain = [od_gain, -1].min
  643.       end
  644.     end
  645.     attacker.overdrive += od_gain
  646.   end
  647.   #--------------------------------------------------------------------------
  648.   # ○ 防御方的气槽能量处理
  649.   #     attacker : 攻击者
  650.   #--------------------------------------------------------------------------
  651.   def increase_defender_overdrive(attacker)
  652.     return unless can_gain_overdrive?
  653.     return unless self.drive_damage?  # 气槽类型不受到伤害

  654.     rate = KGC::OverDrive::GAIN_RATE[KGC::OverDrive::Type::DAMAGE]
  655.     od_gain = 0
  656.     od_gain += hp_damage * rate / maxhp if hp_damage > 0
  657.     od_gain += mp_damage * rate / maxmp if mp_damage > 0 && maxmp > 0
  658.     if rate > 0
  659.       od_gain = [od_gain, 1].max
  660.     elsif rate < 0
  661.       od_gain = [od_gain, -1].min
  662.     end
  663.     self.overdrive += od_gain
  664.   end
  665.   #--------------------------------------------------------------------------
  666.   # ○ 使用物品增加气槽时的处理
  667.   #     user : 使用者
  668.   #--------------------------------------------------------------------------
  669.   def increase_overdrive_by_item(user = nil)
  670.     return unless user.is_a?(Game_Battler)
  671.     return unless can_gain_overdrive?

  672.     if user.action.skill?
  673.       obj = user.action.skill
  674.     elsif user.action.item?
  675.       obj = user.action.item
  676.     else
  677.       return
  678.     end
  679.     @od_damage = -obj.od_gain
  680.     self.overdrive -= @od_damage
  681.   end
  682.   #--------------------------------------------------------------------------
  683.   # ● 适用于技能效果
  684.   #     user  : 技能的使用者
  685.   #     skill : 技能
  686.   #--------------------------------------------------------------------------
  687.   alias skill_effect_KGC_OverDrive skill_effect
  688.   def skill_effect(user, skill)
  689.     skill_effect_KGC_OverDrive(user, skill)

  690.     # 无视物品或技能对气槽能量的影响
  691.     if $imported["ReproduceFunctions"] && $game_temp.exec_skill_on_item
  692.       return
  693.     end
  694.   end
  695. end

  696. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  697. #==============================================================================
  698. # ■ Game_Actor
  699. #==============================================================================

  700. class Game_Actor < Game_Battler
  701.   #--------------------------------------------------------------------------
  702.   # ● 设置
  703.   #     actor_id : 角色 ID
  704.   #--------------------------------------------------------------------------
  705.   alias setup_KGC_OverDrive setup
  706.   def setup(actor_id)
  707.     setup_KGC_OverDrive(actor_id)

  708.     @overdrive  = 0
  709.     @drive_type = nil
  710.   end
  711.   #--------------------------------------------------------------------------
  712.   # ○ 气槽类型的获得
  713.   #--------------------------------------------------------------------------
  714.   def drive_type
  715.     unless @drive_type.is_a?(Array)
  716.       return KGC::OverDrive::DEFAULT_ACTOR_DRIVE_TYPE
  717.     end
  718.     return @drive_type
  719.   end
  720.   #--------------------------------------------------------------------------
  721.   # ○ 判断是否学习到超必杀技能
  722.   #--------------------------------------------------------------------------
  723.   def overdrive_skill_learned?
  724.     result = false
  725.     # 解除一时的战斗FLAG
  726.     last_in_battle = $game_temp.in_battle
  727.     $game_temp.in_battle = false

  728.     self.skills.each { |skill|
  729.       if skill.overdrive?
  730.         result = true
  731.         break
  732.       end
  733.     }
  734.     $game_temp.in_battle = last_in_battle
  735.     return result
  736.   end
  737.   #--------------------------------------------------------------------------
  738.   # ○ 判断是否可以增加气槽能量
  739.   #--------------------------------------------------------------------------
  740.   def can_gain_overdrive?
  741.     if KGC::OverDrive::NOT_GAIN_GAUGE_HIDING
  742.       # 不表示
  743.       return false unless od_gauge_visible_l?
  744.     end
  745.     if KGC::OverDrive::HIDE_GAUGE_NO_OD_SKILLS
  746.       # 没有学到超必杀
  747.       return false unless overdrive_skill_learned?
  748.     end

  749.     return true
  750.   end
  751.   #--------------------------------------------------------------------------
  752.   # ○ 气槽能量的表示判断
  753.   #--------------------------------------------------------------------------
  754.   def od_gauge_visible?
  755.     return false unless od_gauge_visible_l?
  756.     return false unless can_gain_overdrive?

  757.     return true
  758.   end
  759.   #--------------------------------------------------------------------------
  760.   # ○ 气槽能量的表示判断 (简易版)
  761.   #--------------------------------------------------------------------------
  762.   def od_gauge_visible_l?
  763.     # 战斗中不表示
  764.     if KGC::OverDrive::HIDE_GAUGE_NOT_IN_BATTLE && !$game_temp.in_battle
  765.       return false
  766.     end
  767.     # 完全不表示
  768.     return false if KGC::OverDrive::HIDE_GAUGE_ACTOR.include?(self.id)

  769.     return true
  770.   end
  771. end

  772. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  773. #==============================================================================
  774. # ■ Game_Enemy
  775. #==============================================================================

  776. class Game_Enemy < Game_Battler
  777.   #--------------------------------------------------------------------------
  778.   # ● 对象初始化
  779.   #     index    : 敌方团体的编号
  780.   #     enemy_id : 敌方编号 ID
  781.   #--------------------------------------------------------------------------
  782.   alias initialize_KGC_OverDrive initialize
  783.   def initialize(index, enemy_id)
  784.     initialize_KGC_OverDrive(index, enemy_id)

  785.     @overdrive  = 0
  786.     @drive_type = nil
  787.   end
  788.   #--------------------------------------------------------------------------
  789.   # ○ 气槽类型的取得
  790.   #--------------------------------------------------------------------------
  791.   def drive_type
  792.     unless @drive_type.is_a?(Array)
  793.       return KGC::OverDrive::DEFAULT_ENEMY_DRIVE_TYPE
  794.     end
  795.     return @drive_type
  796.   end
  797. end

  798. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  799. #==============================================================================
  800. # ■ Window_Base
  801. #==============================================================================

  802. class Window_Base < Window
  803.   #--------------------------------------------------------------------------
  804.   # ○ 气槽能量的一般颜色 1 的获得
  805.   #--------------------------------------------------------------------------
  806.   def od_gauge_normal_color1
  807.     color = KGC::OverDrive::GAUGE_NORMAL_START_COLOR
  808.     return (color.is_a?(Integer) ? text_color(color) : color)
  809.   end
  810.   #--------------------------------------------------------------------------
  811.   # ○ 气槽能量的一般颜色 2 的获得
  812.   #--------------------------------------------------------------------------
  813.   def od_gauge_normal_color2
  814.     color = KGC::OverDrive::GAUGE_NORMAL_END_COLOR
  815.     return (color.is_a?(Integer) ? text_color(color) : color)
  816.   end
  817.   #--------------------------------------------------------------------------
  818.   # ○ 气槽能量的最大颜色 1 的获得
  819.   #--------------------------------------------------------------------------
  820.   def od_gauge_max_color1
  821.     color = KGC::OverDrive::GAUGE_MAX_START_COLOR
  822.     return (color.is_a?(Integer) ? text_color(color) : color)
  823.   end
  824.   #--------------------------------------------------------------------------
  825.   # ○ 气槽能量的最大颜色 2 的获得
  826.   #--------------------------------------------------------------------------
  827.   def od_gauge_max_color2
  828.     color = KGC::OverDrive::GAUGE_MAX_END_COLOR
  829.     return (color.is_a?(Integer) ? text_color(color) : color)
  830.   end
  831.   #--------------------------------------------------------------------------
  832.   # ● 名字的表示
  833.   #     actor : 角色
  834.   #     x     : X坐标
  835.   #     y     : Y坐标
  836.   #--------------------------------------------------------------------------
  837.   alias draw_actor_name_KGC_OverDrive draw_actor_name
  838.   def draw_actor_name(actor, x, y)
  839.     draw_actor_od_gauge(actor, x, y, 108)

  840.     draw_actor_name_KGC_OverDrive(actor, x, y)
  841.   end
  842.   #--------------------------------------------------------------------------
  843.   # ○ 气槽能量的表示
  844.   #     actor : 角色
  845.   #     x     : X坐标
  846.   #     y     : Y坐标
  847.   #     width : 宽度
  848.   #--------------------------------------------------------------------------
  849.   def draw_actor_od_gauge(actor, x, y, width = 120)
  850.     return unless actor.od_gauge_visible?

  851.     n = actor.overdrive % KGC::OverDrive::GAUGE_MAX
  852.     n = KGC::OverDrive::GAUGE_MAX if actor.overdrive_max?

  853.     if KGC::OverDrive::ENABLE_GENERIC_GAUGE && $imported["GenericGauge"]
  854.       # 汎用ゲージ
  855.       file = (actor.overdrive_max? ?
  856.         KGC::OverDrive::GAUGE_MAX_IMAGE : KGC::OverDrive::GAUGE_IMAGE)
  857.       draw_gauge(file,
  858.         x, y, width, n, KGC::OverDrive::GAUGE_MAX,
  859.         KGC::OverDrive::GAUGE_OFFSET,
  860.         KGC::OverDrive::GAUGE_LENGTH,
  861.         KGC::OverDrive::GAUGE_SLOPE)
  862.     else
  863.       # デフォルトゲージ
  864.       gw = width * n / KGC::OverDrive::GAUGE_MAX
  865.       gc1 = (gw == width ? od_gauge_max_color1 : od_gauge_normal_color1)
  866.       gc2 = (gw == width ? od_gauge_max_color2 : od_gauge_normal_color2)
  867.       self.contents.fill_rect(x, y + WLH + KGC::OverDrive::GAUGE_OFFSET_Y,
  868.         width, 6, gauge_back_color)
  869.       self.contents.gradient_fill_rect(
  870.         x, y + WLH + KGC::OverDrive::GAUGE_OFFSET_Y, gw, 6, gc1, gc2)
  871.     end

  872.     draw_actor_od_gauge_value(actor, x, y, width)
  873.   end
  874.   #--------------------------------------------------------------------------
  875.   # ○ 气槽能量的储存量的表示
  876.   #     actor : 角色
  877.   #     x     : X坐标
  878.   #     y     : Y坐标
  879.   #     width : 宽度
  880.   #--------------------------------------------------------------------------
  881.   def draw_actor_od_gauge_value(actor, x, y, width = 120)
  882.     text = ""
  883.     value = actor.overdrive * 100.0 / KGC::OverDrive::GAUGE_MAX
  884.     case KGC::OverDrive::GAUGE_VALUE_STYLE
  885.     when KGC::OverDrive::ValueStyle::IMMEDIATE
  886.       text = actor.overdrive.to_s
  887.     when KGC::OverDrive::ValueStyle::RATE
  888.       text = sprintf("%d%%", actor.overdrive * 100 / KGC::OverDrive::GAUGE_MAX)
  889.     when KGC::OverDrive::ValueStyle::RATE_DETAIL1
  890.       text = sprintf("%0.1f%%", value)
  891.     when KGC::OverDrive::ValueStyle::RATE_DETAIL2
  892.       text = sprintf("%0.2f%%", value)
  893.     when KGC::OverDrive::ValueStyle::NUMBER
  894.       text = "#{actor.overdrive / KGC::OverDrive::GAUGE_MAX}"
  895.     else
  896.       return
  897.     end

  898.     last_font_size = self.contents.font.size
  899.     new_font_size  = KGC::OverDrive::GAUGE_VALUE_FONT_SIZE
  900.     self.contents.font.size = new_font_size
  901.     self.contents.draw_text(
  902.       x, y + WLH + KGC::OverDrive::GAUGE_OFFSET_Y - new_font_size / 2,
  903.       width, new_font_size, text, 2)
  904.     self.contents.font.size = last_font_size
  905.   end
  906. end

  907. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  908. #==============================================================================
  909. # ■ Window_Skill
  910. #==============================================================================

  911. if KGC::OverDrive::HIDE_SKILL_LACK_OF_GAUGE

  912. class Window_Skill < Window_Selectable
  913.   #--------------------------------------------------------------------------
  914.   # ○ 如果含有技能的列表?
  915.   #     skill : 技能
  916.   #--------------------------------------------------------------------------
  917.   unless $@
  918.     alias include_KGC_OverDrive? include? if method_defined?(:include?)
  919.   end
  920.   def include?(skill)
  921.     return false if skill == nil

  922.     if defined?(include_KGC_OverDrive?)
  923.       return false unless include_KGC_OverDrive?(skill)
  924.     end

  925.     if skill.overdrive?
  926.       return (@actor.calc_od_cost(skill) <= @actor.overdrive)
  927.     else
  928.       return true
  929.     end
  930.   end

  931. if method_defined?(:include_KGC_OverDrive?)
  932.   #--------------------------------------------------------------------------
  933.   # ● 刷新
  934.   #--------------------------------------------------------------------------
  935.   def refresh
  936.     @data = []
  937.     for skill in @actor.skills
  938.       next unless include?(skill)
  939.       @data.push(skill)
  940.       if skill.id == @actor.last_skill_id
  941.         self.index = @data.size - 1
  942.       end
  943.     end
  944.     @item_max = @data.size
  945.     create_contents
  946.     for i in 0...@item_max
  947.       draw_item(i)
  948.     end
  949.   end
  950. end

  951. end  # <-- class
  952. end  # <-- if KGC::OverDrive::HIDE_SKILL_LACK_OF_GAUGE

  953. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  954. #==============================================================================
  955. # ■ Scene_Skill
  956. #==============================================================================

  957. class Scene_Skill < Scene_Base
  958.   #--------------------------------------------------------------------------
  959.   # ● 使用技能 (使用效果适用于非我方人物)
  960.   #--------------------------------------------------------------------------
  961.   alias use_skill_nontarget_KGC_OverDrive use_skill_nontarget
  962.   def use_skill_nontarget
  963.     consume_od_gauge

  964.     use_skill_nontarget_KGC_OverDrive
  965.   end
  966.   #--------------------------------------------------------------------------
  967.   # ○ 使用技能时气槽能量的消耗
  968.   #--------------------------------------------------------------------------
  969.   def consume_od_gauge
  970.     if @skill.od_consume_all?
  971.       @actor.overdrive = 0
  972.     else
  973.       @actor.overdrive -= @actor.calc_od_cost(@skill)
  974.     end
  975.   end
  976. end

  977. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  978. #==============================================================================
  979. # ■ Scene_Battle
  980. #==============================================================================

  981. class Scene_Battle < Scene_Base
  982.   #--------------------------------------------------------------------------
  983.   # ● 战斗结束
  984.   #     result : 结果 (0:胜利 1:逃走 2:失败)
  985.   #--------------------------------------------------------------------------
  986.   alias battle_end_KGC_OverDrive battle_end
  987.   def battle_end(result)
  988.     increase_overdrive_on_battle_end(result)

  989.     battle_end_KGC_OverDrive(result)
  990.   end
  991.   #--------------------------------------------------------------------------
  992.   # ○ 战斗结束时气槽能量的增加处理
  993.   #     result : 结果 (0:胜利 1:逃走 2:失败)
  994.   #--------------------------------------------------------------------------
  995.   def increase_overdrive_on_battle_end(result)
  996.     case result
  997.     when 0  # 胜利
  998.       od_gain = KGC::OverDrive::GAIN_RATE[KGC::OverDrive::Type::VICTORY]
  999.       $game_party.existing_members.each { |actor|
  1000.         actor.overdrive += od_gain if actor.drive_victory?
  1001.       }
  1002.     when 1  # 逃走
  1003.       od_gain = KGC::OverDrive::GAIN_RATE[KGC::OverDrive::Type::ESCAPE]
  1004.       $game_party.existing_members.each { |actor|
  1005.         actor.overdrive += od_gain if actor.drive_escape?
  1006.       }
  1007.     end
  1008.   end
  1009.   #--------------------------------------------------------------------------
  1010.   # ● 战斗行动的实行
  1011.   #--------------------------------------------------------------------------
  1012.   alias execute_action_KGC_OverDrive execute_action
  1013.   def execute_action
  1014.     increase_overdrive_on_action

  1015.     execute_action_KGC_OverDrive
  1016.   end
  1017.   #--------------------------------------------------------------------------
  1018.   # ○ 行动时的气槽能量的增加处理
  1019.   #--------------------------------------------------------------------------
  1020.   def increase_overdrive_on_action
  1021.     battler = @active_battler
  1022.     od_gain = 0
  1023.     unit = (battler.actor? ? $game_party : $game_troop)

  1024.     # 单独战斗
  1025.     if battler.drive_alone? && unit.existing_members.size == 1
  1026.       od_gain += KGC::OverDrive::GAIN_RATE[KGC::OverDrive::Type::ALONE]
  1027.     end
  1028.     # 行动
  1029.     if battler.drive_action?
  1030.       od_gain += KGC::OverDrive::GAIN_RATE[KGC::OverDrive::Type::ACTION]
  1031.     end
  1032.     # 濒死
  1033.     if battler.drive_fatal? && battler.hp < battler.maxhp / 4
  1034.       od_gain += KGC::OverDrive::GAIN_RATE[KGC::OverDrive::Type::FATAL]
  1035.     end
  1036.     # 防御
  1037.     if battler.drive_guard? && battler.action.kind == 0 &&
  1038.         battler.action.basic == 1
  1039.       od_gain += KGC::OverDrive::GAIN_RATE[KGC::OverDrive::Type::GUARD]
  1040.     end
  1041.     battler.overdrive += od_gain
  1042.   end
  1043.   #--------------------------------------------------------------------------
  1044.   # ● 战斗行动的实行:技能
  1045.   #--------------------------------------------------------------------------
  1046.   alias execute_action_skill_KGC_OverDrive execute_action_skill
  1047.   def execute_action_skill
  1048.     execute_action_skill_KGC_OverDrive

  1049.     consume_od_gauge
  1050.   end
  1051.   #--------------------------------------------------------------------------
  1052.   # ○ 技能使用时的气槽能量的增加处理
  1053.   #--------------------------------------------------------------------------
  1054.   def consume_od_gauge
  1055.     return unless @active_battler.action.skill?

  1056.     skill = @active_battler.action.skill
  1057.     if skill.od_consume_all?
  1058.       @active_battler.overdrive = 0
  1059.     else
  1060.       @active_battler.overdrive -= @active_battler.calc_od_cost(skill)
  1061.     end
  1062.   end
  1063.   #--------------------------------------------------------------------------
  1064.   # ● 伤害的表示
  1065.   #     target : 目标
  1066.   #     obj    : 技能或物品
  1067.   #--------------------------------------------------------------------------
  1068.   alias display_damage_KGC_OverDrive display_damage
  1069.   def display_damage(target, obj = nil)
  1070.     display_damage_KGC_OverDrive(target, obj)

  1071.     return if target.missed || target.evaded
  1072.     display_od_damage(target, obj)
  1073.   end
  1074.   #--------------------------------------------------------------------------
  1075.   # ○ 超必杀的伤害表示
  1076.   #     target : 目标
  1077.   #     obj    : 技能或物品
  1078.   #--------------------------------------------------------------------------
  1079.   def display_od_damage(target, obj = nil)
  1080.     return if target.dead?
  1081.     return if target.od_damage == 0
  1082.     if target.absorbed                      # 吸收
  1083.       fmt = target.actor? ? Vocab::ActorODDrain : Vocab::EnemyODDrain
  1084.       text = sprintf(fmt, target.name, Vocab::overdrive)
  1085.     elsif target.od_damage > 0              # 受到伤害
  1086.       fmt = target.actor? ? Vocab::ActorODLoss : Vocab::EnemyODLoss
  1087.       text = sprintf(fmt, target.name, Vocab::overdrive)
  1088.     else                                    # 回复
  1089.       fmt = target.actor? ? Vocab::ActorODRecovery : Vocab::EnemyODRecovery
  1090.       text = sprintf(fmt, target.name, Vocab::overdrive)
  1091.       Sound.play_recovery
  1092.     end
  1093.     @message_window.add_instant_text(text)
  1094.     wait(30)
  1095.   end
  1096. end
复制代码
KGC的这个怒气必杀技如何用图片显示怒气槽,按照说明在System文件夹放了两张名字为GaugeOD和GaugeODMAX的图片,但在游戏中还是显示默认的怒气槽,怎么回事,望各位大大帮忙解决一下。

Lv1.梦旅人

梦石
0
星屑
50
在线时间
115 小时
注册时间
2010-5-3
帖子
346
2
 楼主| 发表于 2010-11-10 11:16:32 | 只看该作者
一直显示不出来,也一直没人帮忙,哪怕给点提示也好啊,郁闷中
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
190
在线时间
84 小时
注册时间
2009-11-29
帖子
44
3
发表于 2010-11-10 16:21:40 | 只看该作者
本帖最后由 summerxud 于 2010-11-10 16:28 编辑

要配合 Sideview战斗脚本 才能显示...

点评

我要的是是怒气槽下面加底槽的那种  发表于 2010-11-11 13:23
我就是在用这个系统啊  发表于 2010-11-11 13:21
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
149 小时
注册时间
2010-8-10
帖子
53
4
发表于 2013-10-23 21:09:58 | 只看该作者
为何用了不管攻击、防御、被攻击怒气值一直是0%

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-28 08:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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