⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cmain.~pas

📁 传奇的登陆器!也是在网上搜索的!不知道好不好用
💻 ~PAS
📖 第 1 页 / 共 5 页
字号:
    SendRunLogin;
  end;
  m_sSockText := '';
  m_sBufferText := '';
end;

procedure TfrmCMain.CSocketConnecting(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  StatusBar.Panels[0].Text := '正在连接服务器...';
end;

procedure TfrmCMain.CSocketDisconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  StatusBar.Panels[0].Text := '已断开连接...';
  g_boServerConnected := False;
  if (g_ConnectionStep = cnsLogin) and not g_boSendLogin then begin
    MessageDlg('Connection closed...', [mbOk]);
  end;
  if g_SoftClosed then begin
    g_SoftClosed := False;
    ActiveCmdTimer(tcReSelConnect);
  end;
end;

procedure TfrmCMain.CSocketError(Sender: TObject; Socket: TCustomWinSocket;
  ErrorEvent: TErrorEvent; var ErrorCode: Integer);
begin
  ErrorCode := 0;
  Socket.Close;
end;

procedure TfrmCMain.CSocketLookup(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  StatusBar.Panels[0].Text := '正在解析地址...';
end;

procedure TfrmCMain.CSocketRead(Sender: TObject; Socket: TCustomWinSocket);
var
  nIdx: Integer;
  sData: string;
  sData2: string;
begin
  sData := Socket.ReceiveText;
  nIdx := Pos('*', sData);
  if nIdx > 0 then begin
    sData2 := Copy(sData, 1, nIdx - 1);
    sData := sData2 + Copy(sData, nIdx + 1, Length(sData));
    CSocket.Socket.SendText('*');
  end;
  m_sSockText := m_sSockText + sData;
end;

procedure TfrmCMain.PanelUserLoginMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
const
  SC_DragMove = $F012; //$F020
begin
  ReleaseCapture;
  (Sender as TWinControl).Perform(WM_SysCommand, SC_DragMove, 0);
end;


procedure TfrmCMain.POPMENU_AUTOSCROLLClick(Sender: TObject);
begin
  POPMENU_AUTOSCROLL.Checked := not POPMENU_AUTOSCROLL.Checked;
  m_boChatAutoScroll := POPMENU_AUTOSCROLL.Checked;
end;


procedure TfrmCMain.EditAccountEnter(Sender: TObject);
begin
  if Sender = EditAccount then begin
    MemoHelp.Clear;
    MemoHelp.Lines.Add('您的帐号名称可以包括:');
    MemoHelp.Lines.Add('字符、数字的组合。');
    MemoHelp.Lines.Add('帐号名称长度必须为4或以上。');
    MemoHelp.Lines.Add('登陆帐号并游戏中的人物名称。');
    MemoHelp.Lines.Add('请仔细输入创建帐号所需信息。');
    MemoHelp.Lines.Add('您的登陆帐号可以登陆游戏');
    MemoHelp.Lines.Add('及我们网站,以取得一些相关信息。');
    MemoHelp.Lines.Add('');
    MemoHelp.Lines.Add('建议您的登陆帐号不要与游戏中的角');
    MemoHelp.Lines.Add('色名相同,');
    MemoHelp.Lines.Add('以确保你的密码不会被爆力破解。');
    Exit;
  end;
  if Sender = EditPassword then begin
    MemoHelp.Clear;
    MemoHelp.Lines.Add('您的密码可以是字符及数字的组合,');
    MemoHelp.Lines.Add('但密码长度必须至少4位。');
    MemoHelp.Lines.Add('建议您的密码内容不要过于简单,');
    MemoHelp.Lines.Add('以防被人猜到。');
    MemoHelp.Lines.Add('请记住您输入的密码,如果丢失密码');
    MemoHelp.Lines.Add('将无法登录游戏。');
  end;
  if Sender = EditConfirm then begin
    MemoHelp.Clear;
    MemoHelp.Lines.Add('再次输入密码');
    MemoHelp.Lines.Add('以确认。');
  end;
  if Sender = EditYourName then begin
    MemoHelp.Clear;
    MemoHelp.Lines.Add('请输入您的全名.');
  end;
  if Sender = EditSSNo then begin
    MemoHelp.Clear;
    MemoHelp.Lines.Add('请输入你的身份证号');
    MemoHelp.Lines.Add('例如: 720101-146720');
  end;
  if Sender = EditBirthDay then begin
    MemoHelp.Clear;
    MemoHelp.Lines.Add('请输入您的生日');
    MemoHelp.Lines.Add('例如:1977/10/15');
  end;
  if Sender = EditQuiz1 then begin
    MemoHelp.Clear;
    MemoHelp.Lines.Add('请输入第一个密码提示问题');
    MemoHelp.Lines.Add('这个提示将用于密码丢失后找');
    MemoHelp.Lines.Add('回密码用。');
    MemoHelp.Lines.Add('');
  end;
  if Sender = EditAnswer1 then begin
    MemoHelp.Clear;
    MemoHelp.Lines.Add('请输入上面问题的');
    MemoHelp.Lines.Add('答案。');
    MemoHelp.Lines.Add('');
  end;
  if Sender = EditQuiz2 then begin
    MemoHelp.Clear;
    MemoHelp.Lines.Add('请输入第二个密码提示问题');
    MemoHelp.Lines.Add('这个提示将用于密码丢失后找');
    MemoHelp.Lines.Add('回密码用。');
    MemoHelp.Lines.Add('');
  end;
  if Sender = EditAnswer2 then begin
    MemoHelp.Clear;
    MemoHelp.Lines.Add('请输入上面问题的');
    MemoHelp.Lines.Add('答案。');
    MemoHelp.Lines.Add('');
  end;
  if Sender = EditPhone then begin
    MemoHelp.Clear;
    MemoHelp.Lines.Add('请输入您的电话');
    MemoHelp.Lines.Add('号码。');
    MemoHelp.Lines.Add('');
  end;
  if Sender = EditMobPhone then begin
    MemoHelp.Clear;
    MemoHelp.Lines.Add('请输入您的手机号码。');
    MemoHelp.Lines.Add('');
  end;
  if Sender = EditEMail then begin
    MemoHelp.Clear;
    MemoHelp.Lines.Add('请输入您的邮件地址。您的邮件将被');
    MemoHelp.Lines.Add('接收最近更新的一些信息');
    MemoHelp.Lines.Add('');
  end;
end;
function TfrmCMain.NewIdCheckBirthDay: Boolean;
var
  str, t1, t2, t3, syear, smon, sday: string;
  ayear, amon, aday, sex: Integer;
  flag: Boolean;
begin
  Result := True;
  flag := True;
  str := EditBirthDay.Text;
  str := GetValidStr3(str, syear, ['/']);
  str := GetValidStr3(str, smon, ['/']);
  str := GetValidStr3(str, sday, ['/']);
  ayear := Str_ToInt(syear, 0);
  amon := Str_ToInt(smon, 0);
  aday := Str_ToInt(sday, 0);
  if (ayear <= 1890) or (ayear > 2101) then flag := False;
  if (amon <= 0) or (amon > 12) then flag := False;
  if (aday <= 0) or (aday > 31) then flag := False;
  if not flag then begin
    Beep;
    EditBirthDay.SetFocus;
    Result := False;
  end;
end;
function TfrmCMain.CheckUserEntrys: Boolean;
begin
  Result := False;
  EditAccount.Text := Trim(EditAccount.Text);
  EditQuiz1.Text := Trim(EditQuiz1.Text);
  EditYourName.Text := Trim(EditYourName.Text);
  if Length(EditAccount.Text) < 3 then begin
    MessageBox(Handle, '登录帐号的长度必须大于3位。', '提示信息', MB_OK + MB_ICONINFORMATION);
    Beep;
    EditAccount.SetFocus;
    Exit;
  end;
  if not NewIdCheckBirthDay then Exit;
  if Length(EditPassword.Text) < 3 then begin
    EditPassword.SetFocus;
    Exit;
  end;
  if EditPassword.Text <> EditConfirm.Text then begin
    EditConfirm.SetFocus;
    Exit;
  end;
  if Length(EditQuiz1.Text) < 1 then begin
    EditQuiz1.SetFocus;
    Exit;
  end;
  if Length(EditAnswer1.Text) < 1 then begin
    EditAnswer1.SetFocus;
    Exit;
  end;
  if Length(EditQuiz2.Text) < 1 then begin
    EditQuiz2.SetFocus;
    Exit;
  end;
  if Length(EditAnswer2.Text) < 1 then begin
    EditAnswer2.SetFocus;
    Exit;
  end;
  if Length(EditYourName.Text) < 1 then begin
    EditYourName.SetFocus;
    Exit;
  end;
  Result := True;
end;

procedure TfrmCMain.ButtonPanelNewAccountOKClick(Sender: TObject);
var
  ue: TUserEntry;
  ua: TUserEntryAdd;
begin
  if GetTickCount - dwOKTick < 5000 then begin
    MessageBox(Handle, '请稍候再点确定!!!', '提示信息', MB_OK + MB_ICONINFORMATION);
    Exit;
  end;
  if CheckUserEntrys then begin
    FillChar(ue, sizeof(TUserEntry), #0);
    FillChar(ua, sizeof(TUserEntryAdd), #0);
    ue.sAccount := LowerCase(EditAccount.Text);
    ue.sPassWord := EditPassword.Text;
    ue.sUserName := EditYourName.Text;
    ue.sSSNo := '650101-1455111';
    ue.sQuiz := EditQuiz1.Text;
    ue.sAnswer := Trim(EditAnswer1.Text);
    ue.sPhone := EditPhone.Text;
    ue.sEMail := Trim(EditEMail.Text);
    ua.sQuiz2 := EditQuiz2.Text;
    ua.sAnswer2 := Trim(EditAnswer2.Text);
    ua.sBirthday := EditBirthDay.Text;
    ua.sMobilePhone := EditMobPhone.Text;
    NewIdRetryUE := ue;
    NewIdRetryUE.sAccount := '';
    NewIdRetryUE.sPassWord := '';
    NewIdRetryAdd := ua;
    SendNewAccount(ue, ua);
    ButtonPanelNewAccountOK.Enabled := False;
    dwOKTick := GetTickCount();
  end;
end;

procedure TfrmCMain.EditChatKeyPress(Sender: TObject; var Key: Char);
begin
  if (Key = #13) and (Trim(EditChat.Text) <> '') then begin
    SendSay(EditChat.Text);
    EditChat.Text := '';
    Key := #0;
  end;
end;

procedure TfrmCMain.EditUserAccountKeyPress(Sender: TObject;
  var Key: Char);
begin
  if Sender = EditUserAccount then begin
    if Key = #13 then begin
      Key := #0;
      EditUserPassword.SetFocus;
    end;
  end else
    if Sender = EditUserPassword then begin
    if Key = #13 then begin
      Key := #0;
      ButtonStartClick(ButtonStart);
    end;
  end;
end;

procedure TfrmCMain.ButtonStartClick(Sender: TObject);
begin
  if (Sender = ButtonLoginClose) or
    (Sender = ButtonSelectServerClose) or
    (Sender = ButtonSelectChrClose) or
    (Sender = ButtonPlayGameClose) then begin
    Close;
  end else
    if Sender = ButtonPanelNewAccountClose then begin
    ChangeScene(stLogin);
  end else
    if Sender = ButtonStart then begin
    m_sLoginAccount := LowerCase(EditUserAccount.Text);
    m_sLoginPasswd := EditUserPassword.Text;
    if g_boSendLogin then begin
      MessageDlg('正在登录,请稍候...', []);
      Exit;
    end;

    if (m_sLoginAccount <> '') and (m_sLoginPasswd <> '') then begin
      SendLogin(m_sLoginAccount, m_sLoginPasswd);
      EditUserAccount.Text := '';
      EditUserPassword.Text := '';
      EditUserAccount.Enabled := False;
      EditUserPassword.Enabled := False;
    end else begin
      EditUserAccount.Text := '';
      EditUserPassword.Text := '';
      EditUserAccount.SetFocus;
    end;
  end else
    if Sender = ButtonNewAccount then begin
    ChangeScene(st_NewAccount);
  end else
    if Sender = ButtonCreateNewChr then begin
    PanelCreateNewChr.Visible := False;
  end;
end;



procedure TfrmCMain.CheckBoxAutoLoginClick(Sender: TObject);
begin
  if Sender = CheckBoxAutoLogin then begin
    m_boAutoLogin := CheckBoxAutoLogin.Checked;
  end else
    if Sender = ButtonChr1 then begin
    if ButtonChr1.Checked then m_nAutoChr := 0;
  end else
    if Sender = ButtonChr2 then begin
    if ButtonChr2.Checked then m_nAutoChr := 1;
  end;
end;

function TfrmCMain.MessageDlg(sMsg: string;
  DlgButtons: TMsgDlgButtons): TModalResult;
begin
  MsgBoxOK.Visible := False;
  MsgBoxYes.Visible := False;
  MsgBoxCancel.Visible := False;
  MsgBoxNo.Visible := False;
  PanelMessageDlg.Left := (Width - PanelMessageDlg.Width) div 2;
  PanelMessageDlg.top := (Height - PanelMessageDlg.Height) div 2;
  MsgBoxLabel.Caption := sMsg;
  SetTopOrder(PanelMessageDlg);
  PanelMessageDlg.Visible := True;
end;


procedure TfrmCMain.MsgBoxOKClick(Sender: TObject);
begin
  if Sender = MsgBoxOK then begin

  end else
    if Sender = MsgBoxCancel then begin
  end else
    if Sender = MsgBoxYes then begin
  end else
    if Sender = MsgBoxNo then begin
  end else
    if Sender = MsgBoxClose then begin
    PanelMessageDlg.Visible := False;
  end;
end;


procedure TfrmCMain.ButtonServer1Click(Sender: TObject);
var
  sSvrName: string;
begin
  if Sender = ButtonServer1 then begin
    sSvrName := g_ServerList.Strings[0];
  end else
    if Sender = ButtonServer2 then begin
    sSvrName := g_ServerList.Strings[1];
  end else
    if Sender = ButtonServer3 then begin
    sSvrName := g_ServerList.Strings[2];
  end else

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -