Advertisement
thiago_d_d

Bleeding System

Jan 16th, 2013
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 4.08 KB | None | 0 0
  1. #==============================================================
  2. # thiagodd.blogspot.com.br
  3. #
  4. # [TSDA] Bleeding System
  5. #   --> Version 1.1
  6. # by thiago_d_d
  7. #
  8. #--------------------------------------------------------------
  9. # * Features
  10. #--------------------------------------------------------------
  11. # + THis script adds an basic bleeding system. When you activate
  12. #   the bleeding, the hero will lose hp and movement speed,
  13. #   until it heals the bledding.
  14. #
  15. #--------------------------------------------------------------
  16. # * Install
  17. #--------------------------------------------------------------
  18. # Put this script above Main
  19. # You need two pictures, that will show the bood:
  20. #  Sangue1 - empty bar
  21. #  Sangue2 - full bar
  22. # To start the bleeding, execute an code with this
  23. # sangrar
  24. # To stop the bleeding, exeute this:
  25. # parar_sangramento
  26. #--------------------------------------------------------------
  27. # * Configuration
  28. #--------------------------------------------------------------
  29. # CHnage below lines.
  30. #==============================================================
  31. module TSDA
  32.   #Name of char when bleeding
  33.   CHAR_NAME = "001-Fighter01"
  34.   #ID of database states of the bleeding
  35.   #Dont remove these states when in game, instead use an code with:
  36.   #parar_sangramento
  37.   STATE1 = 13
  38.   STATE2 = 14
  39.   #Bleeding Bars dimension
  40.   SANG_WIDTH = 100
  41.   SANG_HEIGHT = 24
  42. end
  43.  
  44. class Game_Player
  45.   attr_accessor    :sangrando
  46.   attr_accessor    :sangue
  47.   attr_accessor    :character_name
  48.   attr_accessor    :move_speed
  49.   attr_accessor    :state
  50.   alias old_initialize initialize
  51.   def initialize
  52.     old_initialize
  53.     @sangrando = false
  54.     @sangue = 3600
  55.   end
  56. end
  57.  
  58. class Scene_Map
  59.   attr_accessor    :window_sangue
  60.   alias old_main main
  61.   def main
  62.     @window_sangue = Window_Sangue.new
  63.     @window_sangue.visible = false
  64.     old_main
  65.     @window_sangue.dispose
  66.   end
  67.  
  68.   alias old_update update
  69.   def update
  70.     if $game_player.sangrando
  71.       $game_player.sangue -= 1
  72.     end
  73.     @window_sangue.update
  74.     old_update
  75.   end
  76. end
  77.  
  78. class Window_Sangue < Window_Base
  79.   include TSDA
  80.   def initialize
  81.     super(508, 0, SANG_WIDTH + 32, SANG_HEIGHT + 32)
  82.     self.contents = Bitmap.new(width - 32, height - 32)
  83.     self.contents.font.name = $fontface
  84.     self.contents.font.size = $fontsize
  85.     self.opacity = 0
  86.     self.back_opacity = 0
  87.     @sangue = $game_player.sangue
  88.     refresh
  89.   end
  90.  
  91.   def update
  92.     super
  93.     if $game_player.sangue != @sangue
  94.       if $game_player.sangue <= 0
  95.         parar_sangramento
  96.         $scene = Scene_Gameover.new
  97.         return
  98.       elsif $game_player.sangue <= 600
  99.         $game_player.move_speed = 2.5
  100.         if $game_player.state
  101.           $game_party.actors[0].add_state(TSDA::STATE2)
  102.           $game_party.actors[0].remove_state(TSDA::STATE1)
  103.           $game_player.state = false
  104.         end
  105.       elsif $game_player.sangue <= 1200
  106.         $game_player.move_speed = 3
  107.         if $game_player.state == nil
  108.           $game_party.actors[0].add_state(TSDA::STATE1)
  109.           $game_player.state = true
  110.         end
  111.       end
  112.       @sangue = $game_player.sangue
  113.       refresh
  114.     end
  115.     if $game_player.sangrando
  116.       self.visible = true
  117.     else
  118.       self.visible = false
  119.     end
  120.   end
  121.  
  122.   def refresh
  123.     self.contents.clear
  124.     bitmap = RPG::Cache.picture("Sangue1")
  125.     bitmap2 = RPG::Cache.picture("Sangue2")
  126.     src_rect = Rect.new(0, 0, @sangue * bitmap.width / 3600, bitmap.height)
  127.     src_rect2 = Rect.new(0, 0, bitmap.width, bitmap.height)
  128.     self.contents.blt(0, 0, bitmap2, src_rect)
  129.     self.contents.blt(0, 0, bitmap, src_rect2)
  130.   end
  131. end
  132.  
  133. def sangrar
  134.   $game_player.sangrando = true
  135.   $game_player.character_name = TSDA::CHAR_NAME
  136.   $game_player.move_speed = 4
  137. end
  138.  
  139. def parar_sangramento
  140.   $game_player.sangrando = false
  141.   $game_player.sangue = 3600
  142.   $game_party.actors[0].remove_state(TSDA::STATE1)
  143.   $game_party.actors[0].remove_state(TSDA::STATE2)
  144.   $game_player.state = nil
  145.   $game_player.character_name =
  146.   $game_party.actors[0].character_name
  147.   $game_player.move_speed = 4
  148. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement