[KM] Window_Status
Eae pessoal, este é o primeiro script que eu disponibilizo para as comunidades, esse menu de status foi pedido por Mihawk da MRM, é um menu de status bem simples, mas que conta com um Sistema de Profissão.Esse sistema de profissão é feito atravéz de uma variavel que em determinado valor diz qual a profissão do jogador.
Na demo utilizei a variavel número 6, e criei 4 profissões:
» Estudante - A variavel nº6 assume o valor 1
» Professor - A variavel nº6 assume o valor 2
» Monitor - A variavel nº6 assume o valor 3
» Diretor - A variavel nº6 assume o valor 4
Para trocar a profissão de um jogador basta criar um evento comum e definir o valor desejado para a variavel escolhida no script.
Todo o menu é totalmente customizavel, adicionei vários comentários para facilitar no momento da personalização dele.
#Imagem que será usada no fundo do menu
FUNDO_MENU = "fundo_menu" <--- Gráfico do fundo do menu
#Barra de HP
BARRA_HP = "barra_hp" <--- Gráfico da Barra de HP
#Barra de MP
BARRA_MP = "barra_mp" <--- Gráfico da Barra de MP
#Barra de XP
BARRA_XP = "barra_xp" <--- Gráfico da Barra de XP
#Barra de AGI
BARRA_AGI = "barra_agi" <--- Gráfico da Barra de Agi
#Barra de DEX
BARRA_DEX = "barra_dex" <--- Gráfico da Barra de Dex
#Barra de INT
BARRA_INT = "barra_int" <--- Gráfico da Barra de Int
#Barra de EVA
BARRA_STR = "barra_eva" <--- Gráfico da Barra de Força (Eu errei o nome da barra, por isso está escrito eva. =P )
#Barra de M.ATK
BARRA_MATK = "barra_matk" <--- Ignorem esta parte eu acabei adicionando uma barra nova, depois percebi que não existia esse atributo. )
#Barra de M.DEF
BARRA_MDEF = "barra_mdef" <--- Gráfico da Barra de M. Def
#Barra de P.ATK
BARRA_PATK = "barra_patk" <--- Gráfico da Barra de P. Atk
#Barra de P.DEF
BARRA_PDEF = "barra_pdef" <--- Gráfico da Barra de P. Def
#Valor Máximo dos Atributos
STAT_MAX = 250 <--- Valor máximo que um atributo poderá atingir.
#Variavel da Profissão (Não utilize uma variavel global)
VAR_PRO = 6 <--- Variavel responsavel por definir quais serão as profissões.
#Profissão 1
PRO1 = "Estudante" <--- Nome da 1ª profissão
#Profissão 2
PRO2 = "Professor" <--- Nome da 2ª profissão
#Profissão 3
PRO3 = "Monitor" <--- Nome da 3ª profissão
#Profissão 4
PRO4 = "Diretor" <--- Nome da 4ª profissão
Uma screenshot do menu (Design do menu foi feito por Mihawk)
Script:
- Código:
#==============================================================================#
# » [KM] Window Status #
#==============================================================================#
# » Desenvolvido por Kadu Macedo #
# » Pedido feito por Mihawk- #
# » Visite: www.imperiomakers.com.br #
#==============================================================================#
# » Instruções sobre como utilizar o sistema de profissões: #
# Para definir a profissão de um jogador é bem simples você só #
# deve definir por um evento comum qual será o valor da variavel #
# escolhida. Você pode ver como foi feito nesse script analizando #
# como eu fiz o NPC de Troca de Profissão. #
#==============================================================================#
module KDU
#Imagem que será usada no fundo do menu
FUNDO_MENU = "fundo_menu"
#Barra de HP
BARRA_HP = "barra_hp"
#Barra de MP
BARRA_MP = "barra_mp"
#Barra de XP
BARRA_XP = "barra_xp"
#Barra de AGI
BARRA_AGI = "barra_agi"
#Barra de DEX
BARRA_DEX = "barra_dex"
#Barra de INT
BARRA_INT = "barra_int"
#Barra de EVA
BARRA_STR = "barra_eva"
#Barra de M.ATK
BARRA_MATK = "barra_matk"
#Barra de M.DEF
BARRA_MDEF = "barra_mdef"
#Barra de P.ATK
BARRA_PATK = "barra_patk"
#Barra de P.DEF
BARRA_PDEF = "barra_pdef"
#Valor Máximo dos Atributos
STAT_MAX = 250
#Variavel da Profissão (Não utilize uma variavel global)
VAR_PRO = 6
#Profissão 1
PRO1 = "Estudante"
#Profissão 2
PRO2 = "Professor"
#Profissão 3
PRO3 = "Monitor"
#Profissão 4
PRO4 = "Diretor"
end
class Window_Status2 < Window_Base
def initialize
super(125,90,450,310) # Posição e Tamanho do Menu
self.contents = Bitmap.new(width - 32, height - 32)
@dragable = true #Permite arrastar a windowskin
@closable = true #Permite fechar a windowskin
self.z = 999999
self.back_opacity = 0 # Opacidade da Windowskin
refresh
end
def refresh
self.contents.clear
@actor = $game_party.actors[0]
# Mostra a imagem de fundo
fundo3 = RPG::Cache.picture(KDU::FUNDO_MENU)
fundo1 = fundo3.width
fundo2 = fundo3.height
fundo4 = Rect.new(0,0,fundo1,fundo2)
self.contents.blt(0,0,fundo3,fundo4)
# Mostra o gráfico do Personagem
draw_actor_graphic(@actor, 150, 135)
# Informações sobre os Equipamentos
@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])
# Mostra a Arma equipada
draw_item_name2(@data[0], 95, 95) #Posição X e Y
# Mostra o Escudo equipado
draw_item_name2(@data[1], 180, 95) #Posição X e Y
# Mostra o Capaçete equipado
draw_item_name2(@data[2], 137, 47) #Posição X e Y
# Mostra a Armadura equipada
draw_item_name2(@data[3], 137, 140) #Posição X e Y
# Mostra o Acessório equipado
draw_item_name2(@data[4], 181, 140) #Posição X e Y
# Mostra o nome do Personagem
self.contents.draw_text(140, 180, 100, 32, "#{@actor.name}")
# Mostra o nome do Clã
self.contents.draw_text(140, 202, 100, 32, $game_party.actors[0].guild)
# Exibe a Profissão do Personagem
if $game_variables[KDU::VAR_PRO] == 1
self.contents.draw_text(140, 224, self.width-64, 32, KDU::PRO1,0)
end
if $game_variables[KDU::VAR_PRO] == 2
self.contents.draw_text(140, 224, self.width-64, 32, KDU::PRO2,0)
end
if $game_variables[KDU::VAR_PRO] == 3
self.contents.draw_text(140, 224, self.width-64, 32, KDU::PRO3,0)
end
if $game_variables[KDU::VAR_PRO] == 4
self.contents.draw_text(140, 224, self.width-64, 32, KDU::PRO4,0)
end
# Mostra a Classe do Personagem
draw_actor_class(@actor, 85, 246)
# Mostra a Barra de HP
hpbar = RPG::Cache.picture(KDU::BARRA_HP)
hpbarwidth = hpbar.width * @actor.hp / @actor.maxhp
hpbarheight = hpbar.height
hpbar_rect = Rect.new(0,0,hpbarwidth,hpbarheight)
self.contents.blt(300,45,hpbar,hpbar_rect) # Posição da Barra
# Mostra a Barra de MP
spbar = RPG::Cache.picture(KDU::BARRA_MP)
spbarwidth = spbar.width * @actor.sp / @actor.maxsp
spbarheight = spbar.height
spbar_rect = Rect.new(0,0,spbarwidth,spbarheight)
self.contents.blt(300,65,spbar,spbar_rect) # Posição da Barra
# Mostra a Barra de XP
if $game_party.actors[0].level != 99
xpbar = RPG::Cache.picture(KDU::BARRA_XP)
xpbarwidth = xpbar.width * @actor.now_exp / @actor.next_exp
xpbarheight = xpbar.height
xpbar_rect = Rect.new(0,0,xpbarwidth,xpbarheight)
self.contents.blt(300,85,xpbar,xpbar_rect) # Posição da Barra
end
# Mostra a Barra de P.ATK
patkbar = RPG::Cache.picture(KDU::BARRA_PATK)
patkbarwidth = patkbar.width * @actor.atk / KDU::STAT_MAX
patkbarheight = patkbar.height
patkbar_rect = Rect.new(0,0,patkbarwidth,patkbarheight)
self.contents.blt(300,105,patkbar,patkbar_rect) # Posição da Barra
# Mostra a Barra de P.DEF
pdefbar = RPG::Cache.picture(KDU::BARRA_PDEF)
pdefbarwidth = pdefbar.width * @actor.pdef / KDU::STAT_MAX
pdefbarheight = pdefbar.height
pdefbar_rect = Rect.new(0,0,pdefbarwidth,pdefbarheight)
self.contents.blt(300,125,pdefbar,pdefbar_rect) # Posição da Barra
# Mostra a Barra de M.DEF
mdefbar = RPG::Cache.picture(KDU::BARRA_MDEF)
mdefbarwidth = mdefbar.width * @actor.mdef / KDU::STAT_MAX
mdefbarheight = mdefbar.height
mdefbar_rect = Rect.new(0,0,mdefbarwidth,mdefbarheight)
self.contents.blt(300,145,mdefbar,mdefbar_rect) # Posição da Barra
# Mostra a Barra de DEX
dexbar = RPG::Cache.picture(KDU::BARRA_DEX)
dexbarwidth = dexbar.width * @actor.dex / KDU::STAT_MAX
dexbarheight = dexbar.height
dexbar_rect = Rect.new(0,0,dexbarwidth,dexbarheight)
self.contents.blt(300,166,dexbar,dexbar_rect) # Posição da Barra
# Mostra a Barra de INT
intbar = RPG::Cache.picture(KDU::BARRA_INT)
intbarwidth = intbar.width * @actor.int / KDU::STAT_MAX
intbarheight = intbar.height
intbar_rect = Rect.new(0,0,intbarwidth,intbarheight)
self.contents.blt(300,187,intbar,intbar_rect) # Posição da Barra
# Mostra a Barra de AGI
agibar = RPG::Cache.picture(KDU::BARRA_AGI)
agibarwidth = agibar.width * @actor.agi / KDU::STAT_MAX
agibarheight = agibar.height
agibar_rect = Rect.new(0,0,agibarwidth,agibarheight)
self.contents.blt(300,207,agibar,agibar_rect) # Posição da Barra
#Mostra a Barra de EVA
strbar = RPG::Cache.picture(KDU::BARRA_STR)
strbarwidth = strbar.width * @actor.str / KDU::STAT_MAX
strbarheight = strbar.height
strbar_rect = Rect.new(0,0,strbarwidth,strbarheight)
self.contents.blt(300,227,strbar,strbar_rect) # Posição da Barra
end
end
E finalmente, o download da window: Clique aqui para baixar
Créditos: KaduMacedo por criar a window
Mihawk por ter feito o pedido da window
KM RGSS Scripts por Kadu Macedo are licensed under a
Creative Commons Atribuição-Uso Não-Comercial-Compartilhamento pela mesma Licença 2.5 Brasil License.
Permissions beyond the scope of this license may be available at Império Makers
Última edição por KaduMacedo em Sex Ago 12, 2011 7:31 am, editado 2 vez(es)