XP 스크립트

#==============================================================================
# ■ Sprite_Gauge
#------------------------------------------------------------------------------
#  게이지를 스프아리트 합니다.
#
#==============================================================================

class Sprite_Gauge < RPG::Sprite
  #--------------------------------------------------------------------------
  # ● 공개 인스턴스 변수
  #--------------------------------------------------------------------------
  attr_accessor :battler                  # 버틀러
  #--------------------------------------------------------------------------
  # ● 오브젝트 초기화
  #     viewport : 뷰포트
  #     battler  : 버틀러 (Game_Battler)
  #--------------------------------------------------------------------------
  def initialize(viewport, battler = nil)
    super(viewport)
    @battler = battler
    @battler_visible = false
  end
  #--------------------------------------------------------------------------
  # ● 해방
  #--------------------------------------------------------------------------
  def dispose
    if self.bitmap != nil
      self.bitmap.dispose
    end
    super
  end
  #--------------------------------------------------------------------------
  # ● 프레임 갱신
  #--------------------------------------------------------------------------
  def update
    super
    # 버틀러가 nil 의 경우
    if @battler == nil
      self.bitmap = nil
      loop_animation(nil)
      return
    end
      #대상 몬스터의 높이를 구함
      @battler_name = @battler.battler_name
      @battler_hue = @battler.battler_hue
      battler_height = RPG::Cache.battler(@battler_name, @battler_hue).height
      #대상 몬스터의 최대 Hp와 현재 HP를 구함
      @battler_maxHP = @battler.base_maxhp
      @battler_HP = @battler.hp
      #게이지바 그림 로드
      self.bitmap = RPG::Cache.battler("게이지.png", 0)
      @width = bitmap.width
      @height = bitmap.height
      self.src_rect = Rect.new( 0, 0, @battler_HP * @width / @battler_maxHP, 20)
      self.ox = @width / 2 
      self.oy = @height
      # 전투 불능 또는 숨어 상태라면 불투명도를 0 으로 한다
      if @battler.dead? or @battler.hidden
        self.opacity = 0
      end

    # 불가시의 경우
    unless @battler_visible
      # 출현
      if not @battler.hidden and not @battler.dead? and
         (@battler.damage == nil or @battler.damage_pop)
        appear
        @battler_visible = true
      end
    end
    # 가시의 경우
    if @battler_visible
      # 도주
      if @battler.hidden
        $game_system.se_play($data_system.escape_se)
        escape
        @battler_visible = false
      end
      # 코라프스
      if @battler.damage == nil and @battler.dead?
        if @battler.is_a?(Game_Enemy)
          $game_system.se_play($data_system.enemy_collapse_se)
        else
          $game_system.se_play($data_system.actor_collapse_se)
        end
        collapse
        @battler_visible = false
      end
    end
    battler_height -= 15 if battler_height > 250
    # 스프라이트의 좌표를 설정
    self.x = @battler.screen_x
    self.y = @battler.screen_y - battler_height - 10
    self.z = @battler.screen_z
  end
end

 

 

 

 

#찔러넣기 스크립트로 변환하였습니다.
#이제부터는 Spriteset_Battle 클래스에 #sssssssssssssssss와 #eeeeeeeeeeeeee사이것을 추가 수정해주시면 됩니다.
#==============================================================================
# ■ Spriteset_Battle
#------------------------------------------------------------------------------
#  배틀 화면의 스프라이트를 정리한 클래스입니다.이 클래스는 Scene_Battle 곳간
# 스의 내부에서 사용됩니다.
#==============================================================================

class Spriteset_Battle
  #--------------------------------------------------------------------------
  # ● 공개 인스턴스 변수
  #--------------------------------------------------------------------------
  attr_reader   :viewport1                # 에너미측의 뷰포트
  attr_reader   :viewport2                # 액터측의 뷰포트
  #--------------------------------------------------------------------------
  # ● 오브젝트 초기화
  #--------------------------------------------------------------------------
  def initialize
    # 뷰포트를 작성
    @viewport1 = Viewport.new(0, 0, 640, 320)
    @viewport2 = Viewport.new(0, 0, 640, 480)
    @viewport3 = Viewport.new(0, 0, 640, 480)
    @viewport4 = Viewport.new(0, 0, 640, 480)
    @viewport2.z = 101
    @viewport3.z = 200
    @viewport4.z = 5000
    # 배틀 백 스프라이트를 작성
    @battleback_sprite = Sprite.new(@viewport1)
#sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
    # 에너미 게이지바 스프라이트를 작성
    @enemy_gauge_sprites = []
#eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
    # 에너미 스프라이트를 작성
    @enemy_sprites = []
    for enemy in $game_troop.enemies.reverse
      @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
#sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
      @enemy_gauge_sprites.push(Sprite_Gauge.new(@viewport1, enemy))
#eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
    end
    # 액터 스프라이트를 작성
    @actor_sprites = []
    @actor_sprites.push(Sprite_Battler.new(@viewport2))
    @actor_sprites.push(Sprite_Battler.new(@viewport2))
    @actor_sprites.push(Sprite_Battler.new(@viewport2))
    @actor_sprites.push(Sprite_Battler.new(@viewport2))
    # 기후를 작성
    @weather = RPG::Weather.new(@viewport1)
    # 픽쳐 스프라이트를 작성
    @picture_sprites = []
    for i in 51..100
      @picture_sprites.push(Sprite_Picture.new(@viewport3,
        $game_screen.pictures[i]))
    end
    # 타이머 스프라이트를 작성
    @timer_sprite = Sprite_Timer.new
    # 프레임 갱신
    update
  end
  #--------------------------------------------------------------------------
  # ● 해방
  #--------------------------------------------------------------------------
  def dispose
    # 배틀 백 비트 맵이 존재하고 있으면 해방
    if @battleback_sprite.bitmap != nil
      @battleback_sprite.bitmap.dispose
    end
    # 배틀 백 스프라이트를 해방
    @battleback_sprite.dispose
#ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
    # 에너미 스프라이트, 액터 스프라이트를 해방
    for sprite in @enemy_sprites + @enemy_gauge_sprites + @actor_sprites
      sprite.dispose
    end
#eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
    # 기후를 해방
    @weather.dispose
    # 픽쳐 스프라이트를 해방
    for sprite in @picture_sprites
      sprite.dispose
    end
    # 타이머 스프라이트를 해방
    @timer_sprite.dispose
    # 뷰포트를 해방
    @viewport1.dispose
    @viewport2.dispose
    @viewport3.dispose
    @viewport4.dispose
  end
  #--------------------------------------------------------------------------
  # ● 효과 표시중 판정
  #--------------------------------------------------------------------------
  def effect?
#sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
    # 효과가 하나에서도 표시중이라면 true 를 돌려준다
    for sprite in @enemy_sprites + @enemy_gauge_sprites + @actor_sprites
      return true if sprite.effect?
    end
#eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
    return false
  end
  #--------------------------------------------------------------------------
  # ● 프레임 갱신
  #--------------------------------------------------------------------------
  def update
    # 액터 스프라이트의 내용을 갱신 (액터의 교체에 대응)
    @actor_sprites[0].battler = $game_party.actors[0]
    @actor_sprites[1].battler = $game_party.actors[1]
    @actor_sprites[2].battler = $game_party.actors[2]
    @actor_sprites[3].battler = $game_party.actors[3]
    # 배틀 가방의 파일명이 현재의 것과 다른 경우
    if @battleback_name != $game_temp.battleback_name
      @battleback_name = $game_temp.battleback_name
      if @battleback_sprite.bitmap != nil
        @battleback_sprite.bitmap.dispose
      end
      @battleback_sprite.bitmap = RPG::Cache.battleback(@battleback_name)
      @battleback_sprite.src_rect.set(0, 0, 640, 320)
    end
#ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
    # 버틀러 스프라이트를 갱신
    for sprite in @enemy_sprites + @enemy_gauge_sprites + @actor_sprites
      sprite.update
    end
#eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
    # 기후 그래픽을 갱신
    @weather.type = $game_screen.weather_type
    @weather.max = $game_screen.weather_max
    @weather.update
    # 픽쳐 스프라이트를 갱신
    for sprite in @picture_sprites
      sprite.update
    end
    # 타이머 스프라이트를 갱신
    @timer_sprite.update
    # 화면의 색조와 시이크 위치를 설정
    @viewport1.tone = $game_screen.tone
    @viewport1.ox = $game_screen.shake
    # 화면의 플래시색을 설정
    @viewport4.color = $game_screen.flash_color
    # 뷰포트를 갱신
    @viewport1.update
    @viewport2.update
    @viewport4.update
  end
end

파일을 Graphics->Battlers에 넣으세요

 

Comment '22'

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 6153
254 기타 횡스크롤 스크립트 한국말 번역. 15 file 백호 2009.02.21 3311
253 기타 회복으로 데미지를 받는 좀비 스크립트 7 백호 2009.02.22 2004
252 기타 홈페이지 띄우기 (VX 상관없음.) 6 KNAVE 2009.08.25 2137
251 기타 현재시간표시 33 file 코아 코스튬 2010.10.09 2528
250 기타 현재 맵BGM을 그대로 전투 BGM으로 연결 from phylomortis.com 백호 2009.02.22 1180
249 기타 한글 입력 스크립트 입니다. (vx -> xp) 23 file 헤르코스 2009.04.18 3397
248 기타 한계 돌파스크립트 8 G MAX 2009.09.03 2205
247 기타 하나더올립니다....하암........이건...렙제라네요 7 벨☆ 2010.01.23 1754
246 기타 필요 경험치 직접 정하기 9 백호 2009.02.21 1408
245 기타 필드에서 체력을 출력합니다. 4 백호 2009.02.22 1737
244 기타 필드에서 마력을 출력합니다. 백호 2009.02.22 983
243 기타 필드에서 경험치%를 표시합니다. 4 file 백호 2009.02.22 1448
242 기타 플레이어 발소리 스크립트 20 백호 2009.02.22 3107
241 기타 프리 윈도우 스크립트 (상입오두막 출처) 6 백호 2009.02.21 1449
240 기타 프레임 적용 스크립트 1 file 백호 2009.02.21 1007
239 기타 풀스크린 스크립트 2 백호 2009.02.22 1407
238 기타 폰트 자동 설치 스크립트 12 file 백호 2009.02.22 2865
237 기타 포커(Blackjack) 게임을 도입하는 스크립트 5 file 백호 2009.02.21 1674
236 기타 파노라마 스크롤 스크립트 개량판 by Guillaume777 1 백호 2009.02.22 896
235 기타 특수효과 ElseEX 스크립트 file 백호 2009.02.21 995
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 Next
/ 13