Aller en bas
Douk
Douk
Membre

Nombre de messages : 296
Age : 31
Distinction : aucune
Date d'inscription : 23/04/2008
http://www.arcantia.info-a.googlepages.com/index.html

Après le Game Over, on continue ! Empty Après le Game Over, on continue !

Lun 30 Juin 2008 - 19:55
Bonjour !


Auteur :
SephirothTDS

Screen :

Après le Game Over, on continue ! 00410

Script :

Code:
#==============================================================================
# TDS Continue
# Versão: 1.0
#------------------------------------------------------------------------------
# Il permet au joueur de continuer le jeu après le dernier point Gameover
#, Sauf dans les cas où le jeu à été enregistré.
#=================================================

#===============================================================
#                           
#                rpgmakervx.1fr1.net                                           
#       
#===============================================================

#==============================================================================
# Game_Temp
#------------------------------------------------------------------------------
# Il permet au joueur de continuer le jeu après le dernier point Gameover
#, Sauf dans les cas où le jeu un été enregistré.
#================================================= =============================
#=========== Traduit et commenté par Douk ======================================
#======================== http://rpgmakervx.1fr1.net ===========================
#===============================================================================

class Game_Temp
  #--------------------------------------------------------------------------
  # Variables Publiques
  #--------------------------------------------------------------------------
  attr_accessor :playing_filename                  # Archives du jeu
  #--------------------------------------------------------------------------
  # Initialisation des objets
  #--------------------------------------------------------------------------
  alias tds_continue_gameover_game_temp_initialize initialize
  def initialize
    @playing_filename = nil
    tds_continue_gameover_game_temp_initialize
  end
 end

#==============================================================================
# Scene_Gameover
#------------------------------------------------------------------------------
# Operation de classe dans l'ecran Game Over
#==============================================================================

class Scene_Gameover < Scene_Base
  #--------------------------------------------------------------------------
  # Initialisation du processus
  #--------------------------------------------------------------------------
  def start
    super 
    # Si la variable du jeu n'est pas nulle(0)
    if $game_temp.playing_filename != nil
    # Crée le fichier de continuation
    @file = "Save#{$game_temp.playing_filename + 1}.rvdata"   
    end
    RPG::BGM.stop
    RPG::BGS.stop
    $data_system.gameover_me.play   
    Graphics.transition(120)
    create_command_window       
    Graphics.freeze
    create_gameover_graphic
  end
  #--------------------------------------------------------------------------
  # La Fenêtre de commande
  #--------------------------------------------------------------------------
  def create_command_window
    # Verifie si il existe des fichiers
    @continue_enabled = (Dir.glob('Save*.rvdata').size > 0)
    # Crée une fenêtre de commande
    @command_window = Window_Command.new(172, ['Continuer', 'Ecran Titre',
    'Charger','Quitter']) # Les options pendant le Game Over
    @command_window.x = (544 - @command_window.width) / 2
    @command_window.y = 264
    if $game_temp.playing_filename != nil
    if FileTest.exist?(@file) == false     
      @command_window.draw_item(0, false)
      end
    else
      @command_window.draw_item(0, false)   
    end   
    if @continue_enabled == false
      @command_window.draw_item(2, false)
    end   
    @command_window.openness = 0
    @command_window.open
  end 

  def post_start
    super
    open_command_window
  end

  def open_command_window
    @command_window.open
    begin
      @command_window.update
      Graphics.update
    end until @command_window.openness == 255
  end 

  def terminate
    super
    close_command_window   
    $scene = nil if $BTEST   
  end

  def close_command_window
    @command_window.close
    begin
      @command_window.update
      Graphics.update
    end until @command_window.openness == 0
  end   

  def update
    super
    @command_window.update   
    if Input.trigger?(Input::C) and @command_window.openness == 255
      case @command_window.index 
      when 0
        return Sound.play_buzzer if $game_temp.playing_filename == nil
        Sound.play_decision         
        terminate
        Graphics.fadeout(50)         
        dispose_gameover_graphic if @command_window.openness == 0                                 
        do_load
        when 1
        Sound.play_decision         
        terminate
        Graphics.fadeout(50)         
        dispose_gameover_graphic if @command_window.openness == 0                       
        $scene = Scene_Title.new         
        when 2       
        if @continue_enabled
          Sound.play_decision
          terminate
          Graphics.fadeout(50)         
          dispose_gameover_graphic if @command_window.openness == 0                                   
          $scene = Scene_File.new(false, true, false)
          else
          Sound.play_buzzer         
        end
        when 3
          Sound.play_decision         
          terminate
          Graphics.fadeout(50)         
          dispose_gameover_graphic if @command_window.openness == 0             
          $scene = nil if @command_window.openness == 0
      end     
    end
  end 

  def do_load
    file = File.open("Save#{$game_temp.playing_filename + 1}.rvdata", "rb")   
    read_save_data(file)
    file.close
    $scene = Scene_Map.new
    RPG::BGM.fade(1500)
    Graphics.fadeout(60)
    Graphics.wait(40)
    @last_bgm.play
    @last_bgs.play
  end 

  def read_save_data(file)
    characters          = Marshal.load(file)
    Graphics.frame_count = Marshal.load(file)
    @last_bgm            = Marshal.load(file)
    @last_bgs            = Marshal.load(file)
    $game_system        = Marshal.load(file)
    $game_message        = Marshal.load(file)
    $game_switches      = Marshal.load(file)
    $game_variables      = Marshal.load(file)
    $game_self_switches  = 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)
    if $game_system.version_id != $data_system.version_id
      $game_map.setup($game_map.map_id)
      $game_player.center($game_player.x, $game_player.y)
    end
  end 

  def perform_transition
    Graphics.transition(180)
  end

  def create_gameover_graphic
    @sprite = Sprite.new
    @sprite.bitmap = Cache.system("GameOver") # Va cherche l'image
  end

  def dispose_gameover_graphic
    @sprite.bitmap.dispose
    @sprite.dispose
  end
end

#==============================================================================
# Scene_File
#------------------------------------------------------------------------------
# La classe des opérations sur l'écran de fichiers enregistrés.
#==============================================================================

class Scene_File < Scene_Base
  #--------------------------------------------------------------------------
  # Sauve le jeu
  #--------------------------------------------------------------------------
  alias tds_continue_scene_file_do_save do_save
  def do_save
    $game_temp.playing_filename = @index     
    tds_continue_scene_file_do_save   
  end 
  #--------------------------------------------------------------------------
  # Appuyez sur le jeu
  #--------------------------------------------------------------------------
  alias tds_continue_scene_file_do_load do_load
  def do_load
    $game_temp.playing_filename = @index         
    tds_continue_scene_file_do_load   
  end 
end


Infos sup' :
A mettre au dessus de Main
Attention ! Votre image de Game Over doit s'appeller GameOver ou modifiez le dans le script Ligne188 si vous n'enlevez rien.

Voilà !
Jess
Jess
Staffeux retraité

Nombre de messages : 855
Age : 33
Localisation : Ma drums ou mon ordi !
Distinction : Dieu de Kipatord


Date d'inscription : 04/05/2008

Après le Game Over, on continue ! Empty Re: Après le Game Over, on continue !

Mer 17 Sep 2008 - 19:02
Et bien merci beaucoup, c'est vraiment cool, ça enrichie un peut mon projet, fonction bien pratique. Surtout que mon écran animé est long a chargé étant donné qu'il est animé (non sérieux ? O_o), et puis bon je trouve cela frustrant d'arriver à l'écran titre après un game-over... donc merci
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum