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
781 저장 링메뉴에 빠져 봅시다 - 링메뉴의 세이브시 팅김이 사라지는 방법 !! 3 file 백호 2009.02.21 1998
780 메뉴 링메뉴 제대로된것..오류안나느것. 7 백호 2009.02.21 1890
779 전투 전투링메뉴.(턴알) 7 백호 2009.02.21 2821
778 타이틀/게임오버 맵화면을 타이틀에 표시 백호 2009.02.21 1648
777 메뉴 Star Ocean 3 형식으로 스테이터스 화면 변경 1 file 백호 2009.02.21 1570
776 이동 및 탈것 이벤트의 스크립트로 기동하는 점프 루트 완성 2 file 백호 2009.02.21 1698
775 이동 및 탈것 이벤트의 점프의 길이를 자유자제로~! 아랫꺼 업글버전 3 file 백호 2009.02.21 1575
774 기타 동료들이 기차처럼 줄줄 따라온다!? 7 file 백호 2009.02.21 1990
773 메뉴 링메뉴에 돈(G)표시하기 백호 2009.02.21 1414
772 아이템 아이템 종류별로 구분해놓기!! file 백호 2009.02.21 1112
771 HUD xp대화창에 얼굴, 이름 넣기!! [방법두 있음] 3 백호 2009.02.21 3545
770 전투 배틀 리포트 화면 변경 스크립트 2 file 백호 2009.02.21 1442
769 전투 [OLD] 횡 전투 시스템.(출처 XP포럼 옛 자료실(2차배포일듯)) 6 백호 2009.02.21 2539
768 기타 빛의 퍼즐 -미니게임- 1 file 백호 2009.02.21 1360
767 타이틀/게임오버 애니메이션을 타이틀 화면에서 이용 15 file 백호 2009.02.21 3340
766 맵/타일 Map Loop Script 백호 2009.02.21 999
765 기타 Boat Script 백호 2009.02.21 729
764 이동 및 탈것 이동루트에 애니메이션커맨드 추가 1 file 백호 2009.02.21 1047
763 기타 마우스로 길찾기 스크립트 예제 file 백호 2009.02.21 1168
762 전투 레벨업 시스템 제거 스크립트 file 백호 2009.02.21 1117
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ... 52 Next
/ 52