jya1993 2 Report post Posted July 6, 2010 Can anybody tell me a sideview script that DOES'NT use Animated battlers? :) I have a script but the sprites keep running in the same place when I attack. :'( Share this post Link to post Share on other sites
0 Kiriashi 117 Report post Posted July 6, 2010 Here's one: class Bitmap if not method_defined?('original_draw_text') alias original_draw_text draw_text def draw_text(*arg) original_color = self.font.color.dup self.font.color = Color.new(0, 0, 0, 128) if arg[0].is_a?(Rect) arg[0].x += 2 arg[0].y += 2 self.original_draw_text(*arg) arg[0].x -= 2 arg[0].y -= 2 else arg[0] += 2 arg[1] += 2 self.original_draw_text(*arg) arg[0] -= 2 arg[1] -= 2 end self.font.color = original_color self.original_draw_text(*arg) end end def gradation_rect(x, y, width, height, color1, color2, align = 0) if align == 0 for i in x...x + width red = color1.red + (color2.red - color1.red) * (i - x) / (width - 1) green = color1.green + (color2.green - color1.green) * (i - x) / (width - 1) blue = color1.blue + (color2.blue - color1.blue) * (i - x) / (width - 1) alpha = color1.alpha + (color2.alpha - color1.alpha) * (i - x) / (width - 1) color = Color.new(red, green, blue, alpha) fill_rect(i, y, 1, height, color) end elsif align == 1 for i in y...y + height red = color1.red + (color2.red - color1.red) * (i - y) / (height - 1) green = color1.green + (color2.green - color1.green) * (i - y) / (height - 1) blue = color1.blue + (color2.blue - color1.blue) * (i - y) / (height - 1) alpha = color1.alpha + (color2.alpha - color1.alpha) * (i - y) / (height - 1) color = Color.new(red, green, blue, alpha) fill_rect(x, i, width, 1, color) end elsif align == 2 for i in x...x + width for j in y...y + height red = color1.red + (color2.red - color1.red) * ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 green = color1.green + (color2.green - color1.green) * ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 blue = color1.blue + (color2.blue - color1.blue) * ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 alpha = color1.alpha + (color2.alpha - color1.alpha) * ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 color = Color.new(red, green, blue, alpha) set_pixel(i, j, color) end end elsif align == 3 for i in x...x + width for j in y...y + height red = color1.red + (color2.red - color1.red) * ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 green = color1.green + (color2.green - color1.green) * ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 blue = color1.blue + (color2.blue - color1.blue) * ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 alpha = color1.alpha + (color2.alpha - color1.alpha) * ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 color = Color.new(red, green, blue, alpha) set_pixel(i, j, color) end end end end end module RPG class Sprite < ::Sprite def damage(value, critical) dispose_damage if value.is_a?(Numeric) damage_string = value.abs.to_s else damage_string = value.to_s end bitmap = Bitmap.new(160, 48) bitmap.font.name = "Arial Black" bitmap.font.size = 32 bitmap.font.color.set(0, 0, 0) bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1) bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1) bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1) bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1) if value.is_a?(Numeric) and value < 0 bitmap.font.color.set(176, 255, 144) else bitmap.font.color.set(255, 255, 255) end bitmap.draw_text(0, 12, 160, 36, damage_string, 1) if critical bitmap.font.size = 20 bitmap.font.color.set(0, 0, 0) bitmap.draw_text(-1, -1, 160, 20, "CRITICAL", 1) bitmap.draw_text(+1, -1, 160, 20, "CRITICAL", 1) bitmap.draw_text(-1, +1, 160, 20, "CRITICAL", 1) bitmap.draw_text(+1, +1, 160, 20, "CRITICAL", 1) bitmap.font.color.set(255, 255, 255) bitmap.draw_text(0, 0, 160, 20, "CRITICAL", 1) end @_damage_sprite = ::Sprite.new @_damage_sprite.bitmap = bitmap @_damage_sprite.ox = 80 + self.viewport.ox @_damage_sprite.oy = 20 + self.viewport.oy @_damage_sprite.x = self.x + self.viewport.rect.x @_damage_sprite.y = self.y - self.oy / 2 + self.viewport.rect.y @_damage_sprite.z = 3000 @_damage_duration = 40 end def animation(animation, hit) dispose_animation @_animation = animation return if @_animation == nil @_animation_hit = hit @_animation_duration = @_animation.frame_max animation_name = @_animation.animation_name animation_hue = @_animation.animation_hue bitmap = RPG::Cache.animation(animation_name, animation_hue) if @@_reference_count.include?(bitmap) @@_reference_count[bitmap] += 1 else @@_reference_count[bitmap] = 1 end @_animation_sprites = [] if @_animation.position != 3 or not @@_animations.include?(animation) for i in 0..15 sprite = ::Sprite.new sprite.bitmap = bitmap sprite.visible = false @_animation_sprites.push(sprite) end unless @@_animations.include?(animation) @@_animations.push(animation) end end update_animation end def loop_animation(animation) return if animation == @_loop_animation dispose_loop_animation @_loop_animation = animation return if @_loop_animation == nil @_loop_animation_index = 0 animation_name = @_loop_animation.animation_name animation_hue = @_loop_animation.animation_hue bitmap = RPG::Cache.animation(animation_name, animation_hue) if @@_reference_count.include?(bitmap) @@_reference_count[bitmap] += 1 else @@_reference_count[bitmap] = 1 end @_loop_animation_sprites = [] for i in 0..15 sprite = ::Sprite.new sprite.bitmap = bitmap sprite.visible = false @_loop_animation_sprites.push(sprite) end update_loop_animation end 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 sprite.y = self.viewport.rect.height - 160 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.src_rect.height / 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 class Game_Actor < Game_Battler def screen_x if self.index != nil n_split = [($game_party.actors.length * 0.5).ceil, 4].min case n_split when 1 n_index = self.index * 2 when 2 if self.index < ($game_party.actors.length - 2) n_index = 0.5 + (2 * self.index) else if $game_party.actors.length == 3 then n_index = (self.index * 2) + 2 elsif $game_party.actors.length == 4 then n_index = self.index * 2 end end when 3 n_index = self.index + (0.25 * (self.index + 1)) if $game_party.actors.length == 5 if self.index < 2 n_index = self.index + (0.25 * (self.index + 1)) else n_index = self.index + (0.25 * (self.index + 2)) + 1 end end when 4 n_index = self.index if $game_party.actors.length == 7 if self.index < 3 n_index = self.index else n_index = self.index + 1 end end end return (n_index - ((n_index / 4).floor) * 4) * ((160 / (4)) / 5) + 480 + ((n_index / 4).floor * 60) else return 0 end end #-------------------------------------------------------------------------- # ? ????? Y ????? #-------------------------------------------------------------------------- def screen_y n_split = [($game_party.actors.length * 0.5).ceil, 4].min case n_split when 1 n_index = self.index * 2 when 2 if self.index < ($game_party.actors.length - 2) n_index = 0.5 + (2 * self.index) else if $game_party.actors.length == 3 then n_index = (self.index * 2) + 2 elsif $game_party.actors.length == 4 then n_index = self.index * 2 end end when 3 n_index = self.index + (0.25 * (self.index + 1)) if $game_party.actors.length == 5 if self.index < 2 n_index = self.index + (0.25 * (self.index + 1)) else n_index = self.index + (0.25 * (self.index + 2)) + 1 end end when 4 n_index = self.index if $game_party.actors.length == 7 if self.index < 3 n_index = self.index else n_index = self.index + 1 end end end return (n_index - ((n_index / 4).floor) * 4) * ((160 / (4)) * 1.6) + 270 - ((n_index / 4).floor * (110 - (4 * 20))) end #-------------------------------------------------------------------------- # ? ????? Z ????? #-------------------------------------------------------------------------- def screen_z # ??????????? Z ????????? if self.index != nil return self.index else return 0 end end end class Game_Enemy < Game_Battler def screen_x n_split = [($game_troop.enemies.length * 0.5).ceil, 4].min case n_split when 1 n_index = self.index * 2 when 2 if self.index < ($game_troop.enemies.length - 2) n_index = 0.5 + (2 * self.index) else if $game_troop.enemies.length == 3 then n_index = (self.index * 2) + 2 elsif $game_troop.enemies.length == 4 then n_index = self.index * 2 end end when 3 n_index = self.index + (0.25 * (self.index + 1)) if $game_troop.enemies.length == 5 if self.index < 2 n_index = self.index + (0.25 * (self.index + 1)) else n_index = self.index + (0.25 * (self.index + 2)) + 2 end end when 4 n_index = self.index if $game_troop.enemies.length == 7 if self.index < 3 n_index = self.index else n_index = self.index + 1 end end end return (n_index - ((n_index / 4).floor) * 4) * ((-160 / (4)) / 5) + 160 - ((n_index / 4).floor * 60) end #-------------------------------------------------------------------------- # ? ????? Y ????? #-------------------------------------------------------------------------- def screen_y n_split = [($game_troop.enemies.length * 0.5).ceil, 4].min case n_split when 1 n_index = self.index * 2 when 2 if self.index < ($game_troop.enemies.length - 2) n_index = 0.5 + (2 * self.index) else if $game_troop.enemies.length == 3 then n_index = (self.index * 2) + 2 elsif $game_troop.enemies.length == 4 then n_index = self.index * 2 end end when 3 n_index = self.index + (0.25 * (self.index + 1)) if $game_troop.enemies.length == 5 if self.index < 2 n_index = self.index + (0.25 * (self.index + 1)) else n_index = self.index + (0.25 * (self.index + 2)) + 1 end end when 4 n_index = self.index if $game_troop.enemies.length == 7 if self.index < 3 n_index = self.index else n_index = self.index + 1 end end end return (n_index - ((n_index / 4).floor) * 4) * ((160 / (4)) * 1.6) + 270 - ((n_index / 4).floor * (110 - (4 * 20))) end #-------------------------------------------------------------------------- # ? ????? Z ????? #-------------------------------------------------------------------------- def screen_z return @member_index + 1 end end #============================================================================== # ¦ Sprite_Battler #------------------------------------------------------------------------------ # ????????????????Game_Battler ??????????????? # ???????????????????? #============================================================================== class Sprite_Battler < RPG::Sprite #-------------------------------------------------------------------------- # ? ?????????? #-------------------------------------------------------------------------- attr_accessor :battler # ???? attr_accessor :moving # Is the sprite moving? attr_reader :index attr_accessor :target_index attr_accessor :direction attr_accessor :pattern #-------------------------------------------------------------------------- # ? ????????? # viewport : ?????? # battler : ???? (Game_Battler) #-------------------------------------------------------------------------- def initialize(viewport, battler = nil) super(viewport) change @old = Graphics.frame_count # For the delay method @goingup = true # Increasing animation? (if @rm2k_mode is true) @once = false # Is the animation only played once? @animated = true # Used to stop animation when @once is true self.opacity = 0 @index = 0 @pattern_b = 0 @counter_b = 0 @trans_sprite = Sprite.new @trans_sprite.opacity = 0 @bar_hp_sprite = Sprite.new @bar_hp_sprite.bitmap = Bitmap.new(64, 10) @bar_sp_sprite = Sprite.new @bar_sp_sprite.bitmap = Bitmap.new(64, 10) @color1 = Color.new(0, 0, 0, 192) @color2 = Color.new(255, 255, 192, 192) @color3 = Color.new(0, 0, 0, 192) @color4 = Color.new(64, 0, 0, 192) @old_hp = -1 @old_sp = -1 @battler = battler @battler_visible = false @first = true @pattern = 0 if $target_index == nil $target_index = 0 end @battler.is_a?(Game_Enemy) ? enemy_pose(0, 1) : pose(0, 1) end #-------------------------------------------------------------------------- # ? ?? #-------------------------------------------------------------------------- def dispose if self.bitmap != nil self.bitmap.dispose end if @trans_sprite.bitmap != nil @trans_sprite.bitmap.dispose end @trans_sprite.dispose @bar_hp_sprite.bitmap.dispose @bar_hp_sprite.dispose @bar_sp_sprite.bitmap.dispose @bar_sp_sprite.dispose super end 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 @goingup = true @animated = true end #-------------------------------------------------------------------------- # ? ?????? #-------------------------------------------------------------------------- def update bar_check = true if @_damage_duration == 1 super @trans_sprite.blend_type = self.blend_type @trans_sprite.color = self.color if @_collapse_duration > 0 @trans_sprite.opacity = self.opacity else @trans_sprite.opacity = [self.opacity, 160].min end if (@_damage_duration == 0 and bar_check == true) or @first == true @first = false if @first == true bar_check = false @bar_must_change = true end @bar_hp_sprite.opacity = self.opacity @bar_sp_sprite.opacity = self.opacity # ????? nil ??? if @battler == nil self.bitmap = nil @trans_sprite.bitmap = nil loop_animation(nil) return end # ???????????????????? if @battler.battler_name != @battler_name or @battler.battler_hue != @battler_hue # ???????????? @battler_name = @battler.battler_name @battler_hue = @battler.battler_hue if @battler.is_a?(Game_Actor) @battler_name = @battler.character_name @battler_hue = @battler.character_hue @direction = 4 else @direction = 6 end self.bitmap = RPG::Cache.character(@battler_name, @battler_hue) @width = bitmap.width / 4 @height = bitmap.height / 4 @frame_width = @width @frame_height = @height self.ox = @width / 2 self.oy = @height @pattern = @current_frame @direction = @offset_y sx = @pattern * @width sy = (@direction - 2) / 2 * @height self.src_rect.set(sx, sy, @width, @height) @current_frame = (@current_frame + 1) unless @frames == 0 @animated = false if @current_frame == @frames and @once @current_frame %= @frames @trans_sprite.bitmap = self.bitmap @trans_sprite.ox = self.ox @trans_sprite.oy = self.oy @trans_sprite.src_rect.set(sx, sy, @width, @height) # ?????????????????? 0 ??? if @battler.dead? or @battler.hidden self.opacity = 0 @trans_sprite.opacity = 0 @bar_hp_sprite.opacity = 0 @bar_sp_sprite.opacity = 0 end self.x = @battler.screen_x self.y = @battler.screen_y self.z = @battler.screen_z end change_sp_bar if @old_sp != @battler.sp if delay(@delay) and @animated @pattern = @current_frame @direction = @offset_y sx = @pattern * @width sy = (@direction - 2) / 2 * @height self.src_rect.set(sx, sy, @width, @height) @current_frame = (@current_frame + 1) unless @frames == 0 @animated = false if @current_frame == @frames and @once @current_frame %= @frames @trans_sprite.ox = self.ox @trans_sprite.oy = self.oy @trans_sprite.src_rect.set(sx, sy, @width, @height) end # ??????? ID ???????????? 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 # ?????????????? #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 end # ????? if @battler_visible # ?? if @battler.hidden $game_system.se_play($data_system.escape_se) escape @trans_sprite.opacity = 0 @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 @bar_must_change == true @bar_must_change = false if @old_hp != @battler.hp change_hp_bar 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 end # ??????????? @trans_sprite.x = self.x @trans_sprite.y = self.y @trans_sprite.z = self.z @bar_hp_sprite.x = @battler.screen_x - 32 @bar_hp_sprite.y = @battler.screen_y - (@height +18) if @height != nil @bar_hp_sprite.z = 100 @bar_sp_sprite.x = @battler.screen_x - 32 @bar_sp_sprite.y = @battler.screen_y - (@height + 8) if @height != nil @bar_sp_sprite.z = 100 end #-------------------------------------------------------------------------- # - Move the sprite # x : X coordinate of the destination point # y : Y coordinate of the destination point # speed : Speed of movement (0 = delayed, 1+ = faster) # delay : Movement delay if speed is at 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 #-------------------------------------------------------------------------- # - Move sprite to destx and 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 #-------------------------------------------------------------------------- # - Pause animation, but still updates movement # frames : Number of frames #-------------------------------------------------------------------------- def delay(frames) update_move if (Graphics.frame_count - @old >= frames) @old = Graphics.frame_count return true end return false end def change_hp_bar j = false @old_hp = @battler.hp if @old_hp == -1 i = @old_hp loop do i -= 10 if i < @battler.hp i = @battler.hp j = true end rate = i.to_f / @battler.maxhp @color5 = Color.new(80 - 24 * rate, 80 * rate, 14 * rate, 192) @color6 = Color.new(240 - 72 * rate, 240 * rate, 62 * rate, 192) @bar_hp_sprite.bitmap.clear @bar_hp_sprite.bitmap.fill_rect(0, 0, 64, 10, @color1) @bar_hp_sprite.bitmap.fill_rect(1, 1, 62, 8, @color2) @bar_hp_sprite.bitmap.gradation_rect(2, 2, 60, 6, @color3, @color4, 1) #@bar_hp_sprite.bitmap.fill_rect(2, 2, 60, 6, @color3) @bar_hp_sprite.bitmap.gradation_rect(2, 2, 64 * rate - 4, 6, @color5, @color6, 2) #@bar_hp_sprite.bitmap.fill_rect(2, 2, 64 * rate - 4, 6, @color5) @bar_hp_sprite.opacity = self.opacity Graphics.update if j == true j = false break end end @old_hp = @battler.hp end def change_sp_bar j = false @old_sp = @battler.sp if @old_sp == -1 i = @old_sp loop do i -= 10 if i < @battler.sp i = @battler.sp j = true end rate = i.to_f / @battler.maxsp @color7 = Color.new(14 * rate, 80 - 24 * rate, 80 * rate, 192) @color8 = Color.new(62 * rate, 240 - 72 * rate, 240 * rate, 192) @bar_sp_sprite.bitmap.clear @bar_sp_sprite.bitmap.fill_rect(0, 0, 64, 10, @color1) @bar_sp_sprite.bitmap.fill_rect(1, 1, 62, 8, @color2) @bar_sp_sprite.bitmap.gradation_rect(2, 2, 60, 6, @color3, @color4, 1) #@bar_hp_sprite.bitmap.fill_rect(2, 2, 60, 6, @color3) @bar_sp_sprite.bitmap.gradation_rect(2, 2, 64 * rate - 4, 6, @color7, @color8, 0) #@bar_hp_sprite.bitmap.fill_rect(2, 2, 64 * rate - 4, 6, @color5) @bar_sp_sprite.opacity = self.opacity Graphics.update if j == true j = false break end end @old_sp = @battler.sp 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 def index=(index) @index = index update end def pose(number, frames = 4) case number when 0 change(frames, 4, 0, 4, 0) when 1 change(frames, 4, 0, 4) when 2 change(frames, 4, 0, 6) else change(frames, 4, 0, 0, 0) end end def enemy_pose(number ,enemy_frames = 4) case number when 0 change(enemy_frames, 4, 0, 6, 0) when 1 change(enemy_frames, 4, 0, 4) when 2 change(enemy_frames, 4, 0, 6) else change(enemy_frames, 4, 0, 0, 0) end end def default_pose pose(0, 1) end end #============================================================================== # ¦ Spriteset_Battle #------------------------------------------------------------------------------ # ???????????????????????????? Scene_Battle ?? # ???????????? #============================================================================== class Spriteset_Battle #-------------------------------------------------------------------------- # ? ?????????? #-------------------------------------------------------------------------- attr_reader :viewport1 # ???????????? attr_reader :viewport2 # ???????????? attr_accessor :actor_sprites attr_accessor :enemy_sprites #-------------------------------------------------------------------------- # ? ????????? #-------------------------------------------------------------------------- def initialize # ????????? @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 if $game_temp.battleback_name == "" @battleback_sprite = nil @tilemap = Tilemap.new(@viewport1) @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name) for i in 0..6 autotile_name = $game_map.autotile_names[i] @tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name) end @tilemap.map_data = $game_map.data @tilemap.priorities = $game_map.priorities else # ?????????????? @tilemap = nil @battleback_sprite = Sprite.new(@viewport1) end # ???????????? @enemy_sprites = [] for enemy in $game_troop.enemies#.reverse @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy)) end # ???????????? @actor_sprites = [] for j in 0..7 # ƒAƒNƒ^[ƒXƒvƒ‰ƒCƒg‚ð’ljÁ @actor_sprites.push(Sprite_Battler.new(@viewport1, $game_party.actors[j])) end # ????? @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 @tilemap != nil # ????????? @tilemap.tileset.dispose for i in 0..6 @tilemap.autotiles[i].dispose end @tilemap.dispose end # ?????????????? if @battleback_sprite != nil # ?????????????????????? if @battleback_sprite.bitmap != nil @battleback_sprite.bitmap.dispose end @battleback_sprite.dispose end # ?????????????????????? for sprite in @enemy_sprites + @actor_sprites sprite.dispose end # ????? @weather.dispose # ???????????? for sprite in @picture_sprites sprite.dispose end # ???????????? @timer_sprite.dispose # ????????? @viewport1.dispose @viewport2.dispose @viewport3.dispose @viewport4.dispose end #-------------------------------------------------------------------------- # ? ?????????? #-------------------------------------------------------------------------- def effect? # ??????????????? true ??? for sprite in @enemy_sprites + @actor_sprites return true if sprite.effect? end return false end #-------------------------------------------------------------------------- # ? ?????? #-------------------------------------------------------------------------- def update # ??????????????????????? if @battleback_sprite != nil if @battleback_name != $game_temp.battleback_name @battleback_name = $game_temp.battleback_name if @battleback_sprite.bitmap != nil @battleback_sprite.bitmap.dispose end bg_bitmap = RPG::Cache.battleback(@battleback_name) bg_bitmap_stretch = Bitmap.new(640, 480) bg_bitmap_stretch.stretch_blt(Rect.new(0, 0, 640, 480), bg_bitmap, bg_bitmap.rect) @battleback_sprite.bitmap = bg_bitmap_stretch end end if @tilemap != nil @tilemap.ox = $game_map.display_x / 4 @tilemap.oy = $game_map.display_y / 4 @tilemap.update end # ???????????? for sprite in @enemy_sprites + @actor_sprites sprite.update end # ??????????? @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 #============================================================================== # ¦ Window_Command #------------------------------------------------------------------------------ # ????????????????????? #============================================================================== class Window_Command < Window_Selectable #-------------------------------------------------------------------------- # ? ????????? # width : ??????? # commands : ?????????? #-------------------------------------------------------------------------- def initialize(width, commands, column_max = 1, style = 0, inf_scroll = 1) # ???????????????????? super(0, 0, width, (commands.size * 1.0 / column_max).ceil * 32 + 32) @inf_scroll = inf_scroll @item_max = commands.size @commands = commands @column_max = column_max @style = style self.contents = Bitmap.new(width - 32, (@item_max * 1.0 / @column_max).ceil * 32) self.contents.font.name = "Tahoma" self.contents.font.size = 22 refresh self.index = 0 end #-------------------------------------------------------------------------- # ? ?????? #-------------------------------------------------------------------------- def refresh self.contents.clear for i in 0...@item_max draw_item(i, normal_color) end end #-------------------------------------------------------------------------- # ? ????? # index : ???? # color : ??? #-------------------------------------------------------------------------- def draw_item(index, color) self.contents.font.color = color rect = Rect.new(index%@column_max * (self.width / @column_max) + 4, 32 * (index/@column_max), self.width / @column_max - 40, 32) self.contents.fill_rect(rect, Color.new(0, 0, 0, 0)) self.contents.draw_text(rect, @commands[index], @style) end #-------------------------------------------------------------------------- # ? ?????? # index : ???? #-------------------------------------------------------------------------- def disable_item(index) draw_item(index, disabled_color) end def update_help @help_window.set_actor($game_party.actors[$scene.actor_index]) end end #============================================================================== # ¦ Arrow_Enemy #------------------------------------------------------------------------------ # ????????????????????????????? Arrow_Base ?? # ???????? #============================================================================== class Arrow_Enemy < Arrow_Base #-------------------------------------------------------------------------- # ? ????????????????? #-------------------------------------------------------------------------- def enemy return $game_troop.enemies[@index] end #-------------------------------------------------------------------------- # ? ?????? #-------------------------------------------------------------------------- def update super # ??????????????????? $game_troop.enemies.size.times do break if self.enemy.exist? @index += 1 @index %= $game_troop.enemies.size end # ????? if Input.repeat?(Input::DOWN) $game_system.se_play($data_system.cursor_se) $game_troop.enemies.size.times do @index += 1 @index %= $game_troop.enemies.size break if self.enemy.exist? end end # ????? if Input.repeat?(Input::UP) $game_system.se_play($data_system.cursor_se) $game_troop.enemies.size.times do @index += $game_troop.enemies.size - 1 @index %= $game_troop.enemies.size break if self.enemy.exist? end end if Input.repeat?(Input::RIGHT) $game_system.se_play($data_system.cursor_se) $game_troop.enemies.size.times do @index += ((($game_troop.enemies.length) * 0.5).ceil) @index %= $game_troop.enemies.size break if self.enemy.exist? end end if Input.repeat?(Input::LEFT) $game_system.se_play($data_system.cursor_se) $game_troop.enemies.size.times do @index += $game_troop.enemies.size - ((($game_troop.enemies.length) * 0.5).ceil) @index %= $game_troop.enemies.size break if self.enemy.exist? end end # ??????????? if self.enemy != nil self.x = self.enemy.screen_x + 4 self.y = self.enemy.screen_y + 36 self.z = self.enemy.screen_z + 1 end end #-------------------------------------------------------------------------- # ? ????????? #-------------------------------------------------------------------------- def update_help # ???????????????????????? @help_window.set_enemy(self.enemy) end end #============================================================================== # ¦ Arrow_Actor #------------------------------------------------------------------------------ # ????????????????????????????? Arrow_Base ?? # ???????? #============================================================================== class Arrow_Actor < Arrow_Base #-------------------------------------------------------------------------- # ? ????????????????? #-------------------------------------------------------------------------- def actor return $game_party.actors[@index] end #-------------------------------------------------------------------------- # ? ?????? #-------------------------------------------------------------------------- def update super # ????? if Input.repeat?(Input::DOWN) $game_system.se_play($data_system.cursor_se) @index += 1 @index %= $game_party.actors.size end # ????? if Input.repeat?(Input::UP) $game_system.se_play($data_system.cursor_se) @index += $game_party.actors.size - 1 @index %= $game_party.actors.size end if Input.repeat?(Input::RIGHT) $game_system.se_play($data_system.cursor_se) @index += ($game_party.actors.length * 0.5).ceil @index %= $game_party.actors.size end # ????? if Input.repeat?(Input::LEFT) $game_system.se_play($data_system.cursor_se) @index += $game_party.actors.size - (($game_party.actors.length * 0.5).ceil) @index %= $game_party.actors.size end # ??????????? if self.actor != nil self.x = self.actor.screen_x self.y = self.actor.screen_y + 36 self.z = self.actor.screen_z + 1 end end #-------------------------------------------------------------------------- # ? ????????? #-------------------------------------------------------------------------- def update_help # ?????????????????????? @help_window.set_actor(self.actor) end end class Scene_Battle attr_accessor :actor_index def main # ??????????????? $game_temp.in_battle = true $game_temp.battle_turn = 0 $game_temp.battle_event_flags.clear $game_temp.battle_abort = false $game_temp.battle_main_phase = false $game_temp.battleback_name = $game_map.battleback_name $game_temp.forcing_battler = nil # ?????????????????? $game_system.battle_interpreter.setup(nil, 0) # ??????? @troop_id = $game_temp.battle_troop_id $game_troop.setup(@troop_id) # ???????????????? s1 = $data_system.words.attack s1 = $data_system.words.attack s2 = $data_system.words.skill s3 = $data_system.words.guard s4 = $data_system.words.item @actor_command_window = Window_Command.new(640, [s1, s2, s3, s4], 4) @actor_command_window.y = 64 @actor_command_window.back_opacity = 160 @actor_command_window.active = false @actor_command_window.visible = false # ???????????? @party_command_window = Window_PartyCommand.new @help_window = Window_Help.new @help_window.back_opacity = 160 @help_window.visible = false #@status_window = Window_BattleStatus.new @message_window = Window_Message.new # ??????????? @spriteset = Spriteset_Battle.new # ???????????? @wait_count = 0 # ????????? if $data_system.battle_transition == "" Graphics.transition(20) else Graphics.transition(40, "Graphics/Transitions/" + $data_system.battle_transition) end # ??????????? start_phase1 # ?????? loop do # ???????? Graphics.update # ??????? Input.update # ?????? update # ???????????????? if $scene != self break end end # ?????????? $game_map.refresh # ????????? Graphics.freeze # ???????? @actor_command_window.dispose @party_command_window.dispose @help_window.dispose #@status_window.dispose @message_window.dispose if @skill_window != nil @skill_window.dispose end if @item_window != nil @item_window.dispose end if @result_window != nil @result_window.dispose end # ??????????? @spriteset.dispose # ??????????????? if $scene.is_a?(Scene_Title) # ?????????? Graphics.transition Graphics.freeze end # ??????????????????????????? if $BTEST and not $scene.is_a?(Scene_Gameover) $scene = nil end end 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 # ????? 0 ?????? 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 # ??????? BGM ??? $game_system.bgm_play($game_temp.map_bgm) # ????? battle_end(1) return end # ???????? if @wait_count > 0 # ???????????? @wait_count -= 1 return end # this one holds the battle while the player moves for actor in @spriteset.actor_sprites if actor.moving return end end # and this one is for the enemy... 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 def start_phase2 # ???? 2 ??? @phase = 2 # ????????????? @actor_index = -1 @active_battler = nil # ????????????????? @party_command_window.active = true @party_command_window.visible = true # ????????????????? @actor_command_window.active = false @actor_command_window.visible = false @help_window.visible = false # ?????????????? $game_temp.battle_main_phase = false # ???????????????? $game_party.clear_actions # ???????????? unless $game_party.inputable? # ????????? start_phase4 end end def update_phase2_escape # ?????????????? enemies_agi = 0 enemies_number = 0 for enemy in $game_troop.enemies if enemy.exist? enemies_agi += enemy.agi enemies_number += 1 end end if enemies_number > 0 enemies_agi /= enemies_number end # ?????????????? actors_agi = 0 actors_number = 0 for actor in $game_party.actors if actor.exist? actors_agi += actor.agi actors_number += 1 end end if actors_number > 0 actors_agi /= actors_number end # ?????? success = rand(100) < 50 * actors_agi / enemies_agi # ??????? if success # ?? SE ??? $game_system.se_play($data_system.escape_se) for actor in $game_party.actors @spriteset.actor_sprites[actor.index].pose(2) @spriteset.actor_sprites[actor.index].move(660, actor.screen_y, 10) end check = escape_move until check == false @spriteset.update Graphics.update check = escape_move end # ??????? BGM ??? $game_system.bgm_play($game_temp.map_bgm) # ????? battle_end(1) # ??????? else # ???????????????? $game_party.clear_actions # ????????? start_phase4 end end def escape_move for actor in @spriteset.actor_sprites if actor.moving return true end end return false end def start_phase5 # ???? 5 ??? @phase = 5 # ????? ME ??? $game_system.me_play($game_system.battle_end_me) # ??????? BGM ??? $game_system.bgm_play($game_temp.map_bgm) # EXP??????????????? exp = 0 gold = 0 treasures = [] # ??? for enemy in $game_troop.enemies # ?????????????? unless enemy.hidden # ?? EXP???????? 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 # ???????? 6 ?????? treasures = treasures[0..5] # EXP ?? for i in 0...$game_party.actors.size actor = $game_party.actors[i] 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 #-------------------------------------------------------------------------- # ? ?????? (???????????) #-------------------------------------------------------------------------- def update_phase5 # ????????? 0 ??????? if @phase5_wait_count > 0 # ???????????? @phase5_wait_count -= 1 # ????????? 0 ?????? if @phase5_wait_count == 0 # ???????????? @result_window.visible = true # ?????????????? $game_temp.battle_main_phase = false # ????????????????? #@status_window.refresh end return end # C ?????????? if Input.trigger?(Input::C) # ????? battle_end(0) end end def phase3_setup_command_window # ????????????????? @party_command_window.active = false @party_command_window.visible = false # ????????????????? @actor_command_window.active = true @actor_command_window.visible = true @help_window.visible = true # ??????????????????? if @actor_command_window.help_window == nil @actor_command_window.help_window = @help_window end @actor_command_window.update_help #@actor_command_window.x = @actor_index * 160 # ??????? 0 ??? @actor_command_window.index = 0 end def start_enemy_select # ?????????? @enemy_arrow = Arrow_Enemy.new(@spriteset.viewport2) # ????????????? @enemy_arrow.help_window = @help_window # ????????????????? @actor_command_window.active = false @actor_command_window.visible = false end 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 # Change actor poses to 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 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 @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 #======== here is the setting for the movement & animation... x = target.screen_x - 32 @spriteset.enemy_sprites[@active_battler.index].enemy_pose(2) @spriteset.enemy_sprites[@active_battler.index].move(x, target.screen_y, 10) #========= here if you look at the RPG's movement settings you'll see #========= that he takes the number 40 for the speed of the animation... #========= i thing thats too fast so i settet it down to 10 so looks smoother... end if @active_battler.is_a?(Game_Actor) weapon = $data_weapons[@active_battler.weapon_id] range = false if weapon != nil for id in weapon.element_set if $data_system.elements[23] == "Range" range = true break end end end 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 #======= the same thing for the player... ^-^ x = target.screen_x + 32 @spriteset.actor_sprites[@active_battler.index].pose(1) @spriteset.actor_sprites[@active_battler.index].move(x * (range ? 2 : 1), target.screen_y, 10) range = false 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(0, 1) #defence else @spriteset.enemy_sprites[@active_battler.index].enemy_pose(0, 1) #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("Escape", 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 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) @animation1_id = @skill.animation1_id @animation2_id = @skill.animation2_id if @active_battler.is_a?(Game_Enemy) #@spriteset.enemy_sprites[@active_battler.index].change_sp_bar x = @active_battler.screen_x + 48 @spriteset.enemy_sprites[@active_battler.index].enemy_pose(2) @spriteset.enemy_sprites[@active_battler.index].move(x, @active_battler.screen_y, 5) @spriteset.enemy_sprites[@active_battler.index].enemy_pose(0, 1) end if @active_battler.is_a?(Game_Actor) #@spriteset.actor_sprites[@active_battler.index].change_sp_bar x = @active_battler.screen_x - 48 @spriteset.actor_sprites[@active_battler.index].pose(1) @spriteset.actor_sprites[@active_battler.index].move(x, @active_battler.screen_y, 5) @spriteset.actor_sprites[@active_battler.index].pose(0, 1) end @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 def make_item_action_result # sorry i didnt work on this... # couse i dont have a sprite that uses items.... # so i just added the standby sprite here... # when i get more time for this i'll try what i can do for this one... ^-^ # its the same as the ones above... if @active_battler.is_a?(Game_Actor) @spriteset.actor_sprites[@active_battler.index].pose(0, 1) else @spriteset.enemy_sprites[@active_battler.index].enemy_pose(0, 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 def update_phase4_step3 if @active_battler.current_action.kind == 0 and @active_battler.current_action.basic == 0 # in this one... we have our weapon animations... for player and monster if @active_battler.is_a?(Game_Actor) @spriteset.actor_sprites[@active_battler.index].pose(0,1) elsif @active_battler.is_a?(Game_Enemy) @spriteset.enemy_sprites[@active_battler.index].enemy_pose(0,1) end end if @animation1_id == 1 @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 # this here is for the hit animation... for target in @target_battlers 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(0, 1) else @spriteset.enemy_sprites[@active_battler.index].enemy_pose(0, 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(0, 1) else @spriteset.enemy_sprites[@active_battler.index].enemy_pose(0, 1) end end end # ???? 6 ??? @phase4_step = 6 end def update_phase4_step6 # here we are asking if the player is dead and is a player or an enemy... # these lines are for the running back and standby animation.... if @active_battler.is_a?(Game_Actor) if @active_battler.current_action.basic == 1 @spriteset.actor_sprites[@active_battler.index].pose(0, 1) else @spriteset.actor_sprites[@active_battler.index].move(@active_battler.screen_x, @active_battler.screen_y, 20) @spriteset.actor_sprites[@active_battler.index].pose(2) end else if @active_battler.current_action.basic == 1 @spriteset.enemy_sprites[@active_battler.index].enemy_pose(0, 1) else @spriteset.enemy_sprites[@active_battler.index].move(@active_battler.screen_x, @active_battler.screen_y, 20) @spriteset.enemy_sprites[@active_battler.index].enemy_pose(1) end end for target in @target_battlers if target.is_a?(Game_Actor) @spriteset.actor_sprites[target.index].pose(0, 1) else @spriteset.enemy_sprites[target.index].enemy_pose(0, 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 # here we are asking if the player is dead and is a player or an enemy... # these lines are for the running back and standby animation.... if @active_battler.is_a?(Game_Actor) @spriteset.actor_sprites[@active_battler.index].pose(0, 1) else @spriteset.enemy_sprites[@active_battler.index].enemy_pose(0, 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 end I don't know who made it. You'll have to find out yourself. 1 jya1993 reacted to this Share this post Link to post Share on other sites
0 madanchi 18 Report post Posted July 6, 2010 nice, i might use it some time (when ever I get round to finishsing a tileset <_< ) Share this post Link to post Share on other sites
0 jya1993 2 Report post Posted July 6, 2010 AWESOME!!! :) IT WORKED !!! BUT it worked only once.... Then it displayed and error! Line 30:Bad range value! :( PLEASE Tell me how can I get rid of it!!IT WORKED ONCE WITHOUT THE MARATHON RACES!!! I'M SURE IT'LL WORK AGAIN!! :D YOU GUYS ARE AWESOME!!(Dont mind me shouting...I can't control my happiness XD XD ) Share this post Link to post Share on other sites
0 Ecowolfsteen 14 Report post Posted July 6, 2010 BLARGGGGG! Happy for you. ^^ Share this post Link to post Share on other sites
0 jya1993 2 Report post Posted July 6, 2010 Err......About the error? :) Share this post Link to post Share on other sites
0 Kiriashi 117 Report post Posted July 6, 2010 Wait error are you getting? And when? Share this post Link to post Share on other sites
0 Ecowolfsteen 14 Report post Posted July 6, 2010 Dude read above ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Share this post Link to post Share on other sites
0 jya1993 2 Report post Posted July 7, 2010 Then it displayed and error! Line 30:Bad range value Thats the error....It works fine when I "Battle test" it..... :) But when I do an actual battle in the game........This error comes up: Line 30:Bad range value.... The non-animated battlers is really necessary!!I don't have facesets so I can't use the default battle system(it won't look nice :D .I hope you guys find a way to fix this thing :) Share this post Link to post Share on other sites
Can anybody tell me a sideview script that DOES'NT use Animated battlers? :) I have a script but the sprites keep running in the same place when I attack. :'(
Share this post
Link to post
Share on other sites