Arena RPG Maker
Olá, visitante!
Seja bem-vindo ao fórum Arena RPG Maker, caso queira aprender sobre criação de jogos, está no fórum certo. Esperamos que possa aprender tanto quanto possa nos ensinar aqui.

Atenciosamente,
Equipe Arena RPG Maker.
Arena RPG Maker

Estamos de volta o/ ... Ou não.Eu amo a -Dark
Doações para o fórum abertas, clique aqui e saiba mais.
Últimos assuntos
» Pokémon Genesis Online! (PGO)
Qua 05 Jul 2017, 17:08 por Lexar

» Tileset Converter to MV
Sex 12 Maio 2017, 13:07 por Douggi

» [Dúvida] Como tirar a porcentagem de esquiva
Ter 09 Maio 2017, 22:15 por Neil Flame Runner

» Pack Resources, Sprites e etc
Qua 23 Dez 2015, 09:30 por raydengv

» Download RPG Maker 2003 + RTP em português
Ter 22 Dez 2015, 08:14 por ::KimMax::

» Fantasy Art Online
Dom 18 Out 2015, 16:42 por daviih123

» Você vai ter medo do Nerve gear?
Sab 25 Jul 2015, 16:02 por Kirito-kun

» O Barato é louco
Sab 27 Jun 2015, 15:26 por Halt

» Download RPG Maker 2000 + RTP em português
Qui 21 Maio 2015, 19:28 por Wismael

» Divulgando meu grupo e página do Facebook
Ter 19 Maio 2015, 13:06 por Halt


Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1 Script de fome - com hud em Sex 28 Dez 2012, 12:45

Halt

avatar
Administrador
Administrador
RD12 escreveu:
Script de Fome

Olá a todos
Fiz esse script a pedido da hatsurugi, o script ficou muito bom e completo, deu 260 linhas.

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.
*Ao usar items que mudam a fome mostra uma mensagem na tela com a fome atual.
*Mostra até 8 Huds com o nome dos membros em cima e a barra de fome.
*Quando a fome chega no máximo(100), o jogador morre e a hud fica vermelha.


Screenshots

Spoiler:

Aqui estou com 5 membros na party





Script


Código:
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#|Autor: RD12|                Script de Fome                          07/06/12
#         
#        Acesse:  www.aldeiarpgbr.com  Para mais scripts meus
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# A fome vai de 0 a 100, quanto maior o valor mais com fome o membro estará
# Se a fome chegar no 100 o membro irá fifcar com hp=0 (morre)
#
# Para um item diminuir a fome bote em sua Nota: -fome valor
# E para um item aumentar a fomt, bote na nota: +fome valor

module Fome
  #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
  #Modifique a posição das Huds aqui
  HUDs_x = 1
  HUDs_y = 190
end

class Hud_Fome < Sprite
  def initialize
    super
    self.bitmap = bitmap = Bitmap.new(100,300)
    self.bitmap.font.size = 14
    self.bitmap.font.name = "Segoe UI"
    self.x = Fome::HUDs_x
    self.y = Fome::HUDs_y
    refresh
  end
   
  def update
    super
    refresh
  end
 
  def refresh
    self.bitmap.clear
  if $game_party.members.size >= 1
    #---------------------------------------------------------------------------
    #Hud de Fome do 1° Membro - .members[0]
    #---------------------------------------------------------------------------
    base = Cache.picture("Fome_Base")
    rect = Rect.new(0,0,base.width,base.height)
    self.bitmap.blt(10,21,base,rect)
    self.bitmap.draw_text(10, 0, 100, 32, $game_party.members[0].name, 0)
      @actor = $game_party.members[0]
    if @actor.fome >= 100
      @actor.hp = 0
      hud_name = "Fome_100"
    else
      hud_name = "Fome_Hud"
    end
    base = Cache.picture(hud_name)
    rect = Rect.new(0,0,base.width * @actor.fome / 100,base.height)
    self.bitmap.blt(10,21,base,rect)
   
  end
  if $game_party.members.size >= 2
    #---------------------------------------------------------------------------
    #Hud de Fome do 2° Membro - .members[0]
    #---------------------------------------------------------------------------
    base = Cache.picture("Fome_Base")
    rect = Rect.new(0,0,base.width,base.height)
    self.bitmap.blt(10,45,base,rect)
    self.bitmap.draw_text(10, 24, 100, 32, $game_party.members[1].name, 0)
      @actor = $game_party.members[1]
    if @actor.fome >= 100
      @actor.hp = 0
      hud_name = "Fome_100"
    else
      hud_name = "Fome_Hud"
    end
    base = Cache.picture(hud_name)
    rect = Rect.new(0,0,base.width * @actor.fome / 100,base.height)
    self.bitmap.blt(10,45,base,rect)
  end
  if $game_party.members.size >= 3
    #---------------------------------------------------------------------------
    #Hud de Fome do 3° Membro - .members[0]
    #---------------------------------------------------------------------------
    base = Cache.picture("Fome_Base")
    rect = Rect.new(0,0,base.width,base.height)
    self.bitmap.blt(10,45+24,base,rect)
    self.bitmap.draw_text(10, 24*2, 100, 32, $game_party.members[2].name, 0)
      @actor = $game_party.members[2]
    if @actor.fome >= 100
      @actor.hp = 0
      hud_name = "Fome_100"
    else
      hud_name = "Fome_Hud"
    end
    base = Cache.picture(hud_name)
    rect = Rect.new(0,0,base.width * @actor.fome / 100,base.height)
    self.bitmap.blt(10,45+24,base,rect)
  end
  if $game_party.members.size >= 4
    #---------------------------------------------------------------------------
    #Hud de Fome do 4° Membro - .members[0]
    #---------------------------------------------------------------------------
    base = Cache.picture("Fome_Base")
    rect = Rect.new(0,0,base.width,base.height)
    self.bitmap.blt(10,45+(24*2),base,rect)
    self.bitmap.draw_text(10, 24*3, 100, 32, $game_party.members[3].name, 0)
      @actor = $game_party.members[3]
    if @actor.fome >= 100
      @actor.hp = 0
      hud_name = "Fome_100"
    else
      hud_name = "Fome_Hud"
    end
    base = Cache.picture(hud_name)
    rect = Rect.new(0,0,base.width * @actor.fome / 100,base.height)
    self.bitmap.blt(10,45+(24*2),base,rect)
  end
  if $game_party.members.size >= 5
    #---------------------------------------------------------------------------
    #Hud de Fome do 5° Membro - .members[0]
    #---------------------------------------------------------------------------
    base = Cache.picture("Fome_Base")
    rect = Rect.new(0,0,base.width,base.height)
    self.bitmap.blt(10,45+(24*3),base,rect)
    self.bitmap.draw_text(10, 24*4, 100, 32, $game_party.members[4].name, 0)
      @actor = $game_party.members[4]
    if @actor.fome >= 100
      @actor.hp = 0
      hud_name = "Fome_100"
    else
      hud_name = "Fome_Hud"
    end
    base = Cache.picture(hud_name)
    rect = Rect.new(0,0,base.width * @actor.fome / 100,base.height)
    self.bitmap.blt(10,45+(24*3),base,rect)
  end
  if $game_party.members.size >= 6
    #---------------------------------------------------------------------------
    #Hud de Fome do 6° Membro - .members[0]
    #---------------------------------------------------------------------------
    base = Cache.picture("Fome_Base")
    rect = Rect.new(0,0,base.width,base.height)
    self.bitmap.blt(10,45+(24*4),base,rect)
    self.bitmap.draw_text(10, 24*5, 100, 32, $game_party.members[5].name, 0)
      @actor = $game_party.members[5]
    if @actor.fome >= 100
      @actor.hp = 0
      hud_name = "Fome_100"
    else
      hud_name = "Fome_Hud"
    end
    base = Cache.picture(hud_name)
    rect = Rect.new(0,0,base.width * @actor.fome / 100,base.height)
    self.bitmap.blt(10,45+(24*4),base,rect)
  end
  if $game_party.members.size >= 7
    #---------------------------------------------------------------------------
    #Hud de Fome do 7° Membro - .members[0]
    #---------------------------------------------------------------------------
    base = Cache.picture("Fome_Base")
    rect = Rect.new(0,0,base.width,base.height)
    self.bitmap.blt(10,45+(24*5),base,rect)
    self.bitmap.draw_text(10, 24*6, 100, 32, $game_party.members[6].name, 0)
      @actor = $game_party.members[6]
    if @actor.fome >= 100
      @actor.hp = 0
      hud_name = "Fome_100"
    else
      hud_name = "Fome_Hud"
    end
    base = Cache.picture(hud_name)
    rect = Rect.new(0,0,base.width * @actor.fome / 100,base.height)
    self.bitmap.blt(10,45+(24*5),base,rect)
  end
  if $game_party.members.size >= 8
    #---------------------------------------------------------------------------
    #Hud de Fome do 8° Membro - .members[0]
    #---------------------------------------------------------------------------
    base = Cache.picture("Fome_Base")
    rect = Rect.new(0,0,base.width,base.height)
    self.bitmap.blt(10,45+(24*6),base,rect)
    self.bitmap.draw_text(10, 24*7, 100, 32, $game_party.members[7].name, 0)
      @actor = $game_party.members[7]
    if @actor.fome >= 100
      @actor.hp = 0
      hud_name = "Fome_100"
    else
      hud_name = "Fome_Hud"
    end
    base = Cache.picture(hud_name)
    rect = Rect.new(0,0,base.width * @actor.fome / 100,base.height)
    self.bitmap.blt(10,45+(24*6),base,rect)
  end
 end
end

#Bota a HUD no mapa e atualiza ela de acordo com o tempo configurado
class Scene_Map
  alias rd12_main main
  def main
    $Fome = Hud_Fome.new
    @tocomfome = 0
    rd12_main
    $Fome.dispose
  end
  alias rd12_update update
  def update
    if Graphics.frame_count % 80 == 0
      @tocomfome += 1
    end
    if @tocomfome == Fome::Segundos
    for i in 0..$game_party.members.size-1
      $game_party.members[i].fome = (Fome::Valor)
    end 
    @tocomfome = 0
    end
    rd12_update
  end
end

# Adiciona o $game_party.members[x].fome
# Pra adicionar mais fome: $game_party.members[x].fome = quantidade
# Pra remover fome: $game_party.members[x].fome = -quantidade

class Game_Actor < Game_Battler
  alias rd12_initialize initialize
  def initialize(actor_id)
    @fome = 0
    rd12_initialize(actor_id)
  end
 
  def fome=(arg)
  @fome = 0 if @fome == nil
  @fome += arg
  $Fome.refresh
  end
 
  def fome
  @fome
  end
 
end
#Modifica o método para ganhar ou perder Fome
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
        #Mostra mensagem com a fome atual
        msgbox("Fome atual: #{target.fome}/100")
      end
      if arg[0] == "+fome"
        target.fome = arg[1].to_i
        #Mostra mensagem com a fome atual
        msgbox("Fome atual: #{target.fome}/100")
      end
      item.repeats.times { target.item_apply(user, item) }
    end
  end
end

Pictures Necessárias

Imagem/Nome
- Fome_Base
- Fome_Hud
- Fome_100

Para usar é só configurar no script o tempo em segundos e o valor que irá recuperar, e botar na nota de um item: -fome valor.

Obrigado a Hatsurugi pela idéia do script.

Créditos RD12


__________________________________________

Ei Convidado, sim você mesmo! Ajude o fórum à crescer postando coisas úteis, dê sugestões para melhorar-mos e divulgue o fórum.

Step inside, see the devil in I.

Gifts-
Fantasy - Fantasy - Fantasy - ~Razor - Darkmel

Zerei a internet
Ver perfil do usuário http://arenarpgmaker.eclipserpg.com

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum