Advertisement
Zouzaka

Modified MistTransferSystem

Jul 4th, 2014
353
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 8.44 KB | None | 0 0
  1. #==============================================================================
  2. # ▼ MTS - MistTransferSystem
  3. # Version : 1.0
  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. TMP = "MTS"
  16. Dir.mkdir("Graphics/#{TMP}", 0777) rescue nil
  17. FileTest.exist?(TMP) ? nil : p("Le dossier #{TMP} a bien été créé !")
  18.  
  19. #==============================================================================
  20. # Dans ce même dossier, placez vos images d'illustration.
  21. # Pour paramètrer les images utilisées :
  22. # Aux lignes similaires à celle-ci :
  23. # ["Désert",          1,      9,        2,        "nom_image"]
  24. # nom_image est à remplacer par le nom de votre image.
  25. #==============================================================================
  26.  
  27. #==============================================================================
  28. # ▼ MTS - Mist_Transfer_Sys
  29. # Module
  30. #==============================================================================
  31. module Mist_Transfer_Sys
  32.     # Textes affichés dans la fenêtre du haut. Modulable.
  33.     Msg_Help = ["Menu de téléportation", "Choisissez votre destination"]
  34.     # Paramètrage des téléportations :
  35.     Teleport = [
  36.     # Vous pouvez rajouter vos commandes personnalisées en suivant ce modèle :
  37.     #
  38.     # [Nom_de_la_commande, ID_MAP, X_Arrivée, Y_Arrivée, Nom_image_utilisée, Interupteur_id],
  39.     ["Désert",               1,        2,         10,         "DarkSpace2",         1],
  40.     ["Plaine",               2,        6,          6,         "Mountains4",         1],
  41.     ["Volcan",               3,        6,          6,         "Mountains5",         1],
  42.     ["Vallée",               4,        9,          5,         "Mountains1",         1],
  43.     ["Ruines",               5,        9,         35,         "Mountains2",         1],
  44.     ["Espace",               6,       12,         28,         "Mountains3",         1],
  45.     ["Ville",                7,       28,          5,            "BlueSky",         1],
  46.     ["Village",              8,       25,         40,         "CloudySky1",         1],
  47.     ["Forêt",                9,       27,         22,         "CloudySky2",         1],
  48.     ["Grotte",              10,       5,          15,         "DarkSpace1",         1],
  49.     # NE PAS EFFACER.
  50.     ] # <-
  51.     # NE PAS EFFACER.
  52.     # Image par défaut si l'image d'illustration définie n'existe pas.
  53.     Image_Dft = "Défaut"
  54.     # Nom de la commande dans le menu
  55.     NOM_DS_MENU = "Télé-Port"
  56.     # Répertoire où aller chercher les images
  57.     Tr_Cache = "Graphics/#{TMP}/"
  58.     #----------------------------------------------------------
  59.     #                  Prévu pour la V.2
  60.     #
  61.     # Effet Sonore si validation de la téléportation
  62.     # (true = activé, false = désactivé)
  63.     SE_Telep = false
  64.     # Nom du SE
  65.     Nom_SE = "Transfer"
  66.     #-----------------------------------------------------------
  67.   end
  68.  
  69. #===============================================================================
  70. # ▼ Cache
  71. #===============================================================================
  72. module Cache
  73.  def self.tr_cache(filename)
  74.     load_bitmap(Mist_Transfer_Sys::Tr_Cache, filename)
  75.  end
  76. end
  77.  
  78. #==============================================================================
  79. # ▼ Window_TransferCommand
  80. #==============================================================================
  81. class Window_TransferCommand < Window_Command
  82.  include Mist_Transfer_Sys
  83.  #--------------------------------------------------------------------------
  84.  # ● Initialize
  85.  #--------------------------------------------------------------------------
  86.  def initialize(x, y)
  87.     super(x, y)
  88.     update_position(x, y)
  89.     self.openness = 0
  90.     open
  91.  end
  92.  #--------------------------------------------------------------------------
  93.  # ● Window_width
  94.  #--------------------------------------------------------------------------
  95.  def window_width
  96.     return 160
  97.  end
  98.  #--------------------------------------------------------------------------
  99.  # ● Update_position
  100.  # x : x
  101.  # y : y
  102.  #--------------------------------------------------------------------------
  103.  def update_position(x, y)
  104.     self.x = x
  105.     self.y = y
  106.  end
  107.  #--------------------------------------------------------------------------
  108.  # ● Make_command_list
  109.  #--------------------------------------------------------------------------
  110.  def make_command_list
  111.   clé = []
  112.   for i in 0...Teleport.size
  113.     clé.push(Teleport[i][0])  if $game_switches[Teleport[i][5]]
  114.     add_command(clé[i], :i) if $game_switches[Teleport[i][5]]
  115.   end
  116.     add_command("Quitter", :quit)
  117.  end
  118. end
  119.  
  120. #==============================================================================
  121. # ▼ Scene_Transfer
  122. #==============================================================================
  123. class Scene_Transfer < Scene_Base
  124.  include Mist_Transfer_Sys
  125.  #--------------------------------------------------------------------------
  126.  # ● Start
  127.  #--------------------------------------------------------------------------
  128.  def start
  129.     super
  130.     creer_win_help
  131.     creer_win_comm
  132.     creer_img
  133.  end
  134.  #--------------------------------------------------------------------------
  135.  # ● Creer_win_help
  136.  #--------------------------------------------------------------------------
  137.  def creer_win_help
  138.     @win_help = Window_Base.new(0, 0, 544, 44*Msg_Help.size)
  139.     Msg_Help.each do |i|
  140.     @win_help.draw_text(0, 32*Msg_Help.index(i), 544, 32, i, 1)
  141.   end
  142.  end
  143.  #--------------------------------------------------------------------------
  144.  # ● Creer_win_comm
  145.  #--------------------------------------------------------------------------
  146.  def creer_win_comm
  147.     @win_comm = Window_TransferCommand.new(0, @win_help.height)
  148.     @win_comm.height = Graphics.height - @win_help.height
  149.     @win_comm.set_handler(:i, method(:transf_process))
  150.     @win_comm.set_handler(:quit, method(:quitter))
  151.   end
  152.  #--------------------------------------------------------------------------
  153.  # ● Creer_img
  154.  #--------------------------------------------------------------------------
  155.  def creer_img
  156.     @sprite = Sprite.new
  157.     @sprite.x = @win_comm.width
  158.     @sprite.y = @win_help.height
  159.   end
  160.  #--------------------------------------------------------------------------
  161.  # ● Update
  162.  #--------------------------------------------------------------------------
  163.  def update
  164.     super
  165.     update_img
  166.   end
  167.  #--------------------------------------------------------------------------
  168.  # ● Dispose_all_sprites
  169.  #--------------------------------------------------------------------------
  170.   def dispose_all_sprites
  171.     instance_variables.each do |varname|
  172.       ivar = instance_variable_get(varname)
  173.       ivar.dispose if ivar.is_a?(Sprite)
  174.     end
  175.   end
  176.  #--------------------------------------------------------------------------
  177.  # ● Terminate
  178.  #--------------------------------------------------------------------------
  179.   def terminate
  180.     super
  181.     dispose_all_sprites
  182.   end
  183.  #--------------------------------------------------------------------------
  184.  # ● Update_img
  185.  #--------------------------------------------------------------------------
  186.  def update_img
  187.   index = @win_comm.index
  188.   clé = []
  189.     for i in 0...Teleport.size
  190.     clé.push(Teleport[i][4]) if $game_switches[Teleport[i][5]]
  191.     end
  192.     @sprite.bitmap = Cache.tr_cache(clé[index]) rescue @sprite.bitmap = Cache.tr_cache(Image_Dft)
  193.   end
  194.  #--------------------------------------------------------------------------
  195.  # ● Transf_process
  196.  #--------------------------------------------------------------------------
  197.  def transf_process
  198.     Teleport.each do |f|
  199.       @i = f if f[0] == @win_comm.command_name(@win_comm.index)
  200.     end
  201.     $game_player.reserve_transfer(@i[1],@i[2],@i[3])
  202.     SceneManager.goto(Scene_Map)
  203.   end
  204.  #--------------------------------------------------------------------------
  205.  # ● Quitter
  206.  #--------------------------------------------------------------------------
  207.  def quitter
  208.     SceneManager.return
  209.   end
  210. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement