VX 스크립트

#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/    ◆ DQ특기풍스킬 - KGC_DQSkill ◆ VX ◆
#_/    ◇ Last update : 2009/08/18 ◇
#_/----------------------------------------------------------------------------
#_/  어디선가 본 것 같은 스킬을 작성합니다.
#_/============================================================================
#_/ 【기본 기능】≪타겟 확장≫ 보다 아래에 도입해 주세요.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

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

module KGC
module DQSkill
  module Regexp
    module Skill
      # 대방어
      HYPER_GUARD = /<(?:HYPER_GUARD|대방어)s*(d+)[%%]?>/i
      # 피데미지 변동
      DAMAGE_CHANGE = /<(?:DAMAGE_CHANGE|피데미지 변동)s*(d+)[%%]?>/i
      # 인왕립
      PROTECT_ALL = /<(?:PROTECT_ALL|인왕립|에 왕이다)>/i
      # 가이드 어택
      GUARD_ATTACK = /<(?:GUARD_ATTACK|가이드 어택|쉴드 어택)>/i
    end
  end
end
end

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

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

class RPG::Skill < RPG::UsableItem
  #--------------------------------------------------------------------------
  # ○ DQ특기의 캐쉬를 생성
  #--------------------------------------------------------------------------
  def create_dq_skill_cache
    @__hyper_guard        = false
    @__hyper_guard_rate   = 10
    @__damage_change      = false
    @__damage_change_rate = 100
    @__protect_all        = false
    @__guard_attack       = false

    self.note.each_line { |line|
      case line
      when KGC::DQSkill::Regexp::Skill::HYPER_GUARD
        # 대방어
        @__hyper_guard      = true
        @__hyper_guard_rate = $1.to_i
      when KGC::DQSkill::Regexp::Skill::DAMAGE_CHANGE
        # 데미지 변동
        @__damage_change      = true
        @__damage_change_rate = $1.to_i
      when KGC::DQSkill::Regexp::Skill::PROTECT_ALL
        # 인왕립
        @__protect_all = true
      when KGC::DQSkill::Regexp::Skill::GUARD_ATTACK
        # 가이드 어택
        @__guard_attack = true
      end
    }
  end
  #--------------------------------------------------------------------------
  # ○ 대방어
  #--------------------------------------------------------------------------
  def hyper_guard
    create_dq_skill_cache if @__hyper_guard == nil
    return @__hyper_guard
  end
  alias hyper_guard? hyper_guard
  #--------------------------------------------------------------------------
  # ○ 대방어 변동율
  #--------------------------------------------------------------------------
  def hyper_guard_rate
    create_dq_skill_cache if @__hyper_guard_rate == nil
    return @__hyper_guard_rate
  end
  #--------------------------------------------------------------------------
  # ○ 피데미지 변동
  #--------------------------------------------------------------------------
  def damage_change
    create_dq_skill_cache if @__damage_change == nil
    return @__damage_change
  end
  alias damage_change? damage_change
  #--------------------------------------------------------------------------
  # ○ 피데미지 변동율
  #--------------------------------------------------------------------------
  def damage_change_rate
    create_dq_skill_cache if @__damage_change_rate == nil
    return @__damage_change_rate
  end
  #--------------------------------------------------------------------------
  # ○ 인왕립
  #--------------------------------------------------------------------------
  def protect_all
    create_dq_skill_cache if @__protect_all == nil
    return @__protect_all
  end
  alias protect_all? protect_all
  #--------------------------------------------------------------------------
  # ○ 가이드 어택
  #--------------------------------------------------------------------------
  def guard_attack
    create_dq_skill_cache if @__guard_attack == nil
    return @__guard_attack
  end
  alias guard_attack? guard_attack
end

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

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

class Game_Battler
  #--------------------------------------------------------------------------
  # ● 방어중 판정
  #--------------------------------------------------------------------------
  alias guarding_KGC_DQSkill? guarding?
  def guarding?
    return (guarding_KGC_DQSkill? || action.guard_attack?)
  end
  #--------------------------------------------------------------------------
  # ● 방어 수정의 적용
  #     damage : 데미지
  #--------------------------------------------------------------------------
  alias apply_guard_KGC_DQSkill apply_guard
  def apply_guard(damage)
    damage = apply_guard_KGC_DQSkill(damage)

    if damage > 0
      if action.hyper_guard?
        damage = damage * action.hyper_guard_rate / 100
      end
      if action.damage_change?
        damage = damage * action.damage_change_rate / 100
      end
    end
    return damage
  end
end

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

#==============================================================================
# ■ Game_BattleAction
#==============================================================================

class Game_BattleAction
  #--------------------------------------------------------------------------
  # ○ 대방어 판정
  #--------------------------------------------------------------------------
  def hyper_guard?
    return (skill? && skill.hyper_guard?)
  end
  #--------------------------------------------------------------------------
  # ○ 대방어 변동율 취득
  #--------------------------------------------------------------------------
  def hyper_guard_rate
    return 100 unless hyper_guard?

    return skill.hyper_guard_rate
  end
  #--------------------------------------------------------------------------
  # ○ 피데미지 변동 판정
  #--------------------------------------------------------------------------
  def damage_change?
    return (skill? && skill.damage_change?)
  end
  #--------------------------------------------------------------------------
  # ○ 피데미지 변동율 취득
  #--------------------------------------------------------------------------
  def damage_change_rate
    return 100 unless damage_change?

    return skill.damage_change_rate
  end
  #--------------------------------------------------------------------------
  # ○ 인왕립판정
  #--------------------------------------------------------------------------
  def protect_all?
    return (skill? && skill.protect_all?)
  end
  #--------------------------------------------------------------------------
  # ○ 가이드 어택 판정
  #--------------------------------------------------------------------------
  def guard_attack?
    return (skill? && skill.guard_attack?)
  end
  #--------------------------------------------------------------------------
  # ● 행동 스피드의 결정
  #--------------------------------------------------------------------------
  alias make_speed_KGC_DQSkill make_speed
  def make_speed
    make_speed_KGC_DQSkill

    @speed += 2000 if hyper_guard?
    @speed += 1500 if protect_all?
  end
  #--------------------------------------------------------------------------
  # ● 통상 공격의 타겟 작성
  #--------------------------------------------------------------------------
  alias make_attack_targets_KGC_DQSkill make_attack_targets
  def make_attack_targets
    result = make_attack_targets_KGC_DQSkill

    unless battler.confusion?
      result = apply_protect_all(result)
    end
    return result
  end
  #--------------------------------------------------------------------------
  # ● 스킬 또는 아이템의 타겟 작성
  #     obj : 스킬 또는 아이템
  #--------------------------------------------------------------------------
  alias make_obj_targets_KGC_DQSkill make_obj_targets
  def make_obj_targets(obj)
    result = make_obj_targets_KGC_DQSkill(obj)

    if obj.for_opponent?
      result = apply_protect_all(result)
    end
    return result
  end
  #--------------------------------------------------------------------------
  # ○ 인왕립를 적용
  #     targets : 타겟
  #--------------------------------------------------------------------------
  def apply_protect_all(targets)
    result = targets
    # 인왕립사용자 취득
    protect_battlers = []
    opponents_unit.existing_members.each { |battler|
      protect_battlers << battler if battler.action.protect_all?
    }
    unless protect_battlers.empty?
      # 공격을 인왕립사용자에 집중
      num    = targets.size
      result = []
      num.times { |i|
        result << protect_battlers[rand(protect_battlers.size)]
      }
    end
    return result
  end
end

 

***사용법****

데이터베이스 메모란에 기술하여 사용합니다.

대방어

스킬의 메모란에 <대방어 n%> (을)를 추가합니다.
이 스킬을 사용하면, 그 턴중에 받는 데미지가 통상의n%(이)가 됩니다.
효과 범위에 관계없이, 대방어 효과는 사용자에 나타납니다.

대방어 사용시는, 통상의 방어와 같게 턴의 최초로 행동합니다.
그 이외는 통상의 스킬과 같게 사용할 수 있습니다.

DQ (와)과 같은 동작으로 하는 경우는, 효과 범위를 「없이 」로 설정합니다.

 

피데미지 변동

스킬의 메모란에 <피데미지 변동 n%> (을)를 추가합니다.
이 스킬을 사용하면, 그 턴중에 받는 데미지가 통상의n%(이)가 됩니다.

턴의 최초로 행동하지 않는(통상의 차례 대로가 된다) 점 이외는, 대방어와 같습니다.

 

인왕립

스킬의 메모란에 <인왕립> 또는 <에 왕이다> (을)를 추가합니다.
이 스킬을 사용하면, 그 턴에 아군이 받는 공격을 모두 대신 받게 됩니다.
예를 들면, 전체 공격이라면 파티의 인원수분 데미지를 받습니다.

효과 범위에 관계없이, 인왕립효과는 사용자에 나타납니다.

인왕립사용시는, 턴의 최초(방어의 다음)에 행동합니다.
그 이외는 통상의 스킬과 같게 사용할 수 있습니다.

DQ (와)과 같은 동작으로 하는 경우는, 효과 범위를 「없이 」로 설정합니다.

 

쉴드어택

스킬의 메모란에 <가이드 어택> 또는 <쉴드 어택> (을)를 추가합니다.
이 스킬을 사용하면, 그 턴중에 받는 데미지에 방어 판정이 적용됩니다.
(디폴트라면 데미지 1/2, 강력 방어라면 1/4)

방어 판정을 하는 이외는, 통상의 스킬과 같게 사용할 수 있습니다.

TAG •

Who's 카르와푸딩의아틀리에

profile

엘카르디아 제작자 (현재 MV로 리메이크중)

유튜브

https://www.youtube.com/channel/UCMwirNTR-pOEzJNB0jL3y_g

트위터

https://twitter.com/karsis98

블로그

https://blog.naver.com/karsis98

Comment '4'

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 3 습작 2012.12.24 5398
377 퀘스트 퀘스트 마크 표시용 스크립트 10 file 허걱 2012.05.22 3701
376 기타 미니게임테트리스 스크립트 ㅋㅋㅋ 27 file 카르와푸딩의아틀리에 2009.06.30 3689
375 맵/타일 타일 바꾸기 13 file 허걱 2009.09.01 3687
374 이동 및 탈것 대각선 이동 스크립트 17 아방스 2009.05.02 3677
373 상점 (수정)크리쳐 샵, 'SW_CreatureShop' by Siot Warrior 15 file 시옷전사 2010.09.03 3675
372 HUD HUD 스크립트 모음 10 아방스 2010.12.11 3657
371 장비 장비 확장 및 EP 기능 18 만들어보자꾸나 2008.06.10 3653
370 기타 화폐단위 구분해 주는 스크립트 38 file 허걱 2010.04.13 3652
369 이름입력 글자조합 (이름생성용) - 수정 12 file 허걱 2009.07.17 3636
368 기타 낚시 스크립트~(낚시대로 하는 낚시가 아니라 사람을 낚는 낚시 스크립트) 14 file ~AYARSB~ 2010.03.18 3630
367 기타 멥 이름 띄우기 10 신규회원 2012.02.24 3626
366 장비 KGC확장장비창 스크립트 15 file 티라엘 2009.03.27 3622
365 상점 상점 무기, 방어구 능력치 비교 스크립트! 18 불독 2008.12.25 3611
364 기타 Crissaegrim 농장시스템 한글화 28 file 도심 2009.12.22 3606
363 기타 [KGC]한계돌파 9 방콕족의생활 2008.06.13 3599
362 메시지 HG_POP_TEXT (맵 화면에 문자 표시) 4 file 허걱 2011.09.16 3589
361 파티 전에 아방스님이 올린 '파티 변경 시스템'을 한글화 했습니다. 17 file 아리엘 2008.09.16 3589
360 메시지 Display Flipped Picture 스크립트 11 Love♡ 2009.11.09 3585
359 스킬장착 시스템 17 file RPGbooster 2008.10.11 3585
358 타이틀/게임오버 타이틀전 공지사항 19 file AYARSBMA 2010.01.23 3583
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ... 32 Next
/ 32