#==============================================================================
# ■ Scene_Login
#------------------------------------------------------------------------------
#  处理用户登录的类。
#==============================================================================

class Scene_Login
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #--------------------------------------------------------------------------
  def initialize
    @mouse_press_register = false # 注册按钮
    @mouse_press_login = false # 登录按钮
    @focus_index = 1 #焦点
    @get_focus = false #获得焦点
    @textcursor_count = 0 # 用来控制光标闪烁
    @textcursor_index = 0 # 用来控制光标位置
    @text_index = 0 # 字符计数
    # 在文件不存在的情况下创建默认的测试帐号
    filename = "Data/Message.log"
    unless FileTest.exist?(filename)
      newuser = {"test"=>["gm","gm","gm"]}
      file = File.open(filename, "wb")
      Marshal.dump(newuser, file)
      file.close
    end
  end
  #--------------------------------------------------------------------------
  # ● 主处理
  #--------------------------------------------------------------------------
  def main
    # 载入数据库
    $data_actors        = load_data("Data/Actors.rxdata")
    $data_classes       = load_data("Data/Classes.rxdata")
    $data_skills        = load_data("Data/Skills.rxdata")
    $data_items         = load_data("Data/Items.rxdata")
    $data_weapons       = load_data("Data/Weapons.rxdata")
    $data_armors        = load_data("Data/Armors.rxdata")
    $data_enemies       = load_data("Data/Enemies.rxdata")
    $data_troops        = load_data("Data/Troops.rxdata")
    $data_states        = load_data("Data/States.rxdata")
    $data_animations    = load_data("Data/Animations.rxdata")
    $data_tilesets      = load_data("Data/Tilesets.rxdata")
    $data_common_events = load_data("Data/CommonEvents.rxdata")
    $data_system        = load_data("Data/System.rxdata")
    # 生成系统对像
    $game_system = Game_System.new
    # 生成背景图形
    @sprite_back = Sprite.new
    @sprite_back.bitmap = RPG::Cache.picture("用户登录.png")
    # 生成登录按钮
    @sprite_login = Sprite.new
    @sprite_login.bitmap = RPG::Cache.picture("登录1.png")
    @sprite_login.x = 320
    @sprite_login.y = 300
    # 生成注册按钮
    @sprite_register = Sprite.new
    @sprite_register.bitmap = RPG::Cache.picture("注册1.png")
    @sprite_register.x = 400
    @sprite_register.y = 300
    # 生成文本光标
    @sprite_textcursor = Sprite.new
    @sprite_textcursor.bitmap = RPG::Cache.picture("文本光标.png")
    @sprite_textcursor.x = 247
    @sprite_textcursor.y = 200
    @sprite_textcursor.opacity = 0
    @login_window = Window_Login.new
    # 执行过渡
    Graphics.transition
    # 主循环
    loop do
      # 刷新游戏画面
      Graphics.update
      # 刷新输入情报
      Mouse.update
      # 刷新画面
      update
      # 如果画面切换的话就中断循环
      if $scene != self
        break
      end
    end
    # 准备过渡
    Graphics.freeze
    # 释放窗口
    @sprite_back.dispose
    @sprite_back.bitmap.dispose
    @sprite_login.dispose
    @sprite_login.bitmap.dispose
    @sprite_register.dispose
    @sprite_register.bitmap.dispose
    @sprite_textcursor.dispose
    @sprite_textcursor.bitmap.dispose
    @login_window.dispose
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update
    # 在获得焦点的情况下监听键盘输入
    if @get_focus == true
      listen_keyboard_input
      # 按TAB键切换光标位置
      if Kboard.keyboard($R_Key_TAB)
        case @focus_index
        when 1
          @focus_index = 2
          @textcursor_index = $password.length
          @text_index = $password.length
        when 2
          @focus_index = 1
          @textcursor_index = $username.length
          @text_index = $username.length
        end
      end
    end
    if @get_focus == true # 在获得焦点的情况下刷新文本光标
      if @textcursor_count%40 < 20 # 每秒钟刷新一次
        @sprite_textcursor.opacity = 0
      else
        @sprite_textcursor.opacity = 255
      end
      # 刷新光标位置,因为背景图片的文本框没有对齐,所以设置比较麻烦
      @sprite_textcursor.x = 247 + @textcursor_index * 10 # 8为每个字符的间距
      case @focus_index
      when 1
        @sprite_textcursor.y = 200
      when 2
        @sprite_textcursor.y = 200 + 53
      end
      @textcursor_count += 1
    else
      @sprite_textcursor.opacity = 0
    end
    mouse_x,mouse_y = Mouse.get_mouse_pos
    Mouse.click_lock
    # 用户登录
    if (mouse_x > @sprite_login.x) and (mouse_y > @sprite_login.y) and
        (mouse_x < @sprite_login.x + @sprite_login.bitmap.width) and 
        (mouse_y < @sprite_login.y + @sprite_login.bitmap.height)
      Mouse.click_unlock
      @sprite_login.bitmap = RPG::Cache.picture("登录2.png")
      if Mouse.press?(Mouse::LEFT)
        @sprite_login.bitmap = RPG::Cache.picture("登录3.png")
        @mouse_press_login = true
        return
      end
      if Input.trigger?(Input::C)
        @sprite_login.bitmap = RPG::Cache.picture("登录3.png")
        @mouse_press_login = true
        return
        end
      if @mouse_press_login
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 读取数据库
        filename = "Data/Message.log"
        file = File.open(filename, "r")
        user_info = Marshal.load(file)
        file.close
        if $username.length <= 0 #如果用户名为空
          p "请输入用户名"
          @mouse_press_login = false
          return
        end
        if $password.length <= 0 #如果密码为空
          p "请输入密码"
          @mouse_press_login = false
          return
        end
        if user_info.include?($username.to_s)
          if $password.to_s == user_info[$username.to_s][0]
            $scene = Scene_Title.new
          else
            p "密码错误"
          end
        else
          p "用户名不存在"
        end
        # 移动场景
        
$game_temp.player_transferring = true
$game_temp.player_new_map_id = (23)
$game_temp.player_new_x = (10)
$game_temp.player_new_y = (7)
$game_temp.player_new_direction = 0

        @mouse_press_login = false
      end
          
    else
      Mouse.click_lock
      @sprite_login.bitmap = RPG::Cache.picture("登录1.png")
      @mouse_press_login = false
    end
       # 用户名注册
    if (mouse_x > @sprite_register.x) and (mouse_y > @sprite_register.y) and
        (mouse_x < @sprite_register.x + @sprite_register.bitmap.width) and 
        (mouse_y < @sprite_register.y + @sprite_register.bitmap.height)
      Mouse.click_unlock
      @sprite_register.bitmap = RPG::Cache.picture("注册2.png")
      if Mouse.press?(Mouse::LEFT)
        @sprite_register.bitmap = RPG::Cache.picture("注册3.png")
        @mouse_press_register = true
        return
      end
      if @mouse_press_register
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Register.new
        @mouse_press_register = false
      end
    else
      Mouse.click_lock
      @sprite_register.bitmap = RPG::Cache.picture("注册1.png")
      @mouse_press_register = false
    end
    # 用户名文本框区域
    if (mouse_x > 248 - 5) and (mouse_y > 202 - 10) and
       (mouse_x < 475 + 5) and (mouse_y < 220)
      Mouse.click_unlock
      $mouse_tag = "text"
      if Mouse.trigger?(Mouse::LEFT)
        @get_focus = true
        @focus_index = 1
        @textcursor_index = $username.length
        @text_index = $username.length
      end
      return
    else
      Mouse.click_lock
      $mouse_tag = nil
    end
    # 密码文本框区域
    if (mouse_x > 248 - 5) and (mouse_y > 255 - 10) and
       (mouse_x < 475 + 5) and (mouse_y < 272)
      Mouse.click_unlock
      $mouse_tag = "text"
      if Mouse.trigger?(Mouse::LEFT)
        @get_focus = true
        @focus_index = 2
        @textcursor_index = $password.length
        @text_index = $password.length
      end
      return
    else
      Mouse.click_lock
      $mouse_tag = nil
    end
  end
  ############################################################################
  # 监听键盘输入
  def listen_keyboard_input
    case @focus_index
    when 1
      # 字母A
      if Kboard.keyboard($R_Key_A)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "a"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母B
      if Kboard.keyboard($R_Key_B)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "b"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母C
      if Kboard.keyboard($R_Key_C)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "c"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母D
      if Kboard.keyboard($R_Key_D)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "d"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母E
      if Kboard.keyboard($R_Key_E)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "e"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母F
      if Kboard.keyboard($R_Key_F)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "f"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母G
      if Kboard.keyboard($R_Key_G)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "g"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母H
      if Kboard.keyboard($R_Key_H)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "h"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母I
      if Kboard.keyboard($R_Key_I)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "i"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母J
      if Kboard.keyboard($R_Key_J)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "j"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母K
      if Kboard.keyboard($R_Key_K)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "k"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母L
      if Kboard.keyboard($R_Key_L)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "l"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母M
      if Kboard.keyboard($R_Key_M)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "m"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母N
      if Kboard.keyboard($R_Key_N)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "n"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母O
      if Kboard.keyboard($R_Key_O)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "o"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母P
      if Kboard.keyboard($R_Key_P)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "p"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母Q
      if Kboard.keyboard($R_Key_Q)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "q"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母R
      if Kboard.keyboard($R_Key_R)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "r"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母S
      if Kboard.keyboard($R_Key_S)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "s"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母T
      if Kboard.keyboard($R_Key_T)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "t"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母U
      if Kboard.keyboard($R_Key_U)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "u"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母V
      if Kboard.keyboard($R_Key_V)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "v"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母W
      if Kboard.keyboard($R_Key_W)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "w"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母X
      if Kboard.keyboard($R_Key_X)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "x"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母Y
      if Kboard.keyboard($R_Key_Y)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "y"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母Z
      if Kboard.keyboard($R_Key_Z)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "z"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 数字0
      if Kboard.keyboard($R_Key_0) or Kboard.keyboard($R_Key_NUMPAD0)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "0"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 数字1
      if Kboard.keyboard($R_Key_1) or Kboard.keyboard($R_Key_NUMPAD1)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "1"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 数字2
      if Kboard.keyboard($R_Key_2) or Kboard.keyboard($R_Key_NUMPAD2)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "2"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 数字3
      if Kboard.keyboard($R_Key_3) or Kboard.keyboard($R_Key_NUMPAD3)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "3"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 数字4
      if Kboard.keyboard($R_Key_4) or Kboard.keyboard($R_Key_NUMPAD4)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "4"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 数字5
      if Kboard.keyboard($R_Key_5) or Kboard.keyboard($R_Key_NUMPAD5)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "5"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 数字6
      if Kboard.keyboard($R_Key_6) or Kboard.keyboard($R_Key_NUMPAD6)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "6"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 数字7
      if Kboard.keyboard($R_Key_7) or Kboard.keyboard($R_Key_NUMPAD7)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "7"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 数字8
      if Kboard.keyboard($R_Key_8) or Kboard.keyboard($R_Key_NUMPAD8)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "8"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 数字9
      if Kboard.keyboard($R_Key_9) or Kboard.keyboard($R_Key_NUMPAD9)
        if $username.length >= 15
          return
        end
        $username[@text_index] = "9"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 删除键
      if Kboard.keyboard($R_Key_BACK)
        if $username.length > 0
          $username.pop
          @textcursor_index -= 1
          @text_index -= 1
          @login_window.refresh
        end
      end
    when 2
      # 字母A
      if Kboard.keyboard($R_Key_A)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "a"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母B
      if Kboard.keyboard($R_Key_B)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "b"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母C
      if Kboard.keyboard($R_Key_C)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "c"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母D
      if Kboard.keyboard($R_Key_D)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "d"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母E
      if Kboard.keyboard($R_Key_E)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "e"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母F
      if Kboard.keyboard($R_Key_F)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "f"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母G
      if Kboard.keyboard($R_Key_G)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "g"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母H
      if Kboard.keyboard($R_Key_H)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "h"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母I
      if Kboard.keyboard($R_Key_I)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "i"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母J
      if Kboard.keyboard($R_Key_J)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "j"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母K
      if Kboard.keyboard($R_Key_K)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "k"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母L
      if Kboard.keyboard($R_Key_L)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "l"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母M
      if Kboard.keyboard($R_Key_M)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "m"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母N
      if Kboard.keyboard($R_Key_N)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "n"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母O
      if Kboard.keyboard($R_Key_O)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "o"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母P
      if Kboard.keyboard($R_Key_P)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "p"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母Q
      if Kboard.keyboard($R_Key_Q)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "q"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母R
      if Kboard.keyboard($R_Key_R)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "r"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母S
      if Kboard.keyboard($R_Key_S)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "s"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母T
      if Kboard.keyboard($R_Key_T)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "t"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母U
      if Kboard.keyboard($R_Key_U)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "u"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母V
      if Kboard.keyboard($R_Key_V)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "v"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母W
      if Kboard.keyboard($R_Key_W)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "w"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母X
      if Kboard.keyboard($R_Key_X)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "x"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母Y
      if Kboard.keyboard($R_Key_Y)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "y"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 字母Z
      if Kboard.keyboard($R_Key_Z)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "z"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 数字0
      if Kboard.keyboard($R_Key_0) or Kboard.keyboard($R_Key_NUMPAD0)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "0"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 数字1
      if Kboard.keyboard($R_Key_1) or Kboard.keyboard($R_Key_NUMPAD1)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "1"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 数字2
      if Kboard.keyboard($R_Key_2) or Kboard.keyboard($R_Key_NUMPAD2)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "2"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 数字3
      if Kboard.keyboard($R_Key_3) or Kboard.keyboard($R_Key_NUMPAD3)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "3"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 数字4
      if Kboard.keyboard($R_Key_4) or Kboard.keyboard($R_Key_NUMPAD4)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "4"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 数字5
      if Kboard.keyboard($R_Key_5) or Kboard.keyboard($R_Key_NUMPAD5)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "5"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 数字6
      if Kboard.keyboard($R_Key_6) or Kboard.keyboard($R_Key_NUMPAD6)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "6"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 数字7
      if Kboard.keyboard($R_Key_7) or Kboard.keyboard($R_Key_NUMPAD7)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "7"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 数字8
      if Kboard.keyboard($R_Key_8) or Kboard.keyboard($R_Key_NUMPAD8)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "8"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 数字9
      if Kboard.keyboard($R_Key_9) or Kboard.keyboard($R_Key_NUMPAD9)
        if $password.length >= 15
          return
        end
        $password[@text_index] = "9"
        @textcursor_index += 1
        @text_index += 1
        @login_window.refresh
      end
      # 删除键
      if Kboard.keyboard($R_Key_BACK)
        if $password.length > 0
          $password.pop
          @textcursor_index -= 1
          @text_index -= 1
          @login_window.refresh
        end
      end
    end
  end
end