Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #==============================================================================
- # ▼ MTS - MistTransferSystem
- # Version : 1.0
- #------------------------------------------------------------------------------
- # Permet de créer un système de téléportation, intégrable dans un menu ou bien
- # utilisable à part.
- # Par Mist'
- # Le 06/02/12
- # http://www.rpgmakervx-fr.com/
- #
- # Merci à Skillo et Berka pour leur aide quant aux fonctions des Arrays!
- #==============================================================================
- # Créer le Dossier "Graphics/MTS/" s'il n'existe pas.
- #==============================================================================
- TMP = "MTS"
- Dir.mkdir("Graphics/#{TMP}", 0777) rescue nil
- FileTest.exist?(TMP) ? nil : p("Le dossier #{TMP} a bien été créé !")
- #==============================================================================
- # Dans ce même dossier, placez vos images d'illustration.
- # Pour paramètrer les images utilisées :
- # Aux lignes similaires à celle-ci :
- # ["Désert", 1, 9, 2, "nom_image"]
- # nom_image est à remplacer par le nom de votre image.
- #==============================================================================
- #==============================================================================
- # ▼ MTS - Mist_Transfer_Sys
- # Module
- #==============================================================================
- module Mist_Transfer_Sys
- # Textes affichés dans la fenêtre du haut. Modulable.
- Msg_Help = ["Menu de téléportation", "Choisissez votre destination"]
- # Paramètrage des téléportations :
- Teleport = [
- # Vous pouvez rajouter vos commandes personnalisées en suivant ce modèle :
- #
- # [Nom_de_la_commande, ID_MAP, X_Arrivée, Y_Arrivée, Nom_image_utilisée, Interupteur_id],
- ["Désert", 1, 2, 10, "DarkSpace2", 1],
- ["Plaine", 2, 6, 6, "Mountains4", 1],
- ["Volcan", 3, 6, 6, "Mountains5", 1],
- ["Vallée", 4, 9, 5, "Mountains1", 1],
- ["Ruines", 5, 9, 35, "Mountains2", 1],
- ["Espace", 6, 12, 28, "Mountains3", 1],
- ["Ville", 7, 28, 5, "BlueSky", 1],
- ["Village", 8, 25, 40, "CloudySky1", 1],
- ["Forêt", 9, 27, 22, "CloudySky2", 1],
- ["Grotte", 10, 5, 15, "DarkSpace1", 1],
- # NE PAS EFFACER.
- ] # <-
- # NE PAS EFFACER.
- # Image par défaut si l'image d'illustration définie n'existe pas.
- Image_Dft = "Défaut"
- # Nom de la commande dans le menu
- NOM_DS_MENU = "Télé-Port"
- # Répertoire où aller chercher les images
- Tr_Cache = "Graphics/#{TMP}/"
- #----------------------------------------------------------
- # Prévu pour la V.2
- #
- # Effet Sonore si validation de la téléportation
- # (true = activé, false = désactivé)
- SE_Telep = false
- # Nom du SE
- Nom_SE = "Transfer"
- #-----------------------------------------------------------
- end
- #===============================================================================
- # ▼ Cache
- #===============================================================================
- module Cache
- def self.tr_cache(filename)
- load_bitmap(Mist_Transfer_Sys::Tr_Cache, filename)
- end
- end
- #==============================================================================
- # ▼ Window_TransferCommand
- #==============================================================================
- class Window_TransferCommand < Window_Command
- include Mist_Transfer_Sys
- #--------------------------------------------------------------------------
- # ● Initialize
- #--------------------------------------------------------------------------
- def initialize(x, y)
- super(x, y)
- update_position(x, y)
- self.openness = 0
- open
- end
- #--------------------------------------------------------------------------
- # ● Window_width
- #--------------------------------------------------------------------------
- def window_width
- return 160
- end
- #--------------------------------------------------------------------------
- # ● Update_position
- # x : x
- # y : y
- #--------------------------------------------------------------------------
- def update_position(x, y)
- self.x = x
- self.y = y
- end
- #--------------------------------------------------------------------------
- # ● Make_command_list
- #--------------------------------------------------------------------------
- def make_command_list
- clé = []
- for i in 0...Teleport.size
- clé.push(Teleport[i][0]) if $game_switches[Teleport[i][5]]
- add_command(clé[i], :i) if $game_switches[Teleport[i][5]]
- end
- add_command("Quitter", :quit)
- end
- end
- #==============================================================================
- # ▼ Scene_Transfer
- #==============================================================================
- class Scene_Transfer < Scene_Base
- include Mist_Transfer_Sys
- #--------------------------------------------------------------------------
- # ● Start
- #--------------------------------------------------------------------------
- def start
- super
- creer_win_help
- creer_win_comm
- creer_img
- end
- #--------------------------------------------------------------------------
- # ● Creer_win_help
- #--------------------------------------------------------------------------
- def creer_win_help
- @win_help = Window_Base.new(0, 0, 544, 44*Msg_Help.size)
- Msg_Help.each do |i|
- @win_help.draw_text(0, 32*Msg_Help.index(i), 544, 32, i, 1)
- end
- end
- #--------------------------------------------------------------------------
- # ● Creer_win_comm
- #--------------------------------------------------------------------------
- def creer_win_comm
- @win_comm = Window_TransferCommand.new(0, @win_help.height)
- @win_comm.height = Graphics.height - @win_help.height
- @win_comm.set_handler(:i, method(:transf_process))
- @win_comm.set_handler(:quit, method(:quitter))
- end
- #--------------------------------------------------------------------------
- # ● Creer_img
- #--------------------------------------------------------------------------
- def creer_img
- @sprite = Sprite.new
- @sprite.x = @win_comm.width
- @sprite.y = @win_help.height
- end
- #--------------------------------------------------------------------------
- # ● Update
- #--------------------------------------------------------------------------
- def update
- super
- update_img
- end
- #--------------------------------------------------------------------------
- # ● Dispose_all_sprites
- #--------------------------------------------------------------------------
- def dispose_all_sprites
- instance_variables.each do |varname|
- ivar = instance_variable_get(varname)
- ivar.dispose if ivar.is_a?(Sprite)
- end
- end
- #--------------------------------------------------------------------------
- # ● Terminate
- #--------------------------------------------------------------------------
- def terminate
- super
- dispose_all_sprites
- end
- #--------------------------------------------------------------------------
- # ● Update_img
- #--------------------------------------------------------------------------
- def update_img
- index = @win_comm.index
- clé = []
- for i in 0...Teleport.size
- clé.push(Teleport[i][4]) if $game_switches[Teleport[i][5]]
- end
- @sprite.bitmap = Cache.tr_cache(clé[index]) rescue @sprite.bitmap = Cache.tr_cache(Image_Dft)
- end
- #--------------------------------------------------------------------------
- # ● Transf_process
- #--------------------------------------------------------------------------
- def transf_process
- Teleport.each do |f|
- @i = f if f[0] == @win_comm.command_name(@win_comm.index)
- end
- $game_player.reserve_transfer(@i[1],@i[2],@i[3])
- SceneManager.goto(Scene_Map)
- end
- #--------------------------------------------------------------------------
- # ● Quitter
- #--------------------------------------------------------------------------
- def quitter
- SceneManager.return
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement