Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #==============================================================================
- # ** Scene_Login
- #------------------------------------------------------------------------------
- # By Paulo Soreto
- #==============================================================================
- #Module Config
- module Login_Config
- #Scene configuration
- BACKGROUND = 'Title'
- #Window configuration
- BASE_WIDTH = 230 #Width
- BASE_HEIGHT = 120 #Heigh
- BASE_X = 640 / 2 - BASE_HEIGHT + 10 #X position
- BASE_Y = 480 / 2 - BASE_WIDTH / 2 #Y position
- WINDOWSKIN = 'WindskinC' #Self windowskin
- OPACITY = 200 #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 = "Usuário:" #User text
- PASS = "Password:" #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(0, 22, 60, 22, Login_Config::PASS)
- #Draw text_box
- @user_text = Text_Box.new(@base_window, 75, 20, 130, 20, 1)
- @pass_text = Text_Box.new(@base_window, 75, 42, 130, 20, 1)
- @pass_text.hide = true
- #Draw buttons
- @login_button = Button.new(@base_window, 112, 75, Login_Config::LOGIN) {login}
- @register_button = Button.new(@base_window, 152, 75, 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 if $servidor_off
- 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
- 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 Login_Config::ERROR[3]
- end
- else
- print Login_Config::ERROR[2]
- end
- else
- print Login_Config::ERROR[1]
- end
- else
- print Login_Config::ERROR[4]
- end
- 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
Add Comment
Please, Sign In to add comment