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
941 아이템 SG_Hide free item cose by sandgolem (SDK호환) 백호 2009.02.22 935
940 전투 S.G DamageShield Script 백호 2009.02.22 935
939 오디오 WinAMP 플러그인을 이용하여 RMXP에서 다른 사운드포맷 지원하기 v3 by Guillame777@rmxp.net 백호 2009.02.22 936
938 기타 Text Scroll by Dubealex (Release 3) 2 file 백호 2009.02.22 939
937 메뉴 1-Scene CMS 1.1 by LegACy@rmxp.org (SDK호환) file 백호 2009.02.22 953
936 기타 [All RGSS] File-Ex file Cheapmunk 2014.12.29 961
935 파티 Party & Class Changing script 1 file 백호 2009.02.21 962
934 키입력 Mouse Input Module v5 by Near Fantastica (SDK호환) 2 백호 2009.02.22 962
933 기타 ATS-Advanced Time System 1 file 백호 2009.02.21 964
932 저장 SG_Automatic Save 백호 2009.02.22 970
931 스킬 랜덤 스킬 스크립트 2 file 백호 2009.02.21 978
930 메뉴 Event Spawner 1 file 백호 2009.02.22 980
929 기타 필드에서 마력을 출력합니다. 백호 2009.02.22 983
928 그래픽 Bitmap update 2.0 by Linkin_T 1 백호 2009.02.22 985
927 기타 Tetris Attack by trickster 1 file 백호 2009.02.22 986
926 기타 스크롤되는 파노라마(Autoscrolling Panorama) by RPG Advocate 백호 2009.02.22 993
925 기타 특수효과 ElseEX 스크립트 file 백호 2009.02.21 995
924 키입력 No F1, F12 and Alt+Return (Kein F1, F12 und Alt+Eingabe) by cremno 습작 2013.04.19 995
923 맵/타일 Map Loop Script 백호 2009.02.21 999
922 기타 Free Window Demo 1 file 백호 2009.02.22 1002
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 52 Next
/ 52