[Autor: Valentine ]
Novo Botão para Netplay
Por Valentine
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Muitos podem dizer que esse tópico deveria estar na área de scripts, mas eu acho que deveria ficar aqui, porque esse script é em relação a Netplays
Screen:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Características:
-Quando mover a janela, o botão moverá junto
-Quando fechar a janela ou ela ficar invisível o botão também irá ficar invisível
-Quando passa o mouse por cima do botão, muda a transparência (Opacidade)
Botão Para Netplay 1.7:
Por Valentine
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Muitos podem dizer que esse tópico deveria estar na área de scripts, mas eu acho que deveria ficar aqui, porque esse script é em relação a Netplays
Screen:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Características:
-Quando mover a janela, o botão moverá junto
-Quando fechar a janela ou ela ficar invisível o botão também irá ficar invisível
-Quando passa o mouse por cima do botão, muda a transparência (Opacidade)
Botão Para Netplay 1.7:
- Código:
#==============================================================================
# ** Button Base
#------------------------------------------------------------------------------
# By Valentine
#
# Instrucion:
# @button = Button_Base.new(@window,x, y,"Text") {comando}
#==============================================================================
class Button_Base < RPG::Sprite
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(janela,x,y,text,&comando)
super()
@text = text
@janela = janela
@x = x
@y = y
@p_x = x
@p_y = y
@comando = comando
self.x = @janela.x+x
self.y = @janela.y+y
self.z = 9999
self.opacity = 200
b = Bitmap.new(4,4)
cx = b.text_size(@text).width
self.bitmap = Bitmap.new(cx, 24)
@largura = cx
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.bitmap.clear
self.bitmap.fill_rect(0,0,@largura,24, Color.new(255-30, 255-30, 255-30))
self.bitmap.fill_rect(+1,+1,@largura-2,12-2, Color.new(30, 30, 30))
self.bitmap.fill_rect(+1,+1+10,@largura-2,14-2, Color.new(10, 10, 10))
self.bitmap.font.name = "Calibri"
self.bitmap.font.size = 18
self.bitmap.font.color = Color.new(0,0,0)
self.bitmap.draw_text(5,-9, @text.size+102, 42,@text)
self.bitmap.font.color = Color.new(255,255,255)
self.bitmap.draw_text(4,-10, @text.size+102, 42,@text)
end
#--------------------------------------------------------------------------
# * In_area?
#--------------------------------------------------------------------------
def in_area?(args=[0,0,self.bitmap.width,self.bitmap.height])
min_x=self.x+args[0]+@janela.x-@janela.ox
max_x=self.x + args[2]+args[0]+@janela.x-@janela.ox
min_y=self.y+args[1]+@janela.y-@janela.oy
max_y=self.y + args[3]+args[1]+@janela.y-@janela.oy
if $Mouse.x.between?(min_x,max_x) and $Mouse.y.between?(min_y,max_y)
return true
end
return false
end
#--------------------------------------------------------------------------
# * Update
#--------------------------------------------------------------------------
def update
if @janela.visible
self.x = @janela.x + @p_x
self.y = @janela.y + @p_y
end
if @janela.visible == true
self.visible = true
elsif @janela.visible == false
self.visible = false
end
if in_area?([-110,-100,@largura,24])
self.opacity = 160
else
self.opacity = 200
end
if Input.pressed?(Input::Mouse_Left) and in_area?([-110,-100,@largura,24])
if @comando != nil
@comando.call
else
end
end
end
end
Obs.:
Lembrando que para o botão funcionar, você deverá trocar o mouse do Netplay 1.7 pelo do Netplay 2.0
Botão para outros Netplays: (Que tenha Mouse)
Lembrando que para o botão funcionar, você deverá trocar o mouse do Netplay 1.7 pelo do Netplay 2.0
Botão para outros Netplays: (Que tenha Mouse)
- Código:
#==============================================================================
# ** Button Base
#------------------------------------------------------------------------------
# By Valentine
#
# Instrucion:
# @button = Button_Base.new(@window,x, y,"Text") {comando}
#==============================================================================
class Button_Base < RPG::Sprite
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(janela,x,y,text,&comando)
super()
@text = text
@janela = janela
@x = x
@y = y
@p_x = x
@p_y = y
@comando = comando
self.x = @janela.x+x
self.y = @janela.y+y
self.z = 9999
self.opacity = 200
b = Bitmap.new(4,4)
cx = b.text_size(@text).width
self.bitmap = Bitmap.new(cx+16, 24)
@largura = cx+16
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.bitmap.clear
self.bitmap.fill_rect(0,0,@largura,24, Color.new(255-30, 255-30, 255-30))
self.bitmap.fill_rect(+1,+1,@largura-2,12-2, Color.new(30, 30, 30))
self.bitmap.fill_rect(+1,+1+10,@largura-2,14-2, Color.new(10, 10, 10))
self.bitmap.font.name = "Calibri"
self.bitmap.font.size = 18
self.bitmap.font.color = Color.new(0,0,0)
self.bitmap.draw_text(5,-9, @text.size+102, 42,@text)
self.bitmap.font.color = Color.new(255,255,255)
self.bitmap.draw_text(4,-10, @text.size+102, 42,@text)
end
#--------------------------------------------------------------------------
# * In_area?
#--------------------------------------------------------------------------
def in_area?(args=[0,0,self.bitmap.width,self.bitmap.height])
min_x=self.x+args[0]+@janela.viewport.rect.x-@janela.ox
max_x=self.x + args[2]+args[0]+@janela.viewport.rect.x-@janela.ox
min_y=self.y+args[1]+@janela.viewport.rect.y-@janela.oy
max_y=self.y + args[3]+args[1]+@janela.viewport.rect.y-@janela.oy
if $Mouse.x.between?(min_x,max_x) and $Mouse.y.between?(min_y,max_y)
return true
end
return false
end
#--------------------------------------------------------------------------
# * Update
#--------------------------------------------------------------------------
def update
if @janela.visible
self.x = @janela.x + @p_x
self.y = @janela.y + @p_y
end
if @janela.visible == true
self.visible = true
elsif @janela.visible == false
self.visible = false
end
if in_area?([-200,-136,@largura,24])
self.opacity = 160
else
self.opacity = 200
end
if Input.pressed?(Input::Mouse_Left) and in_area?([-200,-136,@largura,24])
if @comando != nil
@comando.call
else
end
end
end
end
Obs.:
Para usar esse script o Netplay deverá ter esses scripts:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Obs2.:
Pergunta Frequente: Mas o que muda nos 2 scripts? esse segundo é dependente desses scripts?
Resposta: Não, é porque se você usar o script errado, quando você for passar o mouse em cima do botão não funcionará a opacidade e nem o comando do botão
Tutorial de Como Usar:
Após colocar o script antes de Main, vá ate o script da janela que você quer colocar o botão
Coloque após o código da variável que chama a window assim:
@button = Button_Base.new(@window,x, y,"Text") {comando}
@button = nome da variável (Pode ser qualquer nome que você quiser, mas sempre tem que ser um nome diferente)
@window = nome da variável que é a window que você quer colocar o botão
x = posição x
y = posição y
"Text" = Texto no botão (Com aspas)
comando = Quando clicar no botão o que irá aconteçer
Exemplo No script Login do Netplay
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Depois coloque o nome da variável + .dispose (Dentro do def dispose ou depois da palavra Graphics.freeze)
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Depois coloque o nome da variável + .update (Dentro do def update)
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Para colocar um comando coloque dentro de {}
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Se você quiser usar mais de 2 comandos deverá usar ; entre os comandos
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Como Mudar a Cor dos Botões:
Vá até a linha 38 a 40
[center]Créditos:
Valentine (Por criar e disponibilizar)
Para usar esse script o Netplay deverá ter esses scripts:
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Obs2.:
Pergunta Frequente: Mas o que muda nos 2 scripts? esse segundo é dependente desses scripts?
Resposta: Não, é porque se você usar o script errado, quando você for passar o mouse em cima do botão não funcionará a opacidade e nem o comando do botão
Tutorial de Como Usar:
Após colocar o script antes de Main, vá ate o script da janela que você quer colocar o botão
Coloque após o código da variável que chama a window assim:
@button = Button_Base.new(@window,x, y,"Text") {comando}
@button = nome da variável (Pode ser qualquer nome que você quiser, mas sempre tem que ser um nome diferente)
@window = nome da variável que é a window que você quer colocar o botão
x = posição x
y = posição y
"Text" = Texto no botão (Com aspas)
comando = Quando clicar no botão o que irá aconteçer
Exemplo No script Login do Netplay
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Depois coloque o nome da variável + .dispose (Dentro do def dispose ou depois da palavra Graphics.freeze)
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Depois coloque o nome da variável + .update (Dentro do def update)
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Para colocar um comando coloque dentro de {}
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Se você quiser usar mais de 2 comandos deverá usar ; entre os comandos
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Como Mudar a Cor dos Botões:
Vá até a linha 38 a 40
- Código:
self.bitmap.fill_rect(0,0,@largura,24, Color.new(255-30, 255-30, 255-30))
self.bitmap.fill_rect(+1,+1,@largura-2,12-2, Color.new(30, 30, 30))
self.bitmap.fill_rect(+1,+1+10,@largura-2,14-2, Color.new(10, 10, 10))
- Código:
Color.new(255-30, 255-30, 255-30)
Color.new(30, 30, 30)
Color.new(10, 10, 10)
[center]Créditos:
Valentine (Por criar e disponibilizar)