#============================================================================== # ■ Scene_Title (Version Pokémon) # Pokemon Script Project - Krosk # 01/08/07 #------------------------------------------------------------------------------ # Scène modifiable #------------------------------------------------------------------------------ # Intègre le menu de chargement #------------------------------------------------------------------------------
class Scene_Title def main # Redéfinition # if $BTEST # battle_test # return #end # === Splashscreen --- Ce sont mes crédits, laissez le svp ;) # Graphics.freeze @splash = Sprite.new @splash.bitmap = RPG::Cache.title("ecrantitre2.png") #Graphics.transition(10) Graphics.freeze Graphics.transition(1) compteur = 0 tr = 1 until Input.trigger?(Input::C) Input.update Graphics.update compteur += tr if compteur == 20 # valeur modifiable pour faire varier la longueur de l'alternance @splash.bitmap = RPG::Cache.title("ecrantitre2.png") tr = -1 elsif compteur == 0 @splash.bitmap = RPG::Cache.title("ecrantitre.png") tr = 1 end end Graphics.freeze @splash.dispose Graphics.transition(10) Graphics.freeze # === Fin de Splashscreen #@splash = Sprite.new #@splash.bitmap = RPG::Cache.title("ecrantitre.png") #Graphics.transition(10) #Graphics.freeze #Graphics.transition(50) #Graphics.freeze #@splash.dispose #Graphics.transition(10) #Graphics.freeze $data_actors = load_data("Data/Actors.rxdata") $data_classes = load_data("Data/Classes.rxdata") $data_skills = load_data("Data/Skills.rxdata") $data_items = load_data("Data/Items.rxdata") $data_weapons = load_data("Data/Weapons.rxdata") $data_armors = load_data("Data/Armors.rxdata") $data_enemies = load_data("Data/Enemies.rxdata") $data_troops = load_data("Data/Troops.rxdata") $data_states = load_data("Data/States.rxdata") $data_animations = load_data("Data/Animations.rxdata") $data_tilesets = load_data("Data/Tilesets.rxdata") $data_common_events = load_data("Data/CommonEvents.rxdata") $data_system = load_data("Data/System.rxdata") $picture_data = load_data("Data/Library.rxdata") $game_system = Game_System.new @sprite = Sprite.new @sprite.bitmap = RPG::Cache.title($data_system.title_name) number = 0 # Nombre de cadres de sauvegarde à générer for i in 0..2 if FileTest.exist?("Save#{i+1}.rxdata") number += 1 end end @number = number @new_game_window = Window_Base.new(30, 30 + 83*@number, 580, 80) @new_game_window.contents = Bitmap.new(548, 48) set_window(@new_game_window) @new_game_window.contents.draw_text(9,3,548,48,"NOUVELLE PARTIE") @save_game_window_list = [] for i in 1..@number window = Window_Base.new(30, 30 + 83*(i-1), 580, 80) window.contents = Bitmap.new(548, 48) @save_game_window_list.push(window) end @index = 0 @background = Plane.new(Viewport.new(0,0,640,480)) @background.bitmap = RPG::Cache.picture("fondsaved.png") @background.z -= 10 $game_system.bgm_play($data_system.title_bgm) Audio.me_stop Audio.bgs_stop refresh_all Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end Graphics.freeze @new_game_window.dispose @background.dispose for window in @save_game_window_list window.dispose end end def update if Input.trigger?(Input::DOWN) @index += @index == @number ? 0 : 1 refresh_all end if Input.trigger?(Input::UP) @index -= @index == 0 ? 0 : 1 refresh_all end if Input.trigger?(Input::C) case @index when @number # Nouveau jeu command_new_game else # Chargement $game_temp = Game_Temp.new on_decision("Save#{@index + 1}.rxdata") end end end def refresh_all for i in 0..@number-1 if i < @index @save_game_window_list[i].opacity = 128 @save_game_window_list[i].y = 30 + 83*i @save_game_window_list[i].height = 80 @save_game_window_list[i].contents = Bitmap.new(548, 48) set_window(@save_game_window_list[i]) @save_game_window_list[i].contents.draw_text(9, 3, 530, 48, "CONTINUER PARTIE "+(i+1).to_s) elsif i == @index @save_game_window_list[i].opacity = 255 @save_game_window_list[i].y = 30 + 83*i @save_game_window_list[i].height = 163 @save_game_window_list[i].contents = Bitmap.new(548, 131) set_window(@save_game_window_list[i]) @save_game_window_list[i].contents.draw_text(9, 3, 530, 48, "CONTINUER PARTIE "+(i+1).to_s) @filename = "Save#{i + 1}.rxdata" list = read_preview(@filename) data = list[0] time_sec = list[1] hour = (time_sec / 3600).to_s minute = "00" minute += ((time_sec%3600)/60).to_s minute = minute[minute.size-2, 2] time = hour + ":" + minute name = data[0].to_s id = data[1].to_s captured = data[2].to_s @save_game_window_list[i].contents.draw_text(9, 42, 252, 48, "NOM:") @save_game_window_list[i].contents.draw_text(9, 42, 252, 48, name, 2) @save_game_window_list[i].contents.draw_text(285, 42, 252, 48, "DUREE:") @save_game_window_list[i].contents.draw_text(285, 42, 252, 48, time, 2) @save_game_window_list[i].contents.draw_text(9, 81, 252, 48, "POKéDEX:") @save_game_window_list[i].contents.draw_text(9, 81, 252, 48, captured, 2) elsif i > @index @save_game_window_list[i].opacity = 128 @save_game_window_list[i].y = 30 + 83*i + 83 @save_game_window_list[i].height = 80 @save_game_window_list[i].contents = Bitmap.new(548, 48) set_window(@save_game_window_list[i]) @save_game_window_list[i].contents.draw_text(9, 3, 548, 48, "CONTINUER PARTIE "+(i+1).to_s) end end if @index == @number @new_game_window.opacity = 255 @new_game_window.y = 30 + 83*@number else @new_game_window.opacity = 128 @new_game_window.y = 30 + 83*(@number+1) end end def set_window(window) window.contents.font.name = $fontface window.contents.font.size = $fontsizebig window.contents.font.color = window.normal_color end # -------------------------------------------------------- # Chargement # -------------------------------------------------------- def read_preview(filename) file = File.open(filename, "r") time_stamp = file.mtime characters = Marshal.load(file) frame_count = Marshal.load(file) game_system = Marshal.load(file) game_switches = Marshal.load(file) game_variables = Marshal.load(file) total_sec = frame_count / Graphics.frame_rate # Non utilisé game_self_switches = Marshal.load(file) game_screen = Marshal.load(file) game_actors = Marshal.load(file) game_party = Marshal.load(file) game_troop = Marshal.load(file) game_map = Marshal.load(file) game_player = Marshal.load(file) # ------------ read_data = Marshal.load(file) file.close return [read_data, total_sec] end def read_save_data(file) characters = Marshal.load(file) Graphics.frame_count = Marshal.load(file) $game_system = Marshal.load(file) $game_switches = Marshal.load(file) $game_variables = Marshal.load(file) $game_self_switches = Marshal.load(file) $game_screen = Marshal.load(file) $game_actors = Marshal.load(file) $game_party = Marshal.load(file) $game_troop = Marshal.load(file) $game_map = Marshal.load(file) $game_player = Marshal.load(file) $read_data = Marshal.load(file) $trainer_code = Marshal.load(file) $trainer_id = Marshal.load(file) $trainer_name = Marshal.load(file) $trainer_battler = Marshal.load(file) $pokemon_party = Marshal.load(file) $random_encounter = Marshal.load(file) $data_pokedex = Marshal.load(file) $data_storage = Marshal.load(file) $battle_var = Marshal.load(file) $existing_pokemon = Marshal.load(file) $string = Marshal.load(file) $map_link = $read_data[3] != nil ? $read_data[3] : {} if $game_system.magic_number != $data_system.magic_number $game_map.setup($game_map.map_id) $game_player.center($game_player.x, $game_player.y) end $game_party.refresh end def on_decision(filename) unless FileTest.exist?(filename) $game_system.se_play($data_system.buzzer_se) return end $game_system.se_play($data_system.load_se) file = File.open(filename, "rb") read_save_data(file) file.close $game_system.bgm_play($game_system.playing_bgm) $game_system.bgs_play($game_system.playing_bgs) $game_map.update $scene = Scene_Map.new end alias alias_command_new_game command_new_game def command_new_game $map_link = {} alias_command_new_game #----------------------------------------------------- # Variables créées automatiquement au début du jeu # Elles sont absolument nécessaires #----------------------------------------------------- $pokemon_party = POKEMON_S::Pokemon_Party.new $data_storage = [[0]] $pokemon_party.create_box $trainer_code = rand(2**32) $trainer_id = ($trainer_code % (2**16)) $trainer_id = sprintf("%05d", $trainer_id) $trainer_name = $game_actors[1].name $trainer_battler = $game_actors[1].battler_name $random_encounter = Array.new(7) $random_encounter[0] = 0 $battle_var = POKEMON_S::Pokemon_Battle_Variable.new $existing_pokemon = [] $string = [] end end
|