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 기타 [All RGSS] FileTest (Unicode) file Cheapmunk 2014.12.29 611
253 기타 에어리어 설정 by RPG Advocate 백호 2009.02.22 709
252 기타 Boat Script 백호 2009.02.21 729
251 기타 Localization by ForeverZer0, KK20 습작 2013.04.26 738
250 기타 Materia System file 백호 2009.02.21 749
249 기타 Real-Time Day Night 3 백호 2009.02.22 751
248 기타 killer님 요청하신 스크립트 두번째입니다. 나뚜루 2009.02.21 759
247 기타 Letter by Letter Message Window by slipknot@rmxp.org (SDK호환) 1 file 백호 2009.02.22 760
246 기타 Advanced Gold display by Dubealex 1 백호 2009.02.22 761
245 기타 Sphere Grid System file 백호 2009.02.21 765
244 기타 AMS-Advanced Message Script Edited by Dubleax 3 file 백호 2009.02.21 765
243 기타 Activation_system file 백호 2009.02.22 775
242 기타 Terrain Encounter Areas by SephirothSpawn 백호 2009.02.22 778
241 기타 Damage Reductions by SephirothSpawn (SDK호환) 1 백호 2009.02.22 779
240 기타 killer님 요청하신 스크립트입니다. 1 나뚜루 2009.02.21 784
239 기타 Selected phyolomortis.com scripts 1 file 백호 2009.02.22 789
238 기타 Hero Databass 4 file 백호 2009.02.22 797
237 기타 SG_Call Script Fix by sandgolem (SDK호환) 백호 2009.02.22 802
236 기타 SG_Multiple Currencies v3 by sandgolem (SDK호환) 백호 2009.02.22 803
235 기타 Weather Script 1.02 by ccoa 1 file 백호 2009.02.22 809
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 Next
/ 13