Advertisement
biward

[VXAce] AnimFace

Oct 28th, 2013
361
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 3.55 KB | None | 0 0
  1. ################################################################################
  2. ############################# ANIM FACE ########################################
  3. ################################################################################
  4. =begin
  5.  
  6. Auteur : Biward
  7. Version : 1.0
  8. Fonctionne sur : VXAce
  9. Date : 17/08/2013 00:58
  10.  
  11. Ce script vous permet d'animer votre windows message en fonction d'une variable.
  12. Donc en fonction du personnage, du moment et bien d'autres possibilités.
  13. De plus, vous pouvez gérer vous mêmes les faces à afficher et le temps entre
  14. chacune.
  15. =end
  16. module BI
  17.   module FACE
  18.    
  19.     # Déterminez ici la variable qui stockera l'animation de la face
  20.     VARIABLE = 1
  21.    
  22.     # Indiquez ici les index du fichier de la Face utilisée pour le message
  23.     # Ces différents index seront choisis en fonction de la valeur de la variable
  24.     # Par exemple, si on a :
  25.     #
  26.     # VARIABLE = 1
  27.     #
  28.     # NB_INDEX = {
  29.     # 1 => [2, 1],
  30.     # }
  31.     #
  32.     # Cela veut dire que si la variable 1 vaut 1, alors les faces affichées sur
  33.     # le message seront les faces (du fichier choisi) qui ont pour index 2 puis 1.
  34.     # Ces deux faces s'afficheront donc à intervalle régulieur.
  35.     NB_INDEX = {
  36.     1 => [2, 1],
  37.     2 => [3, 4],
  38.     }
  39.    
  40.     # Déterminez ici l'intervalle entre chaque affichage de face en fonction de
  41.     # la valeur de la variable choisie plus haut.
  42.     FRAME = {
  43.     1 => 30,
  44.     2 => 60,
  45.     }
  46.    
  47.   end
  48. end
  49.  
  50. ################################################################################
  51. ##### Début du script
  52. ################################################################################
  53.  
  54. ### Window_Message ###
  55. # ajout d'une méthode permettant l'affichage de la face en fonction de l'index
  56. # reconnaissance à la commande \A
  57. class Window_Message < Window_Base  
  58.   def aff_new_face(index)
  59.     i = BI::FACE::NB_INDEX[$game_variables[BI::FACE::VARIABLE]][index - 1] - 1
  60.     draw_face($game_message.face_name, i, 0, 0) if index
  61.   end  
  62.   alias pec_bi process_escape_character
  63.   def process_escape_character(code, text, pos)
  64.     case code.upcase
  65.     when 'A'
  66.       if $anim_mess
  67.       $anim_mess = false
  68.       else
  69.         $anim_mess = true
  70.       end      
  71.     end
  72.     pec_bi(code, text, pos)
  73.   end    
  74. end
  75.  
  76. ### Scene_Map ###
  77. # ajout d'outils dans l'update afin de mettre à jour la fenêtre de message
  78. class Scene_Map < Scene_Base
  79.   alias u_face_bi update  
  80.   def update
  81.     u_face_bi
  82.     if ! $game_message.visible && $anim_mess
  83.       $anim_mess = false
  84.     end
  85.     if $game_message.visible
  86.       if $anim_mess
  87.         @count = 0 if ! @count
  88.         @index_face = 0 if ! @index_face
  89.         @index_face += 1 if @count == BI::FACE::FRAME[$game_variables[BI::FACE::VARIABLE]]
  90.         @message_window.aff_new_face(@index_face.to_i) if @count == BI::FACE::FRAME[$game_variables[BI::FACE::VARIABLE]]
  91.         if @count == BI::FACE::FRAME[$game_variables[BI::FACE::VARIABLE]] && @index_face == (BI::FACE::NB_INDEX[$game_variables[BI::FACE::VARIABLE]].size)
  92.           @index_face = 0
  93.         end
  94.         @count = 0 if @count == BI::FACE::FRAME[$game_variables[BI::FACE::VARIABLE]]
  95.         @count += 1 if @count
  96.       else
  97.         @count = nil if @count
  98.         @index_face = nil if @index_face
  99.       end
  100.     else
  101.       @count = nil if @count
  102.       @index_face = nil if @index_face
  103.     end
  104.   end
  105. end
  106. ################################################################################
  107. ##### Fin du script
  108. ################################################################################
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement