O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

[TSDA] Sangramento

Iniciado por thiago_d_d, 18/12/2012 às 22:20

18/12/2012 às 22:20 Última edição: 20/01/2017 às 10:07 por King Gerar


Script de Sangramento


[info float=left border=#6587E4]
Informações:
--------------------------------------------------
.
• Autor: thiago_d_d
• Versão: 1.1
• Incompatibilidade: Desprezível
• Lag gerado: Desprezível
• Customizável: Um pouco
• Requer Recursos Extras: Sim
[/info][box class=catbg2]
Resumo
[/box][box class=catbg4]O script implementa um sistema de sangramento. Ao executar um código de script, uma barrinha fica mostrando o sangue do personagem.Quanto mais diminui o sangue, mais fraco o herói fica e mais devagar ele anda.Quando o sangue a acabar, acontece Game Over. Itens personalizados podem curar o sangramento.[/box]


[box class=catbg2]
Instalação e configuração
[/box]
Primeiramente, consiga duas imagens: uma delas será a barra se sangue vazia, a outra será a barra de sangue cheia. Coloque as duas imagens na pasta Pictures com o nome de Sangue1 e Sangue2, respectivamente.Depois, cole o seguinte script acima de Main(não esqueça de ler as intruções):
#==============================================================
# * MRM - Comunidade RPG Maker!
#   www.mundorpgmaker.com
# * GRM - Comunidade RPG Maker!
#   www.galaxiarpgmaker.com.br
#
# [TSDA] Sangramento
#   --> Versão 1.1
# Última atualização: 11/12/2010
# ----Créditos
#     thiago_d_d - por fazer o script
#
#--------------------------------------------------------------
# * Características
#--------------------------------------------------------------
# + Esse script é meio personalizado,por isso não sei se terá
# utilidade para outras pessoas além da pessoa que me pediu
# o script...Mas mesmo assim,se quiser usar use! Esse script
# adiciona a possibilidade de o herói sangrar.
# Isso pode ser útil quando tem alguma armadilha no mapa,
# daí você quer que o personagem morra depois de um tempo.
# Além disso,há uma barrinha que mostra o sangue que o
# personagem está perdendo.
#
#--------------------------------------------------------------
# * Instalação
#--------------------------------------------------------------
# Cole esse script acima de Main.
# Além disso é necessário ter essas imagens na pasta
# Pictures do seu projeto:
#  Sangue1
#  Sangue2
# Essas imagens devem ser disponibilizadas junto com a DEMO
# ou onde o script foi disponibilizado.
# Para fazer sangrar, use um comando de script
# com o seguinte código:
# sangrar
# Para parar o sangramento, faça o mesmo
# só que com o seguinte código:
# parar_sangramento
#--------------------------------------------------------------
# * Configuração
#--------------------------------------------------------------
# Mude as seguintes linhas do script.
#==============================================================
module TSDA
  #Nome do char sangrando
  CHAR_NAME = "001-Fighter01"
  #Ids dos estados de sangramento
  #Parar curar o sangramento
  #Nãu use um item que retire esses status
  #Use um item que chama um evento comum
  #Com o evento Chamar script:
  #parar_sangramento
  STATE1 = 13
  STATE2 = 14
  #Tamanho das barras de sangramento
  SANG_WIDTH = 100
  SANG_HEIGHT = 24
end

class Game_Player
  attr_accessor    :sangrando
  attr_accessor    :sangue
  attr_accessor    :character_name
  attr_accessor    :move_speed
  attr_accessor    :state
  alias old_initialize initialize
  def initialize
    old_initialize
    @sangrando = false
    @sangue = 3600
  end
end

class Scene_Map
  attr_accessor    :window_sangue
  alias old_main main
  def main
    @window_sangue = Window_Sangue.new
    @window_sangue.visible = false
    old_main
    @window_sangue.dispose
  end
 
  alias old_update update
  def update
    if $game_player.sangrando
      $game_player.sangue -= 1
    end
    @window_sangue.update
    old_update
  end
end

class Window_Sangue < Window_Base
  include TSDA
  def initialize
    super(508, 0, SANG_WIDTH + 32, SANG_HEIGHT + 32)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize
    self.opacity = 0
    self.back_opacity = 0
    @sangue = $game_player.sangue
    refresh
  end
 
  def update
    super
    if $game_player.sangue != @sangue
      if $game_player.sangue <= 0
        parar_sangramento
        $scene = Scene_Gameover.new
        return
      elsif $game_player.sangue <= 600
        $game_player.move_speed = 2.5
        if $game_player.state
          $game_party.actors[0].add_state(TSDA::STATE2)
          $game_party.actors[0].remove_state(TSDA::STATE1)
          $game_player.state = false
        end
      elsif $game_player.sangue <= 1200
        $game_player.move_speed = 3
        if $game_player.state == nil
          $game_party.actors[0].add_state(TSDA::STATE1)
          $game_player.state = true
        end
      end
      @sangue = $game_player.sangue
      refresh
    end
    if $game_player.sangrando
      self.visible = true
    else
      self.visible = false
    end
  end
 
  def refresh
    self.contents.clear
    bitmap = RPG::Cache.picture("Sangue1")
    bitmap2 = RPG::Cache.picture("Sangue2")
    src_rect = Rect.new(0, 0, @sangue * bitmap.width / 3600, bitmap.height)
    src_rect2 = Rect.new(0, 0, bitmap.width, bitmap.height)
    self.contents.blt(0, 0, bitmap2, src_rect)
    self.contents.blt(0, 0, bitmap, src_rect2)
  end
end

def sangrar
  $game_player.sangrando = true
  $game_player.character_name = TSDA::CHAR_NAME
  $game_player.move_speed = 4
end

def parar_sangramento
  $game_player.sangrando = false
  $game_player.sangue = 3600
  $game_party.actors[0].remove_state(TSDA::STATE1)
  $game_party.actors[0].remove_state(TSDA::STATE2)
  $game_player.state = nil
  $game_player.character_name =
  $game_party.actors[0].character_name
  $game_player.move_speed = 4
end



[box class=catbg2]
Demo e Imagens
[/box]
Não há necessidade de Demo. Os efeitos visuais dependem das imagens usadas.


[box class=catbg2]
Créditos
[/box]

  • thiago_d_d por fazer o script