|
#101
|
|||
|
|||
|
Disculpa un favor esta rebacano tu foro ya que ayuda a muchos que nos gusta el XP quisiera preguntarme podeis pasarme todos los charas y batler de Final Fantasy que puedas siiiiiiiiii porfavor rrrrrrrrrrrrrrrr en especial si son GF.... Idolo o como los quieras llamar Bahamut, Fenix y los demas chadoo.. hasta la proxima y otra vez esta rebacano el foro
|
|
|
|||
|
|||
|
Rpg Maker Xp -TEMA OFICIAL-
|
|
#102
|
||||
|
||||
|
Cita:
Demo-----Como poner una Posada Y aquí hay un tutorial y un ejemplo de como navegar (el tuto lo hice hace unos meses lo pase a PDF) espero te sirva!!!. Demo ---- Como Navegar Suert^^ Cita:
Spoiler
Suert^^ Cita:
Suert^^ |
|
#103
|
|||
|
|||
|
Gracias de todos modos ... Algunas imagenes de GF me servirian para hacerlos como ataques especiales ... si las llegas a encontrar mas tarde si DIos quiere subire mi beta
|
|
#104
|
||||
|
||||
|
hola
quiero saber como incorporar el midi a la lista y el caracter que uno baja . |
|
#105
|
||||
|
||||
|
http://www.untamed.wild-refuge.net/r...php?characters
aqui estan los GF de final fantasy |
|
#106
|
||||
|
||||
|
hola.
nesesito que me enseñen a colocar los scripts |
|
#107
|
|||
|
|||
|
Hola que tal, muy buen foro de rpg maker xp (me parece que te conoszco jeje de algun otro foro neo crimson, a menos que seas otro? XD) Bueno, quiero pedirles ayuda si me pudieran ayudar a encontrar scripts de batalla, ya que el que tiene por default el maker xp es muy simple, algo así como barras de pv y pm, pero que se pueda ver el nombre del personaje. Les agradecería mucho si me pudoeran ayudar.
|
|
#108
|
||||
|
||||
|
Cita:
Bien has esto
Spoiler
Espero te sirva!! Suert^^ Cita:
ricachu25 Que sorpresa!!! hahaha, soy el mismo eso creo!!........ pero bueno según los Scripts que quieres tengo estos dos(pero no se cuál subir): Script---1 Script---2 Dime cuál quieres, para subirlo!! Suert^^ |
|
#109
|
|||
|
|||
|
ricachu25 Que sorpresa!!! hahaha, soy el mismo eso creo!!........ pero bueno según los Scripts que quieres tengo estos dos(pero no se cuál subir):
Script---1 Script---2 Dime cuál quieres, para subirlo!! Suert^^ [/quote] Ok thanks, me gustó el segundo script y gracias por ayudar . Ah! Y también ando buscando algún script que mejore las batallas (que se vean como las de golden sun), encontré algunos pero me marcan errores, será que me puedas apoyar? Te lo agradecería mucho. Bueno aquí te dejo el script que encontré: P.D.Espero no sea una molestia. #================================================= ============ ================= # Sistema de Batalla Kratos Version 1.5 # Este sistema de batalla contiene zoom en el combate,efectos en el daño,posibilidad # de poner nombres a comandos de la batalla, pantalla despues de la batalla. # Sistema sacado de: http://planetarpg.com.ar/kratos/ #================================================= ============================= # Instrucciones del script: # Para cambiar el nombre de los comandos tienes que ir a la linea 207-221 y cambiar el nombre de atacar y eso. #================================================= ============================= class Game_Actor < Game_Battler #-------------------------------------------------------------------------- def screen_x if self.index != nil return self.index * 160 + (4 - $game_party.actors.size) * 80 + 80 else return 0 end end end #================================================= ============================= class Spriteset_Battle #-------------------------------------------------------------------------- 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 @battleback_sprite = Sprite.new(@viewport1) @enemy_sprites = [] for enemy in $game_troop.enemies.reverse @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(@viewport1) @picture_sprites = [] for i in 51..100 @picture_sprites.push(Sprite_Picture.new(@viewport 3, $game_screen.pictures[i])) end @timer_sprite = Sprite_Timer.new update end #-------------------------------------------------------------------------- def update @actor_sprites[0].battler = $game_party.actors[0] @actor_sprites[1].battler = $game_party.actors[1] @actor_sprites[2].battler = $game_party.actors[2] @actor_sprites[3].battler = $game_party.actors[3] if @battleback_name != $game_temp.battleback_name @battleback_name = $game_temp.battleback_name if @battleback_sprite.bitmap != nil @battleback_sprite.bitmap.dispose end @battleback_sprite.bitmap = RPG::Cache.battleback(@battleback_name) @battleback_sprite.src_rect.set(0, 0, 640, 480) if @battleback_sprite.bitmap.height == 320 @battleback_sprite.zoom_x = 2.0 @battleback_sprite.zoom_y = 2.0 @battleback_sprite.x = 320 @battleback_sprite.y = 480 @battleback_sprite.ox = @battleback_sprite.bitmap.width / 2 @battleback_sprite.oy = @battleback_sprite.bitmap.height else @battleback_sprite.x = 0 @battleback_sprite.y = 0 @battleback_sprite.ox = 0 @battleback_sprite.oy = 0 @battleback_sprite.zoom_x = 1 @battleback_sprite.zoom_y = 1 end end 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 #================================================= ============================= class Window_BattleStatus < Window_Base #-------------------------------------------------------------------------- def initialize x = (4 - $game_party.actors.size) * 80 width = $game_party.actors.size * 160 super(x, 320, width, 160) self.contents = Bitmap.new(width - 32, height - 32) self.back_opacity = 160 @level_up_flags = [false, false, false, false] refresh end #-------------------------------------------------------------------------- def update super if self.x != (4 - $game_party.actors.size) * 80 self.x = (4 - $game_party.actors.size) * 80 self.width = $game_party.actors.size * 160 self.contents = Bitmap.new(self.width - 32, self.height - 32) refresh end if $game_temp.battle_main_phase self.contents_opacity -= 4 if self.contents_opacity > 191 else self.contents_opacity += 4 if self.contents_opacity < 255 end end end #================================================= ============================= class Scene_Battle #-------------------------------------------------------------------------- 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 @actor_command_window.x = @actor_index * 160 + (4 - $game_party.actors.size) * 80 @actor_command_window.index = 0 end end #================================================= ============================= module RPG class Sprite < ::Sprite def animation_set_sprites(sprites, cell_data, position) for i in 0..15 sprite = sprites[i] pattern = cell_data[i, 0] if sprite == nil or pattern == nil or pattern == -1 sprite.visible = false if sprite != nil next end sprite.visible = true sprite.src_rect.set(pattern % 5 * 192, pattern / 5 * 192, 192, 192) if position == 3 if self.viewport != nil sprite.x = self.viewport.rect.width / 2 if $game_temp.in_battle and self.battler.is_a?(Game_Actor) sprite.y = self.viewport.rect.height - 160 else sprite.y = self.viewport.rect.height - 320 end else sprite.x = 320 sprite.y = 240 end else sprite.x = self.x + self.viewport.rect.x - self.ox + self.src_rect.width / 2 sprite.y = self.y + self.viewport.rect.y - self.oy * self.zoom_y + self.src_rect.height * self.zoom_y / 2 sprite.y -= self.src_rect.height / 4 if position == 0 sprite.y += self.src_rect.height / 4 if position == 2 end sprite.x += cell_data[i, 1] sprite.y += cell_data[i, 2] sprite.z = 2000 sprite.ox = 96 sprite.oy = 96 sprite.zoom_x = cell_data[i, 3] / 100.0 sprite.zoom_y = cell_data[i, 3] / 100.0 sprite.angle = cell_data[i, 4] sprite.mirror = (cell_data[i, 5] == 1) sprite.opacity = cell_data[i, 6] * self.opacity / 255.0 sprite.blend_type = cell_data[i, 7] end end end end #================================================= ============================= class Scene_Battle alias cbs_phase3_setup_command_window phase3_setup_command_window def phase3_setup_command_window cbs_phase3_setup_command_window case $game_party.actors[@actor_index].id when 1 commands = ["Atacar", "Habilidad", "Defender", "Objetos"] when 2 commands = ["Atacar", "Habilidad", "Defender", "Objetos"] when 3 commands = ["Atacar", "Habilidad", "Defender", "Objetos"] when 4 commands = ["Atacar", "Habilidad", "Defender", "Objetos"] when 5 commands = ["Atacar", "Habilidad", "Defender", "Objetos"] when 6 commands = ["Atacar", "Habilidad", "Defender", "Objetos"] when 7 commands = ["Atacar", "Habilidad", "Defender", "Objetos"] when 8 commands = ["Atacar", "Habilidad", "Defender", "Objetos"] end @actor_command_window.change_commands(commands) end end class Window_Command def change_commands(commands) @original = @commands unless @original @commands = commands ? commands : @original refresh end end #================================================= ====== class RPG::Sprite < ::Sprite #-------------------------------------------------------------------------- def initialize(viewport = nil) super(viewport) @_whiten_duration = 0 @_appear_duration = 0 @_escape_duration = 0 @_collapse_duration = 0 @_damage_durations = [] @_animation_duration = 0 @_blink = false end #-------------------------------------------------------------------------- def dispose dispose_damage(0...@_damage_durations.size) dispose_animation dispose_loop_animation super end #-------------------------------------------------------------------------- def effect? damage_duration = 0 for value in @_damage_durations damage_duration += value end @_whiten_duration > 0 or @_appear_duration > 0 or @_escape_duration > 0 or @_collapse_duration > 0 or damage_duration > 0 or @_animation_duration > 0 end #-------------------------------------------------------------------------- def damage(value, critical) dispose_damage(0...@_damage_durations.size) @_damage_sprites = [] if value.is_a?(Numeric) damage_string = value.abs.to_s else damage_string = value.to_s end if critical damage_string += " CRITICAL" end for i in 0...damage_string.size letter = damage_string[i..i] bitmap = Bitmap.new(48, 48) bitmap.font.size = 24 bitmap.font.color.set(0, 0, 0) bitmap.draw_text(-1, 12-1, 48, 48, letter, 1) bitmap.draw_text(+1, 12-1, 48, 48, letter, 1) bitmap.draw_text(-1, 12+1, 48, 48, letter, 1) bitmap.draw_text(+1, 12+1, 48, 48, letter, 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, 48, 48, letter, 1) @_damage_sprites[i] = ::Sprite.new(self.viewport) @_damage_sprites[i].bitmap = bitmap @_damage_sprites[i].visible = false @_damage_sprites[i].ox = 16 @_damage_sprites[i].oy = 16 @_damage_sprites[i].x = self.x - self.ox / 2 + i * 12 @_damage_sprites[i].y = self.y - self.oy / 2 @_damage_sprites[i].z = 3000 @_damage_durations[i] = 40 + i * 2 end end #-------------------------------------------------------------------------- def dispose_damage(index) return if @_damage_sprites == nil if @_damage_sprites[index].is_a?(::Sprite) and @_damage_sprites[index].bitmap != nil @_damage_sprites[index].bitmap.dispose @_damage_sprites[index].dispose @_damage_durations[index] = 0 end end #-------------------------------------------------------------------------- def update super if @_whiten_duration > 0 @_whiten_duration -= 1 self.color.alpha = 128 - (16 - @_whiten_duration) * 10 end if @_appear_duration > 0 @_appear_duration -= 1 self.opacity = (16 - @_appear_duration) * 16 end if @_escape_duration > 0 @_escape_duration -= 1 self.opacity = 256 - (32 - @_escape_duration) * 10 end if @_collapse_duration > 0 @_collapse_duration -= 1 self.opacity = 256 - (48 - @_collapse_duration) * 6 end for i in 0...@_damage_durations.size damage_sprite = @_damage_sprites[i] next if @_damage_durations[i] == nil if @_damage_durations[i] > 0 @_damage_durations[i] -= 1 damage_sprite.visible = (@_damage_durations[i] <= 40) case @_damage_durations[i] when 38..39 damage_sprite.y -= 4 when 36..37 damage_sprite.y -= 2 when 34..35 damage_sprite.y += 2 when 28..33 damage_sprite.y += 4 end damage_sprite.opacity = 256 - (12 - @_damage_durations[i]) * 32 if @_damage_durations[i] == 0 dispose_damage(i) end end end if @_animation != nil and (Graphics.frame_count % 2 == 0) @_animation_duration -= 1 update_animation end if @_loop_animation != nil and (Graphics.frame_count % 2 == 0) update_loop_animation @_loop_animation_index += 1 @_loop_animation_index %= @_loop_animation.frame_max end if @_blink @_blink_count = (@_blink_count + 1) % 32 if @_blink_count < 16 alpha = (16 - @_blink_count) * 6 else alpha = (@_blink_count - 16) * 6 end self.color.set(255, 255, 255, alpha) end @@_animations.clear end end #================================================= ============================= class Game_Battler #-------------------------------------------------------------------------- attr_accessor :x_pos attr_accessor :y_pos attr_accessor :z_pos attr_accessor :zoom end #================================================= ============================= class Game_Actor < Game_Battler #-------------------------------------------------------------------------- attr_reader :actor_in_battlefield #-------------------------------------------------------------------------- alias xrxs_bp8_setup setup def setup(actor_id) xrxs_bp8_setup(actor_id) @actor_in_battlefield = false if @actor_in_battlefield != true end end #================================================= ============================= class Game_Enemy < Game_Battler #-------------------------------------------------------------------------- attr_reader :actor_in_battlefield #-------------------------------------------------------------------------- alias xrxs_bp8_initialize initialize def initialize(troop_id, member_index) @actor_in_battlefield = false @x_pos = $data_troops[troop_id].members[member_index].x - 320 @y_pos = -($data_troops[troop_id].members[member_index].y - 304) @field_x_offset = -192 @field_y_offset = -144 @z_pos = 0 @zoom = 1.00 xrxs_bp8_initialize(troop_id, member_index) end #-------------------------------------------------------------------------- def screen_x $xcam_x = 0 if $xcam_x == nil return 320 - @field_x_offset + (@x_pos.to_i - $xcam_x) * @zoom end #-------------------------------------------------------------------------- def screen_y $xcam_y = 0 if $xcam_y == nil return 240 - @field_y_offset + (-@y_pos.to_i + 64 + $xcam_y) * @zoom end end #================================================= ============================= class Sprite_Battler < RPG::Sprite #-------------------------------------------------------------------------- alias xrxs_bp8_update update def update @z_offset = 0 xrxs_bp8_update return if @battler == nil if (@battler.is_a?(Game_Actor) and @battler.actor_in_battlefield) or @battler.is_a?(Game_Enemy) zoom = 1.00 * 185 / (($xcam_z != nil ? $xcam_z : 185) - @z_offset) self.zoom_x = zoom self.zoom_y = zoom @battler.zoom = zoom self.x = @battler.screen_x self.y = @battler.screen_y self.z = @battler.screen_z end end end #================================================= ============================= class Spriteset_Battle #-------------------------------------------------------------------------- #-------------------------------------------------------------------------- alias xrxs_bp8_initialize initialize def initialize @now_bg_x = -1 @now_bg_y = -1 @now_bg_z = -1 xrxs_bp8_initialize @viewport1 = Viewport.new(-192, -144, 1024, 768) @battleback_sprite = Sprite.new(@viewport1) @battleback_name = "" @enemy_sprites = [] for enemy in $game_troop.enemies.reverse @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy)) end @weather = RPG::Weather.new(@viewport1) update end #-------------------------------------------------------------------------- alias xrxs_bp8_update update def update 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(1024, 768) bg_bitmap_stretch.stretch_blt(Rect.new(0, 0, 1024, 768), bg_bitmap, bg_bitmap.rect) @battleback_sprite.bitmap = bg_bitmap_stretch end if @now_bg_x != $xcam_x or @now_bg_y != $xcam_y or @now_bg_z != $xcam_z zoom = 1.00 * 185 / $xcam_z @battleback_sprite.zoom_x = zoom @battleback_sprite.zoom_y = zoom maximum = 192 * (296 - $xcam_z) / 111 $xcam_x = [[$xcam_x, -maximum].max, maximum].min @battleback_sprite.x = -$xcam_x * zoom - 512 * (zoom - 1) @battleback_sprite.y = $xcam_y * zoom - 384 * (zoom - 1) @now_bg_x = $xcam_x @now_bg_y = $xcam_y @now_bg_z = $xcam_z end xrxs_bp8_update end end #================================================= ============================= class Scene_Battle #-------------------------------------------------------------------------- alias xrxs_bp8_main main def main $xcam_x = 0 $xcam_y = 0 $xcam_z = 295 @xcam_x_destination = 0 @xcam_y_destination = 0 @xcam_z_destination = 185 @xcam_watch_battler = nil @wait_count_xcam = 0 xrxs_bp8_main end #-------------------------------------------------------------------------- alias xrxs_bp8_update update def update if @wait_count_xcam > 0 @wait_count_xcam -= 1 else if $xcam_z != @xcam_z_destination if $xcam_z < @xcam_z_destination distance = [(@xcam_z_destination - $xcam_z)/8, 1].max else distance = [(@xcam_z_destination - $xcam_z)/8, -1].min end $xcam_z = [[$xcam_z + distance, 74].max, 296].min end if @xcam_watch_battler != nil if $xcam_x != @xcam_watch_battler.x_pos if ($xcam_x - @xcam_watch_battler.x_pos).abs < 8 distance = @xcam_watch_battler.x_pos - $xcam_x elsif $xcam_x < @xcam_watch_battler.x_pos distance = [(@xcam_watch_battler.x_pos - $xcam_x)/8, 8].max else distance = [(@xcam_watch_battler.x_pos - $xcam_x)/8, -8].min end maximum = 192 * (296 - $xcam_z) / 111 $xcam_x = [[$xcam_x + distance, -maximum].max, maximum].min end elsif $xcam_x != @xcam_x_destination if ($xcam_x - @xcam_x_destination).abs < 8 distance = @xcam_x_destination - $xcam_x elsif $xcam_x < @xcam_x_destination distance = [(@xcam_x_destination - $xcam_x)/8, 8].max else distance = [(@xcam_x_destination - $xcam_x)/8, -8].min end maximum = 192 * (296 - $xcam_z) / 111 $xcam_x = [[$xcam_x + distance, -maximum].max, maximum].min end if @xcam_watch_battler != nil y = @xcam_watch_battler.y_pos/2 if $xcam_y != y if ($xcam_y - y).abs < 8 distance = y - $xcam_y elsif $xcam_y < y distance = [(y - $xcam_y)/8, 8].max else distance = [(y - $xcam_y)/8, -8].min end maximum = 144 * (296 - $xcam_z) / 111 $xcam_y = [[$xcam_y + distance, -maximum].max, maximum].min end elsif $xcam_y != @xcam_y_destination if $xcam_y < @xcam_y_destination distance = [(@xcam_y_destination - $xcam_y)/8, 1].max else distance = [(@xcam_y_destination - $xcam_y)/8, -1].min end maximum = 164 * (296 - $xcam_z) / 111 $xcam_y = [[$xcam_y + distance, -maximum].max, maximum].min end end xrxs_bp8_update end #-------------------------------------------------------------------------- alias xrxs_bp8_start_phase2 start_phase2 def start_phase2 @xcam_watch_battler = nil @xcam_x_destination = 0 @xcam_z_destination = 185 xrxs_bp8_start_phase2 end #-------------------------------------------------------------------------- alias xrxs_bp8_update_phase3 update_phase3 def update_phase3 if @active_battler != nil and @active_battler.actor_in_battlefield @xcam_x_destination = @active_battler.x_pos @xcam_z_destination = 175 end xrxs_bp8_update_phase3 end #-------------------------------------------------------------------------- alias xrxs_bp8_update_phase3_enemy_select update_phase3_enemy_select def update_phase3_enemy_select @xcam_x_destination = $game_troop.enemies[@enemy_arrow.index].x_pos * $game_troop.enemies[@enemy_arrow.index].zoom @xcam_z_destination = 175 xrxs_bp8_update_phase3_enemy_select end #-------------------------------------------------------------------------- alias xrxs_bp8_end_enemy_select end_enemy_select def end_enemy_select @xcam_x_destination = 0 @xcam_z_destination = 185 xrxs_bp8_end_enemy_select end #-------------------------------------------------------------------------- alias xrxs_bp8_update_phase4_step2 update_phase4_step2 def update_phase4_step2 xrxs_bp8_update_phase4_step2 if @phase4_step == 3 if @active_battler.is_a?(Game_Enemy) or @active_battler.actor_in_battlefield @xcam_x_destination = @active_battler.x_pos * @active_battler.zoom if @active_battler.x_pos != nil @xcam_z_destination = 175 end @wait_count = 20 end end #-------------------------------------------------------------------------- alias xrxs_bp8_update_phase4_step3 update_phase4_step3 def update_phase4_step3 xrxs_bp8_update_phase4_step3 if @target_battlers.size > 0 and (@target_battlers[0].is_a?(Game_Enemy) or @target_battlers[0].actor_in_battlefield) @xcam_x_destination = @target_battlers[0].x_pos * @target_battlers[0].zoom if @target_battlers[0] != nil @xcam_z_destination = 185 if @animation2_id > 0 and $data_animations[@animation2_id].position == 3 @xcam_x_destination = 0 @xcam_z_destination = 222 end end @wait_count = 20 end #-------------------------------------------------------------------------- alias xrxs_bp8_start_phase5 start_phase5 def start_phase5 @xcam_z_destination = 185 xrxs_bp8_start_phase5 end end #================================================= ============================= module RPG class Sprite < ::Sprite def animation_set_sprites(sprites, cell_data, position) for i in 0..15 sprite = sprites[i] pattern = cell_data[i, 0] if sprite == nil or pattern == nil or pattern == -1 sprite.visible = false if sprite != nil next end sprite.visible = true sprite.src_rect.set(pattern % 5 * 192, pattern / 5 * 192, 192, 192) if position == 3 if self.viewport != nil if $scene.is_a?(Scene_Battle) sprite.x = self.viewport.rect.width / 2 sprite.y = 304 else sprite.x = self.viewport.rect.width / 2 sprite.y = self.viewport.rect.height - 160 end else sprite.x = 320 sprite.y = 240 end else sprite.x = self.x - self.ox + self.src_rect.width / 2 sprite.y = self.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 exp=(exp) @exp = [[exp, 9999999].min, 0].max while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0 @level += 1 $d_new_skill = nil for j in $data_classes[@class_id].learnings if j.level == @level learn_skill(j.skill_id) skill = $data_skills[j.skill_id] $d_new_skill = skill.name end end end while @exp < @exp_list[@level] @level -= 1 end @hp = [@hp, self.maxhp].min @sp = [@sp, self.maxsp].min end #-------------------------------------------------------------------------- def now_exp return @exp - @exp_list[@level] end #-------------------------------------------------------------------------- def next_exp return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0 end end class Window_LevelUp < Window_Base #---------------------------------------------------------------- def initialize(actor, pos) @face = false @actor = actor y = (pos * 120) super(280, y, 360, 120) self.contents = Bitmap.new(width - 32, height - 32) self.back_opacity = 255 if $d_dum == false refresh end end #---------------------------------------------------------------- def dispose super end #---------------------------------------------------------------- def refresh self.contents.clear self.contents.font.size = 18 if @face == true draw_actor_face(@actor, 4, 0) else draw_actor_graphic(@actor, 50, 80) end draw_actor_name(@actor, 111, 0) draw_actor_level(@actor, 186, 0) show_next_exp = @actor.level == 99 ? "---" : "#{@actor.next_exp}" min_bar = @actor.level == 99 ? 1 : @actor.now_exp max_bar = @actor.level == 99 ? 1 : @actor.next_exp draw_slant_bar(115, 80, min_bar, max_bar, 190, 6, bar_color = Color.new(0, 100, 0, 255), end_color = Color.new(0, 255, 0, 255)) self.contents.draw_text(115, 24, 300, 32, "Exp:#{@actor.now_exp}") self.contents.draw_text(115, 48, 300, 32, "Sig.Nivel:" + show_next_exp) end #---------------------------------------------------------------- def level_up self.contents.font.color = system_color self.contents.draw_text(230, 48, 80, 32, "Subio de Nivel!") end #---------------------------------------------------------------- def update super end end #================================= class Window_EXP < Window_Base #---------------------------------------------------------------- def initialize(exp) super(0, 0, 280, 60) self.contents = Bitmap.new(width - 32, height - 32) self.back_opacity = 255 refresh(exp) end #---------------------------------------------------------------- def dispose super end #---------------------------------------------------------------- def refresh(exp) self.contents.clear self.contents.font.color = system_color self.contents.draw_text(0, 0, 150, 32, "Exp. Ganada:") self.contents.font.color = normal_color self.contents.draw_text(180, 0, 54, 32, exp.to_s, 2) end #---------------------------------------------------------------- def update super end end #================================= class Window_Money_Items < Window_Base #---------------------------------------------------------------- def initialize(money, treasures) @treasures = treasures super(0, 60, 280, 420) self.contents = Bitmap.new(width - 32, height - 32) self.back_opacity = 255 refresh(money) end #---------------------------------------------------------------- def dispose super end #---------------------------------------------------------------- def refresh(money) @money = money self.contents.clear self.contents.font.color = system_color self.contents.draw_text(4, 4, 100, 32, "Objetos ganados:") self.contents.font.color = normal_color y = 32 for item in @treasures draw_item_name(item, 4, y) y += 32 end cx = contents.text_size($data_system.words.gold).width self.contents.font.color = normal_color self.contents.draw_text(4, 340, 220-cx-2, 32, $game_party.gold.to_s, 2) self.contents.font.color = normal_color self.contents.draw_text(4, 300, 220-cx-2, 32, "+ " + @money.to_s, 2) self.contents.font.color = system_color self.contents.draw_text(124-cx, 340, cx + 100, 32, $data_system.words.gold, 2) end def update super end end class Scene_Battle alias raz_battle_report_main main alias raz_battle_report_be battle_end def main @lvup_window = [] @show_dummies = true raz_battle_report_main @lvup_window = nil @level_up = nil @ch_stats = nil @ch_compare_stats = nil Audio.me_stop end def battle_end(result) raz_battle_report_be(result) @status_window.visible = false @spriteset.dispose Graphics.transition if result == 0 display_lv_up(@exp, @gold, @treasures) loop do Graphics.update Input.update if Input.trigger?(Input::C) break end end trash_lv_up end end 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] @treasures = treasures @exp = exp @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 @phase5_wait_count = 10 end def update_phase5 if @phase5_wait_count > 0 @phase5_wait_count -= 1 if @phase5_wait_count == 0 $game_temp.battle_main_phase = false end return end battle_end(0) end def display_lv_up(exp, gold, treasures) $d_dum = false d_extra = 0 i = 0 for actor in $game_party.actors @lvup_window[i] = Window_LevelUp.new($game_party.actors[i], i) i += 1 end if @show_dummies == true $d_dum = true for m in i..3 @lvup_window[m] = Window_LevelUp.new(m, m) end end @exp_window = Window_EXP.new(exp) @m_i_window = Window_Money_Items.new(gold, treasures) @press_enter = nil gainedexp = exp @level_up = [0, 0, 0, 0] @d_new_skill = ["", "", "", ""] @d_breakout = false @m_i_window.refresh(gold) wait_for_OK @d_remember = $game_system.bgs_memorize Audio.bgs_play("Audio/SE/032-Switch01", 100, 300) max_exp = exp value = 28 if exp < value value = exp end if value == 0 value = 1 end for n in 0..gainedexp - (max_exp / value) exp -= (max_exp / value) if @d_breakout == false Input.update end 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 += (max_exp / value) if @d_breakout == false @lvup_window[i].refresh @exp_window.refresh(exp) end if actor.level > last_level @level_up[i] = 5 Audio.se_play("Audio/SE/056-Right02.ogg", 70, 150) if $d_new_skill @d_new_skill[i] = $d_new_skill end end if @level_up[i] == 0 @d_new_skill[i] = "" end if @level_up[i] > 0 @lvup_window[i].level_up end if Input.trigger?(Input::C) or exp <= 0 @d_breakout = true end end if @d_breakout == false if @level_up[i] >0 @level_up[i] -= 1 end Graphics.update end end if @d_breakout == true for i in 0...$game_party.actors.size actor = $game_party.actors[i] if actor.cant_get_exp? == false actor.exp += exp end end exp = 0 break end end Audio.bgs_stop @d_remember = $game_system.bgs_restore for i in 0...$game_party.actors.size @lvup_window[i].refresh end @exp_window.refresh(exp) Audio.se_play("Audio/SE/006-System06.ogg", 70, 150) $game_party.gain_gold(gold) @m_i_window.refresh(0) Graphics.update end def trash_lv_up i=0 for i in 0 ... 4 @lvup_window[i].visible = false end @exp_window.visible = false @m_i_window.visible = false @lvup_window = nil @exp_window = nil @m_i_window = nil end def wait_for_OK loop do Input.update Graphics.update if Input.trigger?(Input::C) break end end end end class Window_Base < Window def draw_actor_face(actor, x, y) bitmap = RPG::Cache.picture("Faces/" + actor.character_name) self.contents.blt(x, y, bitmap, Rect.new(0,0,96,96)) end #-------------------------------------------------------------------------- def draw_slant_bar(x, y, min, max, width = 152, height = 6, bar_color = Color.new(150, 0, 0, 255), end_color = Color.new(255, 255, 60, 255)) for i in 0..height self.contents.fill_rect(x + i, y + height - i, width + 1, 1, Color.new(50, 50, 50, 255)) end for i in 1..(height - 1) r = 100 * (height - i) / height + 0 * i / height g = 100 * (height - i) / height + 0 * i / height b = 100 * (height - i) / height + 0 * i / height a = 255 * (height - i) / height + 255 * i / height self.contents.fill_rect(x + i, y + height - i, width, 1, Color.new(r, b, g, a)) end for i in 1..( (min / max.to_f) * width - 1) for j in 1..(height - 1) r = bar_color.red * (width - i) / width + end_color.red * i / width g = bar_color.green * (width - i) / width + end_color.green * i / width b = bar_color.blue * (width - i) / width + end_color.blue * i / width a = bar_color.alpha * (width - i) / width + end_color.alpha * i / width self.contents.fill_rect(x + i + j, y + height - j, 1, 1, Color.new(r, g, b, a)) end end end end |
|
#110
|
||||
|
||||
|
seria mucho mejor que utilizaran la opción [code] para los script...
|
![]() |
| Herramientas | |
| Desplegado | |
|
|
Temas Similares para: Rpg Maker Xp -TEMA OFICIAL-
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Tema oficial de pedidos de roms de SNES | felipe | Super Nintendo | 92 | 30-dic-2007 23:11 |
| Tema Para Pokemon Mundo Misterioso 2 | Patosk8 | Nintendo DS | 9 | 23-sep-2007 16:17 |
| Tema Oficial Pokemon Mundo Misterioso 2 | Maverik64 | Nintendo DS | 1 | 05-sep-2007 10:55 |
| Si vieron algun tema que debe ser cerrado avisen | Sei-Sama | Cafetería | 2 | 04-sep-2007 03:18 |
| [Tutorial] F.A.Q. General del Foro | Loomitz | Ayuda | 7 | 15-ago-2007 03:02 |