[21/07] - Alterações nos scripts, mais fácil entendimento[22/07] - Quando fechava o menu, os botões permaneciam no mapa
[23/07] - Agora pode configurar condições para uma classe
Esse script cria uma janela mais organizada para alterações de classes, como se fosse um menu, nele contendo informações da classe para o jogador, muito melhor que chamar por evento mensagem de texto ou escolhas, podendo modificar de sua escolha com criatividade.
Adicione esse script abaixo da última windows, pode-se perceber que é usada a base do RD12 então só olharem a base que ele deixou para entender onde configurar.
- Código:
#==============================================================================
# ** Criado por ; Mundator ** # Menu de Classes **
#
# Esse script cria uma janela que mostra as informações das classes mais #
# organizadas. ALDEIARPG.COM
#==============================================================================
class Window_Classes< Window_Base
def initialize
super(210,90, 165, 200)
self.contents = Bitmap.new(width - 32, height - 32)
self.z = 9999
self.back_opacity = 255
self.windowskin = RPG::Cache.windowskin("Windowskin4")
self.visible = false
@title = Title.new(self, "Classes Primarias")
#Configurações da Fonte
self.contents.font.color = Color.new(0, 0, 0)
self.contents.font.size = 13
self.contents.font.name = "Segoe UI"
@closable = true
@dragable = true
#Widgets
@TextBox = Text_Box.new(self, 0, 0, 10, 5, 1)
#CRIE OS BUTTONS AQUI
@Button = Button.new(self, 40, 20, "Lutador") {botao_lutador}
@Button = Button.new(self, 40, 40, "Arqueiro") {botao_arqueiro}
@Button = Button.new(self, 40, 60, "Curandeiro") {botao_curandeiro}
@Button = Button.new(self, 40, 80, "Mercenario") {botao_mercenario}
@Button = Button.new(self, 40, 100, "Arquimago") {botao_arquimago}
refresh
end
#DEFINA OQUE ACONTECE AQUI
def botao_lutador
$Manager["Lutador"].visible = true
end
def botao_arqueiro
$Manager[""].visible = true
end
def botao_curandeiro
$Manager[""].visible = true
end
def botao_mercenario
$Manager[""].visible = true
end
def botao_arquimago
$Manager[""].visible = true
end
def on_close
@title.visible = false
@title.refresh
end
def refresh
self.contents.clear
end
end
Agora para criar uma windows que mostre as informações da classe desejada, assim tendo em conta seus atributos e outros. Eu fiz uma bem simples, não que tenha que ser igual, vai de sua criatividade, adicione esse script abaixo da anterior.
- Código:
#==============================================================================
# ** Classe Lutador - Menu de Classes **
#==============================================================================
# Nesse script é chamado oque ira aparecer na janela da classe selecionada #
# ALDEIARPG.COM #
#==============================================================================
def initialize
super(380, 90, 165, 200)
self.contents = Bitmap.new(width - 32, height - 32)
self.z = 9999
self.back_opacity = 255
self.windowskin = RPG::Cache.windowskin("Windowskin")
self.visible = false
#Configurações da Fonte
self.contents.font.color = Color.new(255, 255, 255)
self.contents.font.size = 14
self.contents.font.name = "Segoe UI"
@title = Title.new(self, "Lutador")
@dragable = true
@clickable = true
@closable = true
#Widgets
#@TextBox = Text_Box.new(self, 30, 32, 10, 5, 1)
@Button = Button.new(self, 40, 77, "Escolher") {botao_yes}
refresh
end
#==============================================================================
#AO CLICAR NO BOTAO, A CLASSE ESCOLHIDA SERA TROCADA PELA DO JOGADOR
def botao_yes
$game_temp.common_event_id = 5 #ID DO EVENTO COMUM
$Manager["Lutador"].visible = false
$Manager["Classes"].visible = false
refresh
end
def on_close
@title.visible = false
@title.refresh
end
#==============================================================================
#AQUI SE DEFINE A IMAGEM E OQUE SERA ESCRITO
def refresh
self.contents.clear
#Desenhar Imagem
picture = RPG::Cache.picture("Lutador")
self.contents.blt(49, 0, picture, Rect.new(0, 0, picture.width, picture.height))
self.contents.draw_text(0, 91, self.width-32, 32, "Atributos: SR.FODÃO", 0)
end
end
Mas ainda não esta funcionando por que? Simples, tem que adicionar ela no map draw, vá até o script "Main Map Draw" e procure por;
- Código:
$Manager.new("Rank", [Window_Rank.new, "update"])
- Código:
$Manager.new("Classes", [Window_Classes.new, "update"])
$Manager.new("Lutador", [Lutador.new, "update"])
- Código:
$Manager.new("Arqueiro", [Arqueiro.new, "update"])
#Então chamarei em classes por;
$Manager[Arqueiro].visible = true
Para mudar a classe desejada você pode fazer por script ou por evento, eu prefiro por evento que adiciono uns bônus dependendo da classe escolhida, condição de inicio coloque em nada, um exemplo;
- Código:
<>Mudar Classe do Personagem : [], Lutador
<>Mudar Parâmetros : [], HP Máx. + 10
<>Mudar Parâmetros : [], Ataque. + 10
<>$chat.texto("#{$game_party.actors[0].name} agora é um Lutador")
Agora para chamar o script, como se um player chegasse até um certo nível, ele poderia ir até tal evento e escolher a classe. Esse é só um exemplo de condição de chamar, oque importa é o script chamado.
- Código:
<>Condição : Variável [0001: Herói Nível]== 10
<>Script : $Manager["Classes"].visible = true
Funciona no NetPlay Crystal 1.8
Para o NetPlay Master, você deve modificar a forma que é chamada o script.
Créditos:
Mundator - Pelo Script.
RD12 - Pela Window_Base
Última edição por Mundator em Qui Jul 23, 2015 3:03 pm, editado 4 vez(es)