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

The Master Fome

Iniciado por TheMasterR, 26/07/2013 às 00:58

26/07/2013 às 00:58 Última edição: 26/07/2013 às 18:57 por TheMasterR
THE MASTER FOME

Este é meu primeiro script, fiz ele baseado em dois scripts disponibilizados nos fóruns sobre RPG Maker VX Ace, o script de fome de RD12 disponibilizado no aldeia rpg, e o script Crystal HUD do Faalco.

Funciona basicamente como uma fusão dos dois scripts e apresenta o HUD com 3 barras, HP,MP,Fome.

Direitos de Uso
Uso livre, desde que seja dado os devidos créditos a mim,Faalco e RD12.


Screenshots
Spoiler

[close]
Spoiler

[close]
Spoiler

[close]

#:.:.:.:The Master Fome :.:.:.::.:.:.::.:.:.::.:.:.::.:.:.::.:.:.::.:.:.: 
 #:.:.:.:Autor:The Master R:.:.:.::.:.:.::.:.:.::.:.:.::.:.:.::.:.:.::.:.:.::.:
 #:.:.:.:Criado: 25/07/2013:.:.:.::.:.:.::.:.:.::.:.:.::.:.:.::.:.:.::.:.:.::.:
 #:.:.:.:Versão: 1.0:.:.:.::.:.:.::.:.:.::.:.:.::.:.:.::.:.:.::.:.:.::.:.:.::.:
 #:.:.:.:Baseado no Crystal HUD de Faalco e no script de Fome de RD12 :.::.::.:
 #:.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.:
 #:.::.::.::.::.::.::.::.:CARACTERÍSTICAS:.::.::.::.::.::.::.::.::.::.::.::.::
 #*Permite escolher o tempo em segundos que irá aumentar a fome, 
 # e o valor aumentado.
 #*Ao usar items diminui a fome, só por -fome valor na nota do item.
 #*Ao usar items também pode aumentar a fome, só por +fome valor.
 #HUD simples com 3 barras(HP,MP, Fome), a barra de fome cresce.
 #*Quando a fome chega no máximo(100), o jogador morre e a hud fica vermelha.
#-------------------------------------------------------------------------------
# ■ Modulo de Configuração
#-------------------------------------------------------------------------------
module TheMasterFome
  X = 0 #Posição X da HUD na Tela.
  Y = 0 #Posição Y da HUD na Tela.
  Largura = 270 #Largura da HUD na Tela.
  Altura = 180 #Altura da HUD na Tela.
  Opacidade = 0 #Opacidade da Janela da HUD.
  Heroi = 0 #Herói que será mostrado na HUD. (0 = Inicial)
  HP_Bar = "HP" #Nome da Imagem de HP
  MP_Bar = "MP" #Nome da Imagem de MP
  Fome_Bar= "Fome"#Nome da Imagem de Fome
  Base_Bar = "Base" #Nome da Imagem de Base das Barras.
 #Tempo em segundos que irá aumentar a fome
  Segundos = 30
  #Valor que irá aumentar de fome quando o tempo acima chegar
  Valor = 5 # A Fome vai até 100, aí morre
 
end
class Window_HUD < Window_Base
  include TheMasterFome
  
  def initialize
    super(X,Y,Largura,Altura)
    @actor = $game_party.members[Heroi]
    self.opacity = Opacidade
    refresh
  
    end
  
  def refresh
    self.contents.clear
    draw_actor_face(@actor,0,0)
    draw_actor_name(@actor,0,0)
    draw_actor_icons(@actor, 110, 0)
    draw_hp(@actor,110,30)
    draw_mp(@actor,110,60)
    draw_fome(@actor,110,90)
    end
end
def draw_hp(actor, x, y)
  back = Cache.system(Base_Bar)
  cw = back.width
  ch = back.height
  src_rect = Rect.new(0, 0, cw, ch)
  self.contents.blt(x, y-ch+24, back, src_rect)
  meter = Cache.system(HP_Bar)
  cw = meter.width  * actor.hp / actor.mhp
  ch = meter.height
  src_rect = Rect.new(0, 0, cw, ch)
  self.contents.blt(x+5, y-ch+17, meter, src_rect)
end  
def draw_mp(actor, x, y)
  back = Cache.system(Base_Bar)    
  cw = back.width
  ch = back.height
  src_rect = Rect.new(0, 0, cw, ch)    
  self.contents.blt(x, y-ch+24, back, src_rect)
  meter = Cache.system(MP_Bar)    
  cw = meter.width  * actor.mp / actor.mmp
  ch = meter.height 
  src_rect = Rect.new(0, 0, cw, ch)
  self.contents.blt(x+5, y-ch+17, meter, src_rect)
end
def draw_fome(actor, x, y)
  back = Cache.system(Base_Bar)    
  cw = back.width
  ch = back.height
  src_rect = Rect.new(0, 0, cw, ch)    
  self.contents.blt(x, y-ch+24, back, src_rect)
  meter = Cache.system(Fome_Bar)    
  cw = meter.width  * actor.fome / 100
  ch = meter.height 
  if @actor.fome >= 100
      @actor.hp = 0
      end
  src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x+5, y-ch+17, meter, src_rect)
end

class Scene_Map
  alias themaster_main main
  alias themaster_update update
  def main
    $hud = Window_HUD.new
    @tocomfome = 0
    themaster_main
    $hud.dispose
  end
  def update
    
    if Graphics.frame_count % 80 == 0
      @tocomfome += 1
    end
    if @tocomfome == TheMasterFome::Segundos
    for i in 0..$game_party.members.size-1
      $game_party.members[i].fome = (TheMasterFome::Valor)
    end  
    @tocomfome = 0
    end
    themaster_update
    $hud.update
    $hud.refresh
  end
end
class Game_Actor < Game_Battler
  alias themaster_initialize initialize
  def initialize(actor_id)
    @fome = 0
    themaster_initialize(actor_id)
  end
  
  def fome=(arg)
   @fome = 0 if @fome == nil
   @fome += arg
   $hud.refresh
  end
  
  def fome
   @fome
  end
  
end

class Scene_Item < Scene_ItemBase
  def use_item_to_actors
    item_target_actors.each do |target|
      arg = item.note.split
      if arg[0] == "-fome"
        target.fome = -arg[1].to_i

      end
      if arg[0] == "+fome"
        target.fome = arg[1].to_i
        
      end
      item.repeats.times { target.item_apply(user, item) }
    end
  end 
end
#-------------------------------------------------------------------------------
# ■ Fim do Script
#-------------------------------------------------------------------------------


Fiz algumas alterações no script deixando-o com apenas um módulo
Créditos e agradecimentos
Faalco pelo script original do HUD
RD12 pelo script original de fome
e a mim pela adaptação dos 2 scripts.

[Anexo excluído pelo administrador]

Bem legal, mas você poderia ter alinhado as barras com a face do personagem. Ou dá pra nos mesmos alterar isso pelo script?

Viva a lenda!



Citação de: VincentVII online 26/07/2013 às 11:07
Bem legal, mas você poderia ter alinhado as barras com a face do personagem. Ou dá pra nos mesmos alterar isso pelo script?
O código é totalmente personalizável, para alterar o alinhamento, basta modificar os valores que estao ao lado de @actor na parte do código abaixo.

  def refresh
    self.contents.clear
    draw_actor_face(@actor,0,0)
    draw_actor_name(@actor,0,0)
    draw_actor_icons(@actor, 110, 0)
    draw_hp(@actor,110,30)
    draw_mp(@actor,110,60)
    draw_fome(@actor,110,90)
    end
end

Já que uma boa parte do script é do Faalco, mude o nome do module x], caso contrário não terá compatibilidade com a hud dele. module CrystalHUD, enfim tem umas coisas para melhorar, como é uma junção de 2 scripts, tipo tem 2 modulos diferentes no script, e outros esquemas xD, mas enfim, ficou legal, boa sorte nos scripts :B

Citação de: Raizen online 26/07/2013 às 17:14
Já que uma boa parte do script é do Faalco, mude o nome do module x], caso contrário não terá compatibilidade com a hud dele. module CrystalHUD, enfim tem umas coisas para melhorar, como é uma junção de 2 scripts, tipo tem 2 modulos diferentes no script, e outros esquemas xD, mas enfim, ficou legal, boa sorte nos scripts :B
Obrigado pelas dicas vou trabalhar nisso.

 :'0': Cara fico muito boa essa combinação... mas como eu consigo tira essa morte no final? queria que ele perdesse HP em vez disso, e também tem como fazer esse Scripts como base pra atacar? tipo colocar energia em vez de fome ae eu me limito a ataca com o sistema Falcon, parabéns :wow: pelo scripts
Os scripts são como mulheres: são difíceis de entender e ao mínimo erro que você faça, ferra tudo.