Advertisement
Guest User

MTS

a guest
Nov 16th, 2018
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 9.69 KB | None | 0 0
  1. #==============================================================================
  2. # ▼ MTS - MistTransferSystem
  3. # Version : 1.1
  4. #------------------------------------------------------------------------------
  5. # Permet de créer un système de téléportation, intégrable dans un menu ou bien
  6. # utilisable à part.
  7. # Par Mist'
  8. # Le 06/02/12
  9. # http://www.rpgmakervx-fr.com/
  10. #
  11. # Merci à Skillo et Berka pour leur aide quant aux fonctions des Arrays!
  12. #==============================================================================
  13. # Créer le Dossier "Graphics/MTS/" s'il n'existe pas.
  14. #==============================================================================
  15. MTS_FOLDER = "Graphics/MTS"
  16.  
  17. if !FileTest.exist?("#{MTS_FOLDER}")
  18.   Dir.mkdir("#{MTS_FOLDER}", 0777)
  19.   p("Le dossier #{MTS_FOLDER} a bien été créé !")
  20. else
  21.   p("Dossier #{MTS_FOLDER} OK.")
  22. end
  23.  
  24. #==============================================================================
  25. # Dans ce même dossier, placez vos images d'illustration.
  26. # Pour paramètrer les images utilisées :
  27. # Aux lignes similaires à celle-ci :
  28. # ["Désert",          1,      9,        2,        "nom_image"]
  29. # nom_image est à remplacer par le nom de votre image.
  30. #==============================================================================
  31.  
  32. #==============================================================================
  33. # ▼ MTS - Mist_Transfer_Sys
  34. # Module
  35. #==============================================================================
  36. module Mist_Transfer_Sys
  37.     # Textes affichés dans la fenêtre du haut. Modulable.
  38.     Msg_Help = ["Menu de téléportation", "Choisissez votre destination"]
  39.     # Paramètrage des téléportations :
  40.     Teleport = [
  41.     # Vous pouvez rajouter vos commandes personnalisées en suivant ce modèle :
  42.     #
  43.     # [Nom_de_la_commande, ID_MAP, X_Arrivée, Y_Arrivée, Nom_image_utilisée],
  44.     ["Désert",          1,      34,       10,       "DarkSpace2"],
  45.     ["Plaine",          2,      6,        6,        "Mountains4"],
  46.     ["Volcan",          3,      6,        6,        "Mountains5"],
  47.     ["Vallée",          4,      9,        5,        "Mountains1"],
  48.     ["Ruines",          5,      9,        35,       "Mountains2"],
  49.     ["Espace",          6,      12,       28,       "Mountains3"],
  50.     ["Ville",           7,      28,       5,        "BlueSky"],
  51.     ["Village",         8,      25,       40,       "CloudySky1"],
  52.     ["Forêt",           9,      27,       22,       "CloudySky2"],
  53.     ["Grotte",          10,     5,        15,       "DarkSpace1"],
  54.     # NE PAS EFFACER.
  55.     ] # <-
  56.     # NE PAS EFFACER.
  57.     # Image par défaut si l'image d'illustration définie n'existe pas.
  58.     Image_Dft = "Défaut"
  59.     # Nom de la commande dans le menu
  60.     NOM_DS_MENU = "Téléport"
  61.     #----------------------------------------------------------
  62.     #                  Prévu pour la V.2
  63.     #
  64.     # Effet Sonore si validation de la téléportation
  65.     # (true = activé, false = désactivé)
  66.     SE_Telep = true
  67.     # Nom du SE
  68.     Nom_SE = "Transfer"
  69.     #-----------------------------------------------------------
  70.   end
  71.  
  72. #===============================================================================
  73. # ▼ Cache
  74. #===============================================================================
  75. module Cache
  76.  def self.tr_cache(filename)
  77.     load_bitmap(MTS_FOLDER+"/", filename)
  78.  end
  79. end
  80.  
  81. #==============================================================================
  82. # ▼ Window_TransferCommand
  83. #==============================================================================
  84. class Window_TransferCommand < Window_Command
  85.  include Mist_Transfer_Sys
  86.  #--------------------------------------------------------------------------
  87.  # ● Initialize
  88.  #--------------------------------------------------------------------------
  89.  def initialize(x, y)
  90.     super(x, y)
  91.     update_position(x, y)
  92.     self.openness = 0
  93.     open
  94.  end
  95.  #--------------------------------------------------------------------------
  96.  # ● Window_width
  97.  #--------------------------------------------------------------------------
  98.  def window_width
  99.     return 160
  100.  end
  101.  #--------------------------------------------------------------------------
  102.  # ● Update_position
  103.  # x : x
  104.  # y : y
  105.  #--------------------------------------------------------------------------
  106.  def update_position(x, y)
  107.     self.x = x
  108.     self.y = y
  109.  end
  110.  #--------------------------------------------------------------------------
  111.  # ● Make_command_list
  112.  #--------------------------------------------------------------------------
  113.  def make_command_list
  114.     key = []
  115.     i = 0
  116.     Teleport.each{|e|
  117.       key << e[0]
  118.       add_command(key[i], :i)
  119.       i += 1
  120.     }
  121.     add_command("Quitter", :quit)
  122.  end
  123. end
  124.  
  125. #==============================================================================
  126. # ▼ Scene_Transfer
  127. #==============================================================================
  128. class Scene_Transfer < Scene_Base
  129.  include Mist_Transfer_Sys
  130.  #--------------------------------------------------------------------------
  131.  # ● Start
  132.  #--------------------------------------------------------------------------
  133.  def start
  134.     super
  135.     creer_win_help
  136.     creer_win_comm
  137.     creer_img
  138.  end
  139.  #--------------------------------------------------------------------------
  140.  # ● Creer_win_help
  141.  #--------------------------------------------------------------------------
  142.  def creer_win_help
  143.     @win_help = Window_Base.new(0, 0, 544, 44*Msg_Help.size)
  144.     Msg_Help.each do |i|
  145.     @win_help.draw_text(0, 32*Msg_Help.index(i), 544, 32, i, 1)
  146.   end
  147.  end
  148.  #--------------------------------------------------------------------------
  149.  # ● Creer_win_comm
  150.  #--------------------------------------------------------------------------
  151.  def creer_win_comm
  152.     @win_comm = Window_TransferCommand.new(0, @win_help.height)
  153.     @win_comm.height = Graphics.height - @win_help.height
  154.     @win_comm.set_handler(:i, method(:transf_process))
  155.     @win_comm.set_handler(:quit, method(:quitter))
  156.   end
  157.  #--------------------------------------------------------------------------
  158.  # ● Creer_img
  159.  #--------------------------------------------------------------------------
  160.  def creer_img
  161.     @sprite = Sprite.new
  162.     @sprite.x = @win_comm.width
  163.     @sprite.y = @win_help.height
  164.   end
  165.  #--------------------------------------------------------------------------
  166.  # ● Update
  167.  #--------------------------------------------------------------------------
  168.  def update
  169.     super
  170.     update_img
  171.   end
  172.  #--------------------------------------------------------------------------
  173.  # ● Dispose_all_sprites
  174.  #--------------------------------------------------------------------------
  175.   def dispose_all_sprites
  176.     instance_variables.each do |varname|
  177.       ivar = instance_variable_get(varname)
  178.       ivar.dispose if ivar.is_a?(Sprite)
  179.     end
  180.   end
  181.  #--------------------------------------------------------------------------
  182.  # ● Terminate
  183.  #--------------------------------------------------------------------------
  184.   def terminate
  185.     super
  186.     dispose_all_sprites
  187.   end
  188.  #--------------------------------------------------------------------------
  189.  # ● Update_img
  190.  #--------------------------------------------------------------------------
  191.  def update_img
  192.     key = []
  193.     Teleport.each{|e|
  194.       key << e[4]
  195.     }
  196.     @sprite.bitmap = Cache.tr_cache(clé[index]) rescue @sprite.bitmap = Cache.tr_cache(Image_Dft)
  197.   end
  198.  #--------------------------------------------------------------------------
  199.  # ● Transf_process
  200.  #--------------------------------------------------------------------------
  201.  def transf_process
  202.     i = @win_comm.index
  203.     $game_player.reserve_transfer(Teleport[i][1],Teleport[i][2],Teleport[i][3])
  204.     SceneManager.goto(Scene_Map)
  205.   end
  206.  #--------------------------------------------------------------------------
  207.  # ● Quitter
  208.  #--------------------------------------------------------------------------
  209.  def quitter
  210.     SceneManager.goto(Scene_Menu)
  211.   end
  212. end
  213.  
  214. #==============================================================================
  215. # ▼ Window_MenuCommand
  216. #==============================================================================
  217. class Window_MenuCommand < Window_Command
  218.   include Mist_Transfer_Sys
  219.   #--------------------------------------------------------------------------
  220.   # ● AJOUT ~
  221.   #--------------------------------------------------------------------------
  222.   def add_transfer_command
  223.     add_command(NOM_DS_MENU, :transfer)
  224.   end
  225.   #--------------------------------------------------------------------------
  226.   # ● MODIF ~
  227.   #--------------------------------------------------------------------------
  228.   def make_command_list
  229.     add_main_commands
  230.     add_formation_command
  231.     add_original_commands
  232.     add_transfer_command # AJOUT #
  233.     add_save_command
  234.     add_game_end_command
  235.   end
  236. end
  237.  
  238. #==============================================================================
  239. # ▼ Window_MenuCommand
  240. #==============================================================================
  241. class Scene_Menu < Scene_MenuBase
  242.   #--------------------------------------------------------------------------
  243.   # ● ALIAS ~
  244.   #--------------------------------------------------------------------------
  245.   alias mts_old_command create_command_window
  246.   def create_command_window
  247.     mts_old_command
  248.     @command_window.set_handler(:transfer,      method(:command_transfer))
  249.   end
  250.   #--------------------------------------------------------------------------
  251.   # ● AJOUT ~
  252.   #--------------------------------------------------------------------------
  253.   def command_transfer
  254.     SceneManager.call(Scene_Transfer)
  255.   end
  256. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement