VX 스크립트

원문 : http://f44.aaa.livedoor.jp/~ytomy/tkool/rpgtech/php/tech.php?tool=VX&cat=tech_vx/battle_system&tech=over_drive
인조이재팬 : http://j2k.naver.com/j2k.php/korean/f44.aaa.livedoor.jp/~ytomy/tkool/rpgtech/php/tech.php?tool=VX&cat=tech_vx/battle_system&tech=over_drive


자유게시판에 올려둔 내용 중 하나 입니다.
횡방향의 전투형태와 더불어 오버드라이브를 적용시키면... 파이널판타지, 정말 오랜만에 해보는데요 ^^
나름 이런 전투도 좋았던거 같은데 말이죠.



+스크립트+


ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ


#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/    ◆ 오버 드라이브 - KGC_OverDrive ◆ VX ◆
#_/    ◇ Last update : 2008/02/06 ◇
#_/----------------------------------------------------------------------------
#_/  전용의 게이지를 소비해 사용하는 스킬을 작성합니다.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

#==============================================================================
# ★ 커스터마이즈 항목 - Customize ★
#==============================================================================

module KGC
module OverDrive
  # ◆ 드라이브 게이지 최대치
  #  보통은 이대로OK.미조정하고 싶은 경우로 변경.
  GAUGE_MAX = 1000
  # ◆ 드라이브 게이지 증가량
  #  높을 정도 게이지가 모이기 쉽다.
  #  「피데미지」는, 받은 데미지의 최대 HP 에 대한 비율로 증가량을 산출.
  #  (500 (이)라고, 최대 HP 상당한 데미지로 500 모인다)
  GAIN_RATE = [
     80,  # 공격
    500,  # 피데미지
    200,  # 승리
    100,  # 도주
    160,  # 고독
     40,  # 행동
    160,  # 빈사
  ]  # ← 이 ] (은)는 지우지 않는 것!

  # ◆ 액터의 디폴트 드라이브 타입
  #   0..공격  1..피데미지  2..승리  3..도주  4..고독  5..행동  6..빈사
  DEFAULT_ACTOR_DRIVE_TYPE = [0, 1, 6]
  # ◆ 에너미의 디폴트 드라이브 타입
  DEFAULT_ENEMY_DRIVE_TYPE = [0, 1, 4, 5, 6]

  # ◆ 드라이브 게이지의 개시색 (통상시)
  #  수치  : C[n] (와)과 같은 색.
  #  Color : 지정한 색. ( Color.new(255, 128, 128) 등 )
  GAUGE_NORMAL_START_COLOR = 14
  # ◆ 드라이브 게이지의 종료색 (통상시)
  GAUGE_NORMAL_END_COLOR   = 6
  # ◆ 드라이브 게이지의 개시색 (최대시)
  GAUGE_MAX_START_COLOR    = 10
  # ◆ 드라이브 게이지의 종료색 (최대시)
  GAUGE_MAX_END_COLOR      = 2

  # ◆ 사망(HP 0) 때에 드라이브 게이지를 0 (으)로 한다
  EMPTY_ON_DEAD = true

  # ◆ 드라이브 게이지를 표시하지 않는 액터
  #  게이지를 숨기는 액터의ID(을)를 배열에 격납.
  HIDE_GAUGE_ACTOR = []
  # ◆ 비전투시는 드라이브 게이지를 숨긴다
  HIDE_GAUGE_NOT_IN_BATTLE = false
end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

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

module KGC::OverDrive
  # 드라이브 타입
  module Type
    ATTACK  = 0  # 공격
    DAMAGE  = 1  # 피데미지
    VICTORY = 2  # 승리
    ESCAPE  = 3  # 도주
    ALONE   = 4  # 고독
    ACTION  = 5  # 행동
    FATAL   = 6  # 빈사
  end

  # 정규 표현
  module Regexp
    # 스킬
    module Skill
      # 오버 드라이브
      OVER_DRIVE = /<(?:OVER_DRIVE|오버 드라이브)[ ]*(d+)?>/i
      # 게이지 증가율
      OD_GAIN_RATE = /<(?:OD_GAIN_RATE|OD게이지 증가율)[ ]*(d+)[%%]?>/i
    end
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# □ KGC::Commands
#==============================================================================

module KGC::Commands
  module_function
  #--------------------------------------------------------------------------
  # ○ 액터의 드라이브 게이지의 증감
  #     actor_id : 액터 ID (-1 : 파티 전체)
  #     value    : 증가량 (마이너스도 가능)
  #--------------------------------------------------------------------------
  def gain_actor_od_gauge(actor_id, value)
    if actor_id == -1
      # 생존 멤버 전원의 게이지를 조작
      $game_party.existing_members.each { |actor|
        actor.overdrive += value
      }
    else
      actor = $game_actors[actor_id]
      actor.overdrive += value if actor != nil && actor.exist?
    end
  end
  #--------------------------------------------------------------------------
  # ○ 에너미의 드라이브 게이지의 증감
  #     enemy_index : 에너미 index (-1 : 전체)
  #     value       : 증가량 (마이너스도 가능)
  #--------------------------------------------------------------------------
  def gain_enemy_od_gauge(enemy_index, value)
    if enemy_index == -1
      # 생존 에너미 전원의 게이지를 조작
      $game_troop.existing_members.each { |enemy|
        enemy.overdrive += value
      }
    else
      enemy = $game_troop.members[enemy_index]
      enemy.overdrive += value if enemy != nil && enemy.exist?
    end
  end
  #--------------------------------------------------------------------------
  # ○ 액터의 드라이브 타입의 변경
  #     actor_id : 액터 ID (-1 : 파티 전체)
  #     types    : 드라이브 타입의 배열 (생략시 : 초기화)
  #--------------------------------------------------------------------------
  def set_actor_drive_type(actor_id, types = nil)
    if actor_id == -1
      # 멤버 전원의 드라이브 타입을 변경
      $game_party.members.each { |actor|
        actor.drive_type = types
      }
    else
      actor = $game_actors[actor_id]
      actor.drive_type = types if actor != nil
    end
  end
  #--------------------------------------------------------------------------
  # ○ 에너미의 드라이브 타입의 변경
  #     enemy_index : 에너미 index (-1 : 전체)
  #     types       : 드라이브 타입의 배열 (생략시 : 초기화)
  #--------------------------------------------------------------------------
  def set_enemy_drive_type(enemy_index, types = nil)
    if enemy_index == -1
      # 에너미 전원의 드라이브 타입을 변경
      $game_troop.members.each { |enemy|
        enemy.drive_type = types
      }
    else
      enemy = $game_troop.members[enemy_index]
      enemy.drive_type = types if enemy != nil
    end
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ RPG::Skill
#==============================================================================

class RPG::Skill < RPG::UsableItem
  #--------------------------------------------------------------------------
  # ○ 오버 드라이브의 캐쉬 생성
  #--------------------------------------------------------------------------
  def create_overdrive_cache
    @__is_overdrive = false
    @__od_cost = KGC::OverDrive::GAUGE_MAX
    @__od_gain_rate = 100

    self.note.split(/[rn]+/).each { |line|
      case line
      when KGC::OverDrive::Regexp::Skill::OVER_DRIVE
        # 오버 드라이브
        @__is_overdrive = true
        @__od_cost = $1.to_i if $1 != nil
      when KGC::OverDrive::Regexp::Skill::OD_GAIN_RATE
        # 게이지 증가율
        @__od_gain_rate = $1.to_i
      end
    }

    # OverDrive (이)가 아니면, 게이지 소비량 0
    unless @__is_overdrive
      @__od_cost = 0
    end
  end
  #--------------------------------------------------------------------------
  # ○ OverDrive 스킬일까
  #--------------------------------------------------------------------------
  def overdrive?
    create_overdrive_cache if @__is_overdrive == nil
    return @__is_overdrive
  end
  #--------------------------------------------------------------------------
  # ○ 드라이브 게이지 소비량
  #--------------------------------------------------------------------------
  def od_cost
    create_overdrive_cache if @__od_cost == nil
    return @__od_cost
  end
  #--------------------------------------------------------------------------
  # ○ 드라이브 게이지 증가율
  #--------------------------------------------------------------------------
  def od_gain_rate
    create_overdrive_cache if @__od_gain_rate == nil
    return @__od_gain_rate
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Game_Temp
#==============================================================================

class Game_Temp
  #--------------------------------------------------------------------------
  # ● 공개 인스턴스 변수
  #--------------------------------------------------------------------------
  attr_accessor :overdrive_used           # OverDrive 스킬 사용 플래그 (비전투)
  #--------------------------------------------------------------------------
  # ● 오브젝트 초기화
  #--------------------------------------------------------------------------
  alias initialize_KGC_OverDrive initialize
  def initialize
    initialize_KGC_OverDrive

    @overdrive_used = false
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Game_Battler
#==============================================================================

class Game_Battler
  #--------------------------------------------------------------------------
  # ● 공개 인스턴스 변수
  #--------------------------------------------------------------------------
  attr_writer   :drive_type               # 드라이브 타입
  #--------------------------------------------------------------------------
  # ○ 드라이브 게이지량 취득
  #--------------------------------------------------------------------------
  def overdrive
    @overdrive = 0 if @overdrive == nil
    return @overdrive
  end
  #--------------------------------------------------------------------------
  # ○ 드라이브 게이지 최대량 취득
  #--------------------------------------------------------------------------
  def max_overdrive
    return KGC::OverDrive::GAUGE_MAX
  end
  #--------------------------------------------------------------------------
  # ○ 드라이브 게이지의 조작
  #--------------------------------------------------------------------------
  def overdrive=(value)
    @overdrive = [[value, max_overdrive].min, 0].max
  end
  #--------------------------------------------------------------------------
  # ○ 드라이브 타입의 취득
  #--------------------------------------------------------------------------
  def drive_type
    return []
  end
  #--------------------------------------------------------------------------
  # ○ 게이지 표시 판정
  #--------------------------------------------------------------------------
  def od_gauge_visible?
    return false
  end
  #--------------------------------------------------------------------------
  # ○ 공격시 증가 판정
  #--------------------------------------------------------------------------
  def drive_attack?
    return drive_type.include?(KGC::OverDrive::Type::ATTACK)
  end
  #--------------------------------------------------------------------------
  # ○ 피데미지시 증가 판정
  #--------------------------------------------------------------------------
  def drive_damage?
    return drive_type.include?(KGC::OverDrive::Type::DAMAGE)
  end
  #--------------------------------------------------------------------------
  # ○ 승리시 증가 판정
  #--------------------------------------------------------------------------
  def drive_victory?
    return drive_type.include?(KGC::OverDrive::Type::VICTORY)
  end
  #--------------------------------------------------------------------------
  # ○ 도주시 증가 판정
  #--------------------------------------------------------------------------
  def drive_escape?
    return drive_type.include?(KGC::OverDrive::Type::ESCAPE)
  end
  #--------------------------------------------------------------------------
  # ○ 고독시 증가 판정
  #--------------------------------------------------------------------------
  def drive_alone?
    return drive_type.include?(KGC::OverDrive::Type::ALONE)
  end
  #--------------------------------------------------------------------------
  # ○ 행동시 증가 판정
  #--------------------------------------------------------------------------
  def drive_action?
    return drive_type.include?(KGC::OverDrive::Type::ACTION)
  end
  #--------------------------------------------------------------------------
  # ○ 빈사시 증가 판정
  #--------------------------------------------------------------------------
  def drive_fatal?
    return drive_type.include?(KGC::OverDrive::Type::FATAL)
  end
  #--------------------------------------------------------------------------
  # ● 스테이트의 부가
  #     state_id : 스테이트 ID
  #--------------------------------------------------------------------------
  alias add_state_KGC_OverDrive add_state
  def add_state(state_id)
    add_state_KGC_OverDrive(state_id)

    reset_overdrive_on_dead if dead?
  end
  #--------------------------------------------------------------------------
  # ○ 스킬의 소비 드라이브 게이지 계산
  #     skill : 스킬
  #--------------------------------------------------------------------------
  def calc_od_cost(skill)
    return 0 unless skill.is_a?(RPG::Skill)

    return skill.od_cost
  end
  #--------------------------------------------------------------------------
  # ● 스킬의 사용 가능 판정
  #     skill : 스킬
  #--------------------------------------------------------------------------
  alias skill_can_use_KGC_OverDrive? skill_can_use?
  def skill_can_use?(skill)
    return false unless skill_can_use_KGC_OverDrive?(skill)

    return false if calc_od_cost(skill) > overdrive
    return true
  end
  #--------------------------------------------------------------------------
  # ● 데미지의 반영
  #     user : 스킬이나 아이템의 사용자
  #    호출전에 @hp_damage,@mp_damage,@absorbed 하지만 설정되어 있는 것.
  #--------------------------------------------------------------------------
  alias execute_damage_KGC_OverDrive execute_damage
  def execute_damage(user)
    execute_damage_KGC_OverDrive(user)

    increase_overdrive(user)
  end
  #--------------------------------------------------------------------------
  # ○ 사망시 드라이브 게이지 초기화 처리
  #--------------------------------------------------------------------------
  def reset_overdrive_on_dead
    return unless KGC::OverDrive::EMPTY_ON_DEAD

    self.overdrive = 0
  end
  #--------------------------------------------------------------------------
  # ○ 드라이브 게이지 증가 처리
  #     attacker : 공격자
  #--------------------------------------------------------------------------
  def increase_overdrive(attacker = nil)
    return unless attacker.is_a?(Game_Battler)  # 공격자가 버틀러가 아니다
    return if self.class == attacker.class      # 공격측과 방어측이 같다
    return if hp_damage == 0 && mp_damage == 0  # 데미지 없음

    increase_attacker_overdrive(attacker)
    increase_defender_overdrive(attacker)
    reset_overdrive_on_dead if dead?
  end
  #--------------------------------------------------------------------------
  # ○ 공격측의 드라이브 게이지 증가 처리
  #     attacker : 공격자
  #--------------------------------------------------------------------------
  def increase_attacker_overdrive(attacker)
    return unless attacker.drive_attack?  # 드라이브 타입 「공격」없음

    od_gain = [KGC::OverDrive::GAIN_RATE[KGC::OverDrive::Type::ATTACK], 1].max
    if attacker.action.kind == 1
      rate = attacker.action.skill.od_gain_rate  # 스킬의 배율을 적용
      od_gain = od_gain * rate / 100
    end
    attacker.overdrive += od_gain
  end
  #--------------------------------------------------------------------------
  # ○ 방어측의 드라이브 게이지 증가 처리
  #     attacker : 공격자
  #--------------------------------------------------------------------------
  def increase_defender_overdrive(attacker)
    return unless self.drive_damage?  # 드라이브 타입 「데미지」없음

    rate = KGC::OverDrive::GAIN_RATE[KGC::OverDrive::Type::DAMAGE]
    od_gain = hp_damage * rate / maxhp
    od_gain += mp_damage * rate / maxmp if maxmp > 0
    self.overdrive += [od_gain, 1].max
  end
  #--------------------------------------------------------------------------
  # ● 스킬의 효과 적용
  #     user  : 스킬의 사용자
  #     skill : 스킬
  #--------------------------------------------------------------------------
  alias skill_effect_KGC_OverDrive skill_effect
  def skill_effect(user, skill)
    skill_effect_KGC_OverDrive(user, skill)

    # 아이템으로 스킬을 발동했을 경우는 게이지 소비 판정을 무시
    if $imported["ReproduceFunctions"] && $game_temp.exec_skill_on_item
      return
    end
    # 비전투중에 OverDrive 스킬을 사용했을 경우
    if skill.overdrive? && !$game_temp.in_battle && !$game_temp.overdrive_used
      user.overdrive -= skill.od_cost
      $game_temp.overdrive_used = true  # 게이지 소비가 끝난 플래그를 세운다
    end
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Game_Actor
#==============================================================================

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ● 셋업
  #     actor_id : 액터 ID
  #--------------------------------------------------------------------------
  alias setup_KGC_OverDrive setup
  def setup(actor_id)
    setup_KGC_OverDrive(actor_id)

    @overdrive = 0
    @drive_type = nil
  end
  #--------------------------------------------------------------------------
  # ○ OverDrive 타입의 취득
  #--------------------------------------------------------------------------
  def drive_type
    unless @drive_type.is_a?(Array)
      return KGC::OverDrive::DEFAULT_ACTOR_DRIVE_TYPE
    end
    return @drive_type
  end
  #--------------------------------------------------------------------------
  # ○ 게이지 표시 판정
  #--------------------------------------------------------------------------
  def od_gauge_visible?
    # 전투중비표시로 하는 경우
    if KGC::OverDrive::HIDE_GAUGE_NOT_IN_BATTLE && !$game_temp.in_battle
      return false
    end
    # 표시하지 않는 액터에게 포함되는 경우
    if KGC::OverDrive::HIDE_GAUGE_ACTOR.include?(self.id)
      return false
    end
    return true
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Game_Enemy
#==============================================================================

class Game_Enemy < Game_Battler
  #--------------------------------------------------------------------------
  # ● 오브젝트 초기화
  #     index    : 적그룹내 인덱스
  #     enemy_id : 적캐릭터 ID
  #--------------------------------------------------------------------------
  alias initialize_KGC_OverDrive initialize
  def initialize(index, enemy_id)
    initialize_KGC_OverDrive(index, enemy_id)

    @overdrive = 0
    @drive_type = nil
  end
  #--------------------------------------------------------------------------
  # ○ OverDrive 타입의 취득
  #--------------------------------------------------------------------------
  def drive_type
    unless @drive_type.is_a?(Array)
      return KGC::OverDrive::DEFAULT_ENEMY_DRIVE_TYPE
    end
    return @drive_type
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Window_Base
#==============================================================================

class Window_Base < Window
  #--------------------------------------------------------------------------
  # ○ 드라이브 게이지의 통상시의 색 1 의 취득
  #--------------------------------------------------------------------------
  def od_gauge_normal_color1
    color = KGC::OverDrive::GAUGE_NORMAL_START_COLOR
    return (color.is_a?(Integer) ? text_color(color) : color)
  end
  #--------------------------------------------------------------------------
  # ○ 드라이브 게이지의 통상시의 색 2 의 취득
  #--------------------------------------------------------------------------
  def od_gauge_normal_color2
    color = KGC::OverDrive::GAUGE_NORMAL_END_COLOR
    return (color.is_a?(Integer) ? text_color(color) : color)
  end
  #--------------------------------------------------------------------------
  # ○ 드라이브 게이지의 최대시의 색 1 의 취득
  #--------------------------------------------------------------------------
  def od_gauge_max_color1
    color = KGC::OverDrive::GAUGE_MAX_START_COLOR
    return (color.is_a?(Integer) ? text_color(color) : color)
  end
  #--------------------------------------------------------------------------
  # ○ 드라이브 게이지의 최대시의 색 2 의 취득
  #--------------------------------------------------------------------------
  def od_gauge_max_color2
    color = KGC::OverDrive::GAUGE_MAX_END_COLOR
    return (color.is_a?(Integer) ? text_color(color) : color)
  end
  #--------------------------------------------------------------------------
  # ● 이름의 묘화
  #     actor : 액터
  #     x     : 묘화처 X 좌표
  #     y     : 묘화처 Y 좌표
  #--------------------------------------------------------------------------
  alias draw_actor_name_KGC_OverDrive draw_actor_name
  def draw_actor_name(actor, x, y)
    draw_actor_od_gauge(actor, x, y, 108)

    draw_actor_name_KGC_OverDrive(actor, x, y)
  end
  #--------------------------------------------------------------------------
  # ○ 드라이브 게이지의 묘화
  #     actor : 액터
  #     x     : 묘화처 X 좌표
  #     y     : 묘화처 Y 좌표
  #     width : 폭
  #--------------------------------------------------------------------------
  def draw_actor_od_gauge(actor, x, y, width = 120)
    return unless actor.od_gauge_visible?

    gw = width * actor.overdrive / actor.max_overdrive
    gc1 = (gw == width ? od_gauge_max_color1 : od_gauge_normal_color1)
    gc2 = (gw == width ? od_gauge_max_color2 : od_gauge_normal_color2)
    self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
    self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Scene_Skill
#==============================================================================

class Scene_Skill < Scene_Base
  #--------------------------------------------------------------------------
  # ● 타겟의 결정
  #    효과 없음의 경우 (전투 불능에 일부 등) 버저 SE (을)를 연주.
  #--------------------------------------------------------------------------
  alias determine_target_KGC_OverDrive determine_target
  def determine_target
    $game_temp.overdrive_used = false

    determine_target_KGC_OverDrive

    $game_temp.overdrive_used = false  # 게이지 소비가 끝난 플래그를 해제
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Scene_Battle
#==============================================================================

class Scene_Battle < Scene_Base
  #--------------------------------------------------------------------------
  # ● 전투 종료
  #     result : 결과 (0:승리 1:도주 2:패배)
  #--------------------------------------------------------------------------
  alias battle_end_KGC_OverDrive battle_end
  def battle_end(result)
    increase_overdrive_on_battle_end(result)

    battle_end_KGC_OverDrive(result)
  end
  #--------------------------------------------------------------------------
  # ○ 전투 종료시의 드라이브 게이지 증가 처리
  #     result : 결과 (0:승리 1:도주 2:패배)
  #--------------------------------------------------------------------------
  def increase_overdrive_on_battle_end(result)
    case result
    when 0  # 승리
      od_gain = KGC::OverDrive::GAIN_RATE[KGC::OverDrive::Type::VICTORY]
      $game_party.existing_members.each { |actor|
        actor.overdrive += od_gain if actor.drive_victory?
      }
    when 1  # 도주
      od_gain = KGC::OverDrive::GAIN_RATE[KGC::OverDrive::Type::ESCAPE]
      $game_party.existing_members.each { |actor|
        actor.overdrive += od_gain if actor.drive_escape?
      }
    end
  end
  #--------------------------------------------------------------------------
  # ● 전투 행동의 실행
  #--------------------------------------------------------------------------
  alias execute_action_KGC_OverDrive execute_action
  def execute_action
    increase_overdrive_on_action

    execute_action_KGC_OverDrive
  end
  #--------------------------------------------------------------------------
  # ○ 행동시의 드라이브 게이지 증가 처리
  #--------------------------------------------------------------------------
  def increase_overdrive_on_action
    battler = @active_battler
    od_gain = 0
    unit = (battler.actor? ? $game_party : $game_troop)

    # 고독 전투
    if battler.drive_alone? && unit.existing_members.size == 1
      od_gain += KGC::OverDrive::GAIN_RATE[KGC::OverDrive::Type::ALONE]
    end
    # 행동
    if battler.drive_action?
      od_gain += KGC::OverDrive::GAIN_RATE[KGC::OverDrive::Type::ACTION]
    end
    # 빈사
    if battler.drive_fatal? && battler.hp < battler.maxhp / 4
      od_gain += KGC::OverDrive::GAIN_RATE[KGC::OverDrive::Type::FATAL]
    end
    battler.overdrive += od_gain
  end
  #--------------------------------------------------------------------------
  # ● 전투 행동의 실행 : 스킬
  #--------------------------------------------------------------------------
  alias execute_action_skill_KGC_OverDrive execute_action_skill
  def execute_action_skill
    execute_action_skill_KGC_OverDrive

    consume_od_gauge
  end
  #--------------------------------------------------------------------------
  # ○ 스킬 사용시의 드라이브 게이지 소비
  #--------------------------------------------------------------------------
  def consume_od_gauge
    skill = @active_battler.action.skill
    @active_battler.overdrive -= @active_battler.calc_od_cost(skill)
  end
end


ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ


이미지는 자유게시판에 올려두었습니다만, 원문에서 스크린샷 버튼을 클릭 하시면 볼 수 있습니다.

설명은 일본어 번역기로도 충분히 이해될 내용이기에, 링크주소만 올려둡니다.


ㅎㅎ;; 확인은 해봐야겠지만..... 전혀 만들어 둔 게임이 없기에!!(.....)


확인 해주세요.ㅎㅎ;

Comment '13'
  • ?
    다이놀핀 2008.03.09 01:34

    좋은 자료 감사합니다.

  • ?
    넌닝구가좋아 2008.03.11 18:01

    시작하자마자 승리라고 나오네여

  • ?
    샤큐라몬 2008.04.05 23:22
    모르겠다는
  • ?
    유리 2008.04.08 21:27
    오버드라이브가 뭔가요?
  • ?
    Firtess 2008.04.21 18:09
    터. 턴알피지라...
  • ?
    이리야땅 2008.07.20 23:24

    게임 배틀러 87번째 줄에서 오류가 나는데 간략한 사용설명서나 예제파일같은거 올려주실수 있으신가요?

  • ?
    시옷청룡 2008.10.01 19:04
    이거 글로리아 티비(?)에서 나오는거 맞나??
  • ?
    루시페르 2009.03.28 19:28
    액알에는 안된다니... 써보고싶었는데...
  • ?
    ABCDEGF 2009.05.03 10:43
    무슨 효과인지 모르겠음;;
  • ?
    정체 모를 인간 2010.05.15 15:23

    이게 뭐 하는 건가요?

  • ?
    유황 2010.08.29 12:50

    아무런 효과가 없는;;

  • ?
    환영유카 2010.11.01 21:15

    그니까는 이건 이 오버드라이브 게이지 만의 스킬을 만드는 겁니다;;

    어떻게 쓰는 건지는 저도 모름

  • ?
    듀란테 2015.07.26 03:03
    아무리 찾아봐도, 오버드라이브 게이지 차는거랑 쓰는얘기만 나오고, 오버드라이브 스킬을 만드는것에 대한 설명은 없내요...

    제가 눈이삐꾼지 잘모르겟는대, 일단 주석엔 안보이고 스크립트에서도 안보임

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 3 습작 2012.12.24 5398
617 전투 GTBS for 2d_iso_x3 by Clarabel 2 습작 2013.05.13 1880
616 전투 VX_SRPG2 by tomoaky 1 습작 2013.05.13 2050
615 맵/타일 SwapXT by bulletxt 습작 2013.05.13 1292
614 기타 Resize and Scale by OriginalWij 1 습작 2013.05.13 1349
613 전투 Requiem ABS Hero Edition by Falcao 습작 2013.05.13 2005
612 전투 Verus Tempus Proelium by Vlad 습작 2013.05.13 1243
611 이동 및 탈것 장소이동시 효과 없애기 10 file 허걱 2013.05.05 1961
610 키입력 Key Simulator by Fantasist 습작 2013.05.01 1176
609 키입력 No F1, F12 and Alt+Return (Kein F1, F12 und Alt+Eingabe) by cremno 습작 2013.04.19 1046
608 기타 reijubv - New Balloon Command (VXA에서도 작동) 1 file 혜인 2013.04.08 1332
607 메시지 Etude87_Item_Choice ver.1.00 file 습작 2013.02.16 1771
606 기타 MSX - XP Characters on VX/VX Ace 2 Alkaid 2013.01.26 1346
605 파티 파티원의 첫번째 멤버로 추가하기 5 허걱 2012.12.04 1865
604 장비 카드 슬롯 장비 스크립트[수정] 2 빙하 2012.11.11 2058
603 영상 Avi 재생 스크립트! [고화질 재생 가능] 34 짭뿌C 2012.10.24 2952
602 메시지 문장 및 페이스 정렬 바꾸기 (Neonblack's Text Alignment and Face Flip script) MinaAubert 2012.09.19 2214
601 타이틀/게임오버 코아 코스튬씨의 랜덤 타이틀 스크립트를 VX용으로 변환 2 Alkaid 2012.09.14 1704
600 타이틀/게임오버 타이틀에 날씨 효과 주는 스크립트 (Melmarvin's Rainy Title Screen) 6 MinaAubert 2012.09.13 2323
599 액터 동료가 따라다니게 하는 스크립트 (Woratana's Caterpillar System) 5 MinaAubert 2012.09.13 3012
598 전투 Animated Battlers VX 3.7 by DerVVulfman Alkaid 2012.09.07 2098
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 32 Next
/ 32