RPGXP 스크립트
2013.09.24 08:06

아이템 사용 클래스 한정 스크립트

조회 수 947 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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

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

#---------------여기서부터 
# (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] 


출처: 게임공작소

?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수 추천 수
80 RPGXP 스크립트 아이템창을 아이템 분류별로 나누어 지게 개조. 3 file 창조도시 2007.12.02 1641 1
79 RPGXP 스크립트 횡스크롤 점프 [버튼허용스위치추가] 3  운 2014.06.01 1629 0
78 RPGXP 스크립트 메세지에 얼굴, 이름등 다양한 기능 넣기 UMS 스크립트 1 데노제 2013.12.10 1618 0
77 RPGXP 스크립트 캐릭터 그림자 2 청담 2013.09.24 1548 0
76 RPGXP 스크립트 그림자문자 사용하기.. 바탕색이 무슨색이건 상관없이 글자가 잘보인다!!! 창조도시 2007.11.06 1475 1
75 RPGXP 스크립트 기차 파티 스크립트 2 창조도시 2008.07.24 1466 2
74 RPGXP 스크립트 Font Setup file 운님 2016.07.22 1452 0
73 RPGXP 스크립트 선택 메뉴를 가운데 정렬 해보자. 1 file 창조도시 2007.12.02 1449 2
72 RPGXP 스크립트 액알 스크립트 4 커비♥ 2014.11.23 1444 1
71 RPGXP 스크립트 맵 이름 표시 스크립트 5 청담 2013.09.20 1440 0
70 RPGXP 스크립트 c[n] 명령어 줄때의 색상 결정. 창조도시 2008.02.14 1438 1
69 RPGXP 스크립트 몬스터 도감 1 청담 2013.09.24 1426 0
68 RPGXP 스크립트 공포게임에 장비착용메뉴 3  운 2014.08.24 1423 0
67 RPGXP 스크립트 대화 글씨가 한글자씩 나오는 스크립트 1 청담 2013.09.24 1417 0
66 RPGXP 스크립트 대화 글씨 폰트를 원하는 폰트로 바꾸기 창조도시 2007.12.01 1392 2
65 RPGXP 스크립트 메뉴 스크립트 Zer0 CMS 3 2013.10.01 1384 0
64 RPGXP 스크립트 파티 선두 캐릭터 id 변수에 넣기 Evangelista 2008.01.08 1380 1
63 RPGXP 스크립트 빠른 길찾기 2 휴리드 2013.09.30 1337 0
62 RPGXP 스크립트 게임도중에 글씨체를 바꿔보자. 창조도시 2008.12.31 1266 1
61 RPGXP 스크립트 RPG 만들기 XP의 숨겨진 모듈/클래스 재정의 스크립트 모음 2013.10.01 1241 0
Board Pagination Prev 1 2 3 4 5 6 7 8 Next
/ 8






[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)