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 전투 Mr. Mo's ABS Ultimate by DerVVulfman Alkaid 2011.09.05 1438
780 온라인 Mr.Metring NPE 1.0 [RPG XP 온라인 스크립트] 35 아방스 2009.01.07 6535
779 전투 Mr.Mo's ABS Ultimate 2.6 by DerVVulfman Alkaid 2012.01.04 1820
778 전투 Mr.Mo's ABS Ultimate 3.4 by DerVVulfman Alkaid 2012.03.14 1803
777 전투 Mr.Mo's ABS Ultimate 7.0 by DerVVulfman 4 Alkaid 2012.08.26 2587
776 전투 Mr.mo's SBABS Lite 5 6 아방스마니아 2010.11.14 2947
775 전투 MrMo DVV Add-On #13: Tinuke's Smart Missiles 2 Alkaid 2011.01.24 1843
774 장비 Multi Equip 3.1.4 by Trickster (SDK2 호환, Method & Class Li… 4 file WMN 2008.04.06 1597
773 장비 Multi-equip script 2 file 백호 2009.02.21 1101
772 장비 Multi-equip script ver.6 by Guillaume777 4 file 백호 2009.02.22 1210
771 장비 Multi-equip script 노신버전 2 file 백호 2009.02.22 1129
770 온라인 Multi-Netplay Extended (신버전) 10 백호 2009.02.22 2864
769 온라인 Multi-Netplay Extended[구버전용] 3 백호 2009.02.22 2176
768 기타 Multiple Currencies(여러 개의 통화단위 사용) 2 백호 2009.02.22 1124
767 기타 Multiple Languages v2 by SephirothSpawn (SDK호환) file 백호 2009.02.22 1404
766 장비 Multislots! 2.1 by DerVVulfman 3 file Alkaid 2010.09.02 1537
765 장비 Multislots! 2.2 by DerVVulfman 4 file Alkaid 2011.02.18 1611
764 장비 MultiSlots! 2.4 by DerVVulfman 2 Alkaid 2011.09.05 1466
763 온라인 multy-netplay 로그인창에서 비밀번호를 ***표시해주는 script~! 1 백호 2009.02.22 1889
762 기타 My메세지(메세지 출력 스크립트) 1 file 백호 2009.02.22 1533
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