Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.

Centrar battlers by Cogwell & SandGolem [RPGXP]

Ver el tema anterior Ver el tema siguiente Ir abajo

Centrar battlers by Cogwell & SandGolem [RPGXP]

Mensaje por Clark-CLK el 2011-07-05, 15:31

Estos script sirven para centrar los battlers del grupo en caso de que no haya los suficientes como para ocupar toda la pantalla por así decirlo. Les dejo dos de ellos, uno de Coghwell y otro de SandGolem.

Coghwell:
Código:
# í“¬”wŒi‘S‘̉» Ver 1.01
# ”z•zŒ³EƒTƒ|[ƒgURL
# http://members.jcom.home.ne.jp/cogwheel/

#==============================================================================
# ¡ Game_Actor
#------------------------------------------------------------------------------
# @ƒAƒNƒ^[‚ðˆµ‚¤ƒNƒ‰ƒX‚Å‚·B‚±‚̃Nƒ‰ƒX‚Í Game_Actors ƒNƒ‰ƒX ($game_actors)
# ‚Ì“à •”‚ÅŽg—p‚³‚êAGame_Party Æ’Nƒ‰ƒX ($game_party) ‚©️‚ç‚à ŽQÆ‚³‚ê‚Ü‚·B
#==============================================================================

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # œ Æ’oÆ’gƒ‹‰æ– X À•W‚̎擾
  #--------------------------------------------------------------------------
  def screen_x
    # Æ’p[Æ’eÆ’B“à ‚Ì•À‚я‡‚©️‚ç X À•W‚ðŒvŽZ‚µ‚Ä•Ô‚·
    if self.index != nil
      return self.index * 160 + (4 - $game_party.actors.size) * 80 + 80
    else
      return 0
    end
  end
end

#==============================================================================
# ¡ Spriteset_Battle
#------------------------------------------------------------------------------
# @ƒoƒgƒ‹‰æ–‚̃Xƒvƒ‰ƒCƒg‚ð‚Ü‚Æ‚ß‚½ƒNƒ‰ƒX‚Å‚·B‚±‚̃Nƒ‰ƒX‚Í Scene_Battle ƒNƒ‰
# ƒX‚Ì“à •”‚ÅŽg—p‚³‚ê‚Ü‚·B
#==============================================================================

class Spriteset_Battle
  #--------------------------------------------------------------------------
  # œ Æ’IÆ’uÆ’WÆ’FÆ’NÆ’g‰Šú‰»
  #--------------------------------------------------------------------------
  def initialize
    # Æ’rƒ…[Æ’|[Æ’g‚ðì¬
    @viewport1 = Viewport.new(0, 0, 640, 480)
    @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
    # Æ’oÆ’gƒ‹ƒoÆ’bÆ’NÆ’XÆ’vƒ‰ƒCÆ’g‚ðì¬
    @battleback_sprite = Sprite.new(@viewport1)
    # Æ’GÆ’lÆ’~[Æ’XÆ’vƒ‰ƒCÆ’g‚ðì¬
    @enemy_sprites = []
    for enemy in $game_troop.enemies.reverse
      @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
    end
    # Æ’AÆ’NÆ’^[Æ’XÆ’vƒ‰ƒCÆ’g‚ðì¬
    @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))
    # “VŒó‚ðì¬
    @weather = RPG::Weather.new(@viewport1)
    # Æ’sÆ’NÆ’`Æ’Æ’Æ’XÆ’vƒ‰ƒCÆ’g‚ðì¬
    @picture_sprites = []
    for i in 51..100
      @picture_sprites.push(Sprite_Picture.new(@viewport3,
        $game_screen.pictures[i]))
    end
    # Æ’^Æ’CÆ’}[Æ’XÆ’vƒ‰ƒCÆ’g‚ðì¬
    @timer_sprite = Sprite_Timer.new
    # Æ’tƒŒ[ƒ€XV
    update
  end
  #--------------------------------------------------------------------------
  # œ Æ’tƒŒ[ƒ€XV
  #--------------------------------------------------------------------------
  def update
    # Æ’AÆ’NÆ’^[Æ’XÆ’vƒ‰ƒCÆ’g‚Ì“à —e‚ðXV (Æ’AÆ’NÆ’^[‚Ì“ü‚ê‘Ö‚¦‚ɑΉž)
    @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]
    # Æ’oÆ’gƒ‹ƒoÆ’bÆ’N‚̃tÆ’@Æ’Cƒ‹–¼‚ªŒ»Ý‚Ì‚à ‚Ì‚Æˆá‚¤ê‡
    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, 480)
      if @battleback_sprite.bitmap.height == 320
        @battleback_sprite.zoom_x = 2.0
        @battleback_sprite.zoom_y = 2.0
        @battleback_sprite.x = 320
        @battleback_sprite.y = 480
        @battleback_sprite.ox = @battleback_sprite.bitmap.width / 2
        @battleback_sprite.oy = @battleback_sprite.bitmap.height
      else
        @battleback_sprite.x = 0
        @battleback_sprite.y = 0
        @battleback_sprite.ox = 0
        @battleback_sprite.oy = 0
        @battleback_sprite.zoom_x = 1
        @battleback_sprite.zoom_y = 1
      end
    end
    # Æ’oÆ’gƒ‰[Æ’XÆ’vƒ‰ƒCÆ’g‚ðXV
    for sprite in @enemy_sprites + @actor_sprites
      sprite.update
    end
    # “VŒóƒOƒ‰ƒtÆ’BÆ’bÆ’N‚ðXV
    @weather.type = $game_screen.weather_type
    @weather.max = $game_screen.weather_max
    @weather.update
    # Æ’sÆ’NÆ’`Æ’Æ’Æ’XÆ’vƒ‰ƒCÆ’g‚ðXV
    for sprite in @picture_sprites
      sprite.update
    end
    # Æ’^Æ’CÆ’}[Æ’XÆ’vƒ‰ƒCÆ’g‚ðXV
    @timer_sprite.update
    # ‰æ–‚̐F’️²‚ƃVÆ’FÆ’CÆ’Nˆ’️u‚ðÝ’️è
    @viewport1.tone = $game_screen.tone
    @viewport1.ox = $game_screen.shake
    # ‰æ–‚̃tƒ‰ƒbÆ’Vƒ…F‚ðÝ’️è
    @viewport4.color = $game_screen.flash_color
    # Æ’rƒ…[Æ’|[Æ’g‚ðXV
    @viewport1.update
    @viewport2.update
    @viewport4.update
  end
end

#==============================================================================
# ¡ Window_BattleStatus
#------------------------------------------------------------------------------
# @Æ’oÆ’gƒ‹‰æ–‚Ńp[Æ’eÆ’Bƒƒ“ƒo[‚̃XÆ’e[Æ’^Æ’X‚ð•\Ž¦‚·‚é️Æ’EÆ’Bƒ“ƒhÆ’E‚Å‚·B
#============================================================================== 

class Window_BattleStatus < Window_Base
  #--------------------------------------------------------------------------
  # œ Æ’IÆ’uÆ’WÆ’FÆ’NÆ’g‰Šú‰»
  #--------------------------------------------------------------------------
  def initialize
    x = (4 - $game_party.actors.size) * 80
    width = $game_party.actors.size * 160
    super(x, 320, width, 160)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.back_opacity = 160
    @level_up_flags = [false, false, false, false]
    refresh
  end
  #--------------------------------------------------------------------------
  # œ Æ’tƒŒ[ƒ€XV
  #--------------------------------------------------------------------------
  def update
    super
    if self.x != (4 - $game_party.actors.size) * 80
      self.x = (4 - $game_party.actors.size) * 80
      self.width = $game_party.actors.size * 160
      self.contents = Bitmap.new(self.width - 32, self.height - 32)
      refresh
    end
    # ƒƒCƒ“ƒtÆ’F[Æ’Y‚Ì‚Æ‚«‚Í•s“§–¾“x‚ð‚â‚≺‚°‚é️
    if $game_temp.battle_main_phase
      self.contents_opacity -= 4 if self.contents_opacity > 191
    else
      self.contents_opacity += 4 if self.contents_opacity < 255
    end
  end
end

#==============================================================================
# ¡ Scene_Battle (•ªŠ„’️è‹` 3)
#------------------------------------------------------------------------------
# @ƒoƒgƒ‹‰æ–‚̏ˆ—‚ðs‚¤ƒNƒ‰ƒX‚Å‚·B
#================================================================ ==============

class Scene_Battle
  #--------------------------------------------------------------------------
  # œ Æ’AÆ’NÆ’^[Æ’RÆ’}ƒ“ƒhÆ’EÆ’Bƒ“ƒhÆ’E‚̃ZÆ’bÆ’gÆ’AÆ’bÆ’v
  #--------------------------------------------------------------------------
  def phase3_setup_command_window
    # Æ’p[Æ’eÆ’BÆ’RÆ’}ƒ“ƒhÆ’EÆ’Bƒ“ƒhÆ’E‚𖳌ø‰»
    @party_command_window.active = false
    @party_command_window.visible = false
    # Æ’AÆ’NÆ’^[Æ’RÆ’}ƒ“ƒhÆ’EÆ’Bƒ“ƒhÆ’E‚ð—LŒø‰»
    @actor_command_window.active = true
    @actor_command_window.visible = true
    # Æ’AÆ’NÆ’^[Æ’RÆ’}ƒ“ƒhÆ’EÆ’Bƒ“ƒhÆ’E‚̈’️u‚ðÝ’️è
    @actor_command_window.x = @actor_index * 160 +
                    (4 - $game_party.actors.size) * 80
    # Æ’Cƒ“ƒfÆ’bÆ’NÆ’X‚ð 0 ‚ɐݒ️è
    @actor_command_window.index = 0
  end
end

#==============================================================================
# ¡ Spriteƒ‚ƒWƒ…[ƒ‹
#------------------------------------------------------------------------------
# @ƒAƒjƒ[ƒVƒ‡ƒ“‚ÌŠÇ—‚ðs‚¤ƒ‚ƒWƒ…[ƒ‹‚Å‚·B
#==============================================================================

module RPG
  class Sprite < ::Sprite
    def animation_set_sprites(sprites, cell_data, position)
      for i in 0..15
        sprite = sprites[i]
        pattern = cell_data[i, 0]
        if sprite == nil or pattern == nil or pattern == -1
          sprite.visible = false if sprite != nil
          next
        end
        sprite.visible = true
        sprite.src_rect.set(pattern % 5 * 192, pattern / 5 * 192, 192, 192)
        if position == 3
          if self.viewport != nil
            sprite.x = self.viewport.rect.width / 2
            if $game_temp.in_battle and self.battler.is_a?(Game_Actor)
              sprite.y = self.viewport.rect.height - 160
            else
              sprite.y = self.viewport.rect.height - 320
            end
          else
            sprite.x = 320
            sprite.y = 240
          end
        else
          sprite.x = self.x + self.viewport.rect.x - self.ox + self.src_rect.width / 2
          sprite.y = self.y + self.viewport.rect.y - self.oy * self.zoom_y + self.src_rect.height * self.zoom_y  / 2
          sprite.y -= self.src_rect.height / 4 if position == 0
          sprite.y += self.src_rect.height / 4 if position == 2
        end
        sprite.x += cell_data[i, 1]
        sprite.y += cell_data[i, 2]
        sprite.z = 2000
        sprite.ox = 96
        sprite.oy = 96
        sprite.zoom_x = cell_data[i, 3] / 100.0
        sprite.zoom_y = cell_data[i, 3] / 100.0
        sprite.angle = cell_data[i, 4]
        sprite.mirror = (cell_data[i, 5] == 1)
        sprite.opacity = cell_data[i, 6] * self.opacity / 255.0
        sprite.blend_type = cell_data[i, 7]
      end
    end
  end
end
Produce imcompatibilidad con algunos sistemas de batalla como el de MakirouAru y el Limit Break de KGC.

Sandgolem:
Código:
#==========================================================================
# ** SG Center Player Group
#==========================================================================
# sandgolem
# Version 1
# 2.07.06
#==========================================================================

SG_CenterPlayer_StatusHT = 160
SG_CenterPlayer_StatusBg = 255

begin
  SDK.log('SG Center Player Group', 'sandgolem', 1, '2.07.06')
  if SDK.state('SG Center Player Group') != true
    @sg_centerpgroup_disabled = true
  end
  rescue
end

if !@sg_centerpgroup_disabled
#--------------------------------------------------------------------------

class Window_BattleStatus < Window_Base
  def initialize
    case $game_party.actors.size
    when 1
      super(240, 480 - SG_CenterPlayer_StatusHT, 160, SG_CenterPlayer_StatusHT)
    when 2
      super(160, 480 - SG_CenterPlayer_StatusHT, 320, SG_CenterPlayer_StatusHT)
    when 3
      super(80, 480 - SG_CenterPlayer_StatusHT, 480, SG_CenterPlayer_StatusHT)
    when 4
      super(0, 480 - SG_CenterPlayer_StatusHT, 640, SG_CenterPlayer_StatusHT)
    end
    self.opacity = SG_CenterPlayer_StatusBg
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = "Aniron"
    @level_up_flags = [false, false, false, false]
    refresh
  end
end

class Game_Actor
  alias sandgolem_centerpgroup_actor_scrnx screen_x
  def screen_x
    sg_temp = sandgolem_centerpgroup_actor_scrnx
    case $game_party.actors.size
    when 1
      sg_temp += 240
    when 2
      sg_temp += 160
    when 3
      sg_temp += 80
    end
    return sg_temp
  end
end

class Scene_Battle
  attr_accessor :status_window
 
  alias sandgolem_centerpgroup_battle_ph3scw phase3_setup_command_window
  def phase3_setup_command_window
    sandgolem_centerpgroup_battle_ph3scw
    case $game_party.actors.size
    when 1
      @actor_command_window.x += 240
    when 2
      @actor_command_window.x += 160
    when 3
      @actor_command_window.x += 80
    end
  end
end

#--------------------------------------------------------------------------
end
Este script si es compatible con el sistema de batalla de MakirouAro.

P.D: No me pregunten qual es ese SBP porque no lo conozco solo puse esa anotación que decia en la fuente. lol!

Wong Wong!!
avatar
Clark-CLK
Veterano
Veterano

0/3

Créditos 1346

Gracias : 3

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


Permisos de este foro:
No puedes responder a temas en este foro.