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 아이템 아이템,돈 보관창고 스크립트 4 file 백호 2009.02.21 1769
780 아이템 아이템 종류별로 분류하는 스크립트 2 file 백호 2009.02.21 1055
779 아이템 아이템 종류별로 분류시키는 스크립트 3 file 백호 2009.02.21 1259
778 아이템 아이템 종류별로 구분해놓기!! file 백호 2009.02.21 1112
777 아이템 아이템 정리기능 S크립T 1 file 백호 2009.02.21 1080
776 아이템 아이템 인벤토리 2 file 백호 2009.02.22 3354
775 아이템 아이템 소지수 한계돌파(중복일 확률 높음) 3 캉쿤 2011.09.13 1478
774 아이템 아이템 소지수 무제한 1 백호 2009.02.21 887
773 아이템 아이템 선택하기 5 레핀 2009.01.29 2084
» 아이템 아이템 사용 클래스 한정 스크립트! 2 백호 2009.02.22 1146
771 아이템 아이템 분류별로 나누기 (1) - 밑글과 다른 스크립트 3 file 백호 2009.02.21 1122
770 아이템 아이템 단축키로 구입 스크립트 3 백호 2009.02.22 1243
769 기타 아이디 스크립트 4 백호 2009.02.22 1761
768 기타 아래 스크립트에 대한 Guillaume777님의 개량판입니다. 백호 2009.02.22 880
767 기타 쓸만한스크립트61개포함 28 file 궭크이 2012.01.09 4296
766 기타 쓸 용도가 없지만 마비노기 게임 만들 때 좋죠[장작스크립트] 5 백호 2009.02.22 2407
765 전투 심플액알 더더 수정(스위치, 변수) 17 file 백호 2009.02.21 3046
764 장비 심플액션 수정본(장비드롭, 데미지표시) 원본:비밀소년 수정:kcss 10 file 백호 2009.02.21 2721
763 아이템 심플 액알 [리젠, 아이템 드롭] 18 file 백호 2009.02.21 3917
762 저장 심플 세이브&로드 개조(필요할 때 원하는 슬롯에 자동저장) 5 나렌시아 2011.02.24 2291
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