Guest User

Untitled

a guest
Sep 13th, 2018
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 7.55 KB | None | 0 0
  1. #==============================================================================
  2. # ** Scene_Login
  3. #------------------------------------------------------------------------------
  4. # By Paulo Soreto
  5. #==============================================================================
  6.  
  7. #Module Config
  8. module Login_Config
  9.   #Scene configuration
  10.   BACKGROUND = 'Title'
  11.  
  12.   #Window configuration
  13.   BASE_WIDTH = 230          #Width
  14.   BASE_HEIGHT = 120         #Heigh
  15.   BASE_X = 640 / 2 - BASE_HEIGHT + 10   #X position
  16.   BASE_Y = 480 / 2 - BASE_WIDTH / 2 #Y position
  17.   WINDOWSKIN = 'WindskinC'      #Self windowskin
  18.   OPACITY = 200             #Window opacity
  19.  
  20.   #Font configuration
  21.   FONT_NAME = 'Arial'               #Name
  22.   FONT_SIZE = 14                #Size
  23.   FONT_BOLD = true              #Bold
  24.   FONT_ITALIC = false               #Italic
  25.   COLOR_WHITE = Color.new(255, 255, 255)    #Color white
  26.   COLOR_BLACK = Color.new(0, 0, 0)      #Color black
  27.   SHADOW = true
  28.  
  29.   #Window texts
  30.   USER = "Usuário:"    #User text
  31.   PASS = "Password:"    #Password text
  32.   SAVE = "Salvar?"  #Save text
  33.  
  34.   #Buttons
  35.   LOGIN = "Login"   #Login button
  36.   REGISTER = "Register" #Register button
  37.  
  38.   #Depuration
  39.   ERROR = ["Usuário não existe"#Error 0
  40.            "Login e senha iguais"#Error 1
  41.            "Login muito curto",     #Error 2
  42.            "Senha muito curta",   #Error 3
  43.            "Usuário já existe"]       #Error 4
  44.    
  45.   #User file
  46.   USER_FILE = 'Account.rxdata'
  47. end
  48.  
  49. class Scene_Login
  50.   def main  
  51.     #Make a background
  52.     @background = Sprite.new
  53.     @background.bitmap = RPG::Cache.title(Login_Config::BACKGROUND)  
  54.     #Make a base window
  55.     @base_window = Window_Dummys.new(Login_Config::BASE_X, Login_Config::BASE_Y, Login_Config::BASE_WIDTH, Login_Config::BASE_HEIGHT)
  56.     @base_window.back_opacity = Login_Config::OPACITY
  57.     @base_window.contents = Bitmap.new(@base_window.width - 32, @base_window.height - 32)
  58.     @base_window.windowskin = RPG::Cache.windowskin(Login_Config::WINDOWSKIN)
  59.     @base_window.contents.clear
  60.    
  61.     #Config :: Text
  62.     @base_window.contents.font.size = Login_Config::FONT_SIZE
  63.     @base_window.contents.font.name = Login_Config::FONT_NAME
  64.     @base_window.contents.font.bold = Login_Config::FONT_BOLD
  65.     @base_window.contents.font.italic = Login_Config::FONT_ITALIC
  66.     @base_window.contents.font.color = Login_Config::COLOR_WHITE
  67.     @color = @base_window.contents.font.color
  68.    
  69.     #Draw shadow
  70.     if Login_Config::SHADOW == true
  71.       if @color == Login_Config::COLOR_BLACK
  72.         @base_window.contents.font.color = Login_Config::COLOR_WHITE
  73.         @base_window.contents.draw_text(1, 1, 60, 22, Login_Config::USER)
  74.         @base_window.contents.draw_text(1, 23, 60, 22, Login_Config::PASS)
  75.         @save_text  = @base_window.contents.draw_text(21, 54, 60, 32, Login_Config::SAVE)
  76.         @base_window.contents.font.color = Login_Config::COLOR_BLACK
  77.       else
  78.         @base_window.contents.font.color = Login_Config::COLOR_BLACK
  79.         @base_window.contents.draw_text(1, 1, 60, 22, Login_Config::USER)
  80.         @base_window.contents.draw_text(1, 23, 60, 22, Login_Config::PASS)
  81.         @save_text  = @base_window.contents.draw_text(21, 54, 60, 32, Login_Config::SAVE)
  82.         @base_window.contents.font.color = Login_Config::COLOR_WHITE
  83.       end
  84.     end
  85.    
  86.     #Draw text
  87.     @base_window.contents.draw_text(0, 0, 60, 22, Login_Config::USER)
  88.     @base_window.contents.draw_text(0, 22, 60, 22, Login_Config::PASS)
  89.    
  90.     #Draw text_box
  91.     @user_text = Text_Box.new(@base_window, 75, 20, 130, 20, 1)
  92.     @pass_text = Text_Box.new(@base_window, 75, 42, 130, 20, 1)
  93.     @pass_text.hide = true
  94.    
  95.     #Draw buttons
  96.     @login_button = Button.new(@base_window, 112, 75, Login_Config::LOGIN) {login}
  97.     @register_button = Button.new(@base_window, 152, 75, Login_Config::REGISTER) {register}
  98.    
  99.     #Draw CheckBox
  100.     @save_login = Check_Box.new(@base_window, 12, 78)
  101.     @save_text  = @base_window.contents.draw_text(20, 53, 60, 32, Login_Config::SAVE)
  102.    
  103.     if @pass_text.text == "" or @user_text.text == ""
  104.       load_user
  105.     end
  106.    
  107.     # Graphic Transition.
  108.     Graphics.transition
  109.     Network::Main.retrieve_version if $servidor_off
  110.     loop do
  111.       Network::Base.update
  112.       update
  113.       break if $scene != self
  114.     end
  115.     # Freeze Graphics
  116.     Graphics.freeze
  117.    
  118.     # Dispose stuff
  119.     @background.dispose
  120.     @base_window.dispose
  121.   end
  122.  
  123.   #--------------------------------------------------------------------------
  124.   #  Update
  125.   #--------------------------------------------------------------------------
  126.   def update
  127.     @base_window.update
  128.     update_press
  129.   end
  130.  
  131.   #--------------------------------------------------------------------------
  132.   # * Update Tab
  133.   #--------------------------------------------------------------------------
  134.   def update_press
  135.     if Input.triggerd?(Input::DN) or Input.triggerd?(Input::Tab) and @user_text.active == true
  136.       @user_text.active = false
  137.       @pass_text.active = true
  138.       @user_text.refresh
  139.     elsif Input.triggerd?(Input::UPs) or Input.triggerd?(Input::Tab) and @user_text.active == false
  140.       @user_text.active = true
  141.       @pass_text.active = false
  142.       @pass_text.refresh
  143.     elsif Input.triggerd?(Input::Enter)
  144.       login
  145.     end
  146.   end
  147.  
  148.   #--------------------------------------------------------------------------
  149.   # * Save user
  150.   #--------------------------------------------------------------------------
  151.   def save_user
  152.     if @save_login.checked == true
  153.       @save = [@user_text.text, @pass_text.text]
  154.       file = File.open(Login_Config::USER_FILE, "wb")
  155.       Marshal.dump(@save, file)
  156.       file.close
  157.     end
  158.   end
  159.  
  160.   #--------------------------------------------------------------------------
  161.   # * Load user
  162.   #--------------------------------------------------------------------------
  163.   def load_user
  164.     if FileTest.exist?(Login_Config::USER_FILE)
  165.       file = File.open(Login_Config::USER_FILE, "rb")
  166.       @save = Marshal.load(file)
  167.       file.close
  168.       @user_text.text = @save[0]
  169.       @pass_text.text = @save[1]
  170.       @save_login.value = true
  171.     end
  172.   end    
  173.  
  174.   #--------------------------------------------------------------------------
  175.   # Register
  176.   #--------------------------------------------------------------------------
  177.   def register
  178.     if not Network::Main.user_exist?(@user_text.text)
  179.       if @user_text.text != @pass_text.text
  180.         if @user_text.text.size >= 4
  181.           if @pass_text.text.size >= 4
  182.             save_user
  183.             Network::Main.send_register(@user_text.text, @pass_text.text)
  184.             Network::Main.send_login(@user_text.text, @pass_text.text)
  185.           else
  186.           print Login_Config::ERROR[3]
  187.           end
  188.         else
  189.           print Login_Config::ERROR[2]
  190.         end
  191.       else
  192.         print Login_Config::ERROR[1]
  193.       end
  194.     else
  195.       print Login_Config::ERROR[4]
  196.     end
  197.   end
  198.  
  199.   #--------------------------------------------------------------------------
  200.   # Login
  201.   #--------------------------------------------------------------------------
  202.   def login
  203.     if Network::Main.user_exist?(@user_text.text) == true
  204.       @user = @user_text.text
  205.       @pass = @pass_text.text
  206.       save_user
  207.       Network::Main.send_login(@user, @pass)
  208.     else
  209.       print Login_Config::ERROR[0]
  210.     end
  211.   end
  212.  
  213.   #--------------------------------------------------------------------------
  214.   #  Set Status Text
  215.   #--------------------------------------------------------------------------
  216.   def set_status(status)
  217.     @base_window.contents.clear
  218.     @base_window.set_text2(status, 250, 34)
  219.   end
  220. end
Add Comment
Please, Sign In to add comment