Zexion Administrateur
Messages postés : 6228 Date d'inscription : 04/01/2012 Jauge LPC :
| Sujet: [XP] Ne pas faire planter le jeu si une ressource manque Mer 1 Mai 2013 - 21:26 | |
| L'auteur de ce script est Krosk. Son fonctionnement est simple : créez un nouveau script au dessus de "Main" et collez-y le code ci-dessous. En cas de ressource qui manquerait, le jeu ne sera pas interrompu, les éléments graphiques manquants seront tout simplement invisibles. Le script comporte plusieurs options détaillées dans l'en-tête. - Code:
-
# --------------------------------------------------------
# Anti-"No such file"
# ou comment dédramatiser le manque d'une ressource
# par Krosk
# --------------------------------------------------------
# Ce script permet de continuer le jeu malgré
# l'absence d'une ressource graphique ou audio
# que le projet soit crypté ou non.
#
# Il n'empêche pas le crash en cas
# de manque d'une map ou d'un fichier data...
#
# L'image manquante est substituée par
# une image vide, mais vous pouvez
# à la place utiliser une image de substitution.
#
# Le son manquant n'est tout simplement pas joué.
#
# Par ailleurs, personnalisez vous même le message
# NOSUCHTEXT pour signaler au joueur la conduite à adopter.
# (utilisez \n pour sauter une ligne)
#
# Vous pouvez aussi couper les messages d'avertissement
# en commentant les lignes de print dans ce script.
# (en placant # en tete de ligne)
# --------------------------------------------------------
NOSUCHTEXT = "Veuillez me contacter pour me prévenir\nque cette ressource est manquante."
module RPG
module Cache
def self.load_bitmap(folder_name, filename, hue = 0)
path = folder_name + filename
if not @cache.include?(path) or @cache[path].disposed?
if filename != ""
begin
@cache[path] = Bitmap.new(path)
rescue
print "La ressource #{path} manque.\n" + NOSUCHTEXT
@cache[path] = Bitmap.new(32, 32)
end
else
@cache[path] = Bitmap.new(32, 32)
end
end
if hue == 0
@cache[path]
else
key = [path, hue]
if not @cache.include?(key) or @cache[key].disposed?
@cache[key] = @cache[path].clone
@cache[key].hue_change(hue)
end
@cache[key]
end
end
end
end
module Audio
class << self
alias_method :temp_se_play, :se_play unless method_defined?(:temp_se_play)
alias_method :temp_me_play, :me_play unless method_defined?(:temp_me_play)
alias_method :temp_bgm_play, :bgm_play unless method_defined?(:temp_bgm_play)
alias_method :temp_bgs_play, :bgs_play unless method_defined?(:temp_bgs_play)
end
def self.se_play(filename, volume = 100, pitch = 100)
begin
self.temp_se_play(filename, volume, pitch)
rescue
print "La ressource #{filename} manque.\n" + NOSUCHTEXT
end
end
def self.me_play(filename, volume = 100, pitch = 100)
begin
self.temp_me_play(filename, volume, pitch)
rescue
print "La ressource #{filename} manque.\n" + NOSUCHTEXT
end
end
def self.bgm_play(filename, volume = 100, pitch = 100)
begin
self.temp_bgm_play(filename, volume, pitch)
rescue
print "La ressource #{filename} manque.\n" + NOSUCHTEXT
end
end
def self.bgs_play(filename, volume = 100, pitch = 100)
begin
self.temp_bgs_play(filename, volume, pitch)
rescue
print "La ressource #{filename} manque.\n" + NOSUCHTEXT
end
end
end |
|
Vorselon Chevalier Mage (niveau 3)
Messages postés : 450 Date d'inscription : 27/04/2012 Jauge LPC :
| Sujet: Re: [XP] Ne pas faire planter le jeu si une ressource manque Mer 1 Mai 2013 - 22:20 | |
| Merci du partage Zexion cela va m'être utile, je t'ajoutes des p... (>> [] ) |
|