스킬

스킬북 스크립트

by WMN posted Mar 17, 2008
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

네이버 번역기로 번역된 것입니다.

 

#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/  ◆스킬 습득 아이템 - KGC_ItemLearnSkill◆
#_/----------------------------------------------------------------------------
#_/ 사용하면 스킬을 습득하는 아이템을 작성합니다.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

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

if $game_special_elements == nil
  $game_special_elements = {}
  $data_system = load_data("Data/System.rxdata")
end
# 스킬 습득 아이템 속성
$game_special_elements["item_learn_skill"] = $data_system.elements.index("스킬 습득 아이템")
if $game_special_elements["item_learn_skill"] == nil
  $game_special_elements["item_learn_skill"] = $data_system.elements.index("스킬 습득 아이템")
end

#==============================================================================
# ■ Game_Battler (분할 정의 3)
#==============================================================================

class Game_Battler
  #--------------------------------------------------------------------------
  # ● 아이템의 효과 적용
  #     item : 아이템
  #--------------------------------------------------------------------------
  alias item_effect_KGC_ItemLearnSkill item_effect
  def item_effect(item)
    # 스킬 습득 속성을 가지고 있지 않은, 또는 대상이 에너미의 경우
    if !item.element_set.include?($game_special_elements["item_learn_skill"]) ||
        self.is_a?(Game_Enemy)
      # 원래의 처리를 실행
      return item_effect_KGC_ItemLearnSkill(item)
    end

    # 습득 끝난 경우는 돌아온다
    return false if self.skill_learn?(item.recover_hp)
    # 위기 플래그를 클리어
    self.critical = false
    # 아이템의 효과 범위가 HP 1 이상의 아군으로, 자신의 HP 하지만 0,
    # 또는 아이템의 효과 범위가 HP 0 의 아군으로, 자신의 HP 하지만 1 이상의 경우
    if ((item.scope == 3 || item.scope == 4) && self.hp == 0) ||
       ((item.scope == 5 || item.scope == 6) && self.hp >= 1)
      # 메소드 종료
      return false
    end
    # 유효 플래그를 클리어
    effective = false
    # 코먼 이벤트 ID 하지만 유효의 경우는 유효 플래그를 세트
    effective |= item.common_event_id > 0
    # 명중 판정
    hit_result = (rand(100) < item.hit)
    # 불확실한 스킬의 경우는 유효 플래그를 세트
    effective |= item.hit < 100
    # 명중의 경우
    if hit_result == true
      self.damage = nil
      # "HP회복량"의 스킬을 습득
      self.learn_skill(item.recover_hp)
      return true
    end
    return false
  end
end

-----------------

 

사용법입니다.

 

고대로 배낀..

 

도입 후, 속성[스킬 습득 아이템](을)를 작성합니다.(「습득」 「습득」은 어디라도OK)
이것을 아이템으로 설정해,[HP회복량]에 사용시에 습득하는 스킬ID(을)를 입력합니다.

 

잘 쓰세요! (전 아직 안해봐서 오류 나는지 안나는지는.. 잘 모르겠네요;)