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

Project1

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

[已经过期] KGC的CP技能脚本怎么用..附上小强版汉化的脚本

[复制链接]

Lv1.梦旅人

梦石
0
星屑
60
在线时间
44 小时
注册时间
2010-6-17
帖子
74
跳转到指定楼层
1
发表于 2010-10-6 00:18:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 ashion 于 2010-10-6 00:22 编辑

RT
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ オーバードライブ - KGC_OverDrive ◆ VX ◆
  3. #_/    ◇ Last update : 2009/11/01 ◇
  4. #_/----------------------------------------------------------------------------
  5. #_/  作成使用特殊气槽的技能(超必杀)
  6. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

  7. #==============================================================================
  8. # ★  Customize项目 - Customize BEGIN ★
  9. #==============================================================================

  10. module KGC
  11. module OverDrive
  12.   # ◆ 特殊气槽的最大值
  13.   #  一般1000便可以了,可以自己微调。
  14.   GAUGE_MAX = 1000
  15.   # ◆ 特殊气槽的增加量
  16.   #  若增加量高,则容易储满。
  17.   #  如果指定负数,则代表特殊气槽减少
  18.   #  「受到伤害」是、减少的HP乘上一定比例计算出来的增加量
  19.   #  (500的话、等于HP减少了500,气槽增加值也为500)
  20.   GAIN_RATE = [
  21.      80,  # 攻击
  22.     500,  # 受到伤害
  23.     200,  # 胜利
  24.     100,  # 逃走
  25.     160,  # 单独战斗
  26.      40,  # 行动
  27.     160,  # 濒死
  28.      50,  # 防御
  29.   ]  # ← 这个 ] 不可以删掉!

  30.   # ◆ 气槽的初始量
  31.   DEFAULT_GAUGE_NUMBER = 1

  32.   # ◆ 默认会增加气槽的类型
  33.   #   0..攻击  1..受到伤害  2..胜利  3..逃走  4..单独战斗  5..行动
  34.   #   6..濒死  7..防御
  35.   DEFAULT_ACTOR_DRIVE_TYPE = [0, 1, 6]        # 角色
  36.   DEFAULT_ENEMY_DRIVE_TYPE = [0, 1, 4, 5, 6]  # 敌人

  37.   # ◆ 气槽中的能量颜色
  38.   #  数值  : 和 \C[n] 颜色一样。
  39.   #  Color : 指定颜色。 ( Color.new(255, 128, 128) 等 )
  40.   GAUGE_NORMAL_START_COLOR = 14  # 一般开始时的颜色
  41.   GAUGE_NORMAL_END_COLOR   =  6  # 一般结束时的颜色
  42.   GAUGE_MAX_START_COLOR    = 10  # 最大时的颜色
  43.   GAUGE_MAX_END_COLOR      =  2  # 最大结束时的颜色

  44.   # ◆ 特殊气槽设计为和一般气槽相同
  45.   #  只在导入≪一般气槽能量表现≫时有效
  46.   ENABLE_GENERIC_GAUGE = true
  47.   # ◆ 气槽中的能量设定
  48.   #  图片从 "Graphics/System" 中读取
  49.   GAUGE_IMAGE     = "GaugeOD"     # 一般时的图片
  50.   GAUGE_MAX_IMAGE = "GaugeODMax"  # 最大时的图片
  51.   GAUGE_OFFSET    = [-23, -2]     # 位置修正 [x, y]
  52.   GAUGE_LENGTH    = -4            # 长度修正
  53.   GAUGE_SLOPE     = 30            # 倾斜度 (-89 ~ 89)

  54.   # ◆ 气槽能量的Y坐标修正值
  55.   #  未使用一般气槽时,才有效
  56.   #  如果是 -8、HP/MP 和气槽在同一位置。
  57.   GAUGE_OFFSET_Y = -8
  58.   # ◆ 能量的数值表示
  59.   #   0 .. 不表示  ※如果有两个能量珠以上时,不推荐这种
  60.   #   1 .. 直接表示 (储存多少直接数字表示)
  61.   #   2 .. 百分比 --> x%
  62.   #   3 .. 百分比 (小数点后一位) --> x.x%
  63.   #   4 .. 百分比 (小数点后两位) --> x.xx%
  64.   #   5 .. 按能量珠表示
  65.   GAUGE_VALUE_STYLE = 2
  66.   # ◆ 能量储存值的表示文字的字体大小
  67.   #  太大的话字体回模糊
  68.   GAUGE_VALUE_FONT_SIZE = 14

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

  71.   # ◆ 不显示气槽的角色
  72.   # 通过输入角色ID归类为不显示气槽
  73.   HIDE_GAUGE_ACTOR = []
  74.   # ◆ 非战斗时不显示气槽
  75.   HIDE_GAUGE_NOT_IN_BATTLE = false
  76.   # ◆ 没有学习到超必杀技能时,不显示气槽
  77.   HIDE_GAUGE_NO_OD_SKILLS  = true
  78.   # ◆ 不显示气槽的场合,不能增加能量
  79.   NOT_GAIN_GAUGE_HIDING    = true

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

  82.   # ◆ 气槽能量的名字
  83.   GAUGE_NAME = "气槽能量"
  84.   # ◆ 使用影响气槽能量的道具时,显示的信息
  85.   OD_GAIN_MESSAGE = {
  86.     :drain_a   => "%s夺取了%s的能量!",  # 吸收: 角色
  87.     :drain_e   => "%s的%s能量被夺取了!",    # 吸收: 敌人
  88.     :loss_a    => "%s减少了%s的能量!",    # 减少: 角色
  89.     :loss_e    => "%s减少了%s的能量!",    # 减少: 敌人
  90.     :recover_a => "%s增加了%s的能量!",    # 增加: 角色
  91.     :recover_e => "%s增加了%s的能量!",    # 增加: 敌人
  92.   }
  93. end
  94. end

  95. #==============================================================================
  96. # ☆  Customize项目结束 - Customize END ☆
  97. #==============================================================================

  98. $imported = {} if $imported == nil
  99. $imported["OverDrive"] = true

  100. module KGC::OverDrive
  101.   # ドライブタイプ
  102.   module Type
  103.     ATTACK  = 0  # 攻击
  104.     DAMAGE  = 1  # 受到伤害
  105.     VICTORY = 2  # 胜利
  106.     ESCAPE  = 3  # 逃走
  107.     ALONE   = 4  # 单独战斗
  108.     ACTION  = 5  # 行动
  109.     FATAL   = 6  # 濒死
  110.     GUARD   = 7  # 防御
  111.   end

  112.   # 储存量表示
  113.   module ValueStyle
  114.     NONE         = 0  # 不显示
  115.     IMMEDIATE    = 1  # 直接表示
  116.     RATE         = 2  # 百分比
  117.     RATE_DETAIL1 = 3  # 百分比 (小数点后一位)
  118.     RATE_DETAIL2 = 4  # 百分比 (小数点后两位)
  119.     NUMBER       = 5  # 按能量珠表示
  120.   end

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

  126.     module Skill
  127.       # 超必杀技能
  128.       OVER_DRIVE = /<(?:OVER_DRIVE|オーバードライブ)\s*(\d+)?(\+)?>/i
  129.       # 能量的增加量
  130.       OD_GAIN_RATE =
  131.         /<(?:OD_GAIN_RATE|(?:OD|ドライブ)ゲージ増加率)\s*(\d+)[%%]?>/i
  132.     end
  133.   end
  134. end

  135. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  136. #==============================================================================
  137. # □ KGC::Commands
  138. #==============================================================================

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

  285. class Game_Interpreter
  286.   include KGC::Commands
  287. end

  288. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  289. #==============================================================================
  290. # ■ RPG::UsableItem
  291. #==============================================================================

  292. class RPG::UsableItem < RPG::BaseItem
  293.   #--------------------------------------------------------------------------
  294.   # ○ 超必杀技能的生成
  295.   #--------------------------------------------------------------------------
  296.   def create_overdrive_cache
  297.     @__od_gain = 0

  298.     self.note.each_line { |line|
  299.       case line
  300.       when KGC::OverDrive::Regexp::UsableItem::OD_GAIN
  301.         # 增加气槽能量
  302.         @__od_gain = $1.to_i
  303.       end
  304.     }
  305.   end
  306.   #--------------------------------------------------------------------------
  307.   # ○ 气槽能量的增加量
  308.   #--------------------------------------------------------------------------
  309.   def od_gain
  310.     create_overdrive_cache if @__od_gain == nil
  311.     return @__od_gain
  312.   end
  313.   #--------------------------------------------------------------------------
  314.   # ○ 如果有超必杀技能的话
  315.   #--------------------------------------------------------------------------
  316.   def overdrive
  317.     return false
  318.   end
  319.   alias overdrive? overdrive
  320. end

  321. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  322. #==============================================================================
  323. # ■ RPG::Skill
  324. #==============================================================================

  325. class RPG::Skill < RPG::UsableItem
  326.   #--------------------------------------------------------------------------
  327.   # ○ 生存超必杀技能的内存
  328.   #--------------------------------------------------------------------------
  329.   def create_overdrive_cache
  330.     super

  331.     @__is_overdrive   = false
  332.     @__od_cost        = KGC::OverDrive::GAUGE_MAX
  333.     @__od_consume_all = false
  334.     @__od_gain_rate   = 100

  335.     self.note.each_line { |line|
  336.       case line
  337.       when KGC::OverDrive::Regexp::Skill::OVER_DRIVE
  338.         # オーバードライブ
  339.         @__is_overdrive   = true
  340.         @__od_cost        = $1.to_i if $1 != nil
  341.         @__od_consume_all = ($2 != nil)
  342.       when KGC::OverDrive::Regexp::Skill::OD_GAIN_RATE
  343.         # 能量增加率
  344.         @__od_gain_rate = $1.to_i
  345.       end
  346.     }

  347.     # 如果没有超必杀技能,则能量槽能量为0
  348.     unless @__is_overdrive
  349.       @__od_cost = 0
  350.     end
  351.   end
  352.   #--------------------------------------------------------------------------
  353.   # ○ 如果有超必杀技能
  354.   #--------------------------------------------------------------------------
  355.   def overdrive
  356.     create_overdrive_cache if @__is_overdrive == nil
  357.     return @__is_overdrive
  358.   end
  359.   alias overdrive? overdrive
  360.   #--------------------------------------------------------------------------
  361.   # ○ 气槽能量的消耗值
  362.   #--------------------------------------------------------------------------
  363.   def od_cost
  364.     create_overdrive_cache if @__od_cost == nil
  365.     return @__od_cost
  366.   end
  367.   #--------------------------------------------------------------------------
  368.   # ○ 气槽能量全部消耗掉
  369.   #--------------------------------------------------------------------------
  370.   def od_consume_all
  371.     create_overdrive_cache if @__od_consume_all == nil
  372.     return @__od_consume_all
  373.   end
  374.   alias od_consume_all? od_consume_all
  375.   #--------------------------------------------------------------------------
  376.   # ○ 气槽能量的增加率
  377.   #--------------------------------------------------------------------------
  378.   def od_gain_rate
  379.     create_overdrive_cache if @__od_gain_rate == nil
  380.     return @__od_gain_rate
  381.   end
  382. end

  383. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  384. #==============================================================================
  385. # ■ Vocab
  386. #==============================================================================

  387. module Vocab
  388.   # 气槽能量名
  389.   def self.overdrive
  390.     return KGC::OverDrive::GAUGE_NAME
  391.   end

  392.   # 角色这边的显示信息
  393.   ActorODDrain    = KGC::OverDrive::OD_GAIN_MESSAGE[:drain_a]
  394.   ActorODLoss     = KGC::OverDrive::OD_GAIN_MESSAGE[:loss_a]
  395.   ActorODRecovery = KGC::OverDrive::OD_GAIN_MESSAGE[:recover_a]

  396.   # 敌人那边的显示信息
  397.   EnemyODDrain    = KGC::OverDrive::OD_GAIN_MESSAGE[:drain_e]
  398.   EnemyODLoss     = KGC::OverDrive::OD_GAIN_MESSAGE[:loss_e]
  399.   EnemyODRecovery = KGC::OverDrive::OD_GAIN_MESSAGE[:recover_e]
  400. end

  401. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  402. #==============================================================================
  403. # ■ Game_Battler
  404. #==============================================================================

  405. class Game_Battler
  406.   #--------------------------------------------------------------------------
  407.   # ● 公开的公有变量
  408.   #--------------------------------------------------------------------------
  409.   attr_writer   :drive_type               # 气槽类型
  410.   attr_reader   :od_damage                # 行动结果: 气槽伤害
  411.   #--------------------------------------------------------------------------
  412.   # ● 清除保存行动效果的变量
  413.   #--------------------------------------------------------------------------
  414.   alias clear_action_results_KGC_OverDrive clear_action_results
  415.   def clear_action_results
  416.     clear_action_results_KGC_OverDrive

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

  538.     reset_overdrive_on_dead if dead?
  539.   end
  540.   #--------------------------------------------------------------------------
  541.   # ○ 计算技能消耗的能量
  542.   #     skill : 技能
  543.   #--------------------------------------------------------------------------
  544.   def calc_od_cost(skill)
  545.     return 0 unless skill.is_a?(RPG::Skill)

  546.     return skill.od_cost
  547.   end
  548.   #--------------------------------------------------------------------------
  549.   # ● 技能是否可以使用的判断
  550.   #     skill : 技能
  551.   #--------------------------------------------------------------------------
  552.   alias skill_can_use_KGC_OverDrive? skill_can_use?
  553.   def skill_can_use?(skill)
  554.     return false unless skill_can_use_KGC_OverDrive?(skill)

  555.     return false if calc_od_cost(skill) > overdrive
  556.     return true
  557.   end
  558.   #--------------------------------------------------------------------------
  559.   # ● 基于技能或物品的伤害判定
  560.   #     user : 技能或物品的使用者
  561.   #     obj  : 技能或物品
  562.   #    结果将代入 @hp_damage 或 @mp_damage 。
  563.   #--------------------------------------------------------------------------
  564.   alias make_obj_damage_value_KGC_OverDrive make_obj_damage_value
  565.   def make_obj_damage_value(user, obj)
  566.     make_obj_damage_value_KGC_OverDrive(user, obj)

  567.     apply_od_consume_all_for_damage(user, obj)
  568.   end
  569.   #--------------------------------------------------------------------------
  570.   # ○ 适用于气槽能量全消耗时
  571.   #     user : 技能或物品的使用者
  572.   #     obj  : 技能或物品
  573.   #    结果将代入 @hp_damage 或 @mp_damage 。
  574.   #--------------------------------------------------------------------------
  575.   def apply_od_consume_all_for_damage(user, obj)
  576.     return unless obj.is_a?(RPG::Skill)
  577.     return unless obj.overdrive? && obj.od_consume_all?

  578.     # 剩余能量消耗的强化 (例: 最低消耗量为 1000 时消耗 1200 的话效果是 1.2 倍)
  579.     rate = [user.overdrive * 1000 / obj.od_cost, 1000].max
  580.     @hp_damage = @hp_damage * rate / 1000
  581.     @mp_damage = @mp_damage * rate / 1000
  582.   end
  583.   #--------------------------------------------------------------------------
  584.   # ● 受到伤害时的反映
  585.   #     user : 技能或物品的使用者
  586.   #    若要使用此部分,请先设置 @hp_damage、@mp_damage、@absorbed 。
  587.   #--------------------------------------------------------------------------
  588.   alias execute_damage_KGC_OverDrive execute_damage
  589.   def execute_damage(user)
  590.     execute_damage_KGC_OverDrive(user)

  591.     increase_overdrive(user)
  592.     increase_overdrive_by_item(user)
  593.   end
  594.   #--------------------------------------------------------------------------
  595.   # ○ 死亡时气槽能量的初始化
  596.   #--------------------------------------------------------------------------
  597.   def reset_overdrive_on_dead
  598.     return unless KGC::OverDrive::EMPTY_ON_DEAD

  599.     self.overdrive = 0
  600.   end
  601.   #--------------------------------------------------------------------------
  602.   # ○ 气槽能量的增加处理
  603.   #     attacker : 攻击者
  604.   #--------------------------------------------------------------------------
  605.   def increase_overdrive(attacker = nil)
  606.     return unless attacker.is_a?(Game_Battler)  # 攻击者非战场单位
  607.     return unless actor? ^ attacker.actor?      # 攻击者和防御者在同一阵型
  608.     return if hp_damage == 0 && mp_damage == 0  # 不受到伤害

  609.     increase_attacker_overdrive(attacker)
  610.     increase_defender_overdrive(attacker)
  611.     reset_overdrive_on_dead if dead?
  612.   end
  613.   #--------------------------------------------------------------------------
  614.   # ○ 攻击方的气槽能量处理
  615.   #     attacker : 攻击者
  616.   #--------------------------------------------------------------------------
  617.   def increase_attacker_overdrive(attacker)
  618.     return unless can_gain_overdrive?
  619.     return unless attacker.drive_attack?  # ドライブタイプ「攻撃」なし

  620.     od_gain = KGC::OverDrive::GAIN_RATE[KGC::OverDrive::Type::ATTACK]
  621.     if attacker.action.kind == 1
  622.       rate = attacker.action.skill.od_gain_rate  # スキルの倍率を適用
  623.       od_gain = od_gain * rate / 100
  624.       if rate > 0
  625.         od_gain = [od_gain, 1].max
  626.       elsif rate < 0
  627.         od_gain = [od_gain, -1].min
  628.       end
  629.     end
  630.     attacker.overdrive += od_gain
  631.   end
  632.   #--------------------------------------------------------------------------
  633.   # ○ 防御方的气槽能量处理
  634.   #     attacker : 攻击者
  635.   #--------------------------------------------------------------------------
  636.   def increase_defender_overdrive(attacker)
  637.     return unless can_gain_overdrive?
  638.     return unless self.drive_damage?  # 气槽类型不受到伤害

  639.     rate = KGC::OverDrive::GAIN_RATE[KGC::OverDrive::Type::DAMAGE]
  640.     od_gain = 0
  641.     od_gain += hp_damage * rate / maxhp if hp_damage > 0
  642.     od_gain += mp_damage * rate / maxmp if mp_damage > 0 && maxmp > 0
  643.     if rate > 0
  644.       od_gain = [od_gain, 1].max
  645.     elsif rate < 0
  646.       od_gain = [od_gain, -1].min
  647.     end
  648.     self.overdrive += od_gain
  649.   end
  650.   #--------------------------------------------------------------------------
  651.   # ○ 使用物品增加气槽时的处理
  652.   #     user : 使用者
  653.   #--------------------------------------------------------------------------
  654.   def increase_overdrive_by_item(user = nil)
  655.     return unless user.is_a?(Game_Battler)
  656.     return unless can_gain_overdrive?

  657.     if user.action.skill?
  658.       obj = user.action.skill
  659.     elsif user.action.item?
  660.       obj = user.action.item
  661.     else
  662.       return
  663.     end
  664.     @od_damage = -obj.od_gain
  665.     self.overdrive -= @od_damage
  666.   end
  667.   #--------------------------------------------------------------------------
  668.   # ● 适用于技能效果
  669.   #     user  : 技能的使用者
  670.   #     skill : 技能
  671.   #--------------------------------------------------------------------------
  672.   alias skill_effect_KGC_OverDrive skill_effect
  673.   def skill_effect(user, skill)
  674.     skill_effect_KGC_OverDrive(user, skill)

  675.     # 无视物品或技能对气槽能量的影响
  676.     if $imported["ReproduceFunctions"] && $game_temp.exec_skill_on_item
  677.       return
  678.     end
  679.   end
  680. end

  681. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  682. #==============================================================================
  683. # ■ Game_Actor
  684. #==============================================================================

  685. class Game_Actor < Game_Battler
  686.   #--------------------------------------------------------------------------
  687.   # ● 设置
  688.   #     actor_id : 角色 ID
  689.   #--------------------------------------------------------------------------
  690.   alias setup_KGC_OverDrive setup
  691.   def setup(actor_id)
  692.     setup_KGC_OverDrive(actor_id)

  693.     @overdrive  = 0
  694.     @drive_type = nil
  695.   end
  696.   #--------------------------------------------------------------------------
  697.   # ○ 气槽类型的获得
  698.   #--------------------------------------------------------------------------
  699.   def drive_type
  700.     unless @drive_type.is_a?(Array)
  701.       return KGC::OverDrive::DEFAULT_ACTOR_DRIVE_TYPE
  702.     end
  703.     return @drive_type
  704.   end
  705.   #--------------------------------------------------------------------------
  706.   # ○ 判断是否学习到超必杀技能
  707.   #--------------------------------------------------------------------------
  708.   def overdrive_skill_learned?
  709.     result = false
  710.     # 解除一时的战斗FLAG
  711.     last_in_battle = $game_temp.in_battle
  712.     $game_temp.in_battle = false

  713.     self.skills.each { |skill|
  714.       if skill.overdrive?
  715.         result = true
  716.         break
  717.       end
  718.     }
  719.     $game_temp.in_battle = last_in_battle
  720.     return result
  721.   end
  722.   #--------------------------------------------------------------------------
  723.   # ○ 判断是否可以增加气槽能量
  724.   #--------------------------------------------------------------------------
  725.   def can_gain_overdrive?
  726.     if KGC::OverDrive::NOT_GAIN_GAUGE_HIDING
  727.       # 不表示
  728.       return false unless od_gauge_visible_l?
  729.     end
  730.     if KGC::OverDrive::HIDE_GAUGE_NO_OD_SKILLS
  731.       # 没有学到超必杀
  732.       return false unless overdrive_skill_learned?
  733.     end

  734.     return true
  735.   end
  736.   #--------------------------------------------------------------------------
  737.   # ○ 气槽能量的表示判断
  738.   #--------------------------------------------------------------------------
  739.   def od_gauge_visible?
  740.     return false unless od_gauge_visible_l?
  741.     return false unless can_gain_overdrive?

  742.     return true
  743.   end
  744.   #--------------------------------------------------------------------------
  745.   # ○ 气槽能量的表示判断 (简易版)
  746.   #--------------------------------------------------------------------------
  747.   def od_gauge_visible_l?
  748.     # 战斗中不表示
  749.     if KGC::OverDrive::HIDE_GAUGE_NOT_IN_BATTLE && !$game_temp.in_battle
  750.       return false
  751.     end
  752.     # 完全不表示
  753.     return false if KGC::OverDrive::HIDE_GAUGE_ACTOR.include?(self.id)

  754.     return true
  755.   end
  756. end

  757. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  758. #==============================================================================
  759. # ■ Game_Enemy
  760. #==============================================================================

  761. class Game_Enemy < Game_Battler
  762.   #--------------------------------------------------------------------------
  763.   # ● 对象初始化
  764.   #     index    : 敌方团体的编号
  765.   #     enemy_id : 敌方编号 ID
  766.   #--------------------------------------------------------------------------
  767.   alias initialize_KGC_OverDrive initialize
  768.   def initialize(index, enemy_id)
  769.     initialize_KGC_OverDrive(index, enemy_id)

  770.     @overdrive  = 0
  771.     @drive_type = nil
  772.   end
  773.   #--------------------------------------------------------------------------
  774.   # ○ 气槽类型的取得
  775.   #--------------------------------------------------------------------------
  776.   def drive_type
  777.     unless @drive_type.is_a?(Array)
  778.       return KGC::OverDrive::DEFAULT_ENEMY_DRIVE_TYPE
  779.     end
  780.     return @drive_type
  781.   end
  782. end

  783. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  784. #==============================================================================
  785. # ■ Window_Base
  786. #==============================================================================

  787. class Window_Base < Window
  788.   #--------------------------------------------------------------------------
  789.   # ○ 气槽能量的一般颜色 1 的获得
  790.   #--------------------------------------------------------------------------
  791.   def od_gauge_normal_color1
  792.     color = KGC::OverDrive::GAUGE_NORMAL_START_COLOR
  793.     return (color.is_a?(Integer) ? text_color(color) : color)
  794.   end
  795.   #--------------------------------------------------------------------------
  796.   # ○ 气槽能量的一般颜色 2 的获得
  797.   #--------------------------------------------------------------------------
  798.   def od_gauge_normal_color2
  799.     color = KGC::OverDrive::GAUGE_NORMAL_END_COLOR
  800.     return (color.is_a?(Integer) ? text_color(color) : color)
  801.   end
  802.   #--------------------------------------------------------------------------
  803.   # ○ 气槽能量的最大颜色 1 的获得
  804.   #--------------------------------------------------------------------------
  805.   def od_gauge_max_color1
  806.     color = KGC::OverDrive::GAUGE_MAX_START_COLOR
  807.     return (color.is_a?(Integer) ? text_color(color) : color)
  808.   end
  809.   #--------------------------------------------------------------------------
  810.   # ○ 气槽能量的最大颜色 2 的获得
  811.   #--------------------------------------------------------------------------
  812.   def od_gauge_max_color2
  813.     color = KGC::OverDrive::GAUGE_MAX_END_COLOR
  814.     return (color.is_a?(Integer) ? text_color(color) : color)
  815.   end
  816.   #--------------------------------------------------------------------------
  817.   # ● 名字的表示
  818.   #     actor : 角色
  819.   #     x     : X坐标
  820.   #     y     : Y坐标
  821.   #--------------------------------------------------------------------------
  822.   alias draw_actor_name_KGC_OverDrive draw_actor_name
  823.   def draw_actor_name(actor, x, y)
  824.     draw_actor_od_gauge(actor, x, y, 108)

  825.     draw_actor_name_KGC_OverDrive(actor, x, y)
  826.   end
  827.   #--------------------------------------------------------------------------
  828.   # ○ 气槽能量的表示
  829.   #     actor : 角色
  830.   #     x     : X坐标
  831.   #     y     : Y坐标
  832.   #     width : 宽度
  833.   #--------------------------------------------------------------------------
  834.   def draw_actor_od_gauge(actor, x, y, width = 120)
  835.     return unless actor.od_gauge_visible?

  836.     n = actor.overdrive % KGC::OverDrive::GAUGE_MAX
  837.     n = KGC::OverDrive::GAUGE_MAX if actor.overdrive_max?

  838.     if KGC::OverDrive::ENABLE_GENERIC_GAUGE && $imported["GenericGauge"]
  839.       # 汎用ゲージ
  840.       file = (actor.overdrive_max? ?
  841.         KGC::OverDrive::GAUGE_MAX_IMAGE : KGC::OverDrive::GAUGE_IMAGE)
  842.       draw_gauge(file,
  843.         x, y, width, n, KGC::OverDrive::GAUGE_MAX,
  844.         KGC::OverDrive::GAUGE_OFFSET,
  845.         KGC::OverDrive::GAUGE_LENGTH,
  846.         KGC::OverDrive::GAUGE_SLOPE)
  847.     else
  848.       # デフォルトゲージ
  849.       gw = width * n / KGC::OverDrive::GAUGE_MAX
  850.       gc1 = (gw == width ? od_gauge_max_color1 : od_gauge_normal_color1)
  851.       gc2 = (gw == width ? od_gauge_max_color2 : od_gauge_normal_color2)
  852.       self.contents.fill_rect(x, y + WLH + KGC::OverDrive::GAUGE_OFFSET_Y,
  853.         width, 6, gauge_back_color)
  854.       self.contents.gradient_fill_rect(
  855.         x, y + WLH + KGC::OverDrive::GAUGE_OFFSET_Y, gw, 6, gc1, gc2)
  856.     end

  857.     draw_actor_od_gauge_value(actor, x, y, width)
  858.   end
  859.   #--------------------------------------------------------------------------
  860.   # ○ 气槽能量的储存量的表示
  861.   #     actor : 角色
  862.   #     x     : X坐标
  863.   #     y     : Y坐标
  864.   #     width : 宽度
  865.   #--------------------------------------------------------------------------
  866.   def draw_actor_od_gauge_value(actor, x, y, width = 120)
  867.     text = ""
  868.     value = actor.overdrive * 100.0 / KGC::OverDrive::GAUGE_MAX
  869.     case KGC::OverDrive::GAUGE_VALUE_STYLE
  870.     when KGC::OverDrive::ValueStyle::IMMEDIATE
  871.       text = actor.overdrive.to_s
  872.     when KGC::OverDrive::ValueStyle::RATE
  873.       text = sprintf("%d%%", actor.overdrive * 100 / KGC::OverDrive::GAUGE_MAX)
  874.     when KGC::OverDrive::ValueStyle::RATE_DETAIL1
  875.       text = sprintf("%0.1f%%", value)
  876.     when KGC::OverDrive::ValueStyle::RATE_DETAIL2
  877.       text = sprintf("%0.2f%%", value)
  878.     when KGC::OverDrive::ValueStyle::NUMBER
  879.       text = "#{actor.overdrive / KGC::OverDrive::GAUGE_MAX}"
  880.     else
  881.       return
  882.     end

  883.     last_font_size = self.contents.font.size
  884.     new_font_size  = KGC::OverDrive::GAUGE_VALUE_FONT_SIZE
  885.     self.contents.font.size = new_font_size
  886.     self.contents.draw_text(
  887.       x, y + WLH + KGC::OverDrive::GAUGE_OFFSET_Y - new_font_size / 2,
  888.       width, new_font_size, text, 2)
  889.     self.contents.font.size = last_font_size
  890.   end
  891. end

  892. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  893. #==============================================================================
  894. # ■ Window_Skill
  895. #==============================================================================

  896. if KGC::OverDrive::HIDE_SKILL_LACK_OF_GAUGE

  897. class Window_Skill < Window_Selectable
  898.   #--------------------------------------------------------------------------
  899.   # ○ 如果含有技能的列表?
  900.   #     skill : 技能
  901.   #--------------------------------------------------------------------------
  902.   unless $@
  903.     alias include_KGC_OverDrive? include? if method_defined?(:include?)
  904.   end
  905.   def include?(skill)
  906.     return false if skill == nil

  907.     if defined?(include_KGC_OverDrive?)
  908.       return false unless include_KGC_OverDrive?(skill)
  909.     end

  910.     if skill.overdrive?
  911.       return (@actor.calc_od_cost(skill) <= @actor.overdrive)
  912.     else
  913.       return true
  914.     end
  915.   end

  916. if method_defined?(:include_KGC_OverDrive?)
  917.   #--------------------------------------------------------------------------
  918.   # ● 刷新
  919.   #--------------------------------------------------------------------------
  920.   def refresh
  921.     @data = []
  922.     for skill in @actor.skills
  923.       next unless include?(skill)
  924.       @data.push(skill)
  925.       if skill.id == @actor.last_skill_id
  926.         self.index = @data.size - 1
  927.       end
  928.     end
  929.     @item_max = @data.size
  930.     create_contents
  931.     for i in 0...@item_max
  932.       draw_item(i)
  933.     end
  934.   end
  935. end

  936. end  # <-- class
  937. end  # <-- if KGC::OverDrive::HIDE_SKILL_LACK_OF_GAUGE

  938. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  939. #==============================================================================
  940. # ■ Scene_Skill
  941. #==============================================================================

  942. class Scene_Skill < Scene_Base
  943.   #--------------------------------------------------------------------------
  944.   # ● 使用技能 (使用效果适用于非我方人物)
  945.   #--------------------------------------------------------------------------
  946.   alias use_skill_nontarget_KGC_OverDrive use_skill_nontarget
  947.   def use_skill_nontarget
  948.     consume_od_gauge

  949.     use_skill_nontarget_KGC_OverDrive
  950.   end
  951.   #--------------------------------------------------------------------------
  952.   # ○ 使用技能时气槽能量的消耗
  953.   #--------------------------------------------------------------------------
  954.   def consume_od_gauge
  955.     if @skill.od_consume_all?
  956.       @actor.overdrive = 0
  957.     else
  958.       @actor.overdrive -= @actor.calc_od_cost(@skill)
  959.     end
  960.   end
  961. end

  962. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  963. #==============================================================================
  964. # ■ Scene_Battle
  965. #==============================================================================

  966. class Scene_Battle < Scene_Base
  967.   #--------------------------------------------------------------------------
  968.   # ● 战斗结束
  969.   #     result : 结果 (0:胜利 1:逃走 2:失败)
  970.   #--------------------------------------------------------------------------
  971.   alias battle_end_KGC_OverDrive battle_end
  972.   def battle_end(result)
  973.     increase_overdrive_on_battle_end(result)

  974.     battle_end_KGC_OverDrive(result)
  975.   end
  976.   #--------------------------------------------------------------------------
  977.   # ○ 战斗结束时气槽能量的增加处理
  978.   #     result : 结果 (0:胜利 1:逃走 2:失败)
  979.   #--------------------------------------------------------------------------
  980.   def increase_overdrive_on_battle_end(result)
  981.     case result
  982.     when 0  # 胜利
  983.       od_gain = KGC::OverDrive::GAIN_RATE[KGC::OverDrive::Type::VICTORY]
  984.       $game_party.existing_members.each { |actor|
  985.         actor.overdrive += od_gain if actor.drive_victory?
  986.       }
  987.     when 1  # 逃走
  988.       od_gain = KGC::OverDrive::GAIN_RATE[KGC::OverDrive::Type::ESCAPE]
  989.       $game_party.existing_members.each { |actor|
  990.         actor.overdrive += od_gain if actor.drive_escape?
  991.       }
  992.     end
  993.   end
  994.   #--------------------------------------------------------------------------
  995.   # ● 战斗行动的实行
  996.   #--------------------------------------------------------------------------
  997.   alias execute_action_KGC_OverDrive execute_action
  998.   def execute_action
  999.     increase_overdrive_on_action

  1000.     execute_action_KGC_OverDrive
  1001.   end
  1002.   #--------------------------------------------------------------------------
  1003.   # ○ 行动时的气槽能量的增加处理
  1004.   #--------------------------------------------------------------------------
  1005.   def increase_overdrive_on_action
  1006.     battler = @active_battler
  1007.     od_gain = 0
  1008.     unit = (battler.actor? ? $game_party : $game_troop)

  1009.     # 单独战斗
  1010.     if battler.drive_alone? && unit.existing_members.size == 1
  1011.       od_gain += KGC::OverDrive::GAIN_RATE[KGC::OverDrive::Type::ALONE]
  1012.     end
  1013.     # 行动
  1014.     if battler.drive_action?
  1015.       od_gain += KGC::OverDrive::GAIN_RATE[KGC::OverDrive::Type::ACTION]
  1016.     end
  1017.     # 濒死
  1018.     if battler.drive_fatal? && battler.hp < battler.maxhp / 4
  1019.       od_gain += KGC::OverDrive::GAIN_RATE[KGC::OverDrive::Type::FATAL]
  1020.     end
  1021.     # 防御
  1022.     if battler.drive_guard? && battler.action.kind == 0 &&
  1023.         battler.action.basic == 1
  1024.       od_gain += KGC::OverDrive::GAIN_RATE[KGC::OverDrive::Type::GUARD]
  1025.     end
  1026.     battler.overdrive += od_gain
  1027.   end
  1028.   #--------------------------------------------------------------------------
  1029.   # ● 战斗行动的实行:技能
  1030.   #--------------------------------------------------------------------------
  1031.   alias execute_action_skill_KGC_OverDrive execute_action_skill
  1032.   def execute_action_skill
  1033.     execute_action_skill_KGC_OverDrive

  1034.     consume_od_gauge
  1035.   end
  1036.   #--------------------------------------------------------------------------
  1037.   # ○ 技能使用时的气槽能量的增加处理
  1038.   #--------------------------------------------------------------------------
  1039.   def consume_od_gauge
  1040.     return unless @active_battler.action.skill?

  1041.     skill = @active_battler.action.skill
  1042.     if skill.od_consume_all?
  1043.       @active_battler.overdrive = 0
  1044.     else
  1045.       @active_battler.overdrive -= @active_battler.calc_od_cost(skill)
  1046.     end
  1047.   end
  1048.   #--------------------------------------------------------------------------
  1049.   # ● 伤害的表示
  1050.   #     target : 目标
  1051.   #     obj    : 技能或物品
  1052.   #--------------------------------------------------------------------------
  1053.   alias display_damage_KGC_OverDrive display_damage
  1054.   def display_damage(target, obj = nil)
  1055.     display_damage_KGC_OverDrive(target, obj)

  1056.     return if target.missed || target.evaded
  1057.     display_od_damage(target, obj)
  1058.   end
  1059.   #--------------------------------------------------------------------------
  1060.   # ○ 超必杀的伤害表示
  1061.   #     target : 目标
  1062.   #     obj    : 技能或物品
  1063.   #--------------------------------------------------------------------------
  1064.   def display_od_damage(target, obj = nil)
  1065.     return if target.dead?
  1066.     return if target.od_damage == 0
  1067.     if target.absorbed                      # 吸收
  1068.       fmt = target.actor? ? Vocab::ActorODDrain : Vocab::EnemyODDrain
  1069.       text = sprintf(fmt, target.name, Vocab::overdrive)
  1070.     elsif target.od_damage > 0              # 受到伤害
  1071.       fmt = target.actor? ? Vocab::ActorODLoss : Vocab::EnemyODLoss
  1072.       text = sprintf(fmt, target.name, Vocab::overdrive)
  1073.     else                                    # 回复
  1074.       fmt = target.actor? ? Vocab::ActorODRecovery : Vocab::EnemyODRecovery
  1075.       text = sprintf(fmt, target.name, Vocab::overdrive)
  1076.       Sound.play_recovery
  1077.     end
  1078.     @message_window.add_instant_text(text)
  1079.     wait(30)
  1080.   end
  1081. end
复制代码

Lv1.梦旅人

梦石
0
星屑
50
在线时间
43 小时
注册时间
2010-9-20
帖子
46
2
发表于 2010-10-6 13:52:13 | 只看该作者
本帖最后由 qiji19980124 于 2010-10-6 13:56 编辑

好像使用很麻烦……
特技的「备注 」栏加入 <オーバードライブ n> 。
n是特殊气槽的消费量。(请输入半角文字)
写上了省略消费量的 <オーバードライブ>的话、消费1整格  (1000)。

一个技能不能使用气槽的1整格 (1000) 以上。
(<オーバードライブ n> 的话、气槽在n以上的话可以)
<オーバードライブ n>可以使用 <over_drive n> 代替使用。
数值之后加上 + 的话、会消费掉所有的气槽。
(如果消费量没满就不能用)
这时,气槽量越多威力就越大。
  1. # 气槽 1000 以上使用可能
  2. # 蓄積量多的话威力上升
  3. <オーバードライブ 1000+>
复制代码
(未完,还在编辑)


回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 16:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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