조회 수 1908 추천 수 0 댓글 3
?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
Extra Form
출처 somewhere...

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

class Window_ShopStatus < Window_Base
  #--------------------------------------------------------------------------
  # ● 오브젝트 초기화
  #--------------------------------------------------------------------------
  def initialize
    super(368, 128, 272, 352)
    self.contents = Bitmap.new(width - 32, height - 32)
    @item = nil
    refresh
  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[i]
      # 장비 가능하면 통상 문자색에, 불가능하면 무효 문자색으로 설정
      if actor.equippable? (@item)
        self.contents.font.color = normal_color
      else
        self.contents.font.color = disabled_color
      end
      # 엑터의 이름을 묘화
      self.contents.draw_text(4, 64 + 64 * i, 120, 32, actor.name)
      # 현재의 장비품을 취득
      if @item.is_a? (RPG::Weapon)
        item1 = $data_weapons[actor.weapon_id]
      elsif @item.kind == 0
        item1 = $data_armors[actor.armor1_id]
      elsif @item.kind == 1
        item1 = $data_armors[actor.armor2_id]
      else
        item1 = $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 + 64 * i, 112, 32,
          sprintf("atk%+d", change1), 2)
        self.contents.draw_text(124, 94 + 94 * i, 112, 32,
          sprintf("pdef%+d", change2), 2)
        self.contents.draw_text(124, 124 + 124 * i, 112, 32,
          sprintf("mdef%+d", change3), 2)
        self.contents.draw_text(124, 154 + 154 * i, 112, 32,
          sprintf("str%+d", change4), 2)
        self.contents.draw_text(124, 184 + 184 * i, 112, 32,
          sprintf("dex%+d", change5), 2)
        self.contents.draw_text(124, 214 + 214 * i, 112, 32,
          sprintf("agi%+d", change6), 2)
        self.contents.draw_text(124, 244 + 244 * i, 112, 32,
          sprintf("int%+d", change7), 2)
      end
      # 아이템을 묘화
      if item1 != nil
        x = 4
        y = 64 + 64 * i + 32
        bitmap = RPG::Cache.icon(item1.icon_name)
        opacity = self.contents.font.color == normal_color ?  255 : 128
        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)
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 아이템의 설정
  #    item : 새로운 아이템
  #--------------------------------------------------------------------------
  def item=(item)
    if @item != item
      @item = item
      refresh
    end
  end
end

 

===

 

상점에서 무기나 방어구를 살때 액터의 스테이터스를 자세하게 나타내는 스크립트입니다

 

어떤 무기를 장비해서 어떤 스테이터스가 오르고 내려가는지를 확인할수 있지요

 

다만 단점이 있다면... 액터가 둘 이상 있을때 스테이터스가 겹치는 현상이 일어납니다

 

아마 지금 당장은 1인용밖에는 활용할 방도가 없는듯 하군요 ㅇㅂㅇ;

 

예제와 사진을 첨부해놨으니 참고하시기 바랍니다 ㅇㅂㅇ


List of Articles
분류 제목 글쓴이 날짜 조회 수 추천 수
공지사항 일본어 스크립트를 번역하기 좋은 번역사이트 두곳입니다 ruby 2010.01.09 22088 0
공지사항 스크립트 게시판 관리자' ruby ' 입니다 ruby 2010.01.09 20728 0
공지사항 일본 스크립트/소스 공유 포럼 4 니오티 2010.01.05 22259 0
세이브 자동저장 스크립트 2 레오 2010.12.23 3201 0
HG_SHOOT_ANIMATION file 허걱 2010.11.21 2424 0
HG_LIMIT_CARRY file 허걱 2010.11.11 2066 0
온라인 RPG XP Web Kit 1 file 니오티 2010.11.05 3031 0
ruby-1.9.1-p429 Standard Pack file 니오티 2010.11.05 1874 0
공통 Script 루비 html 라이브러리 file 펜릴 2010.11.05 2833 0
T?tulo Final Fantasy file dizman 2010.10.15 3009 0
전투시 화면 확대..! 2 dizman 2010.10.15 2536 0
기타 상태창표시 스크립투 Ver 6.0 4 file 코아 코스튬 2010.09.21 2413 2
Cacao 엔진 출처사이트의 스크립트 모움 ruby 2010.08.02 2217 0
XP 형식 메뉴 2 file Jenpia 2010.07.29 3641 0
온라인 온라인 11 file 개임 매니저 2010.07.27 2232 0
MYSQL 사용할 수 있게 하는 스크립트 3 file 독도2005 2010.07.25 2775 0
대화관련 얼굴 띄워주는 기능&대화창 명령어 14 file 니오티 2010.07.23 2904 0
메시지 한 글자씩 대화창에 띄웁니다. 1 file 니오티 2010.07.23 1870 0
메뉴관련 메뉴에 얼굴 그래픽을 표현 2 file 니오티 2010.07.23 1840 0
온라인 온라인 11 file 개임 매니저 2010.07.21 2117 0
메뉴를 바꿉니다. 3 file Aqua 2010.06.19 3210 2
HG_QUEST_SYSTEM 7 file 허걱 2010.06.18 3598 1
HG_Variables : 변수 확장 시스템 2 file 허걱 2010.06.14 2559 1
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

Copyright ⓒ Nioting All Rights Reserved. (since 1999)    개인정보
        

Fatal error: Cannot access property sessionController::$lifetime in /web/old/xe/modules/session/session.controller.php on line 45