Après le Game Over, on continue !
Lun 30 Juin 2008 - 19:55
Bonjour !
Auteur :
SephirothTDS
Screen :
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à !
- JessStaffeux retraité
- Nombre de messages : 855
Age : 33
Localisation : Ma drums ou mon ordi !
Distinction : Dieu de Kipatord
Date d'inscription : 04/05/2008
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
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum