molegato

character size script

Mar 11th, 2012
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 3.73 KB | None | 0 0
  1. #==============================================================================
  2. # CHARACTER SIZE SCRIPT
  3. # Author Molegato
  4. # Version 1.0
  5. #------------------------------------------------------------------------------
  6. # Allows you to make event, vehicle, player and followers character shrink or
  7. # grow, as well as make maps have a default character size, actin like a zoom.
  8. #------------------------------------------------------------------------------
  9. # INSTRUCTIONS
  10. # Every character will be of normal size if you don't do anything.
  11. # For setting a character size for a map, add this tag to its notes:
  12. #   <chara_size: size>
  13. # Size = 1 means normal size, 2 is double, 0.5 is half, etc
  14. # You can also change specific events, or even the player character,
  15. # its followers, or vehicles to a specific size via event script call.
  16. # for that, use:
  17. #   $game_map.set_vehicle_size(index,size)
  18. #       index=0 boat, 1 ship, 2 airship
  19. #   $game_map.set_event_size(number,size)
  20. #   $game_map.set_player_size(size)
  21. #   $game_map.set_followers_size(size)
  22. #==============================================================================
  23.  
  24. $imported = {} if $imported.nil?
  25. $imported['Molegato-character_size'] = true
  26.  
  27. #==============================================================================
  28. # ■ Sprite_Character
  29. #==============================================================================
  30. class Game_Map
  31.   attr_reader   :map
  32. end
  33. #==============================================================================
  34. # ■ Sprite_Character
  35. #==============================================================================
  36.  
  37. class Sprite_Character < Sprite_Base
  38.   attr_accessor :size
  39.   alias character_size_initialize initialize
  40.   def initialize(viewport, character = nil)
  41.     @size=1
  42.     map = $game_map.map
  43.     if map.tag_check_multivalues(map.note,"chara_size")
  44.       @size=map.tag_check_multivalues(map.note,"chara_size")[0].to_f
  45.     end
  46.     $game_player.size=nil
  47.     for i in 0..$game_player.followers.data.size-1
  48.       $game_player.followers[i].size=nil
  49.     end
  50.     character_size_initialize(viewport,character)
  51.   end
  52.  
  53.   alias character_size_update update
  54.   def update
  55.     character_size_update
  56.     if @character and @character.size and @size!=@character.size
  57.       @size=@character.size
  58.       set_character_bitmap
  59.     end
  60.   end
  61.  
  62.   alias character_size_set_character_bitmap set_character_bitmap
  63.   def set_character_bitmap
  64.     character_size_set_character_bitmap
  65.     self.bitmap = Cache.character(@character_name).clone
  66.     self.ox*=@size
  67.     self.oy*=@size
  68.     @cw*=@size
  69.     @ch*=@size
  70.     rect=Cache.character(@character_name).rect
  71.     rect.width*=@size
  72.     rect.height*=@size
  73.     if @size!=1
  74.       source = self.bitmap
  75.       self.bitmap = Bitmap.new(source.width*@size, source.height*@size)
  76.       self.bitmap.stretch_blt(self.bitmap.rect, source, source.rect)
  77.     end
  78.   end
  79. end
  80.  
  81. #==============================================================================
  82. # ■ Game_CharacterBase
  83. #==============================================================================
  84.  
  85. class Game_CharacterBase
  86.   attr_accessor :size
  87. end
  88.  
  89. #==============================================================================
  90. # ■ Game_Map
  91. #==============================================================================
  92.  
  93. class Game_Map
  94.  
  95.   def set_vehicle_size(index,size)
  96.     @vehicles[index].size=size
  97.   end
  98.  
  99.   def set_event_size(number,size)
  100.     @events[number].size=size
  101.   end
  102.  
  103.   def set_player_size(size)
  104.     $game_player.size=size
  105.   end
  106.  
  107.   def set_followers_size(size)
  108.     for i in 0..$game_player.followers.data.size-1
  109.       $game_player.followers[i].size=size
  110.     end
  111.   end
  112.  
  113. end
  114.  
  115. class Game_Followers
  116.   attr_accessor :data
  117. end
Advertisement
Add Comment
Please, Sign In to add comment