Advertisement
biward

[VXAce] MapInfo

Oct 28th, 2013
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 6.92 KB | None | 0 0
  1. ################################################################################
  2. ##### Map_Info
  3. ################################################################################
  4. # Auteur : Biward
  5. # Version : 2.0
  6. # Date : (V1)01/06/2010  ;  (V2)28/08/2013
  7. #
  8. # Ce script permet d'afficher des informations sur la map avec plusieurs
  9. # paramètres disponibles.
  10. #
  11. #
  12. # Pour afficher une information, fait un appel de script avec cette commande :
  13. #   map_info(id)
  14. #
  15. # avec id l'ID de l'information dans la configuration !
  16. #
  17. # De plus, vous pouvez changer la couleur du texte en faisant :
  18. #   color_minfo(R, V, B)
  19. #
  20. # avec R la teneur en rouge, V la teneur en vert et B la teneur en bleu.
  21. # Chacun de ces paramètres est un chiffre variant entre 0 et 255.
  22. #
  23. # Faite : reset_color pour remettre la couleur par défaut
  24. #
  25. ################################## Configuration ###############################
  26. module BINFO
  27. #
  28. #
  29. # Mettez ici les informations à afficher.
  30. # ID = [TEXT, SEC, WINDOW, BACKGROUND, CHARACTER_NAME, CHARACTER_INDEX]
  31.  
  32. # ID = id de l'info
  33. # TEXT = Texte de l'information
  34. # SEC = nombre de seconde que s'affiche le message en frame
  35. # WINDOW = true pour afficher la window, false pour non
  36. # BACKGROUND = Mettez le nom du fond si vous voulez en afficher un. Sinon false ou nil
  37. # CHARACTER_NAME = Indiquez le no du chara qui s'affichera
  38. # CHARACTER_INDEX = L'index du character
  39.     INFO = {
  40.     1 => ["Bonjour ! Vous êtes prié d'ouvrir le menu !", 600, false, "back_message"],
  41.     2 => ["Rhoo ! Taggle ?", 60, true, nil, "Actor1", 3],
  42.    
  43.     3 => ["Salut Ralph..", 180, true, nil, "Actor4", 0],
  44.     4 => ["Eric ?! Toi ici ?!?", 120, true, nil, "Actor1", 0],
  45.     5 => ["Et ouais, je te remplace ! Les nerfs ?", 300, true, nil, "Actor4", 0],
  46.     6 => ["ESPECE DE #&@!*", 120, true, nil, "Actor1", 0],
  47.     7 => ["ahahahahah....", 600, true, nil, "Actor4", 0]
  48.     } # Laissez ça !
  49.  
  50. end
  51.  
  52. ############################################################################################################
  53. #################################### DEBUT DU SCRIPT #######################################################
  54. ############################################################################################################
  55. class Scene_Map < Scene_Base
  56.  
  57.   class << self
  58.     attr_accessor :id, :actinfo, :timinfo, :window, :back, :chname, :chid, :wininfo, :color
  59.   end
  60.  
  61.   #**********************************************
  62.   # Terminate
  63.   #_________________________________
  64.  
  65.   alias info_terminate terminate
  66.   def terminate
  67.     @win.dispose if @win
  68.     @back.dispose if @back
  69.     info_terminate
  70.   end
  71.  
  72.   #**********************************************
  73.   # Update
  74.   #_________________________________
  75.   alias info_update update
  76.   def update
  77.     update_actinfo if Scene_Map.actinfo
  78.     update_opinfo if Scene_Map.timinfo
  79.     info_update
  80.   end
  81.      
  82.   def update_actinfo
  83.     @win.dispose if @win
  84.     @back.dispose if @back
  85.     @back = Sprite.new
  86.     @back.bitmap = Cache.system(BINFO::INFO[Scene_Map.id.to_i][3]) if ! Scene_Map.wininfo # creation du sprite
  87.  
  88.     xy = 0 ; xy = -16 if ! Scene_Map.wininfo
  89.     w = Graphics.width ; w = Graphics.width + 32 if ! Scene_Map.wininfo
  90.     h = 56 ; h = 88 if ! Scene_Map.wininfo
  91.     @win = Window_Base.new(xy, xy, w, h) # Création de la Fenêtre
  92.    
  93.     # couleur
  94.     if Scene_Map.color
  95.       @win.contents.font.color = Color.new(Scene_Map.color[0], Scene_Map.color[1], Scene_Map.color[2], @win.opacity) if @win && Scene_Map.wininfo
  96.       @win.contents.font.color = Color.new(Scene_Map.color[0], Scene_Map.color[1], Scene_Map.color[2], @back.opacity) if @back && ! Scene_Map.wininfo
  97.     else
  98.       @win.contents.font.color = Color.new(255, 255, 255, @win.opacity) if @win
  99.       @win.contents.font.color = Color.new(255, 255, 255, @back.opacity) if @back
  100.     end
  101.    
  102.    
  103.     x = 32 ; x = 48 if ! Scene_Map.wininfo
  104.     y = -193 ; y = -177 if ! Scene_Map.wininfo
  105.     @win.contents.draw_text(x, y, 544, 416, BINFO::INFO[Scene_Map.id.to_i][0], 0) # Affichage de l'info
  106.    
  107.     xy = 32 ; xy = 32 if ! Scene_Map.wininfo
  108.     @win.draw_character(Scene_Map.chname, Scene_Map.chid, xy, xy) if Scene_Map.chname && Scene_Map.chid # affichage du chara
  109.     Scene_Map.actinfo = nil
  110.   end
  111.    
  112.   def update_opinfo
  113.     @win.contents.clear
  114.     @win.opacity -= Scene_Map.timinfo if @win && Scene_Map.wininfo
  115.    
  116.     @back.opacity -= Scene_Map.timinfo if @back && ! Scene_Map.wininfo
  117.     @win.contents_opacity -= Scene_Map.timinfo if @win
  118.    
  119.     # couleur
  120.     if Scene_Map.color && Scene_Map.color[0] && Scene_Map.color[1] && Scene_Map.color[2]
  121.       @win.contents.font.color = Color.new(Scene_Map.color[0], Scene_Map.color[1], Scene_Map.color[2], @win.opacity) if @win && Scene_Map.wininfo
  122.       @win.contents.font.color = Color.new(Scene_Map.color[0], Scene_Map.color[1], Scene_Map.color[2], @back.opacity) if @back && ! Scene_Map.wininfo
  123.     else
  124.       @win.contents.font.color = Color.new(255, 255, 255, @win.opacity) if @win
  125.       @win.contents.font.color = Color.new(255, 255, 255, @back.opacity) if @back
  126.     end
  127.    
  128.     x = 32 ; x = 48 if ! Scene_Map.wininfo
  129.     y = -193 ; y = -177 if ! Scene_Map.wininfo
  130.     @win.opacity = 0 if ! Scene_Map.wininfo
  131.     @win.contents.draw_text(x, y, 544, 416, BINFO::INFO[Scene_Map.id.to_i][0], 0) # Affichage de l'info
  132.    
  133.     x = 16 ; x = 32 if ! Scene_Map.wininfo
  134.     @win.draw_character(Scene_Map.chname, Scene_Map.chid, x, 32) if Scene_Map.chname && Scene_Map.chid # affichage du chara
  135.  
  136.    if Scene_Map.wininfo
  137.       if @win.opacity <= 0
  138.       Scene_Map.timinfo = nil
  139.       Scene_Map.id = nil
  140.         @win.dispose
  141.         @win = nil
  142.         Scene_Map.chname = nil
  143.         Scene_Map.chid = nil
  144.       end
  145.     else
  146.       if @back.opacity <= 0
  147.         Scene_Map.timinfo = nil
  148.       Scene_Map.id = nil
  149.         @back.dispose
  150.         @back = nil
  151.         Scene_Map.chname = nil
  152.         Scene_Map.chid = nil
  153.       end
  154.     end
  155.   end
  156. end
  157.  
  158. class Game_Interpreter  
  159. def map_info(id)
  160.     if BINFO::INFO[id.to_i]
  161.       Scene_Map.id = id
  162.       Scene_Map.actinfo = true
  163.       Scene_Map.timinfo = (255.0 / BINFO::INFO[id.to_i][1].to_f)
  164.       Scene_Map.wininfo = BINFO::INFO[id.to_i][2]
  165.       Scene_Map.back = BINFO::INFO[id.to_i][3] if BINFO::INFO[id.to_i][3]
  166.       Scene_Map.chname = BINFO::INFO[id.to_i][4]
  167.       Scene_Map.chid = BINFO::INFO[id.to_i][5]
  168.       Scene_Map.color ||= [255, 255, 255]
  169.     else
  170.       print "Erreur au niveau de l'ID de l'information"
  171.     end
  172.   end
  173.  
  174.   def color_minfo(r, v, b)
  175.     Scene_Map.color = [r, v, b]
  176.   end
  177.  
  178.   def reset_color
  179.     Scene_Map.color.clear
  180.     Scene_Map.color = nil
  181.   end
  182. end
  183. ############################################################################################################
  184. ###################################### FIN DU SCRIPT #######################################################
  185. ############################################################################################################
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement