Cerberuser

MOG Extra PAttern

May 13th, 2015
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 6.62 KB | None | 0 0
  1. #==============================================================================
  2. # +++ MOG - Extra Pattern (v1.0) +++
  3. #==============================================================================
  4. # By Moghunter
  5. # http://www.atelier-rgss.com
  6. #==============================================================================
  7. # O script permite definir a quantidade de frames de animações do personagem.
  8. #==============================================================================
  9.  
  10. #==============================================================================
  11. # UTILIZAÇÃO
  12. #==============================================================================
  13. # FILE_NAME[X].png
  14. #
  15. # X - Quantidade de frames.
  16. #
  17. # Alice[8].png
  18. #
  19. #==============================================================================
  20.  
  21. #==============================================================================
  22. # ■ Game_CharacterBase
  23. #==============================================================================
  24. class Game_CharacterBase
  25.  
  26.   attr_accessor :pattern
  27.   attr_accessor :e_pattern
  28.   attr_accessor :original_pattern
  29.  
  30.   #--------------------------------------------------------------------------
  31.   # ● Init Public Members
  32.   #--------------------------------------------------------------------------
  33.   alias mog_extra_pattern_init_public_members init_public_members
  34.   def init_public_members
  35.       @e_pattern = 0
  36.       mog_extra_pattern_init_public_members
  37.   end
  38.  
  39.   #--------------------------------------------------------------------------
  40.   # ● Update Anime Pattern
  41.   #--------------------------------------------------------------------------
  42.   alias mog_extra_pattern_update_anime_pattern update_anime_pattern
  43.   def update_anime_pattern
  44.       return if update_extra_anime_pattern?
  45.       mog_extra_pattern_update_anime_pattern
  46.   end    
  47.      
  48.   #--------------------------------------------------------------------------
  49.   # ● Update Extra Anime Pattern
  50.   #--------------------------------------------------------------------------  
  51.   def update_extra_anime_pattern?
  52.       return false if @e_pattern == 0
  53.       if !@step_anime && @stop_count > 0
  54.          @pattern = @original_pattern
  55.       else
  56.          @pattern = (@pattern + 1) % @e_pattern
  57.        end
  58.       return true
  59.   end  
  60.  
  61.   #--------------------------------------------------------------------------
  62.   # ● Straighten
  63.   #--------------------------------------------------------------------------
  64.   alias mog_extra_pattern_straighten straighten
  65.   def straighten
  66.       mog_extra_pattern_straighten
  67.       @pattern = 0 if (@walk_anime || @step_anime) and @e_pattern > 0
  68.   end  
  69.  
  70. end  
  71.  
  72. #==============================================================================
  73. # ■ Sprite Character
  74. #==============================================================================
  75. class Sprite_Character < Sprite_Base
  76.  
  77.   #--------------------------------------------------------------------------
  78.   # ● Set Character Bitmap
  79.   #--------------------------------------------------------------------------
  80.   alias mog_extra_pattern_set_character_bitmap set_character_bitmap
  81.   def set_character_bitmap
  82.       return if can_set_extra_pattern? rescue nil
  83.       mog_extra_pattern_set_character_bitmap  
  84.       @character.original_pattern = 1
  85.   end
  86.  
  87.   #--------------------------------------------------------------------------
  88.   # ● Can Set Extra Pattern
  89.   #--------------------------------------------------------------------------  
  90.   def can_set_extra_pattern?
  91.       if @character.character_name =~ /\[(\d+)]/i
  92.          set_character_extra_pattern($1.to_i)
  93.          return true
  94.       end
  95.       return false
  96.   end
  97.  
  98.   #--------------------------------------------------------------------------
  99.   # ● Set Character Extra Pattern
  100.   #--------------------------------------------------------------------------    
  101.   def set_character_extra_pattern(frames)
  102.       self.bitmap = Cache.character(@character_name)
  103.       @character.e_pattern = frames
  104.       # @character.pattern = 0
  105.       @character.original_pattern = 0
  106.       @cw = bitmap.width / @character.e_pattern
  107. ####################
  108.     p ["@cw", cw]
  109. ####################
  110.       @ch = bitmap.height / 4
  111.       self.ox = @cw / 2
  112.       self.oy = @ch    
  113.       if $schala_battle_system != nil
  114.          set_sprite_size(@ch,@cw) if @cw != nil and @cw != nil
  115.       end
  116.   end
  117.  
  118.   #--------------------------------------------------------------------------
  119.   # ● Update Scr Rect
  120.   #--------------------------------------------------------------------------
  121.   alias mog_extra_pattern_update_src_rect update_src_rect
  122.   def update_src_rect
  123.       return if update_extra_pattern_src_rect?
  124.       mog_extra_pattern_update_src_rect
  125.   end
  126.  
  127.   #--------------------------------------------------------------------------
  128.   # ● Update Extra Pattern Src Rect
  129.   #--------------------------------------------------------------------------  
  130.   def update_extra_pattern_src_rect?
  131.       return false if @character.e_pattern == 0
  132.       pattern = @character.pattern < @character.e_pattern ? @character.pattern : 0
  133.       sx = @character.pattern * @cw
  134.       sy = ((@character.direction - 2) / 2) * @ch
  135.       self.src_rect.set(sx, sy, @cw, @ch)
  136.       return true
  137.   end
  138.  
  139. end
  140.  
  141. #==============================================================================
  142. # ■ Window Base
  143. #==============================================================================
  144. class Window_Base < Window
  145.  
  146.   #--------------------------------------------------------------------------
  147.   # ● Draw Character
  148.   #--------------------------------------------------------------------------
  149.   alias mog_extra_pattern_draw_character draw_character
  150.   def draw_character(character_name, character_index, x, y)
  151.       return if draw_character_extra_pattern?(character_name, character_index, x, y)
  152.       mog_extra_pattern_draw_character(character_name, character_index, x, y)
  153.   end  
  154.    
  155.   #--------------------------------------------------------------------------
  156.   # ● Draw Character Extra Pattern
  157.   #--------------------------------------------------------------------------  
  158.   def draw_character_extra_pattern?(character_name, character_index, x, y)
  159.       return false unless character_name
  160.       if character_name =~ /\[(\d+)]/i
  161.          bitmap = Cache.character(character_name)
  162.          cw = bitmap.width / $1.to_i
  163.          ch = bitmap.height / 4
  164.          src_rect = Rect.new(0, 0, cw, ch)
  165.          contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  166.          return true
  167.       end
  168.       return false
  169.   end    
  170.    
  171. end  
  172.  
  173. $mog_rgss3_extra_pattern = true
Advertisement
Add Comment
Please, Sign In to add comment