Sujet n°2837
Posté par poussi le 10 Fév - 13:05 (2009)
Titre : sa beug - ok
bon salut voila sa bug quand je sauvegarde le jeux se plante et il se ferme tous seul donc voila se qu'il ya dan log

---------- Erreur de script : Scene_Title ----------
----- Type
EOFError

----- Message
End of file reached

----- Position dans Scene_Title
Ligne 458

----- Backtrace
Script : Scene_Title | Ligne : 458 | Méthode : in `load'
Script : Scene_Title | Ligne : 458 | Méthode : in `read_preview'
Script : Scene_Title | Ligne : 400 | Méthode : in `refresh_all'
Script : Scene_Title | Ligne : 384 | Méthode : in `each'
Script : Scene_Title | Ligne : 384 | Méthode : in `refresh_all'
Script : Scene_Title | Ligne : 313 | Méthode : in `main'
Script : Main | Ligne : 57

Posté par poussi le 10 Fév - 13:06 (2009)
oops et quand je le relance bon bug

Posté par Newtiteuf le 10 Fév - 15:26 (2009)
As-tu modifié un script ?

Posté par Sphinx le 10 Fév - 15:45 (2009)
>> tu utilises une save d'une version qui n'est pas compatible ac ta version Clin d'œil foireux


l'erreur EOF signifie en gros, fin du fichier atteint, plus possible de faire ce que tu demandes.
>> Ca le fait très généralement sur les saves, lorsqu'on a ajouté / retiré une donnée à la sauvegarde ou au chargement Clin d'œil foireux

>> Si c'est une save, alors :
- sur quelle version de PSP l'as tu créée ?
- sur quelle version de PSP essaies tu de l'ouvrir ?

Posté par poussi le 10 Fév - 20:03 (2009)
la meme
ni psp 4G+

ni psp 0.7

avec les deux sa bug

c'est le sav de chacune

Posté par Krosk le 10 Fév - 20:21 (2009)
Bah tu supprime toutes les sauvegardes (dans le dossier de ton jeu, les Sauvegarde...rxdata et SaveAuto.rexdata), et c'est bon.

Posté par poussi le 10 Fév - 21:30 (2009)
euh mais sa beug au mement de la sauvegarde le jeux se ferme

Posté par Krosk le 10 Fév - 21:59 (2009)
Tu a mis un script qui change les sauvegardes, dans ce cas.

Posté par poussi le 10 Fév - 22:19 (2009)
nn j'ai rien toucher

Posté par Krosk le 10 Fév - 22:28 (2009)
supprime tes sauvegardes manuellement en allant dans le dossier de ton jeu, par l'explorateur windows. Ensuite, si tu peux faire une nouvelle partie et sauvegarder, c'est bon. Si tu peux pas, récupère un Script.rxdata propre à partir d'un projet de PSP0.7.

Posté par Sphinx le 10 Fév - 22:35 (2009)
1) version de PSP que tu utilises
2) fichier de logs

Posté par poussi le 10 Fév - 22:48 (2009)
psp la derniere ( pas 4g+
et le log



---------- Erreur de script : Scene_Title ----------
----- Type
EOFError

----- Message
End of file reached

----- Position dans Scene_Title
Ligne 477

----- Backtrace
Script : Scene_Title | Ligne : 477 | Méthode : in `load'
Script : Scene_Title | Ligne : 477 | Méthode : in `read_save_data'
Script : Scene_Title | Ligne : 518 | Méthode : in `on_decision'
Script : Scene_Title | Ligne : 378 | Méthode : in `update'
Script : Scene_Title | Ligne : 319 | Méthode : in `main'
Script : Scene_Title | Ligne : 316 | Méthode : in `loop'
Script : Scene_Title | Ligne : 323 | Méthode : in `main'
Script : Main | Ligne : 57


krosk sa marche po

Posté par Sphinx le 10 Fév - 23:11 (2009)
pourtant le script de save d'origine de 0.7 marche nickel :shock: (je le sais pour l'avoir utilisé suffisamment de fois... ^_^')


>> t'es sur de ne rien avoir changé dans un script ? (soit Scene_Title, soit Pokemon_Save)

Posté par poussi le 11 Fév - 11:48 (2009)
nn tien regarde

 
Code:

#==============================================================================
# ■ Scene_Save (Version Pokémon)
# Pokemon Script Project - Krosk
# 01/08/07
#------------------------------------------------------------------------------
# Scène à ne pas modifier de préférence
#------------------------------------------------------------------------------
module POKEMON_S
  class Pokemon_Save
    def initialize
      Graphics.freeze
      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
      @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
     
      # Cadre nouvelle sauvegarde
      @new_save_window = Window_Base.new(30, 30 + 83*@number, 580, 80)
      @new_save_window.contents = Bitmap.new(548, 48)
      set_window(@new_save_window)
      @new_save_window.contents.draw_text(9, 3, 548, 48, "NOUVEAU FICHIER")
      if SAVEBOUNDSLOT
        @new_save_window.y = 30
      end
     
      captured = 0
      for i in 1..$data_pokedex.length-1
        if $data_pokedex[i][1]
          captured += 1
        end
      end
      $read_data = [Player.name, Player.id, captured, $map_link]
     
      @index = 0
     
      latest_time = Time.at(0)
      for i in 0..3
        filename = "Save#{i + 1}.rxdata"
        if FileTest.exist?(filename)
          file = File.open(filename, "r")
          if file.mtime > latest_time
            latest_time = file.mtime
            @index = i
          end
          file.close
        end
      end
     
      if SAVEBOUNDSLOT
        @index = POKEMON_S::_SAVESLOT
        if @index != @number
          @new_save_window.visible = false
        end
      end
     
    end
   
    def main
      refresh_all
      if not SAVEBOUNDSLOT
        @background = Plane.new(Viewport.new(0,0,640,480))
        @background.bitmap = RPG::Cache.picture("fondsaved.png")
        @background.z -= 10
      else
        @background = Spriteset_Map.new
      end
      Graphics.transition
      loop do
        Graphics.update
        Input.update
        update
        if $scene != self
          break
        end
      end
      Graphics.freeze
      for window in @save_game_window_list
        window.dispose
      end
      @new_save_window.dispose
      @background.dispose
    end
   
    def update
      if SAVEBOUNDSLOT
        @background.update
      end
     
      if Input.trigger?(Input::DOWN) and not SAVEBOUNDSLOT
        @index += @index == @number ? 0 : @index == 2 ? 0 : 1
        refresh_all
      end
     
      if Input.trigger?(Input::UP) and not SAVEBOUNDSLOT
        @index -= @index == 0 ? 0 : 1
        refresh_all
      end
     
      if Input.trigger?(Input::C)
        if @index == @number # Nouvelle sauvegarde
          $game_system.se_play($data_system.save_se)
          filename = "Save#{@number + 1}.rxdata"
          file = File.open(filename, "wb")
          write_save_data(file)
          file.close
          # イベントから呼び出されている場合
          if $game_temp.save_calling
            # セーブ呼び出しフラグをクリア
            $game_temp.save_calling = false
            # マップ画面に切り替え
            $scene = Scene_Map.new
            return
          end
          # メニュー画面に切り替え
          $scene = POKEMON_S::Pokemon_Menu.new(4)
        else
          decision = draw_choice
          if decision
            $game_system.se_play($data_system.save_se)
            filename = "Save#{@index + 1}.rxdata"
            file = File.open(filename, "wb")
            write_save_data(file)
            file.close
            # イベントから呼び出されている場合
            if $game_temp.save_calling
              # セーブ呼び出しフラグをクリア
              $game_temp.save_calling = false
              # マップ画面に切り替え
              $scene = Scene_Map.new
              return
            end
            # メニュー画面に切り替え
            $scene = POKEMON_S::Pokemon_Menu.new(4)
          else
            return
          end
        end
      end
     
      if Input.trigger?(Input::B)
        if $game_temp.save_calling
          $game_temp.save_calling = false
        end
        $scene = POKEMON_S::Pokemon_Menu.new(4)
        return
      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, "SAUVEGARDER PARTIE "+(i+1).to_s)
          if SAVEBOUNDSLOT
            @save_game_window_list[i].visible = false
          end
        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])
          if SAVEBOUNDSLOT
            @save_game_window_list[i].contents.draw_text(9, 3, 530, 48, "SAUVEGARDER PARTIE")
            @save_game_window_list[i].y = 30
          else
            @save_game_window_list[i].contents.draw_text(9, 3, 530, 48, "SAUVEGARDER PARTIE "+(i+1).to_s)
          end
          @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, "ID:")
          @save_game_window_list[i].contents.draw_text(285, 42, 252, 48, id , 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)
          @save_game_window_list[i].contents.draw_text(285, 81, 252, 48, "DUREE:")
          @save_game_window_list[i].contents.draw_text(285, 81, 252, 48, time, 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, "SAUVEGARDER PARTIE "+(i+1).to_s)
          if SAVEBOUNDSLOT
            @save_game_window_list[i].visible = false
          end
        end
      end
      if @index == @number and @number < 3
        @new_save_window.opacity = 255
        @new_save_window.y = 30 + 83*@number
      elsif @number < 3
        @new_save_window.opacity = 128
        @new_save_window.y = 30 + 83*(@number+1)
      else
        @new_save_window.visible = false
      end
    end
   
    def set_window(window)
      window.contents.font.name = $fontface
      window.contents.font.size = $fontsizebig
      window.contents.font.color = window.normal_color
    end
   
    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 write_save_data(file)
      characters = []
      for i in 0...$game_party.actors.size
        actor = $game_party.actors[i]
        characters.push([actor.character_name, actor.character_hue])
      end
     
      Marshal.dump(characters, file)
     
      Marshal.dump(Graphics.frame_count, file)
     
      $game_system.save_count += 1
      $game_system.magic_number = $data_system.magic_number
     
      Marshal.dump($game_system, file)
      Marshal.dump($game_switches, file)
      Marshal.dump($game_variables, file)
      Marshal.dump($game_self_switches, file)
      Marshal.dump($game_screen, file)
      Marshal.dump($game_actors, file)
      Marshal.dump($game_party, file)
      Marshal.dump($game_troop, file)
      Marshal.dump($game_map, file)
      Marshal.dump($game_player, file)
      Marshal.dump($read_data, file)
      #Marshal.dump(Player.code, file)
      #Marshal.dump(Player.id, file)
      #Marshal.dump(Player.name, file)
      #Marshal.dump(Player.battler , file)
      Marshal.dump($pokemon_party, file)
      Marshal.dump($random_encounter, file)
      Marshal.dump($data_pokedex, file)
      Marshal.dump($data_storage, file)
      Marshal.dump($battle_var, file)
      Marshal.dump($existing_pokemon, file)
      Marshal.dump($string, file)
    end
   
    def draw_choice
      @command = Window_Command.new(120, ["OUI", "NON"], $fontsizebig)
      @command.x = 517
      @command.y = 359
      loop do
        Graphics.update
        Input.update
        @command.update
        if Input.trigger?(Input::C) and @command.index == 0
          @command.dispose
          @command = nil
          Input.update
          return true
        end
        if Input.trigger?(Input::C) and @command.index == 1
          @command.dispose
          @command = nil
          Input.update
          return false
        end
      end
    end
  end
end

class Interpreter
  def forcer_sauvegarde
    if not SAVEBOUNDSLOT
      return
    end
    captured = 0
    for i in 1..$data_pokedex.length-1
      if $data_pokedex[i][1]
        captured += 1
      end
    end
    $read_data = [Player.name, Player.id, captured, $map_link]
    filename = "Save#{POKEMON_S::_SAVESLOT + 1}.rxdata"
    file = File.open(filename, "wb")
    characters = []
    for i in 0...$game_party.actors.size
      actor = $game_party.actors[i]
      characters.push([actor.character_name, actor.character_hue])
    end
    Marshal.dump(characters, file)
    Marshal.dump(Graphics.frame_count, file)
    $game_system.save_count += 1
    $game_system.magic_number = $data_system.magic_number
    game_system = $game_system.clone
    game_system.reset_interpreter
    Marshal.dump(game_system, file)
    Marshal.dump($game_switches, file)
    Marshal.dump($game_variables, file)
    Marshal.dump($game_self_switches, file)
    Marshal.dump($game_screen, file)
    Marshal.dump($game_actors, file)
    Marshal.dump($game_party, file)
    Marshal.dump($game_troop, file)
    Marshal.dump($game_map, file)
    Marshal.dump($game_player, file)
    Marshal.dump($read_data, file)
    Marshal.dump($pokemon_party, file)
    Marshal.dump($random_encounter, file)
    Marshal.dump($data_pokedex, file)
    Marshal.dump($data_storage, file)
    Marshal.dump($battle_var, file)
    Marshal.dump($existing_pokemon, file)
    Marshal.dump($string, file)
    file.close
  end
end 


 
Code:
#==============================================================================
# ■ Scene_Title (Version Pokémon)
# Pokemon Script Project - Krosk
# 01/08/07
#------------------------------------------------------------------------------
# Scène modifiable
#------------------------------------------------------------------------------
# Intègre le menu de chargement
#------------------------------------------------------------------------------


class Scene_Title
  include POKEMON_S
 
  def main
    if $BTEST
      battle_test
      return
    end
   
    if FileTest.exist?("SaveAuto.rxdata")
      print("Sauvegarde de secours détectée.\n\nAppuyez sur Entrée, puis sur Echap pour charger, ou Entrée pour continuer.")
      loop do
        Input.update
        if Input.trigger?(Input::C)
          File.delete("SaveAuto.rxdata")
          break
        end
        if Input.trigger?(Input::B)
          @auto_load = true
          break
        end
      end
    end
   
    if $game_system == nil
      $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
    end
   
    if not @auto_load and not MAPINTRO
   
      # -----------------------------------------------------------------
      #     La scène d'intro commence ici (non MAPINTRO)
      # -----------------------------------------------------------------
      # Elle est bien sûr modifiable à votre goût.
      # -----------------------------------------------------------------
      view = Viewport.new(0,0,640,480)
      view.z = -5
      #view = Viewport.new(0,25,640,430)
      #view.z = 0
      background = Plane.new(view)
      background.bitmap = RPG::Cache.title("Opening2.jpg")
      #background.oy += 25
      background.z = 0
      background.tone = Tone.new(0,0,0,255)
     
      #view = Viewport.new(0,0,640,480)
      #view.z = -5
      #background_bis = Plane.new(view)
      #background_bis.bitmap = RPG::Cache.title("Opening2.jpg")
      #background_bis.z = -5
     
      band_top = Sprite.new
      band_top.bitmap = RPG::Cache.title("Opening3.png")
      band_top.z = 5
      band_bottom = Sprite.new
      band_bottom.bitmap = RPG::Cache.title("Opening3.png")
      band_bottom.z = 5
      band_bottom.y = 450
     
      band_mid = Plane.new(Viewport.new(0,0,640,480))
      band_mid.bitmap = RPG::Cache.title("Opening4.png")
      band_mid.z = 5
     
      middle = Sprite.new
      middle.bitmap = RPG::Cache.title("Opening1.png")
      middle.z = 2
     
      title1 = Sprite.new
      title1.bitmap = RPG::Cache.title("Opening6.png")
      title1.z = 3
      title1.opacity = 0
      title1.color = Color.new(255,255,255,255)
     
      title2 = Sprite.new
      title2.bitmap = RPG::Cache.title("Opening7.png")
      title2.z = 4
      title2.opacity = 0
      title2.color = Color.new(255,255,255,255)
     
      flash = Sprite.new
      flash.bitmap = RPG::Cache.title("Opening8.png")
      flash.z = 10
      flash.opacity = 0
     
      mid = Sprite.new
      mid.bitmap = RPG::Cache.title("Opening5.png")
      mid.z = 5
      mid.visible = false
     
      screen = Sprite.new
      screen.bitmap = RPG::Cache.title("Opening10.png")
      screen.z = 2
      screen.visible = false
     
      start = Sprite.new
      start.bitmap = RPG::Cache.title("Opening11.png")
      start.z = 5
      start.visible = false
     
      Graphics.transition(5)
     
      $game_system.bgm_play($data_system.title_bgm)
      Audio.me_stop
      Audio.bgs_stop
     
      timer = 0
      loop do
        Graphics.update
        Input.update
       
        timer += 1
        background.ox -= 12
        #background_bis.ox += 6
       
        if timer == 210
          background.tone.gray = 0
        end
       
        if timer > 210 and background.tone.red > 0
          background.tone.red -= 25
          background.tone.green -= 25
        end
         
        if timer > 210 and timer % (150 + rand(50)) == 0
          background.tone.red = background.tone.green = 250
        end
       
        if flash.opacity > 0
          flash.opacity -= 15
        end
       
        if timer > 5 and not band_top.disposed?
          band_top.x += 13
          if band_top.x > 640
            band_top.dispose
          end
        end
       
        if timer > 73 and not band_bottom.disposed?
          band_bottom.x -= 13
          if band_bottom.x < -640
            band_bottom.dispose
          end
        end
       
        if timer > 150 and not band_mid.disposed?
          band_mid.ox -= 20
          if timer > 210
            band_mid.dispose
            mid.visible = true
          end
        end
       
        if timer > 210 and not title1.disposed? and title1.opacity < 255
          title1.opacity += 15
          title1.color.alpha -= 15
        end
       
        if timer > 240 and not title1.disposed? and title1.opacity == 255
          title1.color.alpha += 15
        end
       
        if timer == 270
          flash.opacity = 255
          title1.dispose
          mid.dispose
          middle.dispose
          screen.visible = true
        end
       
        if timer > 270 and not title2.disposed? and title2.opacity < 255
          title2.opacity += 15
          title2.color.alpha -= 15
          if title2.opacity >= 255
            title2.dispose
          end
        end
       
        if timer > 290 and timer%20 == 0
          start.visible = !start.visible
        end
       
        if Input.trigger?(Input::C)
          $game_system.se_play($data_system.decision_se)
          break
        end
       
        if timer > 3750
          Audio.bgm_fade(1000*5)
        end
       
      end
     
      Graphics.freeze
      background.dispose if not background.disposed?
      #background_bis.dispose if not background_bis.disposed?
      band_top.dispose if not band_top.disposed?
      band_bottom.dispose if not band_bottom.disposed?
      band_mid.dispose if not band_mid.disposed?
      mid.dispose if not mid.disposed?
      middle.dispose if not middle.disposed?
      title1.dispose if not title1.disposed?
      title2.dispose if not title2.disposed?
      flash.dispose if not flash.disposed?
      start.dispose if not start.disposed?
      screen.dispose if not screen.disposed?
      Graphics.transition
      Graphics.freeze
     
      Audio.bgm_stop
     
      # -----------------------------------------------------------------
      #     Fin de la scène d'intro
      # -----------------------------------------------------------------
   
    elsif MAPINTRO.type == Array and $_temp_map_intro == nil
      $_temp_map_intro = true
      $map_link = {}
      Audio.bgm_stop
      Graphics.frame_count = 0
      $game_temp          = Game_Temp.new
      $game_system        = Game_System.new
      $game_switches      = Game_Switches.new
      $game_variables     = Game_Variables.new
      $game_self_switches = Game_SelfSwitches.new
      $game_screen        = Game_Screen.new
      $game_actors        = Game_Actors.new
      $game_party         = Game_Party.new
      $game_troop         = Game_Troop.new
      $game_map           = Game_Map.new
      $game_player        = Game_Player.new
      # ---- Pas forcément nécessaire
      $pokemon_party = POKEMON_S::Pokemon_Party.new
      $data_storage = [[0]]
      $pokemon_party.create_box
      Player.set_trainer_code(rand(2**32))
      $random_encounter = Array.new(7)
      $random_encounter[0] = 0
      $battle_var = POKEMON_S::Pokemon_Battle_Variable.new
      $existing_pokemon = []
      $string = []
      POKEMON_S::set_SAVESLOT = @index
      Player.trainer_trade_code
      # ---- Pas forcément nécessaire
      $game_party.setup_starting_members
      $game_map.setup(MAPINTRO[0])
      $game_player.moveto(MAPINTRO[1], MAPINTRO[2])
      $game_player.refresh
      $game_map.autoplay
      $game_map.update
      $scene = Scene_Map.new
      return
    end
   
    Audio.bgm_stop
    $_temp_map_intro = nil
   
    @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
   
    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
      if @erase and @index > 2
        @index = 2
      end
      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
        if SAVEBOUNDSLOT and @number == 3
          $game_system.se_play($data_system.decision_se)
          @erase = true
          @index = 0
          @new_game_window.contents.clear
          @new_game_window.contents.draw_text(9,3,548,48,"RECOMMENCER QUELLE PARTIE?")
          refresh_all
        else
          command_new_game
        end
      else # Chargement
        if @erase
          command_new_game
        else
          $game_temp = Game_Temp.new
          on_decision("Save#{@index + 1}.rxdata")
        end
      end
    end
    if Input.trigger?(Input::B) and @erase
      $game_system.se_play($data_system.cancel_se)
      @erase = false
      @index = 3
      @new_game_window.contents.clear
      @new_game_window.contents.draw_text(9,3,548,48,"NOUVELLE PARTIE")
      refresh_all
    end
    if @auto_load != nil
      $game_temp = Game_Temp.new
      on_decision("SaveAuto.rxdata")
      File.delete("SaveAuto.rxdata")
    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, "ID:")
        @save_game_window_list[i].contents.draw_text(285, 42, 252, 48, id , 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)
        @save_game_window_list[i].contents.draw_text(285, 81, 252, 48, "DUREE:")
        @save_game_window_list[i].contents.draw_text(285, 81, 252, 48, time, 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)
    if SAVE_CONVERT # Conversion des sauvegardes pre-v0.7 à v0.7+
      Player.set_trainer_code(Marshal.load(file)) # Variable trainer_code
      trainer_id                         = Marshal.load(file) # Variable
      $game_party.actors[0].name         = Marshal.load(file) # Game_Actor
      $game_party.actors[0].set_graphic($game_party.actors[0].character_name,
                                        $game_party.actors[0].character_hue,
                                        Marshal.load(file),
                                        $game_party.actors[0].battler_hue
                                       )# Game_Actor
    end
    $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 != nil and $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
    POKEMON_S::set_SAVESLOT = @index
    Player.trainer_trade_code
  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
    $scene.update_encounter
    Player.pokedex_update
  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
    Player.set_trainer_code(rand(2**32))
    $random_encounter = Array.new(7)
    $random_encounter[0] = 0
    $battle_var = POKEMON_S::Pokemon_Battle_Variable.new
    $existing_pokemon = []
    $string = []
    POKEMON_S::set_SAVESLOT = @index
    Player.trainer_trade_code
    $data_pokedex = Array.new($data_pokemon.length-1)
    $data_pokedex[0] = false # Possède ou non
    for i in 1..$data_pokemon.length-1
      $data_pokedex[i] = [false, false] # Vu, Capturé
    end
    $game_variables[5000] = {"menu_dp" => POKEMON_S::MENU_DP,"banque" => [BANQUE::Banque.new],"list_img" => [],"quete" => Data_Quete.new,"radio" => Radio.new,"version" => "PSP4G+"}
  end
end 

Posté par Sphinx le 11 Fév - 12:18 (2009)
Bizarre :shock:

>> dégage toutes tes saves, et ensuite reprends les 2 scripts d'origine de 4G+ :

Script Scene_Title
Code:
#==============================================================================
# ■ Scene_Title (Version Pokémon)
# Pokemon Script Project - Krosk
# 01/08/07
#------------------------------------------------------------------------------
# Scène modifiable
#------------------------------------------------------------------------------
# Intègre le menu de chargement
#------------------------------------------------------------------------------


class Scene_Title
  include POKEMON_S
 
  def main
    if $BTEST
      battle_test
      return
    end
   
    if FileTest.exist?("SaveAuto.rxdata")
      print("Sauvegarde de secours détectée.\n\nAppuyez sur Entrée, puis sur Echap pour charger, ou Entrée pour continuer.")
      loop do
        Input.update
        if Input.trigger?(Input::C)
          File.delete("SaveAuto.rxdata")
          break
        end
        if Input.trigger?(Input::B)
          @auto_load = true
          break
        end
      end
    end
   
    if $game_system == nil
      $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
    end
   
    if not @auto_load and not MAPINTRO
   
      # -----------------------------------------------------------------
      #     La scène d'intro commence ici (non MAPINTRO)
      # -----------------------------------------------------------------
      # Elle est bien sûr modifiable à votre goût.
      # -----------------------------------------------------------------
      view = Viewport.new(0,0,640,480)
      view.z = -5
      #view = Viewport.new(0,25,640,430)
      #view.z = 0
      background = Plane.new(view)
      background.bitmap = RPG::Cache.title("Opening2.jpg")
      #background.oy += 25
      background.z = 0
      background.tone = Tone.new(0,0,0,255)
     
      #view = Viewport.new(0,0,640,480)
      #view.z = -5
      #background_bis = Plane.new(view)
      #background_bis.bitmap = RPG::Cache.title("Opening2.jpg")
      #background_bis.z = -5
     
      band_top = Sprite.new
      band_top.bitmap = RPG::Cache.title("Opening3.png")
      band_top.z = 5
      band_bottom = Sprite.new
      band_bottom.bitmap = RPG::Cache.title("Opening3.png")
      band_bottom.z = 5
      band_bottom.y = 450
     
      band_mid = Plane.new(Viewport.new(0,0,640,480))
      band_mid.bitmap = RPG::Cache.title("Opening4.png")
      band_mid.z = 5
     
      middle = Sprite.new
      middle.bitmap = RPG::Cache.title("Opening1.png")
      middle.z = 2
     
      title1 = Sprite.new
      title1.bitmap = RPG::Cache.title("Opening6.png")
      title1.z = 3
      title1.opacity = 0
      title1.color = Color.new(255,255,255,255)
     
      title2 = Sprite.new
      title2.bitmap = RPG::Cache.title("Opening7.png")
      title2.z = 4
      title2.opacity = 0
      title2.color = Color.new(255,255,255,255)
     
      flash = Sprite.new
      flash.bitmap = RPG::Cache.title("Opening8.png")
      flash.z = 10
      flash.opacity = 0
     
      mid = Sprite.new
      mid.bitmap = RPG::Cache.title("Opening5.png")
      mid.z = 5
      mid.visible = false
     
      screen = Sprite.new
      screen.bitmap = RPG::Cache.title("Opening10.png")
      screen.z = 2
      screen.visible = false
     
      start = Sprite.new
      start.bitmap = RPG::Cache.title("Opening11.png")
      start.z = 5
      start.visible = false
     
      Graphics.transition(5)
     
      $game_system.bgm_play($data_system.title_bgm)
      Audio.me_stop
      Audio.bgs_stop
     
      timer = 0
      loop do
        Graphics.update
        Input.update
       
        timer += 1
        background.ox -= 12
        #background_bis.ox += 6
       
        if timer == 210
          background.tone.gray = 0
        end
       
        if timer > 210 and background.tone.red > 0
          background.tone.red -= 25
          background.tone.green -= 25
        end
         
        if timer > 210 and timer % (150 + rand(50)) == 0
          background.tone.red = background.tone.green = 250
        end
       
        if flash.opacity > 0
          flash.opacity -= 15
        end
       
        if timer > 5 and not band_top.disposed?
          band_top.x += 13
          if band_top.x > 640
            band_top.dispose
          end
        end
       
        if timer > 73 and not band_bottom.disposed?
          band_bottom.x -= 13
          if band_bottom.x < -640
            band_bottom.dispose
          end
        end
       
        if timer > 150 and not band_mid.disposed?
          band_mid.ox -= 20
          if timer > 210
            band_mid.dispose
            mid.visible = true
          end
        end
       
        if timer > 210 and not title1.disposed? and title1.opacity < 255
          title1.opacity += 15
          title1.color.alpha -= 15
        end
       
        if timer > 240 and not title1.disposed? and title1.opacity == 255
          title1.color.alpha += 15
        end
       
        if timer == 270
          flash.opacity = 255
          title1.dispose
          mid.dispose
          middle.dispose
          screen.visible = true
        end
       
        if timer > 270 and not title2.disposed? and title2.opacity < 255
          title2.opacity += 15
          title2.color.alpha -= 15
          if title2.opacity >= 255
            title2.dispose
          end
        end
       
        if timer > 290 and timer%20 == 0
          start.visible = !start.visible
        end
       
        if Input.trigger?(Input::C)
          $game_system.se_play($data_system.decision_se)
          break
        end
       
        if timer > 3750
          Audio.bgm_fade(1000*5)
        end
       
      end
     
      Graphics.freeze
      background.dispose if not background.disposed?
      #background_bis.dispose if not background_bis.disposed?
      band_top.dispose if not band_top.disposed?
      band_bottom.dispose if not band_bottom.disposed?
      band_mid.dispose if not band_mid.disposed?
      mid.dispose if not mid.disposed?
      middle.dispose if not middle.disposed?
      title1.dispose if not title1.disposed?
      title2.dispose if not title2.disposed?
      flash.dispose if not flash.disposed?
      start.dispose if not start.disposed?
      screen.dispose if not screen.disposed?
      Graphics.transition
      Graphics.freeze
     
      Audio.bgm_stop
     
      # -----------------------------------------------------------------
      #     Fin de la scène d'intro
      # -----------------------------------------------------------------
   
    elsif MAPINTRO.type == Array and $_temp_map_intro == nil
      $_temp_map_intro = true
      $map_link = {}
      Audio.bgm_stop
      Graphics.frame_count = 0
      $game_temp          = Game_Temp.new
      $game_system        = Game_System.new
      $game_switches      = Game_Switches.new
      $game_variables     = Game_Variables.new
      $game_self_switches = Game_SelfSwitches.new
      $game_screen        = Game_Screen.new
      $game_actors        = Game_Actors.new
      $game_party         = Game_Party.new
      $game_troop         = Game_Troop.new
      $game_map           = Game_Map.new
      $game_player        = Game_Player.new
      # ---- Pas forcément nécessaire
      $pokemon_party = POKEMON_S::Pokemon_Party.new
      $data_storage = [[0]]
      $pokemon_party.create_box
      Player.set_trainer_code(rand(2**32))
      $random_encounter = Array.new(7)
      $random_encounter[0] = 0
      $battle_var = POKEMON_S::Pokemon_Battle_Variable.new
      $existing_pokemon = []
      $string = []
      POKEMON_S::set_SAVESLOT = @index
      Player.trainer_trade_code
      # ---- Pas forcément nécessaire
      $game_party.setup_starting_members
      $game_map.setup(MAPINTRO[0])
      $game_player.moveto(MAPINTRO[1], MAPINTRO[2])
      $game_player.refresh
      $game_map.autoplay
      $game_map.update
      $scene = Scene_Map.new
      return
    end
   
    Audio.bgm_stop
    $_temp_map_intro = nil
   
    @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
   
    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
      if @erase and @index > 2
        @index = 2
      end
      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
        if SAVEBOUNDSLOT and @number == 3
          $game_system.se_play($data_system.decision_se)
          @erase = true
          @index = 0
          @new_game_window.contents.clear
          @new_game_window.contents.draw_text(9,3,548,48,"RECOMMENCER QUELLE PARTIE?")
          refresh_all
        else
          command_new_game
        end
      else # Chargement
        if @erase
          command_new_game
        else
          $game_temp = Game_Temp.new
          on_decision("Save#{@index + 1}.rxdata")
        end
      end
    end
    if Input.trigger?(Input::B) and @erase
      $game_system.se_play($data_system.cancel_se)
      @erase = false
      @index = 3
      @new_game_window.contents.clear
      @new_game_window.contents.draw_text(9,3,548,48,"NOUVELLE PARTIE")
      refresh_all
    end
    if @auto_load != nil
      $game_temp = Game_Temp.new
      on_decision("SaveAuto.rxdata")
      File.delete("SaveAuto.rxdata")
    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, "ID:")
        @save_game_window_list[i].contents.draw_text(285, 42, 252, 48, id , 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)
        @save_game_window_list[i].contents.draw_text(285, 81, 252, 48, "DUREE:")
        @save_game_window_list[i].contents.draw_text(285, 81, 252, 48, time, 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)
    if SAVE_CONVERT # Conversion des sauvegardes pre-v0.7 à v0.7+
      Player.set_trainer_code(Marshal.load(file)) # Variable trainer_code
      trainer_id                         = Marshal.load(file) # Variable
      $game_party.actors[0].name         = Marshal.load(file) # Game_Actor
      $game_party.actors[0].set_graphic($game_party.actors[0].character_name,
                                        $game_party.actors[0].character_hue,
                                        Marshal.load(file),
                                        $game_party.actors[0].battler_hue
                                       )# Game_Actor
    end
    $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 != nil and $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
    POKEMON_S::set_SAVESLOT = @index
    Player.trainer_trade_code
  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
    $scene.update_encounter
    Player.pokedex_update
  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
    Player.set_trainer_code(rand(2**32))
    $random_encounter = Array.new(7)
    $random_encounter[0] = 0
    $battle_var = POKEMON_S::Pokemon_Battle_Variable.new
    $existing_pokemon = []
    $string = []
    POKEMON_S::set_SAVESLOT = @index
    Player.trainer_trade_code
    $data_pokedex = Array.new($data_pokemon.length-1)
    $data_pokedex[0] = false # Possède ou non
    for i in 1..$data_pokemon.length-1
      $data_pokedex[i] = [false, false] # Vu, Capturé
    end
    $game_variables[5000] = {"menu_dp" => POKEMON_S::MENU_DP,"banque" => [BANQUE::Banque.new],"list_img" => [],"quete" => Data_Quete.new,"radio" => Radio.new,"version" => "PSP4G+"}
  end
end


Script Pokemon_Save
Code:
#==============================================================================
# ■ Scene_Save (Version Pokémon)
# Pokemon Script Project - Krosk
# 01/08/07
#------------------------------------------------------------------------------
# Scène à ne pas modifier de préférence
#------------------------------------------------------------------------------
module POKEMON_S
  class Pokemon_Save
    def initialize
      Graphics.freeze
      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
      @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
     
      # Cadre nouvelle sauvegarde
      @new_save_window = Window_Base.new(30, 30 + 83*@number, 580, 80)
      @new_save_window.contents = Bitmap.new(548, 48)
      set_window(@new_save_window)
      @new_save_window.contents.draw_text(9, 3, 548, 48, "NOUVEAU FICHIER")
      if SAVEBOUNDSLOT
        @new_save_window.y = 30
      end
     
      captured = 0
      for i in 1..$data_pokedex.length-1
        if $data_pokedex[i][1]
          captured += 1
        end
      end
      $read_data = [Player.name, Player.id, captured, $map_link]
     
      @index = 0
     
      latest_time = Time.at(0)
      for i in 0..3
        filename = "Save#{i + 1}.rxdata"
        if FileTest.exist?(filename)
          file = File.open(filename, "r")
          if file.mtime > latest_time
            latest_time = file.mtime
            @index = i
          end
          file.close
        end
      end
     
      if SAVEBOUNDSLOT
        @index = POKEMON_S::_SAVESLOT
        if @index != @number
          @new_save_window.visible = false
        end
      end
     
    end
   
    def main
      refresh_all
      if not SAVEBOUNDSLOT
        @background = Plane.new(Viewport.new(0,0,640,480))
        @background.bitmap = RPG::Cache.picture("fondsaved.png")
        @background.z -= 10
      else
        @background = Spriteset_Map.new
      end
      Graphics.transition
      loop do
        Graphics.update
        Input.update
        update
        if $scene != self
          break
        end
      end
      Graphics.freeze
      for window in @save_game_window_list
        window.dispose
      end
      @new_save_window.dispose
      @background.dispose
    end
   
    def update
      if SAVEBOUNDSLOT
        @background.update
      end
     
      if Input.trigger?(Input::DOWN) and not SAVEBOUNDSLOT
        @index += @index == @number ? 0 : @index == 2 ? 0 : 1
        refresh_all
      end
     
      if Input.trigger?(Input::UP) and not SAVEBOUNDSLOT
        @index -= @index == 0 ? 0 : 1
        refresh_all
      end
     
      if Input.trigger?(Input::C)
        if @index == @number # Nouvelle sauvegarde
          $game_system.se_play($data_system.save_se)
          filename = "Save#{@number + 1}.rxdata"
          file = File.open(filename, "wb")
          write_save_data(file)
          file.close
          # イベントから呼び出されている場合
          if $game_temp.save_calling
            # セーブ呼び出しフラグをクリア
            $game_temp.save_calling = false
            # マップ画面に切り替え
            $scene = Scene_Map.new
            return
          end
          # メニュー画面に切り替え
          $scene = POKEMON_S::Pokemon_Menu.new(4)
        else
          decision = draw_choice
          if decision
            $game_system.se_play($data_system.save_se)
            filename = "Save#{@index + 1}.rxdata"
            file = File.open(filename, "wb")
            write_save_data(file)
            file.close
            # イベントから呼び出されている場合
            if $game_temp.save_calling
              # セーブ呼び出しフラグをクリア
              $game_temp.save_calling = false
              # マップ画面に切り替え
              $scene = Scene_Map.new
              return
            end
            # メニュー画面に切り替え
            $scene = POKEMON_S::Pokemon_Menu.new(4)
          else
            return
          end
        end
      end
     
      if Input.trigger?(Input::B)
        if $game_temp.save_calling
          $game_temp.save_calling = false
        end
        $scene = POKEMON_S::Pokemon_Menu.new(4)
        return
      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, "SAUVEGARDER PARTIE "+(i+1).to_s)
          if SAVEBOUNDSLOT
            @save_game_window_list[i].visible = false
          end
        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])
          if SAVEBOUNDSLOT
            @save_game_window_list[i].contents.draw_text(9, 3, 530, 48, "SAUVEGARDER PARTIE")
            @save_game_window_list[i].y = 30
          else
            @save_game_window_list[i].contents.draw_text(9, 3, 530, 48, "SAUVEGARDER PARTIE "+(i+1).to_s)
          end
          @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, "ID:")
          @save_game_window_list[i].contents.draw_text(285, 42, 252, 48, id , 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)
          @save_game_window_list[i].contents.draw_text(285, 81, 252, 48, "DUREE:")
          @save_game_window_list[i].contents.draw_text(285, 81, 252, 48, time, 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, "SAUVEGARDER PARTIE "+(i+1).to_s)
          if SAVEBOUNDSLOT
            @save_game_window_list[i].visible = false
          end
        end
      end
      if @index == @number and @number < 3
        @new_save_window.opacity = 255
        @new_save_window.y = 30 + 83*@number
      elsif @number < 3
        @new_save_window.opacity = 128
        @new_save_window.y = 30 + 83*(@number+1)
      else
        @new_save_window.visible = false
      end
    end
   
    def set_window(window)
      window.contents.font.name = $fontface
      window.contents.font.size = $fontsizebig
      window.contents.font.color = window.normal_color
    end
   
    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 write_save_data(file)
      characters = []
      for i in 0...$game_party.actors.size
        actor = $game_party.actors[i]
        characters.push([actor.character_name, actor.character_hue])
      end
     
      Marshal.dump(characters, file)
     
      Marshal.dump(Graphics.frame_count, file)
     
      $game_system.save_count += 1
      $game_system.magic_number = $data_system.magic_number
     
      Marshal.dump($game_system, file)
      Marshal.dump($game_switches, file)
      Marshal.dump($game_variables, file)
      Marshal.dump($game_self_switches, file)
      Marshal.dump($game_screen, file)
      Marshal.dump($game_actors, file)
      Marshal.dump($game_party, file)
      Marshal.dump($game_troop, file)
      Marshal.dump($game_map, file)
      Marshal.dump($game_player, file)
      Marshal.dump($read_data, file)
      #Marshal.dump(Player.code, file)
      #Marshal.dump(Player.id, file)
      #Marshal.dump(Player.name, file)
      #Marshal.dump(Player.battler , file)
      Marshal.dump($pokemon_party, file)
      Marshal.dump($random_encounter, file)
      Marshal.dump($data_pokedex, file)
      Marshal.dump($data_storage, file)
      Marshal.dump($battle_var, file)
      Marshal.dump($existing_pokemon, file)
      Marshal.dump($string, file)
    end
   
    def draw_choice
      @command = Window_Command.new(120, ["OUI", "NON"], $fontsizebig)
      @command.x = 517
      @command.y = 359
      loop do
        Graphics.update
        Input.update
        @command.update
        if Input.trigger?(Input::C) and @command.index == 0
          @command.dispose
          @command = nil
          Input.update
          return true
        end
        if Input.trigger?(Input::C) and @command.index == 1
          @command.dispose
          @command = nil
          Input.update
          return false
        end
      end
    end
  end
end

class Interpreter
  def forcer_sauvegarde
    if not SAVEBOUNDSLOT
      return
    end
    captured = 0
    for i in 1..$data_pokedex.length-1
      if $data_pokedex[i][1]
        captured += 1
      end
    end
    $read_data = [Player.name, Player.id, captured, $map_link]
    filename = "Save#{POKEMON_S::_SAVESLOT + 1}.rxdata"
    file = File.open(filename, "wb")
    characters = []
    for i in 0...$game_party.actors.size
      actor = $game_party.actors[i]
      characters.push([actor.character_name, actor.character_hue])
    end
    Marshal.dump(characters, file)
    Marshal.dump(Graphics.frame_count, file)
    $game_system.save_count += 1
    $game_system.magic_number = $data_system.magic_number
    game_system = $game_system.clone
    game_system.reset_interpreter
    Marshal.dump(game_system, file)
    Marshal.dump($game_switches, file)
    Marshal.dump($game_variables, file)
    Marshal.dump($game_self_switches, file)
    Marshal.dump($game_screen, file)
    Marshal.dump($game_actors, file)
    Marshal.dump($game_party, file)
    Marshal.dump($game_troop, file)
    Marshal.dump($game_map, file)
    Marshal.dump($game_player, file)
    Marshal.dump($read_data, file)
    Marshal.dump($pokemon_party, file)
    Marshal.dump($random_encounter, file)
    Marshal.dump($data_pokedex, file)
    Marshal.dump($data_storage, file)
    Marshal.dump($battle_var, file)
    Marshal.dump($existing_pokemon, file)
    Marshal.dump($string, file)
    file.close
  end
end


et dis moi si ce problème persiste (ca devrait pas ^_^" j'arrive à sauvegarder / charger des saves, moi...)

Posté par Newtiteuf le 11 Fév - 16:34 (2009)
A mon avis il a du toucher a un autre script, ou même ajouter un autre script non ?

Posté par poussi le 11 Fév - 17:30 (2009)
nn et le scripte quand je le remplace sa marche mais quand je veux sauvegarder la 2er fois il bug car le scripte se change tous seul
( P.s   ya un probleme avec le scripte de     scene-titi ^^ car le jeux ne marche pas il beug quand je le remplace avec le tien

Posté par poussi le 11 Fév - 17:33 (2009)
ya un probleme avec cette ligne de scene-titi ?


458 l
   game_screen     = Marshal.load(file)

Posté par Sphinx le 11 Fév - 17:40 (2009)
vous pouvez éditer vos messages, profitez en ^_^' (surtout à 3 minutes d'intervalle)

>> euh, normalement non... Je crois quand même que ce problème vient de ton fichier scripts.rxdata... :s Reprends en un dans PSP0.7 ou dans PSP4G+ selon ta version actuelle

Posté par Newtiteuf le 11 Fév - 20:20 (2009)
Il n'arrive pas a charger le marchal XD !

Je vais me faire allumer par krosk ... :arrow:

Posté par Lén le 11 Fév - 20:54 (2009)
pourquoi te ferais tu allumer ???

Il doit surement avoir une vielle version !

Posté par Krosk le 11 Fév - 21:18 (2009)
NT : Message constructif obligatoire, merci. Tes remarques inutiles, tu les gardes pour toi.

- Surtout, tu n'oublie pas d'effacer les sauvegardes qui sont dans le dossier du jeu.
- Tu récupères un fichier Scripts.rxdata dans un projet vierge PSP, et tu remplace celui qui est dans le dossier Data de ton jeu. Ca mettra à jour tes scripts (tu perdra tes modifications par contre), et tu es assuré de ne plus avoir de problème.