XP 스크립트

제작자 : 준돌

#======================================================================
# ■ Window_ShopStatus
#------------------------------------------------------------------------------
#  숍 화면에서, 아이템의 소지수나 엑터의 장비를 표시하는 윈도우입니다.
#======================================================================

class Window_ShopStatus < Window_Base
  #--------------------------------------------------------------------------
  # ● 오브젝트 초기화
  #--------------------------------------------------------------------------
  def initialize(actor_index = 0)
    super(368, 128, 272, 352)
    self.contents = Bitmap.new(width - 32, height - 32)
    @actor_index = actor_index
    @item = nil
    #@actor_index = 0
    refresh
  end
  #-------------------
  def update
    super
    번호돌리기
  end
  #-------------------
  #--------------------------------------------------------------------------
  # ● 리프레쉬
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    if @item == nil
      return
    end
    case @item
    when RPG::Item
      number = $game_party.item_number(@item.id)
    when RPG::Weapon
      number = $game_party.weapon_number(@item.id)
    when RPG::Armor
      number = $game_party.armor_number(@item.id)
    end
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 200, 32, "소지수")
    self.contents.font.color = normal_color
    self.contents.draw_text(204, 0, 32, 32, number.to_s, 2)
    if @item.is_a? (RPG::Item)
      return
    end
    # 장비품 추가 정보
    for i in 0...$game_party.actors.size
      # 엑터를 취득
      actor = $game_party.actors[@actor_index]#$game_party.actors[i]
      # 장비 가능하면 통상 문자색에, 불가능하면 무효 문자색으로 설정
      if actor.equippable? (@item)
        self.contents.font.color = normal_color
      else
        self.contents.font.color = disabled_color
      end
      # 엑터의 이름을 묘화
      @이름 = $game_party.actors[@actor_index].name
      $game_party.actors[@actor_index]
      self.contents.draw_text(4, 64, 120, 32, @이름)#(4, 64 + 64 * i, 120, 32, actor.name)
      # 현재의 장비품을 취득
      if @item.is_a? (RPG::Weapon)
        item1 = $data_weapons[$game_party.actors[@actor_index].weapon_id]#$data_weapons[actor.weapon_id]
      elsif @item.kind == 0
        item1 = $data_armors[$game_party.actors[@actor_index].armor1_id]#$data_armors[actor.armor1_id]
      elsif @item.kind == 1
        item1 = $data_armors[$game_party.actors[@actor_index].armor2_id]#$data_armors[actor.armor2_id]
      else
        item1 = $data_armors[$game_party.actors[@actor_index].armor3_id]#$data_armors[actor.armor3_id]
      end
      # 장비 가능한 경우
      if actor.equippable? (@item)
        # 무기의 경우
        if @item.is_a? (RPG::Weapon)
          atk1 = item1 != nil ?  item1.atk : 0
          atk2 = @item != nil ?  @item.atk : 0
          str1 = item1 != nil ?  item1.str_plus : 0
          str2 = @item != nil ?  @item.str_plus : 0
          dex1 = item1 != nil ?  item1.dex_plus : 0
          dex2 = @item != nil ?  @item.dex_plus : 0
          agi1 = item1 != nil ?  item1.agi_plus : 0
          agi2 = @item != nil ?  @item.agi_plus : 0
          int1 = item1 != nil ?  item1.int_plus : 0
          int2 = @item != nil ?  @item.int_plus : 0
          change1 = atk2 - atk1
          change4 = str2 - str1
          change5 = dex2 - dex1
          change6 = agi2 - agi1 
          change7 = int2 - int1     
        end
        # 방어용 기구의 경우
        if @item.is_a? (RPG::Armor)
          pdef1 = item1 != nil ?  item1.pdef : 0
          mdef1 = item1 != nil ?  item1.mdef : 0
          pdef2 = @item != nil ?  @item.pdef : 0
          mdef2 = @item != nil ?  @item.mdef : 0
          str1 = item1 != nil ?  item1.str_plus : 0
          str2 = @item != nil ?  @item.str_plus : 0
          dex1 = item1 != nil ?  item1.dex_plus : 0
          dex2 = @item != nil ?  @item.dex_plus : 0
          agi1 = item1 != nil ?  item1.agi_plus : 0
          agi2 = @item != nil ?  @item.agi_plus : 0
          int1 = item1 != nil ?  item1.int_plus : 0
          int2 = @item != nil ?  @item.int_plus : 0
          change2 = pdef2 - pdef1 #+ mdef2 - mdef1
          change3 = mdef2 - mdef1
          change4 = str2 - str1
          change5 = dex2 - dex1
          change6 = agi2 - agi1 
          change7 = int2 - int1
        end
        # 파라미터의 변화치를 묘화
        self.contents.draw_text(124, 64, 112, 32,
          sprintf("atk%+d", change1), 2)
        self.contents.draw_text(124, 94, 112, 32,
          sprintf("pdef%+d", change2), 2)
        self.contents.draw_text(124, 124, 112, 32,
          sprintf("mdef%+d", change3), 2)
        self.contents.draw_text(124, 154, 112, 32,
          sprintf("str%+d", change4), 2)
        self.contents.draw_text(124, 184, 112, 32,
          sprintf("dex%+d", change5), 2)
        self.contents.draw_text(124, 214, 112, 32,
          sprintf("agi%+d", change6), 2)
        self.contents.draw_text(124, 244, 112, 32,
          sprintf("int%+d", change7), 2)
      end
      # 아이템을 묘화
      if item1 != nil
        x = 4
        y = 104
        bitmap = RPG::Cache.icon(item1.icon_name)
        opacity = self.contents.font.color == normal_color ?  255 : 30
        self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
        self.contents.draw_text(x + 28, y, 212, 32, item1.name, opacity)
      end
    end
  end
  #-----------------------------------------------
  def 번호돌리기#두개를 분리한 이유는 이해가 쉽게하기 위해서
    번호를더하라
    번호를빼라
  end
  #-----------------------------------------------
  def 번호를더하라
    if Input.trigger? (Input::R)
      @actor_index += 1
      @actor_index %= $game_party.actors.size
    refresh
  end
 end
 #------------------------------------------------
 def 번호를빼라
    if Input.trigger? (Input::L) 
      @actor_index += $game_party.actors.size - 1
      @actor_index %= $game_party.actors.size
    refresh
  end
 end
  #--------------------------------------------------------------------------
  # ● 아이템의 설정
  #    item : 새로운 아이템
  #--------------------------------------------------------------------------
  def item=(item)
    if @item != item
      @item = item
      refresh
    end
  end
end





그냥 찔러넣기로도 되구요


이건
아래꺼를 업그레이드 시켜서


스텟설명이 길어서
8줄정도 내려가서
파티원 4명모두 스테이더스를 못봣엇는데

5분동안 연구한결과


Q버튼과 W버튼으로

파티원의 순서를 임의로
돌려서


파티돌리기식 형태의 상점스테이더스를 완성했습니다
^^ㅎ

성공적이군요...

 EMO_3*[스크린샷은 아래글을 참조해주세요 ^^;]

Who's 백호

?

이상혁입니다.

http://elab.kr


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 6203
481 상점 Advanced Shop System by Alexis Hiemis 1 file Alkaid 2010.10.08 1872
480 전투 전투중의 윈도우 전부 투명화 3 file 백호 2009.02.21 1879
479 기타 무기& 방어구 레벨제한 스크립트 23 file 백호 2009.02.21 1880
478 전투 레벨 상승 화면 개조 스크립트 4 file 백호 2009.02.21 1884
477 온라인 multy-netplay 로그인창에서 비밀번호를 ***표시해주는 script~! 1 백호 2009.02.22 1889
476 메뉴 링메뉴 제대로된것..오류안나느것. 7 백호 2009.02.21 1890
475 전투 The Lycan ABS by DerVVulfman Alkaid 2013.07.22 1898
474 전투 Mr. Mo's ABS Ultimate 1.9 by DerVVulfman 2 Alkaid 2011.12.01 1900
473 기타 mog-스테이터스 업그레이드? ps인간 2009.01.23 1904
472 액터 Actor Customization 6.0.2 by Synthesize 4 file Alkaid 2010.09.17 1912
471 [자작]일괄조작 관련 스크립트 5 나뚜루 2009.01.10 1913
470 기타 RPG 만들기 XP의 숨겨진 모듈/클래스 재정의 스크립트 모음 1 Alkaid 2013.08.31 1913
469 전투 전투불능 케릭터 강제삭제 7 독도2005 2008.10.05 1918
468 그래픽 Weather Creator 1.0 by ForeverZer0 2 file Alkaid 2011.01.22 1922
467 장비 Equipment Upgrade System 1.1 by Charlie Fleed Alkaid 2010.11.18 1928
466 이동 및 탈것 자동으로 장애물을 피해가는 스크립트 13 file 백호 2009.02.22 1930
465 기타 요리스크립트 (구) 6 *ps인간 2009.01.26 1933
464 HUD 게임 플레이시 맵의 이름을 표시하는 스크립트 1 file 백호 2009.02.21 1935
463 메뉴 KGC 메뉴화면 개조 스크립트 번역 3 file 백호 2009.02.22 1942
462 전투 RTAB방식의 CBS 스크립트 Final-2 5 file 백호 2009.02.22 1943
Board Pagination Prev 1 ... 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 ... 52 Next
/ 52