Você está na página 1de 34

Adicionando HUD RPG Maker XP

Tutorial RPG Maker XP


Tutorial RPG Maker XP
2 Edio
Revisado e ampliado em fevereiro de 2007.
Criado por Rmulo Guimares Oliveira (Romulo1984@hotmail.com)
Editado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD
Adicionando HUD

1
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP

Consideraes Iniciais
Devido falta de tutoriais a respeito desta ferramenta de criao de jogos, decidi aplicar um
pouco de meu tempo e o meu pequeno conhecimento do assunto para mudar este quadro. Estou
fazendo isso por vontade prpria e com o intuito de ajudar. Espero conseguir neste tutorial e
gostaria de lembrar que este tutorial NO de minha autoria. Estou apenas formatando e
complementando o tutorial criado por Rmulo Guimares Oliveira.
Este tutorial destinado a quem j conhece o bsico do RPG Maker, mas deseja incrementar seu
uso com novas funcionalidades. Este tutorial no um guia para solucionar problemas. Se voc
no consegue executar o aplicativo, procure pela FAQ do RPG Maker XP . L, muitos problemas e
erros de execuo so esclarecidos. Este tutorial de nvel avanado. Um bom conhecimento
(incluindo de scripts) necessrio para utiliz-lo.
O Maker utilizado neste tutorial uma verso em portugus e todas as telas e imagens
capturadas so de propriedade de Rmulo.
No estou aqui querendo afirmar nada sobre nada nem ningum. No quero ofender nenhum
leitor, ou o vizinho, ou o cachorro do vizinho, ou o papagaio de qualquer um que seja. No estou
tentando provar nada. No sou guru do RPG Maker XP. Portanto, tenham pacincia...
Queria lembrar mais uma vez que este tutorial foi criado por Rmulo Guimares Oliveira.
Desculpem-me por qualquer tipo de transtorno e muito obrigado aos que me ajudaram e
incentivaram.
Fora isso, boa leitura...

2
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP

Cavaco's Creations
Voc pode copiar, distribuir, exibir, executar ou criar obras derivadas sob as seguintes condies:

Atribuio: Voc deve dar crdito ao autor original, da forma especificada pelo
autor ou licenciante.

Uso No-Comercial: Voc no pode utilizar esta obra com finalidades comerciais.

Compartilhamento pela mesma Licena: Se voc alterar, transformar, ou criar


outra obra com base nesta, voc somente poder distribuir a obra resultante sob
uma licena idntica a esta.
Para cada novo uso ou distribuio, voc deve deixar claro os termos da licena desta obra.
Qualquer uma destas condies podem ser renunciadas, desde que voc obtenha permisso do
autor. Qualquer direito de uso legtimo (ou "fair use") concedido por lei, ou qualquer outro direito
protegido pela legislao local, no so em hiptese alguma afetados pelo disposto acima.
Este um sumrio para leigos da Licena Jurdica (que pode ser obtida na ntegra em
http://www.4shared.com/file/11081399/19b3184f/Licena_de_Uso.html).
Termo de exonerao de responsabilidade
Esta Licena Simplificada no uma licena propriamente dita. Ela apenas uma referncia til
para entender a Licena Jurdica (a licena integral). Ela uma expresso dos seus termos-chave
que pode ser compreendida por qualquer pessoa. A Licena Simplificada em si no tem valor
legal e seu contedo no aparece na licena integral. A Cavaco's Creations no um escritrio de
advocacia e no presta servios jurdicos. A distribuio, exibio ou incluso de links para esta
Licena Simplificada no estabelece qualquer relao advocatcia.

3
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP

Agradecimentos
Creio que sem ajuda ningum nada... Mesmo os seres mais arrogantes da face da terra, que
negam receber qualquer forma de ajuda, um dia tiveram que receber a ajuda de algum. Mesmo
que esta tenha sido h muito tempo atrs quando o mdico ajudou esta pessoa a nascer... Mas
vamos parar de enrolar e vamos ao que interessa.
Agradeo :
Minha famlia, por me criar e aturar...
Meus amigos de RPG, por jogarem comigo...
Colegas de RPG Maker XP, por tirarem muitas de minhas dvidas...

Aos que me ajudaram neste tutorial, demonstro aqui minha gratido, agradecendo :

Rmulo Guimares;
que criou e permitiu que eu alterasse o seu tutorial.

Se faltar algum, faa o favor de me avisar. A memria s vezes (vrias vezes) falha...

4
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP

Sumrio
Tutorial RPG Maker XP...............................................................1
Consideraes Iniciais................................................................ 2
Cavaco's Creations..................................................................... 3
Agradecimentos......................................................................... 4
Sumrio................................................................................... 5
ndice de Ilustraes.................................................................. 6
Como Utilizar este Tutorial.......................................................... 7
HUD Head-Up Display.............................................................. 8
Introduo..............................................................................................8
O que iremos aprender a fazer?.................................................................9

Adicionando a Imagem do HUD.................................................. 10


Entendendo as Linhas mais Importantes................................................... 11
Carregando a Imagem.............................................................................................. 11
Ajustando o Alinhamento.......................................................................................... 11
Mudando a Transparncia.......................................................................................... 12
Ajustando a Posio Z............................................................................................... 12

Testando o Cdigo................................................................................. 13

Inserindo o Cdigo do HUD........................................................14


O Mdulo XRXS..................................................................................... 14
O Script de HP e SP na Tela.....................................................................21
Ativando o Cdigo Hp/Sp na Tela............................................................. 25
Adicionando a Arma Equipada no Mapa..................................................... 28
Ajustando a Janela de Arma Equipada...................................................... 30
Mostrando a janela de Equipamentos no Mapa........................................... 30
Finalizando............................................................................................33

Concluso............................................................................... 34
5
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP

ndice de Ilustraes
Figura 1: Exemplo de HUD............................................................................................................... 9
Figura 2: Ativando o HP e HP na tela................................................................................................ 26
Figura 3: Segunda pgina do evento para ativar o HP e SP na tela....................................................... 27
Figura 4: Ativando a switch 7 (mostrar armas na tela)........................................................................ 32

6
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP

Como Utilizar este Tutorial


Para aproveitar da melhor forma possvel este tutorial, devemos saber para qu ele serve. Este
documento onde estaremos vendo diversos recursos dos scripts RGSS do RPG Maker XP.
Este tutorial de nvel avanado. S aconselhvel leitura deste tutorial aps se certificar de
que j conhece completamente os recursos do RPG Maker, incluindo o funcionamento dos scripts.

Um resumo das palavras do autor (Rmulo)...


Primeiro gostaria de fazer algumas explicaes para que nada fique sem esclarecimento. Neste
tutorial utilizo alguns scripts que no so de minha autoria, e quando eles forem mencionados no
decorrer do tutorial, seus respectivos crditos sero devidamente colocados. Gostaria de
agradecer a comunidade RPG Maker XP do orkut*, que deu incio a minha aprendizagem e sanou
vrias de minhas dvidas. Quero agradecer tambm ao Marcelo, que fez o processo de
formatao, diagramao e distribuio deste tutorial, sem falar nas aulas que ele j me deu,
rsrs... Bem, vamos ao que interessa.

Comunidade no Orkut : http://www.orkut.com/Community.aspx?cmm=1227187

7
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP

HUD Head-Up Display


Introduo
HUD uma sigla americana utilizada quando desejamos fazer referncia a uma parte da tela com
informaes bsicas sobre alguma coisa. Os HUDs existem principalmente em jogos eletrnicos e
aplicativos afins.
Como podemos observar, HUD uma abreviao em ingls. A traduo para o portugus mais
ou menos assim:
Head Cabea, cabealho;
Up Cima, topo;
Display Tela, monitor;
Curiosidade:
Os HUD foram criados nos avies de caa utilizados nas guerras areas. Na verdade, um HUD
siginificava nestes avies algo como Painel para a Cabea ficar Erguida. Na verdade os HUDs
dos avies um painel transparente que fica entre o piloto e a frente da aeronave cuja funo
permitir ao piloto que se concentre mais em sua tarefa sem precisar abaixar a cabea (cabea
erguida HEAD UP) para olhar os instrumentos (DISPLAY).
Antes de comear a leitura deste tutorial, queria pedir a todos que primeiro dessem uma lida em
algum material bsico sobre scripts, pois, apesar de simples, os cdigos requerem um
conhecimento prvio.

8
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP


O que iremos aprender a fazer?
Este tutorial consiste em conduzir o leitor (maker) a criar um Hud simples, com um medidor de
HP e MP (SP) e o cone da Arma. Aprendendo o bsico sobre isso, poder despertar o interesse
de modificar e colocar outras informaes no Hud. Observe na figura 1, a imagem de um Hud.

Figura 1: Exemplo de HUD

Repare que existem vrias informaes no Hud: O Hp e Mp (SP), seguido do nome do heri com
status e a arma equipada no momento. Antes de comear a mexer no RPG Maker, faa um
esboo de como seu Hud ficar e quais informaes ele conter, isto facilita, e muito, quando
alterarmos os scripts.

9
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP

Adicionando a Imagem do HUD


muito importante que a imagem do Hud seja colocada primeiro, pois assim voc poder dispor
os elementos e informaes nos espaos reservados a eles. Lembre-se de como foi feito o seu
esboo e tente criar ou adicionar uma imagem que suporte as informaes desejadas.
Para adicionar a imagem, precisaremos alterar alguns scripts. A imagem ficar na tela principal
do mapa, ento modificaremos o script Scene_Map. Esta classe responsvel por processar a
tela principal dos mapas de nosso jogo.
Procure pelo script com o nome Scene_Map no editor de scripts (F11) e adicione as seguintes
linhas de cdigo abaixo do def main:
@sprite = 0
@sprite = Sprite.new(@viewport)
@sprite.zoom_x = 100 / 100.0 # troque pelo n do zoom exemplo: 90 / 100.0 para 90%
@sprite.zoom_y = 100 / 100.0 # troque pelo n do zoom exemplo: 115 / 100.0 para 115%
@sprite.bitmap = RPG::Cache.picture("hud_evolution")
posicao_x = 0
posicao_y = 158
@sprite.x = posicao_x
@sprite.y = posicao_y
@sprite.opacity = 255
@sprite.z = 499

10
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP


Entendendo as Linhas mais Importantes
Carregando a Imagem
Observe a seguinte linha:
@sprite.bitmap = RPG::Cache.picture("hud_evolution")
Este comando faz com que nossa varivel (@sprite) receba uma imagem. O comando picture
indica em qual pasta est a imagem e o parmetro ("hud_evolution") indica o nome da imagem.
Note que devemos importar a imagem de nosso HUD para a pasta picture com o nome
hud_evolution (no necessrio colocar a extenso do arquivo). Lembre-se de que o HUD deve
ter um tamanho mximo de 640x480 pixels. Para mudar a pasta devemos modificar o comando.
Para maiores informaes consulte o tutorial de scripts.

Ajustando o Alinhamento
Para ajustar a posio na tela temos que utilizar as coordenada X e Y.
posicao_x = 0
posicao_y = 158
Estas linhas indicam as coordenadas que sua imagem dever ocupar no mapa.
X = localizao horizontal
Y = localizao vertical
Mude estas linhas at sua imagem ficar onde deseja, neste caso, as coordenadas equivalem
correta localizao da nossa imagem disponvel no projeto de demonstrao que acompanha este
tutorial.

11
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP


Mudando a Transparncia
Agora, iremos alterar a opacidade (transparncia) de nosso HUD. Observe a seguinte linha:
@sprite.opacity = 255
Esta linha responsvel pela transparncia da imagem. O nmero 255 equivale a uma imagem
opaca, sem nenhuma transparncia, e 0 (zero) equivale a transparncia total. Ajuste o valor da
maneira como desejar, mas lembre-se de respeitar o limite mnimo de 0 (zero) e mximo de 255.

Ajustando a Posio Z
Observe este comando:
@sprite.z = 499
Esta linha indica a ordem de exibio da imagem na tela. Quanto maior o nmero, mais por cima
a imagem ficar. Neste caso nossa imagem ter que ficar acima do mapa e do personagem, e
abaixo das informaes que conter nosso Hud. O limite mnimo 0 (zero) e 9999 o maior
nmero aceito.

12
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP


Testando o Cdigo
Pronto, sua imagem j foi inserida. Voc j pode testar seu projeto (lembre-se de colocar a
imagem do Hud na pasta picture).
Se voc testou, deve ter reparado que quando acessamos o menu ou quando samos do jogo, a
imagem continua aparecendo por cima de todas as janelas. Isto ocorre, pois ainda no
mandamos a janela se atualizar, por isso a imagem antiga continua aparecendo.
Para corrigir tal erro, devero ser inseridos mais cdigos de script.
Ainda na Scene_Map, procure pelo mtodo (def) main. Dentro do main deve existir uma linha
com o cdigo Graphics.freeze. Logo abaixo desta linha adicione o seguinte cdigo:
@sprite.dispose
No def update, abaixo de @spriteset.update adicione o seguinte cdigo:
@sprite.update
Teste seu jogo novamente e veja que o problema anterior foi corrigido.

13
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP

Inserindo o Cdigo do HUD


O cdigo a seguir pertence a XRXS, porm sofreu algumas modificaes (por Rmulo). Para
colocar a barra de HP/SP na tela voc ter que adicionar dois scripts ao seu projeto, que so:
1. O Mdulo XRXS;
2. Script de HP/SP na tela;

O Mdulo XRXS
Crie um novo script (clique em cima de Main e aperte Insert ou clique com o boto direito e
depois em Inserir), nomeio de MDULO XRXS (ou qualquer outro nome, isto no interfere na
leitura dos cdigos) e depois adicione o cdigo abaixo neste novo script.
#################################################################
########################## XRXS #################################
#################################################################
=begin
MODULO XRXS
Scripts necessrios para rodar alguns scripts do site XRXS.
L4 - built 122410 - Window Selectable
L5 - built 091221 - Elemment %
L6 - built 092308 - Elemment Set
L7 - built ?????? - Window Command
L10 - built ?????? - Window Selectable
L13 - built ?????? - Map Name
L14 - built 122012 - Sprite and Picture
(05/01/06)
=end
module XRXS_Cursor2
def initialize(x, y, w, h)
super(x, y, w, h)
@xrxsc2_window = Window_Selectable.new(self.x, self.y, self.width, self.height)
@xrxsc2_window.opacity = 0
@xrxsc2_window.active = false
@xrxsc2_window.index = -1
end
def index2
return @xrxsc2_window.index
end
def index2=(index)
@xrxsc2_window.index = index
if index == -1

14
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP


@xrxsc2_window.cursor_rect.empty
else
@xrxsc2_window.x = self.x
@xrxsc2_window.y = self.y
@xrxsc2_window.cursor_rect = self.cursor_rect
end
end
def top_row=(row)
super
pre_oy = @xrxsc2_window.oy
@xrxsc2_window.oy = self.oy
@xrxsc2_window.cursor_rect.y -= self.oy - pre_oy
end
def dispose
@xrxsc2_window.dispose
super
end
def x=(n)
super
@xrxsc2_window.x = self.x unless @xrxsc2_window.nil?
end
def y=(n)
super
@xrxsc2_window.y = self.y unless @xrxsc2_window.nil?
end
def visible=(b)
@xrxsc2_window.visible = b
super
end
end
######
# L5 #
######
module XRXS
def XRXS.element_check(set, element_name)
returnar = [false, 0, 0, []]
return returnar if !set.is_a?(Array) or set.size == 0 or element_name == ""
for i in set
if $data_system.elements[i] =~ /^#{element_name}([+-]?[0-9]+)?(%)?/
returnar[0] = true
if $2 == nil
returnar[1] += $1.to_i
returnar[3].push($1.to_i)
else
returnar[2] += $1.to_i
end
end
end
return returnar
end
def XRXS.element_include?(set, element_name)
return element_check(set, element_name)[0]
end
def XRXS.element_amount(set, element_name)
return element_check(set, element_name)[1]
end
def XRXS.element_percent(set, element_name)
return element_check(set, element_name)[2]
end
def XRXS.element_numbers(set, element_name)
return element_check(set, element_name)[3]

15
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP


end
end
######
# L6 #
######
class Game_Battler
def skill_element_set(skill)
return skill.nil? ? [] : skill.element_set
end
def equip_element_set
return self.element_set + self.guard_element_set
end
def guard_element_set
return []
end
end
class Game_Actor < Game_Battler
def guard_element_set
set = []
for id in self.armor_ids
next if id.nil?
armor = $data_armors[id]
set += (armor != nil ? armor.guard_element_set : [])
end
return set
end
def weapon_ids
unless self.is_a?(Game_Actor)
return []
end
ids = @weapon_ids != nil ? @weapon_ids : []
ids[0] = @weapon_id
return ids
end
def armor_ids
unless self.is_a?(Game_Actor)
return []
end
ids = @armor_ids != nil ? @armor_ids : []
ids[0] = @armor1_id
ids[1] = @armor2_id
ids[2] = @armor3_id
ids[3] = @armor4_id
return ids
end
def equipments
equipments = []
self.weapon_ids.each {|id| equipments.push($data_weapons[id])}
self.armor_ids.each {|id| equipments.push($data_armors[id])}
return equipments
end
def equiping?(item)
case item
when RPG::Weapon
return self.weapon_ids.include?(item.id)
when RPG::Armor
return self.armor_ids.include?(item.id)
else
return false
end
end

16
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP


end
######
# L7 #
######
module XRXS_Window_Command
def add_command(command)
@disabled = [] if @disabled.nil?
if @commands.size != @disabled.size
for i in 0...@commands.size
@disabled[i] = false
end
end
@commands.push(command)
@disabled.push(false)
@item_max = @commands.size
self.y -= 32
self.height += 32
self.contents.dispose
self.contents = nil
self.contents = Bitmap.new(self.width - 32, @item_max * 32)
refresh
for i in 0...@commands.size
if @disabled[i]
disable_item(i)
end
end
end
def disable_item(index)
@disabled = [] if @disabled.nil?
@disabled[index] = true
draw_item(index, disabled_color)
end
def enable_item(index)
@disabled = [] if @disabled.nil?
@disabled[index] = false
draw_item(index, normal_color)
end
end
class Window_Command < Window_Selectable
include XRXS_Window_Command
def disable_item(index)
super
end
end
#######
# L1s0 #
#######
module Module_SelectableEX
def line_height
return 32
end
attr_accessor :align
def initialize(x, y, width, height)
super(x, y, width, height)
@item_max = 1
@column_max = 1
@index = -1
@align = 0
end
def draw_item(index, color)
self.contents.font.color = color

17
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP


rect = Rect.new(4, self.line_height * index, self.contents.width - 8, self.line_height)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
self.contents.draw_text(rect, @commands[index], self.align)
end
def top_row
return self.oy / self.line_height
end
def top_row=(row)
super
self.oy = self.oy/32 * self.line_height
end
def page_row_max
return (self.height - 32) / self.line_height
end
def update_cursor_rect
super
unless @index < 0
y = (self.cursor_rect.y + self.oy) * self.line_height/32 - self.oy
self.cursor_rect.set(0, y, self.cursor_rect.width, self.line_height)
end
end
end
class Window_Command < Window_Selectable
include Module_SelectableEX
def line_height
return 32
end
def initialize(width, commands)
super(0, 0, width, commands.size * self.line_height + 32)
@item_max = commands.size
@commands = commands
self.contents = Bitmap.new(width - 32, @item_max * self.line_height)
refresh
self.index = 0
end
def draw_item(index, color)
super
end
end
#######
# L13 #
#######
class Game_Map
def name
$data_mapinfos = load_data("Data/MapInfos.rxdata") if $data_mapinfos.nil?
$data_mapinfos[@map_id].name
end
end
#######
# L14 #
#######
class Bitmap
def draw_hemming_text(x, y, w, h, text, align = 0)
original_color = self.font.color.dup
self.font.color = Color.new(0,0,0,255)
self.draw_text(x , y , w, h, text, align)
self.draw_text(x , y+2, w, h, text, align)
self.draw_text(x+2, y+2, w, h, text, align)
self.draw_text(x+2, y , w, h, text, align)
self.font.color = original_color
self.draw_text(x+1, y+1, w, h, text, align)

18
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP


end
end
module RPG_FileTest
def RPG_FileTest.character_exist?(filename)
return RPG::Cache.character(filename, 0) rescue return false
end
def RPG_FileTest.picture_exist?(filename)
return RPG::Cache.picture(filename) rescue return false
end
def RPG_FileTest.battler_exist?(filename)
return RPG::Cache.battler(filename, 0) rescue return false
end
end
class Sprite_Number < Sprite
attr_reader :w
def initialize(font = Font.new)
super()
self.bitmap = Bitmap.new(1,1)
self.bitmap.font = font
max = s = 0
for i in 0..9
s = self.bitmap.text_size(i.to_s).width
max = s if max < s
end
@w = max + 2
@h = font.size + 2
self.bitmap.dispose
self.bitmap = Bitmap.new(@w, @h * 10)
self.bitmap.font = font
(0..9).each {|n| self.bitmap.draw_hemming_text(0, @h * n, @w, @h, n.to_s) }
self.src_rect.height /= 10
end
def number=(n)
self.src_rect.y = n * @h
end
def n=(n)
self.number = n
end
end
class Spriteset_Numbers
attr_reader :x
attr_reader :y
attr_reader :z
attr_reader :visible
def initialize(font = Font.new)
@font = font
@numbers = []
@x = 0
@y = 0
@z = 0
@visible = true
end
def number=(n)
@numbers.each{|number| number.n = 10 }
d = (n == 0 ? 0 : Math.log10(n).to_i)
for i in 0..d
@numbers[i] = Sprite_Number.new(@font) if @numbers[i] == nil
@numbers[i].n = n % 10
@numbers[i].visible = true
n /= 10
end

19
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP


self.x = self.x
self.y = self.y
self.z = self.z
end
def n=(n)
self.number=(n)
end
def x=(n)
@x = n
for i in 0...@numbers.size
@numbers[i].x = n
n -= @numbers[i].w
end
end
def y=(n)
@y = n
@numbers.each{|sprite| sprite.y = @y }
end
def z=(n)
@z = n
@numbers.each{|sprite| sprite.z = @z }
end
def visible=(b)
@visible = b
@numbers.each{|sprite| sprite.visible = b }
end
def dispose
@numbers.each{|sprite| sprite.dispose }
end
end

20
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP


O Script de HP e SP na Tela
Para adicionar o script de HP e SP na tela, repita o mesmo procedimento do script anterior para
criar um novo script. Lembre-se de nome-lo de HP/SP na tela (ou qualquer outro nome). Depois
adicione o seguinte script:
=begin
Para ativar a barra de HP e SP na tela ative o Swith 51 num
evento paralelo na primeira tela de jogo.
=end
module XRXS63X
#Swith que ativa a janela de HP e SP
SWITCH_ID = 51
end
class Window_MapStatus < Window_Base
def initialize
@battler = nil
@previous_hp = 0
@previous_sp = 0
@previous_states = []
@numbers = []
@number_display = []
refresh_sprites
#
super(0, 376, 640, 160)
self.contents = Bitmap.new(width - 32, height - 32)
self.z = 500
@level_up_flags = [false, false, false, false]
refresh
#
self.opacity = 0
end
def refresh_sprites
color_0 = Color.new( 0, 0, 0, 128)
color_1 = Color.new(255, 0, 0, 192)
color_2 = Color.new(255, 255, 0, 192)
color_3 = Color.new( 0, 0, 255, 192)
color_4 = Color.new( 0, 255, 255, 192)
w = 192
h = 16
y = 440
@hp_shade = Window_PointGauge.new(-7, y+1, w, h , color_0, color_0)
@sp_shade = Window_PointGauge.new(-7, y+19, w, h/2, color_0, color_0)
@hp_gauge = Window_PointGauge.new(-8, y, w, h , color_1, color_2)
@sp_gauge = Window_PointGauge.new(-8, y+18, w, h/2, color_3, color_4)
@numbers.clear
font = Font.new
font.size = 24
font.name = "Tahoma"
@numbers = Spriteset_Numbers.new(font)
@numbers.x = 174
@numbers.y = y - 10
@numbers.z = 505

21
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP


#for i in 0..3
# sprite = Sprite_Number.new(font)
# sprite.x = 174 - i * 12
# sprite.y = y - 10
# sprite.z = 505
# @numbers[i] = sprite
#end
end
def visible=(bl)
@hp_shade.visible = bl
@hp_gauge.visible = bl
@sp_shade.visible = bl
@sp_gauge.visible = bl
@numbers.visible = bl
#for i in 0..3
# @numbers[i].visible = (bl and @number_display[i])
#end
super
end
def dispose
@hp_shade.dispose
@hp_gauge.dispose
@sp_shade.dispose
@sp_gauge.dispose
@numbers.dispose #@numbers.each{|sprite| sprite.dispose}
super
end
def refresh
return if $game_party.actors.empty?
bool = false
if @battler != $game_party.actors[0]
bool = true
end
actor = $game_party.actors[0]
if (@previous_hp != actor.hp) or
(@previous_sp != actor.sp) or
(@previous_states != actor.states)
bool = true
@previous_hp = actor.hp
@previous_sp = actor.sp
@previous_states = actor.states.dup
end
return unless bool
#
self.contents.clear
actor = $game_party.actors[0]
# HP
w = 14
h = 26
@numbers.n = actor.hp
#zero_display = false
#@number_display = []
#for i in [3,2,1,0]
# n = actor.hp
# i.times{ n /= 10 }
# n %= 10
# @numbers[i].n = n
# zero_display |= (n != 0)
# @number_display[i] = zero_display
# @numbers[i].visible = zero_display

22
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP


#end
self.contents.font.size = 12
draw_actor_state(actor, 180, 50)
draw_actor_name(actor, 180, 36)
#draw_actor_graphic(actor, 582, 58)
self.contents.font.size = 12
self.contents.font.color = Color.new(0,0,0,192)
self.contents.draw_text( 0, 52, 96, 12, $data_system.words.hp)
self.contents.draw_text( 0, 68, 96, 12, $data_system.words.sp)
self.contents.font.color = system_color
self.contents.draw_text( 0, 50, 96, 12, $data_system.words.hp)
self.contents.draw_text( 0, 66, 96, 12, $data_system.words.sp)
actor = $game_party.actors[0]
w = 192
o = 216
@hp_gauge.x = w * actor.hp / actor.maxhp - o
@sp_gauge.x = w * actor.sp / actor.maxsp - o
self.z = @sp_gauge.z + 4
@battler = $game_party.actors[0]
end
end
class Window_PointGauge < Window_Base
def initialize(x, y, width, height, color_1, color_2)
super(x-16, y-18, width + 40, height + 32)
self.contents = Bitmap.new(width + 8, height)
self.opacity = 0
self.z = 501
refresh(width, height, color_1, color_2)
end
def refresh(w, height, color_1, color_2)
self.contents.clear
x=4
y=0
self.contents.draw_line(x, y, x + w, y, color_1, (height/4).floor, color_2)
x -= 1
y += (height/4).floor
self.contents.draw_line(x, y, x + w, y, color_1, (height/4).ceil , color_2)
x -= 1
y += (height/4).ceil
self.contents.draw_line(x, y, x + w, y, color_1, (height/4).ceil , color_2)
x -= 1
y += (height/4).ceil
self.contents.draw_line(x, y, x + w, y, color_1, (height/4).floor, color_2)
end
end
class Bitmap
def draw_line(start_x, start_y, end_x, end_y, start_color, width = 1, end_color = start_color)
distance = (start_x - end_x).abs + (start_y - end_y).abs
if end_color == start_color
for i in 1..distance
x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i
y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i
if width == 1
self.set_pixel(x, y, start_color)
else
self.fill_rect(x, y, width, width, start_color)
end
end
else

23
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP


for i in 1..distance
x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i
y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i
r = start_color.red * (distance-i)/distance + end_color.red * i/distance
g = start_color.green * (distance-i)/distance + end_color.green * i/distance
b = start_color.blue * (distance-i)/distance + end_color.blue * i/distance
a = start_color.alpha * (distance-i)/distance + end_color.alpha * i/distance
if width == 1
self.set_pixel(x, y, Color.new(r, g, b, a))
else
self.fill_rect(x, y, width, width, Color.new(r, g, b, a))
end
end
end
end
end
class Game_Player < Game_Character
attr_accessor :need_refresh
end
class Scene_Map
attr_reader :status_window
alias xrxs_bp17x_main main
def main
@status_window = Window_MapStatus.new
@status_window.visible = $game_switches[XRXS63X::SWITCH_ID]
xrxs_bp17x_main
@status_window.dispose
end
alias xrxs_bp17x_update update
def update
if $game_player.need_refresh
@status_window.refresh
$game_player.need_refresh = false
end
@status_window.visible = $game_switches[XRXS63X::SWITCH_ID]
xrxs_bp17x_update
end
end
class Interpreter
def refresh_player
$game_player.need_refresh = true
end
alias xrxs63x_command_311 command_311
def command_311
refresh_player
return xrxs63x_command_311
end
alias xrxs63x_command_312 command_312
def command_312
refresh_player
return xrxs63x_command_312
end
alias xrxs63x_command_313 command_313
def command_313
refresh_player
return xrxs63x_command_313
end
alias xrxs63x_command_314 command_314
def command_314
refresh_player
return xrxs63x_command_314

24
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP


end
alias xrxs63x_command_315 command_315
def command_315
refresh_player
return xrxs63x_command_315
end
end

Ativando o Cdigo Hp/Sp na Tela


S os scripts no lugar certo no sero suficientes para colocar as barras de HP/SP na tela. Voc
ter que ativar uma switch (interruptor) no mapa. Para definir a switch (interruptor) que ativar
este script, voc ter que modificar a linha 10 do script HP/SP na tela.
SWITCH_ID = 51
Neste caso a switch definida 51. Modifique este valor para a switch desejada, mas lembre-se
qual foi switch voc definiu, pois mais tarde iremos precisar dela.
Para ativa-la, crie um novo evento com duas pginas no primeiro mapa de seu projeto (onde o
heri comea jogando) e tente fazer semelhante figura 2 e figura 3.
Depois de criar os eventos, voc j pode testar seu projeto, e ver que as Barras de HP e SP
esto ativadas na tela. No nosso exemplo, a imagem de Hud foi editada para associar os espaos
corretos para cada informao. Um lugar prprio para as barras e outro para a arma equipada.
Faa

voc

sua

prpria

imagem

modifique-a

para

que

as

informaes

fiquem

harmoniosamente bem inseridas na tela.

25
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP


A primeira pgina (aba) dos eventos.

Figura 2: Ativando o HP e HP na tela.

26
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP


A segunda pgina (aba) dos eventos.

Figura 3: Segunda pgina do evento para ativar o HP e SP na tela.

27
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP


Adicionando a Arma Equipada no Mapa
Para poder adicionar o cone da arma equipada no mapa, teremos que inserir dois novos scripts e
adicionar algumas linhas na Scene_Map. Os dois scripts a seguir so de autoria de Moghunter.
Repita o procedimento de insero de um novo script, criando-os em cima do Main. No primeiro,
nomeie-o de Modulo-MOG e adicione o seguinte cdigo:
################################################################################
############################### MOOGLESOFT #####################################
################################################################################
=begin
MODULO MOG
Scripts necessrios para rodar alguns scripts do Moghunter.
=end
#------------------------------------------------------------------------------#Switch que ativa a janela de equipamentos no mapa.
module MOG_05
VISIBLE = 7
end
#------------------------------------------------------------------------------module MOG_12
# Switch que ativa o pulo.
SWITCH_ID = 4
# Definio da tecla de pulo.
TECLA_PULO = Input::A
end
#------------------------------------------------------------------------------# Definies de transies automticas
module MOG23
# Definio do tipo de transio ao acessar o menu.
TRAN_MENU = "003-Blind03.png"
# Velocidade da transio ao acessar o menu.
TRAN_MENU_VEL = 40
# Definio do tipo de transio ao fazer teleporte.
TRAN_TELEP = "004-Blind04.png"
# Velocidade da transio fazer teleporte.
TRAN_TELEP_VEL = 80
end
#-------------------------------------------------------------------------------

28
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP


No segundo script criado d nome de Window_Equip-MAP, adicione o seguinte cdigo:
##############
#By Moghunter#
##############
#-----------------------------------------------------------------------------#Apresenta os equipamentos do personagem ID 0 no mapa.
#Para ativar os equipamentos no mapa, ative a Swith 7
#-----------------------------------------------------------------------------#==============================================================================
# Window_Base
#-----------------------------------------------------------------------------class Window_Base < Window
def draw_equip_map(item, x, y)
if item == nil
return
end
bitmap = RPG::Cache.icon(item.icon_name)
self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))
end
end
#==============================================================================
# Window_Equip_Map
#-----------------------------------------------------------------------------class Window_EquipMap < Window_Base
def initialize(actor)
super(560, 402, 64, 64)
self.contents = Bitmap.new(width - 32, height - 32)
self.opacity = 0
self.z = 9999
@actor = actor
refresh
end
def refresh
self.contents.clear
@data = []
@data.push($data_weapons[@actor.weapon_id])
@data.push($data_armors[@actor.armor1_id])
@data.push($data_armors[@actor.armor2_id])
@data.push($data_armors[@actor.armor3_id])
@data.push($data_armors[@actor.armor4_id])
self.contents.font.color = system_color
draw_equip_map(@data[0], 32 * 0, 0)
#draw_icone_do_item($data_weapons[@actor.weapon_ids[1]], 32 * 1, 0) #Arma mo direita (remova se vc no usa arma de mo direita)
#draw_equip_map(@data[1], 32 * 2, 0)
#draw_equip_map(@data[2], 32 * 3, 0)
#draw_equip_map(@data[3], 32 * 4, 0)
#draw_equip_map(@data[4], 32 * 5, 0)
end
end

29
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP


Ajustando a Janela de Arma Equipada
Para ajustarmos a janela do cone da arma equipada onde voc desejar, modifique a linha 28 do
script Window_Equip-MAP. Esta linha responsvel pelo tamanho da janela (que est definida
como transparente, na linha 30), mude os nmeros e v fazendo testes at atingir a localizao
almejada.
Com este script possvel mostrar o cone de todos os equipamentos utilizados pelo heri. Se
quiser mostrar os cones de todos os equipamentos, remova o sinal comentrio (#) das linhas 46
a 50. Lembre-se de ajustar a janela (tamanho e posio) para que caiba os cones dos
equipamentos adicionados.
Mesmo aps este passo, a janela de equipamentos no aparecer na tela. Isso ocorre pois
adicionamos o cdigo da janela, mas ainda no mandamos o RGSS mostrar esta janela no HUD.

Mostrando a janela de Equipamentos no Mapa


Agora ser necessrio inserir novamente comandos no script Scene_Map, para que a janela do
equipamento seja mostrada no mapa. Entre no Scene_Map, procure a linha @sprite.z = 499 e
cole os cdigos abaixo:
@actor = $game_party.actors[0]
@equip_map = Window_EquipMap.new(@actor)
@equip_map.visible = $game_switches[MOG_05::VISIBLE]
A linha @equip_map.visible = $game_switches[MOG_05::VISIBLE] responsvel pela definio
da swith de ativao do script de arma na tela. Porm o autor do script (Moghunter) definiu-a em
um mdulo a parte.
Ento, para mudar a switch de ativao, mude a linha 14 do script Mdulo-Mog (VISIBLE = 7),
inserindo o nmero do switch no lugar do 7. No nosso exemplo usaremos a definio padro, o
switch nmero 7.

30
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP


Voltemos a Scene_Map. Agora, procure a linha @sprite.dispose, a que inserimos na primeira
parte deste tutorial. Adicione o cdigo abaixo abaixo:
@equip_map.dispose
Ainda na Scene_Map, procure a linha @sprite.update e logo abaixo dele adicione o seguinte
cdigo:
@equip_map.update
@equip_map.visible = $game_switches[MOG_05::VISIBLE]

Agora vamos testar o jogo. Note que a arma equipada ainda no est visvel. Isto ocorre pois
ainda no ativamos a switch 7 (aquela que definimos no mdulo Mog).
No precisaremos criar um novo evento para a ativao, aproveitaremos e usaremos o mesmo
evento que usamos para ativar a swith 51, responsvel pelas Barras de HP e SP.
Abra o evento e tente fazer semelhante figura 4.

31
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP

Figura 4: Ativando a switch 7 (mostrar armas na tela).

32
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP


Finalizando
Bem, o seu Hud est pronto, e nem foi to difcil. Basta prestar bastante ateno nos scripts e
ativar as Switchs necessrias.
Lembrando que voc no est limitado a usar os cdigos desta maneira, podendo ento fazer
modificaes livremente, para, por exemplo, mudar a posio do cone da arma e/ou a disposio
da imagem do Hud (pode ser colocado no topo, na esquerda, na direita).
Use sua criatividade, faa novos Huds, coloque, alm do cone da arma, os cones dos outros
equipamentos. Voc deve se limitar apenas a sua imaginao.

33
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Adicionando HUD RPG Maker XP

Concluso
O objetivo deste tutorial apenas mostrar a criao de um HUD no RPG Maker XP.
Este tutorial apenas mais um passo em nossa caminhada no mundo dos scripts. Muitas
possibilidades existem atravs dos scripts e nossa imaginao o limite. Estamos apenas
comeando a conhecer esta maravilhosa ferramenta chamada RPG Maker XP.
O autor deste tutorial Rmulo Guimares Oliveira (romulo1984@hotmail.com).
Este tutorial foi formatado e modificado (com autorizao do autor) por Marcelo Cavaco, formado
em Processamento de Dados pela Faculdade Rui Barbosa e formado em Engenharia de Produo
pela Unibahia. J trabalhou como Analista de Sistemas e Engenheiro e sempre teve um hobby, o
RPG, seja o jogo convencional, ou os RPGs eletrnicos. Agora, uma pequena parte de todo este
conhecimento pde ser conferido neste material.
Qualquer dvida, crtica, sugesto, reclamao, comentrio ou algo semelhante, favor mandar
um e-mail para marcelocavaco@click21.com.br.

34
Tutorial criado por Rmulo Guimares Oliveira e formatado por Marcelo Cavaco (marcelocavaco@click21.com.br)

Você também pode gostar