Sign in to follow this  
Followers 0
Arkano

Sistema de batalla de cybersam

10 posts in this topic

pz est es el sistma d batalla d cybersam,q no lo he visto en esta web dry.gif
kreen 1 nueva clase arriba de main q c iame [B]Amimated_Sprite
CODE

#========
# * Animated_Sprite                                Scripted por: RPG
#                                                  Editado por: cybersam
#                                                  Traducido por: Sandor
# he quitado los complemento que no necesitaba para mi juego (cybersam)...
# todo lo demás es de RPG... (aquí)
#
#------
#  Esta es la classe para los sprites animados.
#========

class Animated_Sprite < RPG::Sprite
#------
# - Definiendo las variables accesibles.
#------
attr_accessor :frames        # Número de frames para la animación
attr_accessor :delay         # Tiempo de espera entre frames (velocidad)
attr_accessor :frame_width   # Anchura de cada frame
attr_accessor :frame_height  # Altura de cada frame
attr_accessor :offset_x      # Cordenada X del 1er frame
attr_accessor :offset_y      # Cordenada Y para todos los frames
attr_accessor :current_frame # Frame por defecto
attr_accessor :moving        # Se esta moviendo el sprite?

#------
# - Iniciando la animación del sprite
#   ver puerto : Sprite viewport
#------
def initialize(viewport = nil)
super(viewport)
@frame_width, @frame_height = 0, 0
change    # Cambio básico para marcar las variables iniciales
@old = Graphics.frame_count  # Para el método de espera
@goingup = true    # Incrementar animación? (si el @rm2k_mode es true)
@once = false      # Si solo la animación está siendo utilizada?
@animated = true   # Usado para parar la animación si @once está en true
end

#------
# Comentario por RPG
#   - Cambios en la animación...
#   frames : Número de frames que contiene la animación
#   delay : Tiempo de espera entre frames, es la velocidad de animación
#   offx : Cordenada X del frame 1
#   offy : Cordenada Y de todos los frames
#   startf : Comenzando frame para la animación
#   once : Solo se está utilizando la animación?
#   rm2k_mode : Patrón de la animación: 1-2-3-2 si es true, 1-2-3-1 si es false
#
# Comentario por Cybersam
#
# el rm2k_mode no se volverá a utilizar...
# si quieres esta opcion usa el script de 2k o el script original de RPG...
#------
def change(frames = 0, delay = 0, offx = 0, offy = 0,
        startf = 0, once = false)
@frames = frames
@delay = delay
@offset_x, @offset_y = offx, offy
@current_frame = startf
@once = once
x = @current_frame * @frame_width + @offset_x
self.src_rect = Rect.new(x, @offset_y, @frame_width, @frame_height)
@goingup = true
@animated = true
end

#------
# - Actualizando animación y movimiento
#------
def update
super
if self.bitmap != nil and delay(@delay) and @animated
 x = @current_frame * @frame_width + @offset_x
 self.src_rect = Rect.new(x, @offset_y, @frame_width, @frame_height)
   @current_frame = (@current_frame + 1) unless @frames == 0
   @animated = false if @current_frame == @frames and @once
   @current_frame %= @frames
end
end

#------
# - Mover el sprite
#   x : Cordenada X para el punto de destino
#   y : Cordenada Y para el punto de destino
#   speed : Velocidad de movimiento (0 = pausado, 1+ = más rápido)
#   delay : El movimietno decrece si está en 0
#------
def move(x, y, speed = 1, delay = 0)
@destx = x
@desty = y
@move_speed = speed
@move_delay = delay
@move_old = Graphics.frame_count
@moving = true
end

#------
# - Mover el sprite al destx y al desty
#------
def update_move
return unless @moving
movinc = @move_speed == 0 ? 1 : @move_speed
if Graphics.frame_count - @move_old > @move_delay or @move_speed != 0
 self.x += movinc if self.x < @destx
 self.x -= movinc if self.x > @destx
 self.y += movinc if self.y < @desty
 self.y -= movinc if self.y > @desty
 @move_old = Graphics.frame_count
end
if @move_speed > 1  # Check if sprite can't reach that point
 self.x = @destx if (@destx - self.x).abs % @move_speed != 0 and
                    (@destx - self.x).abs <= @move_speed
 self.y = @desty if (@desty - self.y).abs % @move_speed != 0 and
                    (@desty - self.y).abs <= @move_speed
end
if self.x == @destx and self.y == @desty
 @moving = false
end
end

#------
# - Pausar la animación, pero sigue actualizandose
#   frames : Número de frames
#------
def delay(frames)
update_move
if (Graphics.frame_count - @old >= frames)
 @old = Graphics.frame_count
 return true
end
return false
end
end

kreen otra clase encima de main y iamenla kmo keran...
CODE

#======
#
#   Animación completa en sistema de batalla lateral (CBS) (v2.5)   por cybersam
#
#======

# bien... aquí... es desde dónde yo estoi usando el script de RPG...
# hay muchos cambios...
#
# si miras detenidamente el script observarás una línea que pone "pose(n)" #o "enemy_pose(n)"
# eso pasa porque busqué la forma de que mis sprites fueran distintos...
# por eso he añadido una opción más...a esto...
# ahora si tu añades un número después de n (la n indica a que animación #corresponde)
# por ejemplo 8... ("pose(4, 8)") esto indicaría que corresponde a la 4ª animación
# y que tiene 8 frames...
# "pose" es usado por el jugador... y "enemy_pose" por el enemigo...
# no es nada más que esto...
# aquí va una breve explicación sobre la animación de los sprites... (los números)
#
#
# 0 = moverse (durante la batalla)
# 1 = quedarse quieto
# 2 = defender
# 3 = comenzar ataque
# 4 = atacar
# 5 = usar habilidad
# 6 = muerto
# 7 = pose de victoria..idea de RPG...
#
#
# por supuesto esto es tan solo el principio del script...
# eso quiere decir que se pueden añadir muchas más animaciónes...
# pero ahora por ahora no es posible...
#
# muchas cosas han cambiado...y puede dar la sensación de que todo ya esta #hecho...
# pero por supuesto para que todo quede bien hecho y a tu gusto, debes ser tu
# el que lo edite a su parecer...
# el juego también...
#======




class Game_Actor < Game_Battler

# no necesitas cambiar tu game_actor para ver al chara...
# de lado...
# esto a sido echo para ti... ^-^

def screen_x
if self.index != nil
return self.index * 40 + 460
else
return 0
end
end

def screen_y
return self.index * 20 + 220
end

def screen_z
if self.index != nil
return self.index
else
return 0
end
end
end


class Spriteset_Battle
#Parte de RPG...
attr_accessor :actor_sprites
attr_accessor :enemy_sprites
# acaba aqui... ^-^

def initialize
@viewport0 = Viewport.new(0, 0, 640, 480)
@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

@battleback_sprite = Sprite.new(@viewport0)
# esto sirve para reservarse un enemigo y que no ataque al que tu no has #escojido...
# esto ya fue hecho hace tiempo, ahora he añadido el comentario
# eso ya lo sabíais... ^-^''
@enemy_sprites = []
for enemy in $game_troop.enemies#.reserva
@enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
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(@viewport0)
@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
for sprite in @enemy_sprites + @actor_sprites
sprite.dispose
end
@weather.dispose
for sprite in @picture_sprites
sprite.dispose
end
@timer_sprite.dispose
@viewport0.dispose
@viewport1.dispose
@viewport2.dispose
@viewport3.dispose
@viewport4.dispose
end

alias original_update update
def update
original_update

# esto hace que el personaje activo este presente... (por Missy)
@viewport1.z = 50 and @viewport2.z = 51 if $actor_on_top == true
@viewport1.z = 51 and @viewport2.z = 50 if $actor_on_top == false


@viewport0.tone = $game_screen.tone
@viewport0.ox = $game_screen.shake

@viewport0.update

end
end

#========
# Sprite Battler for the Costum Battle System
#========

class Sprite_Battler < Animated_Sprite

attr_accessor :battler
attr_reader   :index
attr_accessor :target_index
attr_accessor :frame_width


def initialize(viewport, battler = nil)
super(viewport)
@battler = battler
@pattern_b = 0 #
@counter_b = 0 #
@index = 0     #

# esto es para la animación del estado...
# NO LO CAMBIES escepto que sepas lo que haces!...
$noanimation = false

@frame_width, @frame_height = 64, 64
# comienzo del sprite
@battler.is_a?(Game_Enemy) ? enemy_pose(1) : pose(1)

@battler_visible = false
if $target_index == nil
$target_index = 0
end
end

def index=(index) #
@index = index  #
update          #
end               #

def dispose
if self.bitmap != nil
self.bitmap.dispose
end
super
end

def enemy                                             #
$target_index += $game_troop.enemies.size
$target_index %= $game_troop.enemies.size
return $game_troop.enemies[$target_index]           #
end                                                   #

def actor                                             #
$target_index += $game_party.actors.size
$target_index %= $game_party.actors.size
return $game_party.actors[$target_index]            #
end          

#========
# aquí puedes agregar más poses para el chara..si es que tienes... ^-^
#========
def pose(number, frames = 4)
case number
when 0  # correr
change(frames, 5, 0, 0, 0)
when 1  # esperando
change(frames, 5, 0, @frame_height)
when 2 # defendiendo
change(frames, 5, 0, @frame_height * 2)
when 3 # herido
change(frames, 5, 0, @frame_height * 3)
when 4 # atacar
change(frames, 5, 0, @frame_height * 4, 0, true)
when 5 # habilidad
change(frames, 5, 0, @frame_height * 5)
when 6 # muerto
change(frames, 5, 0, @frame_height * 6)
when 7 # victória
change(frames, 5, 0, @frame_height * 7)
#when 8
# change(frames, 5, 0, @frame_height * 9)
# ...etc.
else
change(frames, 5, 0, 0, 0)
end
end

#------
# - Aquí van las poses de los enemigos
#   number : indica el número de la pose
#------
def enemy_pose(number ,enemy_frames = 4)
case number
when 0  # correr
change(enemy_frames, 5, 0, 0, 0)
when 1  # esperar
change(enemy_frames, 5, 0, @frame_height)
when 2 # defender
change(enemy_frames, 5, 0, @frame_height * 2)
when 3 # Herido
change(enemy_frames, 5, 0, @frame_height * 3)
when 4 # Atacar
change(enemy_frames, 5, 0, @frame_height * 4, 0, true)
when 5 # habilidad
change(enemy_frames, 5, 0, @frame_height * 5)
when 6 # muerto
change(enemy_frames, 5, 0, @frame_height * 6)
when 7 # victória
change(enemy_frames, 5, 0, @frame_height * 7)
# ...etc.
else
change(enemy_frames, 5, 0, 0, 0)
end
end

def default_pose
pose(1)

# aquí se cambian las poses según el estado del personaje
# no lo pongas por encima de 75 % del maximo hp

# si HP es muy bajo (- 25%)
if (@battler.hp * 100) /@battler.maxhp  < 25
pose(9)
# si HP es muy bajo (- 50%)
elsif (@battler.hp * 100) /@battler.maxhp  < 50
pose(9)
# si HP es muy bajo (- 75%)
elsif (@battler.hp * 100) /@battler.maxhp  < 75
pose(9)
end


# aquí se cambian las poses si el personaje es inflinjido por
# venenos o otro tipo de cosas como dormido, paralizado, confuso,etc...
# solo he añadido envenenado y dormido, puedes agregar más ^^...
if @battler.state?(3) # envenenado
# el (3) indica el número del estado, en la BD 3 es envenenado...
# (no tengo muchos sprites por lo tanto he utilizado la pose 2, que es defender)
# si tienes más sprites para estados, añadelos en poses y luego define a...
#que estado pertenece..., pose (2) indíca que el sprite será el de defender
pose(2)
elsif @battler.state?(7) #dormido
# cambiar pose por muerto
pose(6)
end
end
#========
# Fin de las poses...
#========  


def update
super

if @battler == nil                                                      
self.bitmap = nil                                                    
loop_animation(nil)                                                  
return                                                                
end

if @battler.battler_name != @battler_name
@battler.battler_hue != @battler_hue

@battler_hue = @battler.battler_hue
@battler_name = @battler.battler_name
self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
@width = bitmap.width
@height = bitmap.height
self.ox = @frame_width / 2
self.oy = @frame_height

if @battler.dead? or @battler.hidden
 self.opacity = 0
end
self.x = @battler.screen_x
self.y = @battler.screen_y
self.z = @battler.screen_z
end

if $noanimation == false
if @battler.damage == nil and
  @battler.state_animation_id != @state_animation_id
 @state_animation_id = @battler.state_animation_id
 loop_animation($data_animations[@state_animation_id])
end
else
dispose_loop_animation
end


if @battler.is_a?(Game_Actor) and @battler_visible
if $game_temp.battle_main_phase
 self.opacity += 3 if self.opacity < 255
else
 self.opacity -= 3 if self.opacity > 207
end
end

if @battler.blink
blink_on
else
blink_off
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
if not @battler.hidden and
  (@battler.damage == nil or @battler.damage_pop) and
  @battler.is_a?(Game_Actor)
 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.white_flash
 whiten
 @battler.white_flash = false
end
if @battler.animation_id != 0
 animation = $data_animations[@battler.animation_id]
 animation(animation, @battler.animation_hit)
 @battler.animation_id = 0
end
if @battler.damage_pop
 damage(@battler.damage, @battler.critical)
 @battler.damage = nil
 @battler.critical = false
 @battler.damage_pop = false
end
if @battler.damage == nil and @battler.dead?
 if @battler.is_a?(Game_Enemy)
   $game_system.se_play($data_system.enemy_collapse_se)
   collapse
   @battler_visible = false
 else
   $game_system.se_play($data_system.actor_collapse_se) unless @dead
   @dead = true
   pose(6)
 end
else
 @dead = false
end
end                                                                #
end
end


#========
# Scene_Battle personalizado...
#========

class Scene_Battle


def update_phase4
case @phase4_step
when 1
update_phase4_step1
when 2
update_phase4_step2
when 3
update_phase4_step3
when 4
update_phase4_step4
when 5
update_phase4_step5
when 6
update_phase4_step6
when 7
update_phase4_step7
end
end


def update_phase4_step1

# Cambia las poses del actor por las default
#if @active_battler.is_a?(Game_Actor)
#  @spriteset.actor_sprites[@active_battler.index].default_pose

#end
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
@spriteset.actor_sprites[i].default_pose unless actor.dead?
end

@help_window.visible = false
if judge
return
end
if $game_temp.forcing_battler == nil
setup_battle_event
if $game_system.battle_interpreter.running?
 return
end
end
if $game_temp.forcing_battler != nil
@action_battlers.delete($game_temp.forcing_battler)
@action_battlers.unshift($game_temp.forcing_battler)
end
if @action_battlers.size == 0
start_phase2
return
end
@animation1_id = 0
@animation2_id = 0
@common_event_id = 0
@active_battler = @action_battlers.shift
if @active_battler.index == nil
return
end
if @active_battler.hp > 0 and @active_battler.slip_damage?
@active_battler.slip_damage_effect
@active_battler.damage_pop = true
end
@active_battler.remove_states_auto
@status_window.refresh
@phase4_step = 2
end


def make_basic_action_result

if @active_battler.is_a?(Game_Actor)
$actor_on_top = true
elsif @active_battler.is_a?(Game_Enemy)
$actor_on_top = false
end

if @active_battler.current_action.basic == 0
#======
# WEAPONS START...
#======
#
#=== Armas distintas con animaciones distintas
#
# si quieres utilizar más... remplaza el "@weapon_sprite_enemy = 4"
# con estas líneas... (pero deberás editarlas)
#
#        if @active_battler.weapon_id == 1 # <--  número ID del arma
#          @weapon_sprite_enemy = 4 # <-- animación de batalla
#        elsif @active_battler.weapon_id == 5 # <-- número ID del arma
#          @weapon_sprite_enemy = 2 # <-- animación de batalla
#        elsif @active_battler.weapon_id == 9 # <-- número ID del arma
#          @weapon_sprite_enemy = 0 # <-- animación de batalla
#        elsif @active_battler.weapon_id == 13 # <-- número ID del arma
#          @weapon_sprite_enemy = 6 # <-- animación de batalla
#        else
#          @weapon_sprite_enemy = 4
#        end
#
#=== FIN

if @active_battler.is_a?(Game_Actor)
 if @active_battler.weapon_id == 1 # <--  número ID del arma
   @weapon_sprite = 4 # <-- animación de batalla
 elsif @active_battler.weapon_id == 5 # <-- número ID del arma
   @weapon_sprite = 2 # <-- animación de batalla
 elsif @active_battler.weapon_id == 9 # <-- número ID del arma
   @weapon_sprite = 0 # <-- animación de batalla
 elsif @active_battler.weapon_id == 13 # <-- número ID del arma
   @weapon_sprite = 6 # <-- animación de batalla
 else
   @weapon_sprite = 4
 end

# la sección de monstruos esta aquí... ^-^

else# @active_battler.is_a?(Game_Enemy)
   @weapon_sprite_enemy = 4
end

#
#=======
# LAS ARMAS FINALIZAN....
#=======


@animation1_id = @active_battler.animation1_id
@animation2_id = @active_battler.animation2_id
if @active_battler.is_a?(Game_Enemy)
 if @active_battler.restriction == 3
   target = $game_troop.random_target_enemy
 elsif @active_battler.restriction == 2
   target = $game_party.random_target_actor
 else
   index = @active_battler.current_action.target_index
   target = $game_party.smooth_target_actor(index)
 end
#===== aquí están las propiedades del movimiento y la animación...
   x = target.screen_x - 32
   @spriteset.enemy_sprites[@active_battler.index].enemy_pose(0)
   @spriteset.enemy_sprites[@active_battler.index]\
   .move(x, target.screen_y, 10)
#=== el 10 indíca la velocidad de movimietno...
end
if @active_battler.is_a?(Game_Actor)
 if @active_battler.restriction == 3
   target = $game_party.random_target_actor
 elsif @active_battler.restriction == 2
   target = $game_troop.random_target_enemy
 else
   index = @active_battler.current_action.target_index
   target = $game_troop.smooth_target_enemy(index)
 end
#==== lo mismo para el jugador... ^-^
 x = target.screen_x + 32
 @spriteset.actor_sprites[@active_battler.index].pose(0)
 @spriteset.actor_sprites[@active_battler.index]\
 .move(x, target.screen_y, 10)
end
@target_battlers = [target]
for target in @target_battlers
 target.attack_effect(@active_battler)
end
return
end
if @active_battler.current_action.basic == 1
if @active_battler.is_a?(Game_Actor)
 @spriteset.actor_sprites[@active_battler.index].pose(2) #defence
else
 @spriteset.enemy_sprites[@active_battler.index].enemy_pose(2) #defence
end
@help_window.set_text($data_system.words.guard, 1)
return
end
if @active_battler.is_a?(Game_Enemy) and
@active_battler.current_action.basic == 2
@help_window.set_text("Escapar", 1)
@active_battler.escape
return
end
if @active_battler.current_action.basic == 3
$game_temp.forcing_battler = nil
@phase4_step = 1
return
end

if @active_battler.current_action.basic == 4
if $game_temp.battle_can_escape == false
 $game_system.se_play($data_system.buzzer_se)
 return
end
$game_system.se_play($data_system.decision_se)
update_phase2_escape
return
end
end
#------
# acciones de las habilidades...
#------
def make_skill_action_result

@skill = $data_skills[@active_battler.current_action.skill_id]
unless @active_battler.current_action.forcing
unless @active_battler.skill_can_use?(@skill.id)
 $game_temp.forcing_battler = nil
 @phase4_step = 1
 return
end
end
@active_battler.sp -= @skill.sp_cost
@status_window.refresh
@help_window.set_text(@skill.name, 1)

#=======
# COMIENZAN LOS SPRITES DE LAS HABILIDADES
#=======

if @active_battler.is_a?(Game_Actor)
if @skill.name == "Heal" # <-- nombre de la primera habilidad
 @spriteset.actor_sprites[@active_battler.index].pose(5) # <-- número de sprite
elsif @skill.name == "Cross Cut" # <-- nombre de la segunda habilidad
 @spriteset.actor_sprites[@active_battler.index].pose(6) # <-- sprite number
elsif @skill.name == "Fire" # <-- nombre de la tercera habilidad
 @spriteset.actor_sprites[@active_battler.index].pose(6) # <-- sprite number
end
else
if @skill.name == "Heal" # <-- nombre de la primera habilidad
 @spriteset.enemy_sprites[@active_battler.index].enemy_pose(5) # <-- número de sprite
elsif @skill.name == "Cross Cut" # <-- nombre de la segunda habilidad
 @spriteset.enemy_sprites[@active_battler.index].enemy_pose(6) # <-- número de sprite
elsif @skill.name == "Fire" # <-- nombre de la tercera habilidad
 @spriteset.enemy_sprites[@active_battler.index].enemy_pose(6) # <-- número de sprite
end
end
#=======
# FINALIZAN LOS SPRITES DE LAS HABILIDADES
#=======

@animation1_id = @skill.animation1_id
@animation2_id = @skill.animation2_id
@common_event_id = @skill.common_event_id
set_target_battlers(@skill.scope)
for target in @target_battlers
target.skill_effect(@active_battler, @skill)
end
end
#------
# aquícreamos el uso de las habilidades
#------
def make_item_action_result

if @active_battler.is_a?(Game_Actor)
@spriteset.actor_sprites[@active_battler.index].pose(1)
else
@spriteset.enemy_sprites[@active_battler.index].enemy_pose(1)
end

@item = $data_items[@active_battler.current_action.item_id]
unless $game_party.item_can_use?(@item.id)
@phase4_step = 1
return
end
if @item.consumable
$game_party.lose_item(@item.id, 1)
end
@help_window.set_text(@item.name, 1)
@animation1_id = @item.animation1_id
@animation2_id = @item.animation2_id
@common_event_id = @item.common_event_id
index = @active_battler.current_action.target_index
target = $game_party.smooth_target_actor(index)
set_target_battlers(@item.scope)
for target in @target_battlers
target.item_effect(@item)
end
end

#========
# here again.... snipplet from RPG's script
#========


def start_phase5
@phase = 5
$game_system.me_play($game_system.battle_end_me)
$game_system.bgm_play($game_temp.map_bgm)
exp = 0
gold = 0
treasures = []
for enemy in $game_troop.enemies
unless enemy.hidden
 exp += enemy.exp
 gold += enemy.gold
 if rand(100) < enemy.treasure_prob
   if enemy.item_id > 0
     treasures.push($data_items[enemy.item_id])
   end
   if enemy.weapon_id > 0
     treasures.push($data_weapons[enemy.weapon_id])
   end
   if enemy.armor_id > 0
     treasures.push($data_armors[enemy.armor_id])
   end
 end
end
end
treasures = treasures[0..5]
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
$noanimation = true
@spriteset.actor_sprites[i].pose(7) unless actor.dead? # {=====}
if actor.cant_get_exp? == false
 last_level = actor.level
 actor.exp += exp
 if actor.level > last_level
   @status_window.level_up(i)
 end
end
end
$game_party.gain_gold(gold)
for item in treasures
case item
when RPG::Item
 $game_party.gain_item(item.id, 1)
when RPG::Weapon
 $game_party.gain_weapon(item.id, 1)
when RPG::Armor
 $game_party.gain_armor(item.id, 1)
end
end
@result_window = Window_BattleResult.new(exp, gold, treasures)
@phase5_wait_count = 100
end
#   =*****=

#------
# actualizando el movimiento
#------
def update_phase4_step3
if @active_battler.current_action.kind == 0 and
@active_battler.current_action.basic == 0
# aquí tenemos todas las animaciones de armas del jugador y enemigo...
if @active_battler.is_a?(Game_Actor)
 @spriteset.actor_sprites[@active_battler.index].pose(@weapon_sprite)
elsif @active_battler.is_a?(Game_Enemy)
 @spriteset.enemy_sprites[@active_battler.index].enemy_pose(@weapon_sprite_enemy)
end
end
if @animation1_id == 0
@active_battler.white_flash = true
else
@active_battler.animation_id = @animation1_id
@active_battler.animation_hit = true
end
@phase4_step = 4
end

def update_phase4_step4
# esto es para la animación del golpe...
for target in @target_battlers
if target.is_a?(Game_Actor) and !@active_battler.is_a?(Game_Actor)
 if target.guarding?
   @spriteset.actor_sprites[target.index].pose(2)
 else
   @spriteset.actor_sprites[target.index].pose(3)
 end
 elsif target.is_a?(Game_Enemy) and !@active_battler.is_a?(Game_Enemy)
 if target.guarding?
   @spriteset.enemy_sprites[target.index].enemy_pose(2)
 else
   @spriteset.enemy_sprites[target.index].enemy_pose(3)
 end
end
target.animation_id = @animation2_id
target.animation_hit = (target.damage != "Miss")
end
@wait_count = 8
@phase4_step = 5
end

def update_phase4_step5
if @active_battler.hp > 0 and @active_battler.slip_damage?
@active_battler.slip_damage_effect
@active_battler.damage_pop = true
end

@help_window.visible = false
@status_window.refresh

if @active_battler.is_a?(Game_Actor)
@spriteset.actor_sprites[@active_battler.index].pose(1)
else
@spriteset.enemy_sprites[@active_battler.index].enemy_pose(1)
end
for target in @target_battlers
if target.damage != nil
 target.damage_pop = true
 if @active_battler.is_a?(Game_Actor)
   @spriteset.actor_sprites[@active_battler.index].pose(1)
 else
   @spriteset.enemy_sprites[@active_battler.index].enemy_pose(1)
 end
end
end
@phase4_step = 6
end
#------
# ? ?????? (??????? ???? 6 : ??????)
#------
def update_phase4_step6

# aquí preguntamos si el personaje esta muerto, y si es jugador o enemigo...
# estas líneas son para correr hacía detrás o quedarse en espera....
if @active_battler.is_a?(Game_Actor) and !@active_battler.dead?
@spriteset.actor_sprites[@active_battler.index]\
.move(@active_battler.screen_x, @active_battler.screen_y, 20)
@spriteset.actor_sprites[@active_battler.index].pose(0)
elsif !@active_battler.dead?
@spriteset.enemy_sprites[@active_battler.index]\
.move(@active_battler.screen_x, @active_battler.screen_y, 20)
@spriteset.enemy_sprites[@active_battler.index].enemy_pose(0)
end
for target in @target_battlers
if target.is_a?(Game_Actor) and !target.dead?
   @spriteset.actor_sprites[target.index].pose(1)
 elsif !target.dead?
   @spriteset.enemy_sprites[target.index].enemy_pose(1)
end
end
$game_temp.forcing_battler = nil
if @common_event_id > 0
common_event = $data_common_events[@common_event_id]
$game_system.battle_interpreter.setup(common_event.list, 0)
end
@phase4_step = 7
end

def update_phase4_step7

# aquí preguntamos si el personaje esta muerto, y si es jugador o enemigo...
# estas líneas son para correr hacía detrás o quedarse en espera....
if @active_battler.is_a?(Game_Actor) and !@active_battler.dead?
@spriteset.actor_sprites[@active_battler.index].pose(1)
elsif !@active_battler.dead?
@spriteset.enemy_sprites[@active_battler.index].enemy_pose(1)
end

$game_temp.forcing_battler = nil
if @common_event_id > 0
common_event = $data_common_events[@common_event_id]
$game_system.battle_interpreter.setup(common_event.list, 0)
end
@phase4_step = 1
end

# esto ya es un extra... sin esta línea la animación no funcionará correctamente...

def update
if $game_system.battle_interpreter.running?
$game_system.battle_interpreter.update
if $game_temp.forcing_battler == nil
 unless $game_system.battle_interpreter.running?
   unless judge
     setup_battle_event
   end
 end
 if @phase != 5
   @status_window.refresh
 end
end
end
$game_system.update
$game_screen.update
if $game_system.timer_working and $game_system.timer == 0
$game_temp.battle_abort = true
end
@help_window.update
@party_command_window.update
@actor_command_window.update
@status_window.update
@message_window.update
@spriteset.update
if $game_temp.transition_processing
$game_temp.transition_processing = false
if $game_temp.transition_name == ""
 Graphics.transition(20)
else
 Graphics.transition(40, "Graphics/Transitions/" +
   $game_temp.transition_name)
end
end
if $game_temp.message_window_showing
return
end
if @spriteset.effect?
return
end
if $game_temp.gameover
$scene = Scene_Gameover.new
return
end
if $game_temp.to_title
$scene = Scene_Title.new
return
end
if $game_temp.battle_abort
$game_system.bgm_play($game_temp.map_bgm)
battle_end(1)
return
end
if @wait_count > 0
@wait_count -= 1
return
end

# esta parte bloquea las acciones cúando el personaje se mueve
for actor in @spriteset.actor_sprites
if actor.moving
 return
end
end
# y esta es para el enemigo...
for enemy in @spriteset.enemy_sprites
if enemy.moving# and $game_system.animated_enemy
 return
end
end

if $game_temp.forcing_battler == nil and
$game_system.battle_interpreter.running?
return
end
case @phase
when 1
update_phase1
when 2
update_phase2
when 3
update_phase3
when 4
update_phase4
when 5
update_phase5
end
end

#========
# Creado por: RPG
# Modificado por: Cybersam
# Traducido por: Sandor
# Web's de interés: http://www.rmxp.net
#                   http://www.rpgsystem.net
#========
end

ese cría el script...espro q les sirva y q no haia hecho necroposting XD
0

Share this post


Link to post
Share on other sites
pz últimament he tenido 1s problemillas cn mi pc.... cheesy.gif pero apenas esté buena,les pongo las screens,lo úniko q digo es q este sistma es MUY exelent......
saludosssss
xao
0

Share this post


Link to post
Share on other sites
En el foro de recursos colgué los battler de este sistema, sobre unos 200 y pico, la mayoria del RO happy.gif
0

Share this post


Link to post
Share on other sites
che, en donde estan los battlers? osea si pueden pasarme el link asi veo como es el sistema que sin batllers no veo naa
edit:
http://vz4.net/foro/index.php?showtopic=1575 ahi ta el link, sory por joder ojomorado.gif llorar.gif Edited by Eneaz
0

Share this post


Link to post
Share on other sites
Oie amigo, pasa algo raro, resulta ke lo corro en mi proyecto, pero los graficos de battler no se ven bien, se ven entrecortados y no se kedan fijos, ke puede ser???
0

Share this post


Link to post
Share on other sites
Que necesita unos graficos especiales y como no los tienes pues se te ven así xD
Simplemente consiguete unos.

HAsta otra.
0

Share this post


Link to post
Share on other sites
tengo 2 dudas l
1) cuando pongo los 2 scripts encima del main me aparece el sistema de batalla predeterminado del RPG maker. que sera
2) en donde debo poner los graficos
0

Share this post


Link to post
Share on other sites
QUOTE(daias @ Jan 22 2007, 07:16 PM)
tengo 2 dudas l
1) cuando pongo los 2 scripts encima del main me aparece el sistema de batalla predeterminado del RPG maker. que sera
2) en donde debo poner los graficos
[right][snapback]26855[/snapback][/right]


1) no sé, pero puede ser que te hayas equivocado al escribir el nombre de un de los 2 scripts
2) los gráficos se importan a la carpeta "Battlers"
0

Share this post


Link to post
Share on other sites
El primero va sobre main y el segundo sobre main y debajo del otro

happy.gif espero que te sirva saludos!
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0