Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #===========================================================================================
- #Système d'options
- #-------------------------------------------------------------------------------------------
- #Réalisé par Metaiko
- #Version 1.0
- #Le 21/05/2019
- #===========================================================================================
- #----------------------------------------------------------------------------------------
- #Ne touchez pas à cette partie du script sauf si vous savez ce que vous faites !
- #----------------------------------------------------------------------------------------
- begin
- $screen_switch = Win32API.new("user32","keybd_event", "I I I I","") #préparation des entrées clavier pour le passage en full screen/fenêtré
- $screen_ratio = Win32API.new("user32","GetSystemMetrics", "L","i") #servira à récupérer la résolution de l'écran pour savoir si le jeu est déjà en plein écran ou non
- #Initialisation des variables liés à la police. Certaines variables seront modifiées au chargement du fichier Options.rxdata
- $style = "DP"
- $fontface = ["Pokemon DP", "Trebuchet MS"]
- $fontsizesmall = 15 # // hauteur min 14
- $fhs = 14
- $fontsize = 31 # // hauteur min 28
- $fh = 28
- $fontsizebig = 47
- $fhb = 42
- #chargement du fichier Options.rxdata s'il existe
- if File.exist?("Options.rxdata")
- $save=load_data("Options.rxdata")
- $vit_txt =$save[0]
- $ecran =$save[1]
- $style =$save[2]
- #Les boîtes de dialogue sont chargées dans Scene_Title de Système General
- $anim =$save[5]
- $battle_style =$save[6]
- $bgm_master =$save[7]
- $bgs_master =$save[8]
- $me_master =$save[9]
- $se_master =$save[10]
- $dial_type =$save[11]
- $fontface =$save[12]
- $fontsizesmall =$save[13]
- $fontsize =$save[14]
- $fontsizebig =$save[15]
- if $ecran == "Plein Écran" and $screen_ratio.call(0) != 640 and $screen_ratio.call(1) !=480
- #passage en mode plein écran
- $screen_switch.call(18,0,0,0) #ALT Down
- $screen_switch.call(13,0,0,0) #Entrée Down
- $screen_switch.call(13,0,2,0) #Entrée Up
- $screen_switch.call(18,0,2,0) #ALT Up
- end
- end
- end
- class Scene_Settings
- #-----------------------------------------------------------------------------------------
- #Suiver les instructions dans les commentaires
- #-----------------------------------------------------------------------------------------
- Interface = "" #Mettez le nom du fichier de votre interface avec l'extension dans les guillemets. L'image doit se trouver dans Graphics/Pictures
- Affichage_Interface = false # mettre en true si vous voulez utiliser l'interface
- def main
- #----------------------------------------------------------------------------------------
- #Liste des Windowskin pour les boîtes de dialogue
- #Vous pouvez supprimer les Windowskin que vous ne voulez pas utiliser et en
- #ajouter en respectant la synthaxe "Nom_du_Windowskin.extension", (avec la
- #virgule à la fin de chaque ligne SAUF LA DERNIERE !
- #Ensuite, rendez-vous dans le dossier Graphics/Puctures et ajoutez vos boîtes
- #pour les dialogues. Il faudra les renommer de cette manière : messagedummy_N.png
- #Avec N le numéro correspondant au rang du Windowskin associée à cette boîte
- #dans la liste (0 pour le premier, 1 pour le deuxième, ..., n-1 pour le n-ième)
- #----------------------------------------------------------------------------------------
- @Box_List = ["pokesys0.png",
- "pokesys1.png",
- "pokesys2.png",
- "pokesys3.png",
- "pokesys4.png"
- ]
- #----------------------------------------------------------------------------------------
- #@Font_List correspond à la liste des polices d'écriture
- #Vous pouvez supprimer les polices que vous ne voulez pas utiliser et en
- #ajouter en respectant la synthaxe "Nom_de_la_Police", (avec la virgule
- #à la fin de chaque lignes SAUF LA DERNIERE !
- #Vous trouverez le nom des polices installés sur votre PC dans C:/Windows/Fonts
- #ou dans un logiciel de traitement de texte
- #
- #@Font_Shortcut correspond au raccourcis de chaque polices d'écriture
- #Si vous avez supprimé une police d'écriture, il faut supprimer le raccourcis
- #correspondant à la police supprimée. Si vous en avez ajouter une, il faut ajouter
- #un raccourcis au même rang (si votre police est à la 3e place dans @Font_List
- #le raccourcis doit être à la 3e place dans @Font_Shortcut)
- #En jeu, dans le menu des options, il sera afficher "Pokémon <Raccourcis>"
- #lorsque la police sera sélectionnée
- #
- #@Font_size regroupe les tailles de police.
- #Comme pour @Font_Shortcut si vous avez supprimé ou ajouté une police dans
- #@Font_List, il faudra supprimer ou ajouter les paramètres de taille de cette
- #police au même rang que celle-ci.
- #Lors de l'ajout de tailles de police, il faudra respecter cette synthaxe :
- # Taille_petite, Taille_normal, Taille_grosse,
- #Par exemple, pour la police de FRLG, Taille_petite vaut 15, Taillle_normal
- #vaut 29 et Taille_grosse vaut 43 (en 1px, 2px et 3px respectivement)
- #Pensez aux virgules SAUF APRES LA DERNIERE VALEUR
- #----------------------------------------------------------------------------------------
- @Font_List = ["Power Red and Green",
- "Power Red and Blue",
- "Pokemon DP"
- ]
- @Font_Shortcut = ["FRLG",
- "RSE",
- "DP"
- ]
- @Font_size = [15,29,43,
- 15,31,47,
- 15,31,47
- ]
- #----------------------------------------------------------------------------------------
- #Ne touchez pas à la suite du script sauf si vous savez ce que vous faites !
- #----------------------------------------------------------------------------------------
- #Définition des variables globales qui seront sauvegardées et appelées dans les autres scripts
- if $vit_txt == nil
- $vit_txt = POKEMON_S::SPEED_MSG
- end
- if $ecran == nil
- $ecran = "Fenêtre"
- end
- if $dial_type == nil
- $dial_type = 1
- end
- if $anim == nil
- $anim = "Activer"
- end
- if $battle_style == nil
- $battle_style = "Choix"
- end
- if $bgm_master == nil
- $bgm_master = 100
- end
- if $bgs_master == nil
- $bgs_master = 100
- end
- if $me_master == nil
- $me_master = 100
- end
- if $se_master == nil
- $se_master = 100
- end
- @fenetre = 0
- @index = 0
- @index_font = @Font_Shortcut.index($style)
- @background = Sprite.new
- @background.bitmap = RPG::Cache.picture("Options_Background.png")
- if Affichage_Interface == true
- @interface = Sprite.new
- @interface.bitmap = RPG::Cache.picture(Interface)
- @interface.z = 100
- end
- @select_categ = Sprite.new
- @select_categ.bitmap = RPG::Cache.picture("Select_Category.png")
- @select_categ.x = 15
- @select_categ.y = 56
- @select_categ.z = 101
- @select_param = Sprite.new
- @select_param.bitmap = RPG::Cache.picture("Select_Settings.png")
- @select_param.visible = false
- @select_param.x = 442
- @select_param.y = 18
- @select_param.z = 101
- @category = Window_Base.new(0,18,160,312)
- @category.contents = Bitmap.new(160,312)
- @category.z = 100
- @category.opacity = 0 if Affichage_Interface == true
- @category.contents.font.name = $fontface
- @category.contents.font.size = $fontsize
- @category.contents.font.color = @category.normal_color
- @category.contents.draw_text(-15,21,@category.width,32,"Système",1)
- @category.contents.draw_text(-15,90,@category.width,32,"Graphismes",1)
- @category.contents.draw_text(-15,159,@category.width,32,"Audio",1)
- @category.contents.draw_text(-15,228,@category.width,32,"Sauver",1)
- if Affichage_Interface == false
- @setting_window = Window_Base.new(165,6,470,337)
- @setting_window.z = 100
- end
- @settings_text = Window_Base.new(165,6,280,337)
- @settings_text.opacity = 0
- @settings_text.z = 101
- @settings_text.contents = Bitmap.new(235,337)
- @settings_text.contents.font.name=$fontface
- @settings_text.contents.font.size=$fontsize
- @settings_text.contents.font.color= @settings_text.disabled_color
- @settings_select = Window_Base.new(400,6,235,337)
- @settings_select.opacity = 0
- @settings_select.z = 101
- @settings_select.contents = Bitmap.new(235,337)
- @settings_select.contents.font.name=$fontface
- @settings_select.contents.font.size=$fontsize
- @settings_select.contents.font.color= @settings_select.disabled_color
- @text_window = Window_Base.new(5,347,630,123)
- @text_window.z = 100
- @text_window.opacity = 0 if Affichage_Interface == true
- @text_window.contents=Bitmap.new(@text_window.width-16,@text_window.height)
- @text_window.contents.font.name=$fontface
- @text_window.contents.font.size=$fontsize
- @text_window.contents.font.color = @text_window.normal_color
- Graphics.transition
- loop do
- Graphics.update
- Input.update
- update
- if $scene != self
- break
- end
- end
- Graphics.freeze
- @background.dispose
- @interface.dispose if Affichage_Interface == true
- @text_window.dispose
- @category.dispose
- @setting_window.dispose if Affichage_Interface == false
- @settings_text.dispose
- @settings_select.dispose
- @select_categ.dispose
- @select_param.dispose
- end
- def update
- @background.update
- @interface.update if Affichage_Interface == true
- @category.update
- @text_window.update
- @setting_window.update if Affichage_Interface == false
- @settings_text.update
- @settings_select.update
- @select_categ.update
- @select_param.update
- update_command
- end
- def update_command
- if Input.repeat?(Input::DOWN)
- $game_system.se_play($data_system.cursor_se)
- #si on est sur la fenêtre des catégories
- if @fenetre == 0
- @index += 1
- @select_categ.y += 69
- if @index > 3
- @index =3
- @select_categ.y = 263
- end
- #si on est sur la fenêtre des options
- else
- @select_index += 1
- @select_param.y += 32
- if @select_index > @nb_param
- @select_index = @nb_param
- @select_param.y = 18+@select_index*32
- end
- end
- end
- if Input.repeat?(Input::UP)
- $game_system.se_play($data_system.cursor_se)
- #si on est sur la fenêtre des catégories
- if @fenetre == 0
- @index -= 1
- @select_categ.y -= 69
- if @index < 0
- @index =0
- @select_categ.y = 56
- end
- #si on est sur la fenêtre des options
- else
- @select_index -= 1
- @select_param.y -= 32
- if @select_index < 0
- @select_index = 0
- @select_param.y = 18
- end
- end
- end
- #Gestion des commandes sur la fenêtre des options
- if @fenetre == 1
- if Input.repeat?(Input::RIGHT)
- $game_system.se_play($data_system.cursor_se)
- case @index
- when 0
- #Options système
- case @select_index
- when 0
- #changer la vitesse du texte
- $vit_txt +=1
- if $vit_txt > 3
- $vit_txt = 1
- end
- when 1
- #Plein ecran/fenetre
- if $ecran == "Fenêtre"
- $ecran = "Plein Écran"
- else
- $ecran = "Fenêtre"
- end
- #execution de ALT+Entrée
- $screen_switch.call(18,0,0,0) #ALT Down
- $screen_switch.call(13,0,0,0) #Entrée Down
- $screen_switch.call(13,0,2,0) #Entrée Up
- $screen_switch.call(18,0,2,0) #ALT Up
- when 2
- #changement de police
- @index_font += 1
- if @index_font > @Font_List.length-1
- @index_font = 0
- end
- $style = @Font_Shortcut.at(@index_font)
- $fontface = [@Font_List.at(@index_font), "Trebuchet MS"]
- $fontsizesmall = @Font_size.at(3*@index_font)
- $fontsize = @Font_size.at(3*@index_font+1)
- $fontsizebig = @Font_size.at(3*@index_font+2)
- refresh
- when 3
- #Activation/Désactivation des animations de combat
- if $anim == "Activer"
- $anim = "Désactiver"
- else
- $anim = "Activer"
- end
- when 4
- #Changement du style de combat
- if $battle_style == "Choix"
- $battle_style = "Défini"
- else
- $battle_style = "Choix"
- end
- end
- when 1
- #Options graphiques
- case @select_index
- when 0
- #changement de la boîte de dialogue
- $dial_type +=1
- if $dial_type > @Box_List.length
- $dial_type = 1
- end
- $data_system.windowskin_name = @Box_List[$dial_type-1]
- $message_dummy = "messagedummy_"+($dial_type-1).to_s+".png"
- refresh
- end
- when 2
- #Options Audio
- case @select_index
- when 0
- #Augmentation des BGM
- $bgm_master +=5
- if $bgm_master > 100
- $bgm_master = 100
- end
- when 1
- #Augmentation des BGS
- $bgs_master +=5
- if $bgs_master > 100
- $bgs_master = 100
- end
- when 2
- #Augmentation des ME
- $me_master +=5
- if $me_master > 100
- $me_master = 100
- end
- when 3
- #Augmentation des SE
- $se_master +=5
- if $se_master > 100
- $se_master = 100
- end
- end
- end
- end
- if Input.repeat?(Input::LEFT)
- $game_system.se_play($data_system.cursor_se)
- case @index
- when 0
- #Options système
- case @select_index
- when 0
- #changer la vitesse du texte
- $vit_txt -=1
- if $vit_txt < 1
- $vit_txt = 3
- end
- when 1
- #Plein ecran/fenetre
- if $ecran == "Fenêtre"
- $ecran = "Plein Écran"
- else
- $ecran = "Fenêtre"
- end
- #execution de ALT+Entrée
- $screen_switch.call(18,0,0,0) #ALT Down
- $screen_switch.call(13,0,0,0) #Entrée Down
- $screen_switch.call(13,0,2,0) #Entrée Up
- $screen_switch.call(18,0,2,0) #ALT Up
- when 2
- #changement de police
- @index_font -= 1
- if @index_font < 0
- @index_font = @Font_List.length-1
- end
- $style = @Font_Shortcut.at(@index_font)
- $fontface = [@Font_List.at(@index_font), "Trebuchet MS"]
- $fontsizesmall = @Font_size.at(3*@index_font)
- $fontsize = @Font_size.at(3*@index_font+1)
- $fontsizebig = @Font_size.at(3*@index_font+2)
- refresh
- when 3
- #Activation/Désactivation des animations de combat
- if $anim == "Activer"
- $anim = "Désactiver"
- else
- $anim = "Activer"
- end
- when 4
- #Changement du style de combat
- if $battle_style == "Choix"
- $battle_style = "Défini"
- else
- $battle_style = "Choix"
- end
- end
- when 1
- #Options graphiques
- case @select_index
- when 0
- #changement de la boîte de dialogue
- $dial_type -=1
- if $dial_type < 1
- $dial_type = @Box_List.length
- end
- $data_system.windowskin_name = @Box_List[$dial_type-1]
- $message_dummy = "messagedummy_"+($dial_type-1).to_s+".png"
- refresh
- end
- when 2
- #Options Audio
- case @select_index
- when 0
- #Diminution des BGM
- $bgm_master -=5
- if $bgm_master < 0
- $bgm_master = 0
- end
- when 1
- #Diminution des BGS
- $bgs_master -=5
- if $bgs_master < 0
- $bgs_master = 0
- end
- when 2
- #Diminution des ME
- $me_master -=5
- if $me_master< 0
- $me_master = 0
- end
- when 3
- #Diminution des SE
- $se_master -=5
- if $se_master < 0
- $se_master = 0
- end
- end
- end
- end
- end
- if Input.trigger?(Input::B)
- $game_system.se_play($data_system.cancel_se)
- if @fenetre == 0
- #Proposer la sauvegarde et quitter
- draw_text_window("Voulez-vous sauvegarder ces paramètres ?")
- if draw_choice
- sauvegarde
- end
- $scene = Scene_Map.new
- return
- else
- #Retour sur la fenêtre des catégories
- @settings_text.contents.font.color = @settings_text.disabled_color
- @settings_select.contents.font.color = @settings_select.disabled_color
- @fenetre = 0
- @select_param.visible = false
- @select_categ.visible = true
- end
- end
- if Input.trigger?(Input::C)
- if @index != 3
- if @fenetre == 0
- #Passer sur la fenêtre des Options
- $game_system.se_play($data_system.decision_se)
- @settings_text.contents.font.color = @settings_text.normal_color
- @settings_select.contents.font.color = @settings_select.normal_color
- @select_index = 0
- @select_param.y = 18
- @select_param.visible = true
- @select_categ.visible = false
- @fenetre = 1
- else
- $game_system.se_play($data_system.cancel_se)
- #retour sur la fenêtre des Catégories
- @settings_text.contents.font.color = @settings_text.disabled_color
- @settings_select.contents.font.color = @settings_select.disabled_color
- @fenetre = 0
- @select_param.visible = false
- @select_categ.visible = true
- end
- else
- #Sauvegarder
- $game_system.se_play($data_system.save_se)
- sauvegarde
- $scene = Scene_Map.new
- return
- end
- end
- case @index
- #Ecriture des paramètres et des définitions
- when 0
- if @fenetre == 0
- draw_text_window("","Gérer les paramètres système")
- else
- case @select_index
- when 0
- draw_text_window("Sélectionnez la vitesse des dialogues :","1 - Lent 2 - normal 3 - rapide")
- when 1
- draw_text_window("Sélectionnez la taille de l'écran :","- Fenêtré","- Plein écran")
- when 2
- draw_text_window("Sélectionnez la police d'écriture")
- when 3
- draw_text_window("Activez ou désactivez les animations de combat")
- when 4
- draw_text_window("Sélectionnez le style de combat :","- Choix","- Défini")
- end
- end
- draw_text_settings(["Vitesse des dialogues","Taille de l'écran","Police d'écriture","Animations de combat","Style de combat"])
- draw_text_select([$vit_txt.to_s,$ecran,"Pokémon " + $style,$anim,$battle_style])
- when 1
- if @fenetre == 0
- draw_text_window("","Gérer les paramètres graphiques")
- else
- case @select_index
- when 0
- draw_text_window("Choisir l'apparence des boîtes de dialogue")
- end
- end
- draw_text_settings(["Boîtes de dialogue"])
- draw_text_select(["Type "+$dial_type.to_s])
- when 2
- if @fenetre == 0
- draw_text_window("","Gérer les paramètres audio")
- else
- case @select_index
- when 0
- draw_text_window("Réglez le volume des musiques","Les modifications seront effectuées lors du prochain", "changement de zone.")
- when 1
- draw_text_window("Réglez le volume des sons d'ambiance","Les modifications seront effectuées lors du prochain", "changement de zone.")
- when 2
- draw_text_window("Réglez le volume des effets musicaux")
- when 3
- draw_text_window("Réglez le volume des effets sonores")
- end
- end
- draw_text_settings(["Musiques","Sons d'ambiance","Effets musicaux","Effets sonores"])
- draw_text_select([$bgm_master.to_s+" %",$bgs_master.to_s+" %",$me_master.to_s+" %",$se_master.to_s+" %"])
- when 3
- draw_text_window("","Sauvegarder les paramètres") if @fenetre == 0
- draw_text_settings([])
- draw_text_select([])
- end
- end
- def refresh
- @category.contents.font.name = $fontface
- @category.contents.font.size = $fontsize
- @category.contents.clear
- @category.contents.draw_text(-15,21,@category.width,32,"Système",1)
- @category.contents.draw_text(-15,90,@category.width,32,"Graphismes",1)
- @category.contents.draw_text(-15,159,@category.width,32,"Audio",1)
- @category.contents.draw_text(-15,228,@category.width,32,"Sauver",1)
- @settings_text.contents.font.name=$fontface
- @settings_text.contents.font.size=$fontsize
- @settings_text.contents.font.color= @settings_text.normal_color
- @settings_select.contents.font.name=$fontface
- @settings_select.contents.font.size=$fontsize
- @settings_select.contents.font.color= @settings_select.normal_color
- @text_window.contents.font.name=$fontface
- @text_window.contents.font.size=$fontsize
- @text_window.contents.font.color = @text_window.normal_color
- end
- def draw_text_window(string_1="",string_2="",string_3="")
- @text_window.contents.clear
- @text_window.contents.draw_text(0,-4,@text_window.width,32,string_1)
- @text_window.contents.draw_text(0,26,@text_window.width,32,string_2)
- @text_window.contents.draw_text(0,58,@text_window.width,32,string_3)
- end
- def draw_text_settings(string=[])
- @settings_text.contents.clear
- for i in 0..string.length-1 do
- @settings_text.contents.draw_text(0,-4+32*i,@settings_text.width,32,string.at(i))
- end
- end
- def draw_text_select(string=[])
- @settings_select.contents.clear
- for i in 0..string.length-1 do
- @settings_select.contents.draw_text(0,-4+32*i,@settings_select.width,32,string.at(i),1)
- end
- @nb_param = string.length-1
- end
- def draw_choice
- @command = Window_Command.new(120, ["OUI", "NON"], $fontsizebig)
- @command.x = 515
- @command.y = 224
- loop do
- Graphics.update
- Input.update
- @command.update
- if Input.trigger?(Input::C) and @command.index == 0
- @command.dispose
- @command = nil
- Input.update
- return true
- end
- if Input.trigger?(Input::C) and @command.index == 1
- @command.dispose
- @command = nil
- Input.update
- return false
- end
- end
- end
- def sauvegarde
- file = File.open("Options.rxdata","wb")
- $save = [$vit_txt, $ecran, $style, $data_system.windowskin_name, $message_dummy, $anim, $battle_style, $bgm_master, $bgs_master, $me_master, $se_master, $dial_type, $fontface, $fontsizesmall, $fontsize, $fontsizebig]
- Marshal.dump($save,file)
- file.close
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement