Schermata di vittoria dopo la battaglia
DescrizioneLo script inserisce automaticamente la classica schermata di vittoria (dove ci sono scritti exp, oggetti e soldi ottenuti) dopo aver vinto una battaglia.
Autore
Utente spagnolo
(non so chi)Allegati
Istruzioni per l'uso
Aprite una nuova classe sopra Main e incollateci il codice scritto qua sotto. Dovrete inserire anche uno sfondo (chiamato per forza black.jpg) che va importato in picture.
Spoiler
class Window_EXPTitle < Window_Base def initialize super(0, 0, 640, 64) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = "Arial" self.contents.font.size = 24 self.visible = false refresh end def refresh self.contents.clear self.contents.draw_text(4,0,640,32,"Esperienza e oggetti ottenuti") end end class Window_EXPPlayer1 < Window_Base def initialize(exp) @exp = exp super(0, 64, 320, 100) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $fontface self.contents.font.size = 17 self.z += 10 self.visible = false refresh end def refresh self.contents.clear actor = $game_party.actors[0] draw_actor_name(actor, 4, 0) draw_actor_level(actor, 4, 32) draw_actor_rcvexp(actor, 100, 0, @exp) draw_actor_curexp(actor, 100, 22) draw_actor_nxtexp(actor, 100, 44) end end class Window_EXPPlayer2 < Window_Base def initialize(exp) @exp = exp super(0, 164, 320, 100) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $fontface self.contents.font.size = 17 self.z += 10 self.visible = false refresh end def refresh self.contents.clear actor = $game_party.actors[1] draw_actor_name(actor, 4, 0) draw_actor_level(actor, 4, 32) draw_actor_rcvexp(actor, 100, 0, @exp) draw_actor_curexp(actor, 100, 22) draw_actor_nxtexp(actor, 100, 44) end end class Window_EXPPlayer3 < Window_Base def initialize(exp) @exp = exp super(0, 264, 320, 100) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $fontface self.contents.font.size = 17 self.z += 10 self.visible = false refresh end def refresh self.contents.clear actor = $game_party.actors[2] draw_actor_name(actor, 4, 0) draw_actor_level(actor, 4, 32) draw_actor_rcvexp(actor, 100, 0, @exp) draw_actor_curexp(actor, 100, 22) draw_actor_nxtexp(actor, 100, 44) end end class Window_EXPPlayer4 < Window_Base def initialize(exp) @exp = exp super(0, 364, 320, 100) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $fontface self.contents.font.size = 17 self.z += 10 self.visible = false refresh end def refresh self.contents.clear actor = $game_party.actors[3] draw_actor_name(actor, 4, 0) draw_actor_level(actor, 4, 32) draw_actor_rcvexp(actor, 100, 0, @exp) draw_actor_curexp(actor, 100, 22) draw_actor_nxtexp(actor, 100, 44) end end class Window_EXPBlank2 < Window_Base def initialize super(0, 192, 320, 100) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $fontface self.contents.font.size = 17 self.windowskin = nil self.z += 10 self.visible = false end end class Window_EXPBlank3 < Window_Base def initialize super(0, 320, 320, 100) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $fontface self.contents.font.size = 17 self.windowskin = nil self.z += 10 self.visible = false end end class Window_EXPBlank4 < Window_Base def initialize super(0, 320, 320, 100) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $fontface self.contents.font.size = 17 self.windowskin = nil self.z += 10 self.visible = false end end class Window_Background < Window_Base def initialize super(-16,-16,672,512) self.opacity = 0 self.z = 9 self.visible = false self.contents = Bitmap.new(width - 32, height - 32) icon_bitmap = RPG::Cache.picture("black.png") # Remplaza esto con el nombre de la imagen que quiers poner, recuerda que ha de ser de 640x480 self.contents.blt(0, 0, icon_bitmap, icon_bitmap.rect) icon_bitmap.dispose end end class Scene_Battle 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 s2 = $data_system.words.skill s3 = $data_system.words.guard s4 = $data_system.words.item @actor_command_window = Window_Command.new(160, [s1, s2, s3, s4]) @actor_command_window.y = 160 @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 if @titleresult_window != nil @titleresult_window.dispose @p1result_window.dispose @p2result_window.dispose @p3result_window.dispose @p4result_window.dispose @background_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 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(gold, treasures) @titleresult_window = Window_EXPTitle.new case $game_party.actors.size when 1 @p1result_window = Window_EXPPlayer1.new(exp) @p2result_window = Window_EXPBlank2.new @p3result_window = Window_EXPBlank3.new @p4result_window = Window_EXPBlank4.new when 2 @p1result_window = Window_EXPPlayer1.new(exp) @p2result_window = Window_EXPPlayer2.new(exp) @p3result_window = Window_EXPBlank3.new @p4result_window = Window_EXPBlank4.new when 3 @p1result_window = Window_EXPPlayer1.new(exp) @p2result_window = Window_EXPPlayer2.new(exp) @p3result_window = Window_EXPPlayer3.new(exp) @p4result_window = Window_EXPBlank4.new when 4 @p1result_window = Window_EXPPlayer1.new(exp) @p2result_window = Window_EXPPlayer2.new(exp) @p3result_window = Window_EXPPlayer3.new(exp) @p4result_window = Window_EXPPlayer4.new(exp) end @background_window = Window_Background.new @phase5_wait_count = 60 end def update_phase5 if @phase5_wait_count > 0 @phase5_wait_count -= 1 if @phase5_wait_count == 0 @titleresult_window.visible = true @p1result_window.visible = true @p2result_window.visible = true @p3result_window.visible = true @p4result_window.visible = true @result_window.visible = true @background_window.visible = true $game_temp.battle_main_phase = false @status_window.refresh end return end if Input.trigger?(Input::C) $game_switches[0001] = true battle_end(0) end end end class Window_BattleResult < Window_Base def initialize(gold, treasures) @gold = gold @treasures = treasures super(320, 64, 320, 400) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $fontface self.contents.font.size = 17 self.z += 10 self.visible = false refresh end def refresh self.contents.clear x = 4 self.contents.font.color = normal_color cx = contents.text_size(@gold.to_s).width self.contents.draw_text(x, 0, cx, 32, @gold.to_s) x += cx + 4 self.contents.font.color = system_color self.contents.draw_text(x, 0, 128, 32, $data_system.words.gold) y = 32 for item in @treasures draw_item_name(item, 4, y) y += 32 end end end class Window_Base #- def draw_actor_rcvexp(actor,x,y,exp) self.contents.font.color = Color.new(255,255,128,255) self.contents.draw_text(x,y,288,32,"Exp.") self.contents.font.color = normal_color self.contents.draw_text(x+60,y,80,32,exp.to_s,2) end #- def draw_actor_curexp(actor,x,y) self.contents.font.color = Color.new(255,255,128,255) self.contents.draw_text(x,y,288,32,"Attuale") self.contents.font.color = normal_color self.contents.draw_text(x+60,y,80,32,actor.exp_s,2) end #- def draw_actor_nxtexp(actor,x,y) self.contents.font.color = Color.new(255,255,128,255) self.contents.draw_text(x,y,288,32,"Pross.") self.contents.font.color = normal_color self.contents.draw_text(x+60,y,80,32,actor.next_exp_s,2) end end class Window_BattleStatus < Window_Base def initialize super(0, 320, 640, 160) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $fontface self.contents.font.size = 17 self.z = 8 @level_up_flags = [false, false, false, false] refresh end end