XP 스크립트

아이템사용을 클래스 마다 한정시키는 기능을 추가합니다
예를들어 전사는 포션을 사용할 수 없다 이런식으로 설정할 수가 있습니다
또 설정하지 않은 아이템은 모두사용 가능하게 설정되있습니다.

#---------------여기서부터
# (XRXS39)아이템 사용자 클래스 한정 built20060210
# by Tetra-Z
#
# 아이템을 사용할 수 있는 클래스를 한정합니다.

#==============================================================================
# ■ Game_Party
#==============================================================================
class Game_Party
  #--------------------------------------------------------------------------
  # ○ 클래스에 의한 아이템 사용자의 한정 데이타베이스
  #--------------------------------------------------------------------------
  def item_user_class_limitation(item_id)
    # 아이템ID에 의한 클래스 한정
    case item_id
   
    #========================================================================
    # □ 커스터마이즈 포인트
    #========================================================================
    when 1
      return [2, 8]
    #
    # 기술 형식:
    #
    # when 수치(Numeric) - 아이템ID
    #  return 배열(Array) - 클래스ID배열
    #
    # 기술예:「아이템ID 12(디 스펠 허브) (을)를
    #          클래스ID 7(와)과8(쿠레릭크와 메이지)만 취급해 가능하게 한다」
    # when 12
    #  return [7, 8]
    #
    #
    #
    # when 1
    #  return [1]
    # when 4
    #  return [5]
    # (와)과 같이, 몇행이나 기술 가능.
    #
    # 또↓, [] (은)는 「모든 클래스가 사용 가능」을 의미한다.
    #
    #======================================= 커스터마이즈 포인트 여기까지 =┘
   
    end
    # 그 외
    return []
  end
  #--------------------------------------------------------------------------
  # ● 아이템의 사용 가능 판정
  #    item_id : 아이템 ID
  #--------------------------------------------------------------------------
  alias tetraz_7_item_can_use? item_can_use?
  def item_can_use?(item_id)
    # 초기화
    judge = false
    a = $game_temp.now_item_user
 act = ($game_temp.in_battle and $game_temp.now_item_selecting) ? [a] : $game_party.actors
    for actor in act # 본인이or멤버내에
      # 사용 가능한 행동 가능자가 있다
      if (actor.follow_item_use_condition?(item_id) and !(actor.dead?))
        judge |= true
        break
      end
    end
    # 귀환시킨다
    return (judge and tetraz_7_item_can_use?(item_id))
  end
end
#==============================================================================
# ■ Game_Temp
#==============================================================================
class Game_Temp
  #--------------------------------------------------------------------------
  # ● 공개 인스턴스 변수
  #--------------------------------------------------------------------------
  attr_accessor :now_item_user            # 아이템 사용자
  attr_accessor :now_item_selecting      # 아이템 셀렉트중인가
end
#==============================================================================
# ■ Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ● 아이템의 사용 조건에 따를까?(액터 판정)
  #    item_id : 아이템 ID
  #--------------------------------------------------------------------------
  def follow_item_use_condition?(item_id)
    a = $game_party.item_user_class_limitation(item_id)
    return (a == [] or a.include?(self.class_id))
  end
end
#==============================================================================
# ■ Scene_Item
#==============================================================================
class Scene_Item
  alias tetraz7_update_target update_target
  def update_target
    tetraz7_update_target
    # C 버튼이 밀렸을 경우
    if Input.trigger?(Input::C)
      # 전투 불능 해제 아이템 사용에 의해 사용 가능 상황이 변화할 가능성이 있으므로
      @item_window.refresh
    end
  end
end
#==============================================================================
# ■ Scene_Battle
#==============================================================================
class Scene_Battle
  #--------------------------------------------------------------------------
  # ● 메인 처리
  #--------------------------------------------------------------------------
  alias tetraz7_main main
  def main
    # 만일을 위해 전투 개시시와 종료시에 스윗치 리셋트
    $game_temp.now_item_selecting = false
    tetraz7_main
    $game_temp.now_item_selecting = false
  end
  #--------------------------------------------------------------------------
  # ● 아이템 선택 개시
  #--------------------------------------------------------------------------
  alias tetraz7_start_item_select start_item_select
  def start_item_select
    $game_temp.now_item_user = $game_party.actors[@actor_index] if $game_temp.in_battle
    $game_temp.now_item_selecting = true
    tetraz7_start_item_select
  end
  #--------------------------------------------------------------------------
  # ● 아이템 선택 종료
  #--------------------------------------------------------------------------
  alias tetraz7_end_item_select end_item_select
  def end_item_select
    $game_temp.now_item_user = 0
    $game_temp.now_item_selecting = false
    tetraz7_end_item_select
  end
end
#--------------끝

사용법
주석에 보면 다 나와있지만.. 모르실 수도 있으니
우선 스크립트 20번째줄에 가시면
#========================================================================
# □ 커스터마이즈 포인트
#========================================================================
    when 1
      return [2, 8]

이렇게 있습니다..
이뜻은 1번아이템을 2번과,8번 클래스만 사용가능 하게 설정되있는것입니다.
이것을 계속 만드실 수도 있고 사용 가능한 클래스를 더 추가시킬 수도 있습니다.

예를들어
#========================================================================
# □ 커스터마이즈 포인트
#========================================================================
    when 1
      return [2, 8]
    when 2
      return [2, 8, 5]
    when 7
      return [1, 5, 3, 7]

이런식으로요^^

출처는 수수께끼의 정사면체입니다

Who's 백호

?

이상혁입니다.

http://elab.kr

Comment '2'
  • ?
    29488 2010.02.21 22:57

    감사합니다

  • ?
    gkssdfsdf 2018.12.30 00:07
    지정된 외의 아이템을 모든 클래스가 사용가능하게 할려면 일일이 해야하나요?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 6153
861 전투 전투에서도 맵 BGM 연결하는 스크립트 2 file 백호 2009.02.21 1130
860 기타 Tax Script 1.2 by The Darklord@rmxp.org 2 file 백호 2009.02.22 1130
859 전투 물리친 적의수 표시 file 백호 2009.02.21 1131
858 맵/타일 Map Event Large Make 2 백호 2009.02.22 1132
857 기타 메세지창의 위치 변동 자동화 file 백호 2009.02.21 1138
856 스킬 스킬 도감 1 백호 2009.02.21 1138
855 오디오 음악 재생 스크립트 3 file 백호 2009.02.21 1140
854 기타 스테이터스 표시 플러스 1.00ver 백호 2009.02.22 1141
853 전투 FF10 전투 대미지 공식 by hydro@rmxp.org 백호 2009.02.22 1141
852 이동 및 탈것 [통합] 텔레포트 통합 수정편 1 백호 2009.02.22 1143
851 키입력 Key Simulator by Fantasist 4 습작 2013.05.01 1143
850 기타 맵처리를 가볍게 1 백호 2009.02.21 1147
» 아이템 아이템 사용 클래스 한정 스크립트! 2 백호 2009.02.22 1147
848 맵/타일 Mode07 0.5 by mewsterus 3 백호 2009.02.22 1149
847 기타 레벨9999스크립트 4 백호 2009.02.21 1151
846 이동 및 탈것 KGC_Teleport file 백호 2009.02.22 1153
845 전투 A-battle 수정 file 백호 2009.02.21 1155
844 이동 및 탈것 마나 소비 텔레포트 2 백호 2009.02.22 1155
843 이동 및 탈것 World Map & Teleporter by SephirothSpawn 2 file 백호 2009.02.22 1156
842 기타 Encounter Control by SephirothSpawn (SDK호환) 4 file 백호 2009.02.22 1157
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 52 Next
/ 52