barlogh
-
Posts
2 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Posts posted by barlogh
-
-
Descrizione
ecco uno script per realizzare un bs laterale da usare con i battler del 2k3
autore
editato per cybersam
tradotto per Sandor
Istruzioni per l'uso
prima di tutto create una classe sopra main, chiamatela Animated_Sprite e inserite:# * 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â³ 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ò¥²o de frames para la animació®Š 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ó® ¤el sprite # ver puerto : Sprite viewport #------ def initialize(viewport = nil) super(viewport) @frame_width, @frame_height = 0, 0 change # Cambio bâ´©co para marcar las variables iniciales @old = Graphics.frame_count # Para el m굯do de espera @goingup = true # Incrementar animació®¿ (si el @rm2k_mode es true) @once = false # Si solo la animació® ¥stᡳiendo utilizada? @animated = true # Usado para parar la animació® ³i @once está¡¥n true end #------ # Comentario por RPG # - Cambios en la animació®®®. # frames : Nò¥²o de frames que contiene la animació®Š # delay : Tiempo de espera entre frames, es la velocidad de animació®Š # offx : Cordenada X del frame 1 # offy : Cordenada Y de todos los frames # startf : Comenzando frame para la animació®Š # once : Solo se estᡵtilizando la animació®¿ # rm2k_mode : Patró® ¤e la animació®º 1-2-3-2 si es true, 1-2-3-1 si es false # # Comentario por Cybersam # # el rm2k_mode no se volverá¡¡ 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ó® ¹ 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â³ rⱩdo) # delay : El movimietno decrece si está¡¥n 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ó®¬ pero sigue actualizandose # frames : Nò¥²o de frames #------ def delay(frames) update_move if (Graphics.frame_count - @old >= frames) @old = Graphics.frame_count return true end return false end end
dopo create un altra classe, chiamatela Battle_Animation e inserite#================================================================================ # # 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 = 48, 48 # 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 = 3) case number when 0 # Magia change(frames, 5, 0, @frame_height * 6) when 1 # Para change(frames, 5, 0, @frame_height* 10) when 2 # Colpito change(frames, 5, 0, @frame_height ) when 3 # Morto change(frames, 5, 0, @frame_height * 2) when 4 # Status change(frames, 5, 0, @frame_height * 9, 0, true) when 5 # Vince change(frames, 5, 0, 0) when 6 # Corre change(frames, 5, 0, @frame_height * 3) when 7 # Corre change(frames, 5, 0, @frame_height * 5) when 8 # Pugno change(frames, 5, 0, @frame_height * 8) when 9 # Pugno change(frames, 5, 0, @frame_height * 9) when 10 # Vince 2 change(frames, 5, 0, @frame_height * 10) #when 8 # change(frames, 5, 0, @frame_height * 9) # ...etc. else change(frames, 5, 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 = 3) case number when 0 # correr change(enemy_frames, 5, 0, @frame_height * 6) when 1 # esperar change(enemy_frames, 5, 0, @frame_height* 10) when 2 # defender change(enemy_frames, 5, 0, @frame_height ) when 3 # Herido change(enemy_frames, 5, 0, @frame_height * 2) when 4 # Atacar change(enemy_frames, 5, 0, @frame_height * 9, 0, true) when 5 # habilidad change(enemy_frames, 5, 0, 0) when 6 # muerto change(enemy_frames, 5, 0, @frame_height * 3) when 7 # victória change(enemy_frames, 5, 0, @frame_height * 5) when 8 # victória change(enemy_frames, 5, 0, @frame_height * 8) when 9 # victória change(enemy_frames, 5, 0, @frame_height * 9) when 10 # victória change(enemy_frames, 5, 0, @frame_height * 10) # ...etc. else change(enemy_frames, 5, 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
ecco uno screen:
http://img28.imageshack.us/img28/5350/antaprima9sj.png
buon making a tutti

*BS e Sprites del 2K3 su XP
in Scripts RGSS (XP)
Posted