Partagez
Aller en bas
Coryanthe
Coryanthe
Membre

Nombre de messages : 11
Distinction : aucune
Date d'inscription : 20/07/2019

Résolu Game over personnalisé avec un script

le Dim 21 Juil 2019 - 1:00
Rebonjour, c'est encore moi !
Je veux faire un game over personnalisé. J'utilise le script de Kread-Ex :
Code:
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#  ▼ Game Over Common Event
#  Author: Kread-EX
#  Version 1.02
#  Release date: 17/12/2011
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 
 #-------------------------------------------------------------------------------------------------
#  ▼ UPDATES
#-------------------------------------------------------------------------------------------------
# # 19/12/2011. Added the option to replay Map BGM.
# # 18/12/2011. Fixed an infinite loop.
#-------------------------------------------------------------------------------------------------
#  ▼ TERMS OF USAGE
#-------------------------------------------------------------------------------------------------
# #  None. Made that in a few minutes.
#-------------------------------------------------------------------------------------------------
#  ▼ INTRODUCTION
#-------------------------------------------------------------------------------------------------
# # Overrides the standard Game Over with a common event on the map.
#-------------------------------------------------------------------------------------------------
#  ▼ INSTRUCTIONS
#-------------------------------------------------------------------------------------------------
# # By default, use the 1st common event as game over. You can change this with a
# # script call:
# # $game_system.game_over_event_id = x
# # To disable the replay of the map bgm:
# # $game_system.game_over_map_bgm = false
# #
# # Note: The Game Over event command will not trigger the common event.
#-------------------------------------------------------------------------------------------------
#  ▼ COMPATIBILITY
# # I don't foresee any problems.
#-------------------------------------------------------------------------------------------------
 
puts 'Load: Game Over Common Event v1.02 by Kread-EX'
 
#===========================================================================
# ■ SceneManager
#===========================================================================
 
module SceneManager
      $game_system.game_over_event_id = 001
        #--------------------------------------------------------------------------
        # ● Jump to a scene
        #--------------------------------------------------------------------------
        class << self; alias_method(:krx_goce_sm_goto, :goto); end
        def self.goto(scene_class)
                if scene_class == Scene_Gameover
                        unless $game_temp.no_game_over_ce || $game_system.game_over_event_id == -1
                                id = $game_system.game_over_event_id
                                $game_temp.reserve_common_event(id != nil ? id : 1)
                                $game_party.members.each do |mem|
                                        mem.remove_state(1)
                                end
                                if @scene.is_a?(Scene_Battle) && $game_system.game_over_map_bgm
                                        BattleManager.replay_bgm_and_bgs
                                end
                                scene_class = Scene_Map
                        end
                end
                $game_temp.no_game_over_ce = false
                krx_goce_sm_goto(scene_class)
        end  
end
 
#===========================================================================
# ■ Game_Temp
#===========================================================================
 
class Game_Temp
        #--------------------------------------------------------------------------
        # ● Public instance variables
        #--------------------------------------------------------------------------
        attr_accessor  :no_game_over_ce
end
 
#===========================================================================
# ■ Game_System
#===========================================================================
 
class Game_System
        #--------------------------------------------------------------------------
        # ● Public instance variables
        #--------------------------------------------------------------------------
        attr_accessor          :game_over_event_id
        attr_accessor          :game_over_map_bgm
        #--------------------------------------------------------------------------
        # ● Object Initialize
        #--------------------------------------------------------------------------
        alias_method(:krx_goce_gs_init, :initialize)
        def initialize
                krx_goce_gs_init
                @game_over_event_id = 2
                @game_over_map_bgm = true
        end
end
 
#===========================================================================
# ■ Game_Interpreter
#===========================================================================
 
class Game_Interpreter
        #--------------------------------------------------------------------------
        # ● Game Over
        #--------------------------------------------------------------------------
        alias_method(:krx_goce_gi_353, :command_353)
        def command_353
                $game_temp.no_game_over_ce = true
                krx_goce_gi_353
        end
end

J'ai créé un événement commun spécial (le premier) mais le problème c'est que lorsque je lance mon jeu : j'ai un message d'erreur.
Il y est écrit :
Script 'Game _Interpreter' line 43: NoMethodError occurred
undefined method 'game_over_event_id= 'for nil:NilClass

Quelqu'un saurait-il m'expliquer ce que je dois faire ? ...
Merci d'avance pour votre aide Smile


Dernière édition par Coryanthe le Dim 21 Juil 2019 - 23:34, édité 2 fois
Elemsis
Elemsis
Membre

Nombre de messages : 434
Age : 28
Localisation : Pyrénées-Orientales
Distinction : aucune
Date d'inscription : 05/01/2009
http://elemsischronicles.blogspot.fr/

Résolu Re: Game over personnalisé avec un script

le Dim 21 Juil 2019 - 10:42
Salut, complètement au hasard, je suis peut-être à côté de la plaque mais ça pourrait être une raison du dysfonctionnement : dans ta présentation, tu parles de VX, hors ce script est pour VX Ace, donc, si tu utilises l'ancien RMVX, c'est normal que ça ne fonctionne pas, la librairie de script aillant évolué entre temps du RGSS2 au RGSS3. Si tu es bien sur VX Ace par contre, euh, bin rien, je sais pas, j'ai rien dit et je fuis parce que je n'ai aucune explication. ^^'
Coryanthe
Coryanthe
Membre

Nombre de messages : 11
Distinction : aucune
Date d'inscription : 20/07/2019

Résolu Re: Game over personnalisé avec un script

le Dim 21 Juil 2019 - 10:50
Merci pour ta réponse Elemsis !
J'utilise RM VX Ace... :/ Effectivement, tu ne pouvais pas savoir. J'ai édité ma présentation.

EDIT : C'est bon, j'ai trouvé un autre script qui fonctionne ! Very Happy
Code:
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#  ▼ Game Over Common Event
#  Author: Kread-EX
#  Version 1.02
#  Release date: 17/12/2011
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 
 #-------------------------------------------------------------------------------------------------
#  ▼ UPDATES
#-------------------------------------------------------------------------------------------------
# # 19/12/2011. Added the option to replay Map BGM.
# # 18/12/2011. Fixed an infinite loop.
#-------------------------------------------------------------------------------------------------
#  ▼ TERMS OF USAGE
#-------------------------------------------------------------------------------------------------
# #  None. Made that in a few minutes.
#-------------------------------------------------------------------------------------------------
#  ▼ INTRODUCTION
#-------------------------------------------------------------------------------------------------
# # Overrides the standard Game Over with a common event on the map.
#-------------------------------------------------------------------------------------------------
#  ▼ INSTRUCTIONS
#-------------------------------------------------------------------------------------------------
# # By default, use the 1st common event as game over. You can change this with a
# # script call:
# # $game_system.game_over_event_id = x
# # To disable the replay of the map bgm:
# # $game_system.game_over_map_bgm = false
# #
# # Note: The Game Over event command will not trigger the common event.
#-------------------------------------------------------------------------------------------------
#  ▼ COMPATIBILITY
# # I don't foresee any problems.
#-------------------------------------------------------------------------------------------------
 
puts 'Load: Game Over Common Event v1.02 by Kread-EX'
 
#===========================================================================
# ■ SceneManager
#===========================================================================
 
module SceneManager
        #--------------------------------------------------------------------------
        # ● Jump to a scene
        #--------------------------------------------------------------------------
        class << self; alias_method(:krx_goce_sm_goto, :goto); end
        def self.goto(scene_class)
                if scene_class == Scene_Gameover
                        unless $game_temp.no_game_over_ce || $game_system.game_over_event_id == -1
                                id = $game_system.game_over_event_id
                                $game_temp.reserve_common_event(id != nil ? id : 1)
                                $game_party.members.each do |mem|
                                        mem.remove_state(1)
                                end
                                if @scene.is_a?(Scene_Battle) && $game_system.game_over_map_bgm
                                        BattleManager.replay_bgm_and_bgs
                                end
                                scene_class = Scene_Map
                        end
                end
                $game_temp.no_game_over_ce = false
                krx_goce_sm_goto(scene_class)
        end 
end
 
#===========================================================================
# ■ Game_Temp
#===========================================================================
 
class Game_Temp
        #--------------------------------------------------------------------------
        # ● Public instance variables
        #--------------------------------------------------------------------------
        attr_accessor  :no_game_over_ce
end
 
#===========================================================================
# ■ Game_System
#===========================================================================
 
class Game_System
        #--------------------------------------------------------------------------
        # ● Public instance variables
        #--------------------------------------------------------------------------
        attr_accessor          :game_over_event_id
        attr_accessor          :game_over_map_bgm
        #--------------------------------------------------------------------------
        # ● Object Initialize
        #--------------------------------------------------------------------------
        alias_method(:krx_goce_gs_init, :initialize)
        def initialize
                krx_goce_gs_init
                @game_over_event_id = 1
                @game_over_map_bgm = true
        end
end
 
#===========================================================================
# ■ Game_Interpreter
#===========================================================================
 
class Game_Interpreter
        #--------------------------------------------------------------------------
        # ● Game Over
        #--------------------------------------------------------------------------
        alias_method(:krx_goce_gi_353, :command_353)
        def command_353
                $game_temp.no_game_over_ce = true
                krx_goce_gi_353
        end
end
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum