1 SceneLogin + Register 17/8/2012, 06:32
Warrior
Ajudante
Bom galera tava sem nada a fazer e então resolvi fazer/editar esse script, de tela de login + registro.
Oque faz? Bom esse script customiza sua tela de login e adiciona a tela de registro separado.
Utilidade: Como vi ( eu acho ) que a KM Scene Login (Kadu) não pega no NPM4.0 editei esse script para ficar com a mesma funcionalidade (pode customizar do seu jeito) e a tela de registro tambem pode-se customizar diferente da do login.
Screens:
- Spoiler:
Creditos: Primeiramente ao Soreto por criar aquele SceneLogin mais facil de usar.
E a mim por editar e adicionar a Scene Register.
Tutorial[center]
1- Vá no user edits.
2- Mais ou menos na linha 107 até a 111, onde está isso:
- Código:
BORDA = Color.new
- Código:
BORDA = Color.new(222,222,222)
COR1 = Color.new(222,222,222)
COR2 = Color.new(222,222,222)
COR3 = Color.new(222,222,222)
COR4 = Color.new(222,222,222)
3- Vá no Script [SC] Scene_Login
4- Apague tudo que tem lá e add isso:
- Spoiler:
- Código:
#==============================================================================
# ** Scene_Login
#------------------------------------------------------------------------------
# By Paulo Soreto
# Editado by Darkmel
#==============================================================================
#Module Config
module Login_Config
#Scene configuration
BACKGROUND = 'Login'
#Window configuration
BASE_WIDTH = 450 #Width
BASE_HEIGHT = 70 #Heigh
BASE_X = 340 / 2 - BASE_HEIGHT + 10 #X position
BASE_Y = 1321 / 2 - BASE_WIDTH / 2 #Y position
WINDOWSKIN = '' #Self windowskin
OPACITY = 150 #Window opacity
#Font configuration
FONT_NAME = 'Arial' #Name
FONT_SIZE = 14 #Size
FONT_BOLD = true #Bold
FONT_ITALIC = false #Italic
COLOR_WHITE = Color.new(255, 255, 255) #Color white
COLOR_BLACK = Color.new(0, 0, 0) #Color black
SHADOW = true
#Window texts
USER = "Login:" #User text
PASS = "" #Password text
SAVE = "Salvar?" #Save text
#Buttons
LOGIN = "Login" #Login button
REGISTER = "Register" #Register button
#Depuration
ERROR = ["Usuário não existe", #Error 0
"Login e senha iguais", #Error 1
"Login muito curto", #Error 2
"Senha muito curta", #Error 3
"Usuário já existe"] #Error 4
#User file
USER_FILE = 'Account.rxdata'
end
class Scene_Login
def main
#Make a background
@background = Sprite.new
@background.bitmap = RPG::Cache.title(Login_Config::BACKGROUND)
#Make a base window
@base_window = Window_Dummys.new(Login_Config::BASE_X, Login_Config::BASE_Y, Login_Config::BASE_WIDTH, Login_Config::BASE_HEIGHT)
@base_window.back_opacity = Login_Config::OPACITY
@base_window.contents = Bitmap.new(@base_window.width - 32, @base_window.height - 32)
@base_window.windowskin = RPG::Cache.windowskin(Login_Config::WINDOWSKIN)
@base_window.contents.clear
#Config :: Text
@base_window.contents.font.size = Login_Config::FONT_SIZE
@base_window.contents.font.name = Login_Config::FONT_NAME
@base_window.contents.font.bold = Login_Config::FONT_BOLD
@base_window.contents.font.italic = Login_Config::FONT_ITALIC
@base_window.contents.font.color = Login_Config::COLOR_WHITE
@color = @base_window.contents.font.color
#Draw shadow
if Login_Config::SHADOW == true
if @color == Login_Config::COLOR_BLACK
@base_window.contents.font.color = Login_Config::COLOR_WHITE
@base_window.contents.draw_text(1, 1, 60, 22, Login_Config::USER)
@base_window.contents.draw_text(1, 23, 60, 22, Login_Config::PASS)
@save_text = @base_window.contents.draw_text(21, 54, 60, 32, Login_Config::SAVE)
@base_window.contents.font.color = Login_Config::COLOR_BLACK
else
@base_window.contents.font.color = Login_Config::COLOR_BLACK
@base_window.contents.draw_text(1, 1, 60, 22, Login_Config::USER)
@base_window.contents.draw_text(1, 23, 60, 22, Login_Config::PASS)
@save_text = @base_window.contents.draw_text(21, 54, 60, 32, Login_Config::SAVE)
@base_window.contents.font.color = Login_Config::COLOR_WHITE
end
end
#Draw text
@base_window.contents.draw_text(0, 0, 60, 22, Login_Config::USER)
@base_window.contents.draw_text(60, 0, 60, 22, Login_Config::PASS)
#Draw text_box
@user_text = Text_Box.new(@base_window, 10, 20, 130, 20, 1)
@pass_text = Text_Box.new(@base_window, 150, 20, 130, 20, 1)
@pass_text.hide = true
#Draw buttons
@login_button = Button.new(@base_window, 294, 20, Login_Config::LOGIN) {login}
@register_button = Button.new(@base_window, 345, 20, Login_Config::REGISTER) {register}
#Draw CheckBox
@save_login = Check_Box.new(@base_window, 12, 78)
@save_text = @base_window.contents.draw_text(20, 53, 60, 32, Login_Config::SAVE)
if @pass_text.text == "" or @user_text.text == ""
load_user
end
# Graphic Transition.
Graphics.transition
Network::Main.retrieve_version
loop do
Network::Base.update
update
break if $scene != self
end
# Freeze Graphics
Graphics.freeze
# Dispose stuff
@background.dispose
@base_window.dispose
end
#--------------------------------------------------------------------------
# Update
#--------------------------------------------------------------------------
def update
@base_window.update
update_press
end
#--------------------------------------------------------------------------
# * Update Tab
#--------------------------------------------------------------------------
def update_press
if Input.triggerd?(Input::DN) or Input.triggerd?(Input::Tab) and @user_text.active == true
@user_text.active = false
@pass_text.active = true
@user_text.refresh
elsif Input.triggerd?(Input::UPs) or Input.triggerd?(Input::Tab) and @user_text.active == false
@user_text.active = true
@pass_text.active = false
@pass_text.refresh
elsif Input.triggerd?(Input::Enter)
login
end
end
#--------------------------------------------------------------------------
# * Save user
#--------------------------------------------------------------------------
def save_user
if @save_login.checked == true
@save = [@user_text.text, @pass_text.text]
file = File.open(Login_Config::USER_FILE, "wb")
Marshal.dump(@save, file)
file.close
end
end
#--------------------------------------------------------------------------
# * Load user
#--------------------------------------------------------------------------
def load_user
if FileTest.exist?(Login_Config::USER_FILE)
file = File.open(Login_Config::USER_FILE, "rb")
@save = Marshal.load(file)
file.close
@user_text.text = @save[0]
@pass_text.text = @save[1]
@save_login.value = true
end
end
#--------------------------------------------------------------------------
# Register
#--------------------------------------------------------------------------
def register
$scene = Scene_Register.new
end
#--------------------------------------------------------------------------
# Login
#--------------------------------------------------------------------------
def login
if Network::Main.user_exist?(@user_text.text) == true
@user = @user_text.text
@pass = @pass_text.text
save_user
Network::Main.send_login(@user, @pass)
else
print Login_Config::ERROR[0]
end
end
#--------------------------------------------------------------------------
# Set Status Text
#--------------------------------------------------------------------------
def set_status(status)
@base_window.contents.clear
@base_window.set_text2(status, 250, 34)
end
end
6- Adicione isso nele:
- Spoiler:
- Código:
#==============================================================================
# ** Scene_Login
#------------------------------------------------------------------------------
# By Paulo Soreto
#==============================================================================
#Module Config
module Register_Config
#Scene configuration
BACKGROUND = 'Registro'
#Window configuration
BASE_WIDTH = 300 #Width
BASE_HEIGHT = 200 #Heigh
BASE_X = 640 / 2 - BASE_HEIGHT + 10 #X position
BASE_Y = 600 / 2 - BASE_WIDTH / 2 #Y position
WINDOWSKIN = '' #Self windowskin
OPACITY = 100 #Window opacity
#Font configuration
FONT_NAME = 'Arial' #Name
FONT_SIZE = 14 #Size
FONT_BOLD = true #Bold
FONT_ITALIC = false #Italic
COLOR_WHITE = Color.new(255, 255, 255) #Color white
COLOR_BLACK = Color.new(0, 0, 0) #Color black
SHADOW = true
#Window texts
USER = "" #User text
PASS = "" #Password text
SAVE = "" #Save text
#Buttons
LOGIN = "Voltar" #Login button
REGISTER = "Registrar" #Register button
#Depuration
ERROR = ["Usuário não existe", #Error 0
"Login e senha iguais", #Error 1
"Login muito curto", #Error 2
"Senha muito curta", #Error 3
"Usuário já existe"] #Error 4
#User file
USER_FILE = 'Account.rxdata'
end
class Scene_Register
def main
#Make a background
@background = Sprite.new
@background.bitmap = RPG::Cache.title(Register_Config::BACKGROUND)
#Make a base window
@base_window = Window_Dummys.new(Register_Config::BASE_X, Register_Config::BASE_Y, Register_Config::BASE_WIDTH, Register_Config::BASE_HEIGHT)
@base_window.back_opacity = Register_Config::OPACITY
@base_window.contents = Bitmap.new(@base_window.width - 32, @base_window.height - 32)
@base_window.windowskin = RPG::Cache.windowskin(Register_Config::WINDOWSKIN)
@base_window.contents.clear
#Config :: Text
@base_window.contents.font.size = Register_Config::FONT_SIZE
@base_window.contents.font.name = Register_Config::FONT_NAME
@base_window.contents.font.bold = Register_Config::FONT_BOLD
@base_window.contents.font.italic = Register_Config::FONT_ITALIC
@base_window.contents.font.color = Register_Config::COLOR_WHITE
@color = @base_window.contents.font.color
#Draw shadow
if Register_Config::SHADOW == true
if @color == Register_Config::COLOR_BLACK
@base_window.contents.font.color = Register_Config::COLOR_WHITE
@base_window.contents.draw_text(1, 1, 60, 22, Register_Config::USER)
@base_window.contents.draw_text(1, 23, 60, 22, Register_Config::PASS)
@base_window.contents.font.color = Register_Config::COLOR_BLACK
else
@base_window.contents.font.color = Register_Config::COLOR_BLACK
@base_window.contents.draw_text(1, 1, 60, 22, Register_Config::USER)
@base_window.contents.draw_text(1, 23, 60, 22, Register_Config::PASS)
@save_text = @base_window.contents.draw_text(21, 54, 60, 32, Register_Config::SAVE)
@base_window.contents.font.color = Register_Config::COLOR_WHITE
end
end
#Draw text_box
@user_text = Text_Box.new(@base_window, 120, 25, 130, 20, 1)
@pass_text = Text_Box.new(@base_window, 120, 52, 130, 20, 1)
@pass_text.hide = true
#Draw buttons
@register_button = Button.new(@base_window, 152, 85, Register_Config::REGISTER) {register}
@login_button = Button.new(@base_window, 155, 125, Register_Config::LOGIN) {login}
#Draw CheckBox
@save_login = Check_Box.new(@base_window, 100, 158)
@save_text = @base_window.contents.draw_text(110, 133, 60, 32, Login_Config::SAVE)
# Graphic Transition.
Graphics.transition
Network::Main.retrieve_version
loop do
Network::Base.update
update
break if $scene != self
end
# Freeze Graphics
Graphics.freeze
# Dispose stuff
@background.dispose
@base_window.dispose
end
#--------------------------------------------------------------------------
# Update
#--------------------------------------------------------------------------
def update
@base_window.update
update_press
end
#--------------------------------------------------------------------------
# * Update Tab
#--------------------------------------------------------------------------
def update_press
if Input.triggerd?(Input::DN) or Input.triggerd?(Input::Tab) and @user_text.active == true
@user_text.active = false
@pass_text.active = true
@user_text.refresh
elsif Input.triggerd?(Input::UPs) or Input.triggerd?(Input::Tab) and @user_text.active == false
@user_text.active = true
@pass_text.active = false
@pass_text.refresh
elsif Input.triggerd?(Input::Enter)
login
end
end
#--------------------------------------------------------------------------
# * Save user
#--------------------------------------------------------------------------
def save_user
if @save_login.checked == true
@save = [@user_text.text, @pass_text.text]
file = File.open(Register_Config::USER_FILE, "wb")
Marshal.dump(@save, file)
file.close
end
end
#--------------------------------------------------------------------------
# * Load user
#--------------------------------------------------------------------------
def load_user
if FileTest.exist?(Register_Config::USER_FILE)
file = File.open(Register_Config::USER_FILE, "rb")
@save = Marshal.load(file)
file.close
@user_text.text = @save[0]
@pass_text.text = @save[1]
@save_login.value = true
end
end
#--------------------------------------------------------------------------
# Register
#--------------------------------------------------------------------------
def register
###############
if not Network::Main.user_exist?(@user_text.text)
if @user_text.text != @pass_text.text
if @user_text.text.size >= 4
if @pass_text.text.size >= 4
save_user
Network::Main.send_register(@user_text.text, @pass_text.text)
Network::Main.send_login(@user_text.text, @pass_text.text)
else
print Register_Config::ERROR[3]
end
else
print Register_Config::ERROR[2]
end
else
print Register_Config::ERROR[1]
end
else
print Register_Config::ERROR[4]
end
end
#--------------------------------------------------------------------------
# Login
#--------------------------------------------------------------------------
def login
$scene = Scene_Login.new
end
#--------------------------------------------------------------------------
# Set Status Text
#--------------------------------------------------------------------------
def set_status(status)
@base_window.contents.clear
@base_window.set_text2(status, 250, 34)
end
end
- Spoiler:
- [Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
- Spoiler:
- [Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Creditos
Darkmel fez
E a min por mostrar a vocês