¡Bienvenido a Universo Maker!
¿Es esta la primera vez que visitas el foro? Si es así te recomendamos que te registres para tener completo acceso a todas las áreas y secciones del foro, así también podrás participar activamente en la comunidad. Si ya tienes una cuenta, conectate cuanto antes.
Iniciar Sesión Registrarme

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo Mensaje [Página 1 de 1.]

#1 [VX Ace]Batalla Lateral Plug&play el Lun Abr 23, 2012 11:08 pm

~Newa

avatar
-Cansado/a de tener que lidiar con esos molestos sistemas de batalla complejos, con Add-ons y modulos que parecen jeroglíficos?

-¿Buscas un sistema de batala alternativo sin logro alguno?

-¿Deseas que no se necesite de mucho trabajo?

-¿Quieres ser tan sexy como yo?

Ya ha llegado la solución (para lo de sexy no, cuando termine mi script Newa sexy engine Ace, lo posteo ^^)

SIDE VIEW BATTLE SYSTEM by Jet
Script: Batalla lateral
Modo:Plug&play
Autor:Jet

Imagen mía Ópalo Contento



-Karakteríztiqas:

    *Stand de caminata
    *Animacion previa a habilidad/magia
    *Módulo entendible
    *Cantidad de bugs = 0
    *Plug&play


Script:
Spoiler:

Deposítame 30 makedas y te envío el script vía MP >Ópalo Contento
Código:

#===============================================================================
# Side-View Battle System
# By Jet10985 (Jet)
#===============================================================================
# This script will allow you to have battle where all the actor's sprites are
# display on the right side of the screen.
# This script has: 10 customization options.
#===============================================================================
# Overwritten Methods:
# Scene_Battle: show_attack_animation
# Spriteset_Battle: update_actors
#-------------------------------------------------------------------------------
# Aliased methods:
# Spriteset_Battle: create_actors, create_enemies
# Sprite_Character: initialize, update, dispose, start_new_effect
# Scene_Battle: use_item, next_command, prior_command
# Game_Character: screen_x, screen_y
#===============================================================================

module Jet
  module Sideview
   
    #===========================================================================
    # ENEMY OPTIONS
    #===========================================================================
   
    # These are the attack animations for enemies when they use a regular attack.
    # It follows this format: enemy_id => animation_id
    ENEMY_ATK_ANIMS = {
   
    1 => 4,
    6 => 2,
    5 => 27
   
    }
   
    # This is the default enemy attack animation, used when they do not have a
    # specific attack animation above.
    ENEMY_ATK_ANIMS.default = 1
   
    # This is a list of enemies whose portraits should be flipped in battle.
    FLIPPED_ENEMIES = [2, 3, 4, 5, 8, 10, 12, 13, 14, 16, 17, 18, 19]
   
    #===========================================================================
    # ACTOR OPTIONS
    #===========================================================================
   
    # Should the player sprite have a shadow beneath them?
    PLAYER_SHADOW = true
   
    # These are sprite changes depending on state infliction.
    # It follows this format: state_id => "sprite_appention"
    # This means if the state is inflicted, the sprite will look for a graphic
    # that is the same name as the character's sprite, plus the appended option.
    # EX: Ralph's sprite's name is $ralph. Ralph gets knocked-out. This means
    # state 1 was inflicted, and my below config for 1 was: 1 => "_dead"
    # Now, his shown sprite will be $ralph_dead. If the sprite does not exist,
    # no change will be made.
    # The sprite index will be the same as the actor's.
    STATE_SPRITES = {
   
    1 => "_dead",
    2 => "_poison",
    3 => "_blind"
   
    }
   
    #===========================================================================
    # GENERAL_OPTIONS
    #===========================================================================
   
    # This is the animation displayed when a skill is about to be used.
    SKILL_ANIMATION = 43
   
    # This is the animation displayed when an item is about to be used.
    ITEM_ANIMATION = 43
   
    # These are the animations played when a state is inflicted.
    # It follows this format: state_id => animation_id
    STATE_ANIMATIONS = {
   
    1 => 56,
    2 => 50,
    3 => 51
   
    }
   
    #===========================================================================
    # FIELD OPTIONS
    #===========================================================================
   
    # This is where the line-up begins. [x, y]. The higher the x, the further
    # right and the higher the y the further down.
    FIELD_POS = [400, 230]
   
    # This is how far down, and to the right each player is from the previous
    # actor. [x, y]. Same rules as above.
    FIELD_SPACING = [12, 50]
   
  end
end

#===============================================================================
# DON'T EDIT FURTHER UNLESS YOU KNOW WHAT TO DO.
#===============================================================================

($imported ||= {})[:jet] ||= {}
$imported[:jet][:Sideview] = true

class Game_Character
 
  attr_accessor :step_anime
 
  %w[screen_x screen_y].each {|a|
    aStr = %Q{
      alias jet6372_#{a} #{a}
      def #{a}(*args, &block)
        $BTEST ? 0 : jet6372_#{a}(*args, &block)
      end
    }
    module_eval(aStr)
  }
end

class Game_Actor
 
  def animation_id=(t)
    self.battle_sprite.start_animation($data_animations[t]) rescue nil
  end
end

class Game_Battler
 
  def battle_sprite
    return nil unless SceneManager.scene_is?(Scene_Battle)
    SceneManager.scene.spriteset.battler_sprites.each {|a|
      return a if a.battler == self
    }
    return nil
  end
end

class Spriteset_Battle
 
  alias jet2847_create_enemies create_enemies
  def create_enemies(*args, &block)
    jet2847_create_enemies(*args, &block)
    @enemy_sprites.each {|a|
      a.mirror = Jet::Sideview::FLIPPED_ENEMIES.include?(a.battler.enemy.id)
    }
  end
 
  alias jet3835_create_actors create_actors
  def create_actors(*args, &block)
    jet3835_create_actors(*args, &block)
    @jet_party = $game_party.members
    @actor_sprites.each {|a|
      a.dispose
    }
    @actor_sprites = []
    $game_party.members.each {|a|
      f = Game_Character.new
      f.set_graphic(a.character_name, a.character_index)
      f.step_anime = true
      f.set_direction(4)
      n = Sprite_Character.new(@viewport1, f)
      n.jet_x = Jet::Sideview::FIELD_POS[0] + a.index * Jet::Sideview::FIELD_SPACING[0]
      n.jet_y = Jet::Sideview::FIELD_POS[1] + a.index * Jet::Sideview::FIELD_SPACING[1]
      n.battler = a
      n.battle_sprite = true
      if Jet::Sideview::PLAYER_SHADOW
        v = Sprite.new(nil)
        v.bitmap = Cache.system("Shadow")
        n.shadow_sprite = v
      end
      @actor_sprites.push(n)
    }
  end
 
  def update_actors
    if @jet_party != $game_party.members
      @actor_sprites.each {|a|
        a.dispose
      }
      @actor_sprites = []
      create_actors
    end
    @actor_sprites.each {|a| a.update }
  end
end

class Sprite_Character
 
  attr_accessor :battle_sprite, :jet_x, :jet_y, :shadow_sprite, :battler
 
  alias jet4646_initialize initialize
  def initialize(*args, &block)
    @battle_sprite = false
    jet4646_initialize(*args, &block)
  end
 
  alias jet3645_update update
  def update(*args, &block)
    jet3645_update(*args, &block)
    if @battle_sprite
      @character.step_anime = !@battler.dead?
      @character.update
      self.x = @jet_x
      self.y = @jet_y
      if !@battler.nil?
        f = @battler.states.dup
        f.sort! {|a, b|
          a.priority <=> b.priority
        }.reverse!
        for i in 0...f.size
          a = Jet::Sideview::STATE_SPRITES[f[i].id]
          next if a.nil?
          b = (Cache.character(@character.character_name + a) rescue false)
          next unless b
          index = @character.character_index
          @character.set_graphic(@character.character_name + a, index)
          break
        end
      end
      if !@shadow_sprite.nil?
        @shadow_sprite.x = self.x - @shadow_sprite.width / 2
        @shadow_sprite.y = self.y - 28
        @shadow_sprite.visible = self.visible
        @shadow_sprite.viewport = self.viewport
        @shadow_sprite.z = self.z - 1
      end
    end
  end
 
  alias jet5484_dispose dispose
  def dispose(*args, &block)
    @shadow_sprite.dispose if !@shadow_sprite.nil?
    jet5484_dispose(*args, &block)
  end
 
  def move_x(times, amount)
    i = 0
    until i == times
      self.jet_x += amount
      i += 1
      [Graphics, SceneManager.scene.spriteset].each {|a| a.update }
    end
  end
 
  def effect?
    false
  end
end

class Game_Enemy
 
  def atk_animation_id1
    return Jet::Sideview::ENEMY_ATK_ANIMS[@enemy_id]
  end
 
  def atk_animation_id2
    return 0
  end
end

class Scene_Battle
 
  attr_reader :spriteset
 
  alias jet2711_use_item use_item
  def use_item(*args, &block)
    if @subject.is_a?(Game_Actor)
      if !@subject.current_action.guard?
        @subject.battle_sprite.move_x(11, -6)
      end
    end
    if !@subject.current_action.guard? && !@subject.current_action.attack?
      if @subject.current_action.item.is_a?(RPG::Item)
        n = $data_animations[Jet::Sideview::ITEM_ANIMATION]
      else
        n = $data_animations[Jet::Sideview::SKILL_ANIMATION]
      end
      @subject.battle_sprite.start_animation(n)
      wait_for_animation
    end
    jet2711_use_item(*args, &block)
    if @subject.is_a?(Game_Actor)
      if !@subject.current_action.guard?
        @subject.battle_sprite.move_x(11, 6)
      end
    end
  end
 
  def show_attack_animation(targets)
    aid1 = @subject.atk_animation_id1
    aid2 = @subject.atk_animation_id2
    show_normal_animation(targets, aid1, false)
    show_normal_animation(targets, aid2, true)
  end
 
  %w[next prior].each {|a|
    aStr = %Q{
      alias jet3734_#{a}_command #{a}_command
      def #{a}_command(*args, &block)
        f = BattleManager.actor
        f.battle_sprite.move_x(6, 6) if f.is_a?(Game_Actor)
        jet3734_#{a}_command(*args, &block)
        f = BattleManager.actor
        f.battle_sprite.move_x(6, -6) if f.is_a?(Game_Actor)
      end
    }
    module_eval(aStr)
  }
end

class Game_Action
 
  def guard?
    item == $data_skills[subject.guard_skill_id]
  end
end

if $imported[:jet][:BattlePopUps]
  class Sprite_Character
   
    attr_accessor :popups
       
    alias jet4758_initialize initialize
    def initialize(*args, &block)
      @popups = []
      @updating_sprites = []
      @popup_wait = 0
      jet4758_initialize(*args, &block)
    end
       
    alias jet7467_update update
    def update(*args, &block)
      jet7467_update(*args, &block)
      if @popup_wait == 0
        if !@popups.empty?
          @updating_sprites.push(@popups.pop)
          @popup_wait = 30
        end
      else
        @popup_wait -= 1
      end
      @updating_sprites.each {|a|
        a.visible = true if !a.visible
        a.update
        @updating_sprites.delete(a) if a.disposed?
      }
    end
   
    alias jet5483_dispose dispose
    def dispose(*args, &block)
      (@updating_sprites + @popups).each {|a| a.dispose }
      jet5483_dispose(*args, &block)
    end
   
    alias jet3745_setup_new_effect setup_new_effect
    def setup_new_effect(*args, &block)
      jet3745_setup_new_effect(*args, &block)
      do_sprite_popups
    end
   
    def make_popup(text, color)
      @popups.unshift(Sprite_JetPopup.new(text.to_s, color, self))
    end
   
    def do_sprite_popups
      return if @battler.nil?
      if @battler_struct.nil?
        @battler_struct = Struct.new(:hp, :mp, :tp).new(0, 0, 0)
        @battler_struct.hp = @battler.hp
        @battler_struct.mp = @battler.mp
        @battler_struct.tp = @battler.tp
      end
      check_success_popup
      check_hp_popup
      check_mp_popup
      check_tp_popup
    end
   
    def check_success_popup
      if @battler.result.success
        if @battler.result.critical
          make_popup(Jet::BattlePopUps::CRITICAL_TEXT, Jet::BattlePopUps::CRITICAL_COLOR)
        elsif @battler.result.missed
          make_popup(Jet::BattlePopUps::MISSED_TEXT, Jet::BattlePopUps::MISS_COLOR)
        elsif @battler.result.evaded
          make_popup(Jet::BattlePopUps::EVADED_TEXT, Jet::BattlePopUps::EVADE_COLOR)
        end
        @battler.result.clear_hit_flags
      end
    end
   
    def check_hp_popup
      if @battler_struct.hp != @battler.hp
        f = @battler_struct.hp - @battler.hp
        if f > 0
          make_popup(Jet::BattlePopUps::HURT_TEXT + f.to_s, Jet::BattlePopUps::HURT_COLOR)
        elsif f < 0
          make_popup(Jet::BattlePopUps::HEAL_TEXT + f.abs.to_s, Jet::BattlePopUps::HEAL_COLOR)
        end
        @battler_struct.hp = @battler.hp
      end
    end
   
    def check_mp_popup
      if @battler_struct.mp != @battler.mp
        f = @battler_struct.mp - @battler.mp
        if f > 0
          make_popup(Jet::BattlePopUps::HURT_TEXT_MP + f.to_s, Jet::BattlePopUps::HURT_COLOR_MP)
        elsif f < 0
          make_popup(Jet::BattlePopUps::HEAL_TEXT_MP + f.abs.to_s, Jet::BattlePopUps::HEAL_COLOR_MP)
        end
        @battler_struct.mp = @battler.mp
      end
    end
   
    def check_tp_popup
      if @battler_struct.tp != @battler.tp
        f = (@battler_struct.tp - @battler.tp).round
        if f > 0
          make_popup(Jet::BattlePopUps::HURT_TEXT_TP + f.to_s, Jet::BattlePopUps::HURT_COLOR_TP)
        elsif f < 0
          make_popup(Jet::BattlePopUps::HEAL_TEXT_TP + f.abs.to_s, Jet::BattlePopUps::HEAL_COLOR_TP)
        end
        @battler_struct.tp = @battler.tp
      end
    end
  end
end

Cuídense, y si tienen algún problema... no me contacten por q se menos de scripting q un perro Ópalo Gato
Salu2
~Newa out

#2 Re: [VX Ace]Batalla Lateral Plug&play el Mar Abr 24, 2012 12:01 am

orochii

avatar
Spoiler:
Es broma :P.

Es un bonito sistema. Digo, si se quiere un sistema, normalmente es mejor que sea sencillo. Y si se quiere hacer un sistema, nada mejor que tener uno sencillo como base xD.

Buen aporte,
Orochii Zouveleki

#3 Re: [VX Ace]Batalla Lateral Plug&play el Jue Abr 26, 2012 12:27 am

~Newa

avatar
Orochii, tú ese perrito tuyo me caen rebien
Pues sí, si uno quiere un script para ser mas sexy una batalla lateral simple, es bueno tener algo compatible con aquellos q recién empiezan con el maker
Salu2 ^^

Espero mis makedas u.u

#4 Re: [VX Ace]Batalla Lateral Plug&play el Vie Mayo 25, 2012 2:01 pm

hamachi

avatar
Hola, estoy probando este estilo de batalla y me he encontrado con dos pequeños problemas.

1- El primero no es muy importante pero si se pudiera solucionar mejor: Al usar una habilidad para que el personaje en cuestión escape del combate (Similar a "Pirarse" de Zidane/Yitan en Final Fantasy IX) aparece el siguiente mensaje de error:




2- Y el problema importante con el que me he encontrado es al resucitar a un personaje que ha quedado K.O. durante el combate...
Este script incluye una opción para que cambie el sprite del personaje cuándo queda K.O. (Tambien para cuándo queda envenenado o cegado) , nombrando a este igual que el sprite del personaje pero añadiendo "_dead" al final.
Por ejemplo si el archivo del sprite del personaje se llama $Ralph, el sprite para cuándo queda K.O. sería $Ralph_dead.
Hasta aquí todo bien, cuándo el personaje pierde todos los puntos de vida en el transcurso del combate su sprite cambia, pero el problema es al resucitarle pues no vuelve a su sprite original y permanece con el sprite que hemos creado para cuando queda K.O. todo el combate...



En caso de no tener ningún sprite para cuándo un personaje queda K.O. permanece el sprite original pero de manera estática, sin movimiento, lo cual no queda muy bien, más bien parece bastante cutre pero bueno de no solucionar el problema anterior me temo que se quedará así la cosa..

A ver si alguien que esté usando este script o lo haya probado me puede echar una mano con estos problemillas ya que navegando por internet no he tenido suerte...

Un saludo!


Edit:
Pueden omitir este último mensaje ya que al no encontrar solución para estos dos problemas he decidido usar otro sistema de batalla (Ramiro's Battle Engine) y de momento me gusta más que este. (Aunque tambien es más complejo).

#5 Re: [VX Ace]Batalla Lateral Plug&play el Mar Jun 05, 2012 12:07 am

@Adolfo!

avatar
No me funciona D:

#6 Re: [VX Ace]Batalla Lateral Plug&play el Jue Nov 29, 2012 8:14 pm

llavebulacio

avatar
Como lo pongo en el juego???

#7 Re: [VX Ace]Batalla Lateral Plug&play el Sáb Dic 01, 2012 11:01 pm

orochii

avatar
En teoría para meterlo en tu juego, es cuestión de copiar el script, abrir el editor de scripts (F11), crear una nueva "página"/"entrada"/loquesea (situarse sobre Main u otro script y presionar Insert), y pegar el script dentro de dicha nueva página/entrada/loquesea.

Ya con eso funcionaría, y sino prueba copiando la carpeta de Graphics a la carpeta de tu proyecto si trae, o viendo si hay alguna cosa en la base de datos de la demo (si es que tiene) que se vea "extravagante" :B.

En fin, salut,
Orochii Zouveleki

#8 Re: [VX Ace]Batalla Lateral Plug&play el Miér Dic 05, 2012 8:58 pm

llavebulacio

avatar
Lo hice funcionar, es perfecto. Pero solo me quedan dos preguntas.

1. El Sistema se ve diferente al de la imagen (Por ejemplo, las Faces de los personajes no aparecen) ¿Como se hace para que se vea como en la imagen?
2.¿Hay alguna manera para que, en vez de charas, se vean los típicos battlers?

En especial con la segunda, si me ayudas sos el rey de los scripts.

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

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