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
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