Switch_TitleDescription Ce script permet de passer l'écran t

La création de jeux indépendants/amateurs (tuto, entraide, questions...) sous les moteurs de la série RPG Maker.
nuki
Koruldia Warrior
Messages : 238
Localisation : Bruxelles
Contact :

Switch_TitleDescription Ce script permet de passer l'écran t

Message non lu par nuki » dim. août 21, 2011 3:19 pm

Description
Ce script permet de passer l'écran titre très facilement ainsi que de restaurer la Scene_Title originale. De plus, ce script conserve la position de départ définie par l\éditeur et rend donc l'accès a cet endroit très facile au moyen d'une courte méthode.

Installation

Il suffit de coller le script au dessus de la portion de code Main et de remplacer le code de Main par celui ci-dessous :

Code : Tout sélectionner

#==============================================================================
# ** Main
#------------------------------------------------------------------------------
#  After defining each class, actual processing begins here.
#==============================================================================

unless Font.exist?("UmePlus Gothic")
  print "Le fichier Font 'UmePlus Gothic' n'a pas été trouvé"
  exit
end

begin
  #Lancement du jeu
  Graphics.freeze
  $scene = (Game::ACTIVATE_SWITCH_TITLE) ? Switch_Title.new  : Scene_Title.new
  $scene.main while $scene != nil
  Graphics.transition(30)
rescue Errno::ENOENT
  filename = $!.message.sub("No such file or directory - ", "")
  print("Le ficher #{filename} n'a pas été trouvé.")
end
Utilisation
La constante ACTIVATE_SWITCH_TITLE peut valoir true ou false, si elle vaut false, l'écran titre de base est restitué.
TITLE_DATA correspond à un tableau avec comme première cellule l'ID de la map ensuite le X puis le Y de la position du héros sur la map faisant office d'écran titre. La méthode Game::goto_start téléporte l'équipe vers la position de départ de l'éditeur (elle prend un paramètre false pour désactiver le fondu avant la transition). Une fonction Game::teleport(map_id, x, y) permet en plus une téléportation facile, elle prend aussi un dernier paramètre optionnel a false pour désactiver le fondu avant une transition.

Code

Code : Tout sélectionner

module Game
   ACTIVATE_SWITCH_TITLE = true #Active le switch de l'écran titre
   TITLE_DATA = [1, 19, 14] #Constantes qui défini la map qui sers d'écran titre [MAP_ID, X, Y]
   def self.teleport(map_id, x, y, transition = true)
      $game_map.setup(map_id)
      $game_player.moveto(x, y)
      $scene = Scene_Map.new
      $game_map.autoplay
      $game_player.refresh
      if transition
         RPG::BGM.fade(1500)
         Graphics.fadeout(60)
         Graphics.wait(40)
      end
   end
   #Teleport vers la position de départ
   def self.goto_start(transition = true)
      Game::teleport($data_system.start_map_id,$data_system.start_x, $data_system.start_y, transition)
   end
end

class Switch_Title < Scene_Base
   def start
      super
      map_title = Game::TITLE_DATA
      load_database
      create_game_objects
      #Condition de sortie si jamais la position n'est pas spécifiée
      if $data_system.start_map_id == 0
         print "Player start location not set."
         exit
      end
      $game_party.setup_starting_members
      $game_map.setup(map_title[0])
      $game_player.moveto(map_title[1], map_title[2])
      $game_player.refresh
      $scene = Scene_Map.new
      $game_map.autoplay
   end
   def load_database
      $data_actors        = load_data("Data/Actors.rvdata")
      $data_classes      = load_data("Data/Classes.rvdata")
      $data_skills        = load_data("Data/Skills.rvdata")
      $data_items        = load_data("Data/Items.rvdata")
      $data_weapons      = load_data("Data/Weapons.rvdata")
      $data_armors        = load_data("Data/Armors.rvdata")
      $data_enemies      = load_data("Data/Enemies.rvdata")
      $data_troops        = load_data("Data/Troops.rvdata")
      $data_states        = load_data("Data/States.rvdata")
      $data_animations    = load_data("Data/Animations.rvdata")
      $data_common_events = load_data("Data/CommonEvents.rvdata")
      $data_system        = load_data("Data/System.rvdata")
      $data_areas        = load_data("Data/Areas.rvdata")
   end
   def load_bt_database
      $data_actors        = load_data("Data/BT_Actors.rvdata")
      $data_classes      = load_data("Data/BT_Classes.rvdata")
      $data_skills        = load_data("Data/BT_Skills.rvdata")
      $data_items        = load_data("Data/BT_Items.rvdata")
      $data_weapons      = load_data("Data/BT_Weapons.rvdata")
      $data_armors        = load_data("Data/BT_Armors.rvdata")
      $data_enemies      = load_data("Data/BT_Enemies.rvdata")
      $data_troops        = load_data("Data/BT_Troops.rvdata")
      $data_states        = load_data("Data/BT_States.rvdata")
      $data_animations    = load_data("Data/BT_Animations.rvdata")
      $data_common_events = load_data("Data/BT_CommonEvents.rvdata")
      $data_system        = load_data("Data/BT_System.rvdata")
   end
   def create_game_objects
      $game_temp          = Game_Temp.new
      $game_message      = Game_Message.new
      $game_system        = Game_System.new
      $game_switches      = Game_Switches.new
      $game_variables    = Game_Variables.new
      $game_self_switches = Game_SelfSwitches.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
   end
    def battle_test
      load_bt_database              
      create_game_objects            
      Graphics.frame_count = 0      
      $game_party.setup_battle_test_members
      $game_troop.setup($data_system.test_troop_id)
      $game_troop.can_escape = true
      $game_system.battle_bgm.play
      snapshot_for_background
      $scene = Scene_Battle.new
   end
end
Image