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

📄 unit_addnewid.pas

📁 传奇3封外挂客户端+登陆器+配置器源码............................
💻 PAS
字号:
unit Unit_AddNewId;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, SUIForm, StdCtrls, SUIEdit, SUIButton, SUIDlg,
  ComCtrls, SUIStatusBar, ScktComp;

type
  TFrm_AddNewId = class(TForm)
    suiForm1: TsuiForm;
    Label2: TLabel;
    Edit_ID: TsuiEdit;
    Label3: TLabel;
    Edit_Pass: TsuiEdit;
    Edit_UserName: TsuiEdit;
    Label8: TLabel;
    Edit_ConfigPass: TsuiEdit;
    Label4: TLabel;
    Label9: TLabel;
    Edit_BirthDay: TsuiEdit;
    Label10: TLabel;
    Edit_Phone: TsuiEdit;
    Edit_EMail: TsuiEdit;
    Label12: TLabel;
    Edit_SSNO: TsuiEdit;
    Label11: TLabel;
    Label13: TLabel;
    Edit_Quz1: TsuiEdit;
    Label14: TLabel;
    Edit_Answer1: TsuiEdit;
    Label15: TLabel;
    Label16: TLabel;
    Edit_Quz2: TsuiEdit;
    Edit_Answer2: TsuiEdit;
    Bt_Add: TsuiButton;
    Bt_Close: TsuiButton;
    Label1: TLabel;
    suiMessageDialog1: TsuiMessageDialog;
    suiStatusBar1: TsuiStatusBar;
    CSocket: TClientSocket;
    Timer1: TTimer;
    procedure Bt_AddClick(Sender: TObject);
    procedure Show_Message(text:String;Icon:TsuiIconType);
    procedure Bt_CloseClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure CSocketError(Sender: TObject; Socket: TCustomWinSocket;
      ErrorEvent: TErrorEvent; var ErrorCode: Integer);
    procedure Timer1Timer(Sender: TObject);
    procedure CSocketRead(Sender: TObject; Socket: TCustomWinSocket);
    function DecodeMessagePacket(data:String):integer;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Frm_AddNewId: TFrm_AddNewId;
implementation

uses Unit_Main, Unit_Msg, Unit_MyPro;

{$R *.dfm}

procedure TFrm_AddNewId.Bt_AddClick(Sender: TObject);
begin
  if Length(Edit_Id.Text)<5 then
  begin
    show_message('用户名不能少于5位!',suiWarning);
    Edit_Id.SetFocus;
    exit;
  end;
  if Length(Edit_Pass.Text)<5 then
  begin
    show_message('密码不能少于5位!',suiWarning);
    Edit_Pass.SetFocus;
    exit;
  end;
  if Edit_ConfigPass.Text<>Edit_Pass.Text then
  begin
    show_message('请再次确认密码!',suiWarning);
    Edit_ConfigPass.SetFocus;
    exit;
  end;
  if length(Edit_Quz1.Text)<5 then
  begin
    show_message('密码保护问题不能少于5位!',suiWarning);
    Edit_Quz1.SetFocus;
    exit;
  end;
  if length(Edit_answer1.Text)<5 then
  begin
    show_message('密码保护问题答案不能少于5位!',suiWarning);
    Edit_answer1.SetFocus;
    exit;
  end;
  if Edit_answer1.Text=Edit_Quz1.Text then
  begin
    show_message('为了你的安全,请不要把问题做为你的答案!',suiWarning);
    Edit_answer1.SetFocus;
    exit;
  end;
  if length(Edit_Quz2.Text)<5 then
  begin
    show_message('密码保护问题不能少于5位!',suiWarning);
    Edit_Quz2.SetFocus;
    exit;
  end;
  if length(Edit_answer2.Text)<5 then
  begin
    show_message('密码保护问题答案不能少于5位!',suiWarning);
    Edit_answer2.SetFocus;
    exit;
  end;
  if Edit_answer2.Text=Edit_Quz2.Text then
  begin
    show_message('为了你的安全,请不要把问题做为你的答案!',suiWarning);
    Edit_answer2.SetFocus;
    exit;
  end;
  if Edit_answer2.Text=Edit_answer1.Text then
  begin
    show_message('密码保护问题1的答案不能与密码保护问题2的答案相同!',suiWarning);
    Edit_answer2.SetFocus;
    exit;
   end;
  if Edit_Quz1.Text=Edit_Quz2.Text then
  begin
    show_message('为了您的账户安全,我们强烈建议您的密码保护问题1和密码保护问题2不要设置相同的问题!',suiWarning);
    Edit_Quz2.SetFocus;
    exit;
  end;
  suiStatusBar1.Panels[0].Text:='正在与注册服务器连接......';
  CSocket.Active:=False;
  CSocket.Address:=Reg_SvrIp;
  CSocket.Port:=Reg_SvrPort;
  try
    CSocket.Active:=True;
  except
    exit;
  end;
  Timer1.Enabled:=True;
end;


procedure TFrm_AddNewId.Show_Message(text:String;Icon:TsuiIconType);
begin
  suiMessageDialog1.Caption:='提示信息';
  suiMessageDialog1.Text:=text;
  suiMessageDialog1.IconType:=Icon;
  suiMessageDialog1.ShowModal;
end;


procedure TFrm_AddNewId.Bt_CloseClick(Sender: TObject);
begin
  Close;
end;

procedure TFrm_AddNewId.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  CSocket.Active:=False;
  Edit_ID.Text:='';
  Edit_Pass.Text:='';
  Edit_UserName.Text:='';
  Edit_ConfigPass.Text:='';
  Edit_BirthDay.Text:='';
  Edit_Phone.Text:='';
  Edit_EMail.Text:='';
  Edit_SSNO.Text:='';
  Edit_Quz1.Text:='';
  Edit_Answer1.Text:='';
  Edit_Quz2.Text:='';
  Edit_Answer2.Text:='';
end;

procedure TFrm_AddNewId.CSocketError(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
  suiStatusBar1.Panels[0].Text:='连接失败,可能未开启注册服务。';
  CSocket.Active:=False;
  ErrorCode:=0;
end;

procedure TFrm_AddNewId.Timer1Timer(Sender: TObject);
var
  ue:TUserInfo;
  msg:TDefaultMessage;
begin
  ue.LoginId:=Edit_ID.Text;
  ue.PassWord:=Edit_Pass.Text;
  ue.UserName:=Edit_UserName.Text;
  ue.BirthDay:=Edit_BirthDay.Text;
  ue.Phone:=Edit_Phone.Text;
  ue.SSNo:=Edit_SSNO.Text;
  ue.Email:=Edit_EMail.Text;
  ue.Quz1:=Edit_Quz1.Text;
  ue.Answer1:=Edit_Answer1.Text;
  ue.Quz2:=Edit_Quz2.Text;
  ue.Answer2:=Edit_Answer2.Text;
  msg:=MakeDefaultMsg(CM_AddNewId,0);
  SendSocket(CSocket.Socket,EncodeMessage(msg)+EncodeBuffer(@ue, sizeof(TUserInfo)));
  Timer1.Enabled:=False;
end;

procedure TFrm_AddNewId.CSocketRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
  str,data:string;
begin
  str:=Socket.ReceiveText;
  str:=ArrestStringEx(str,'#','!',data);
  DecodeMessagePacket(data);
end;

function TFrm_AddNewId.DecodeMessagePacket(data:String):integer;
var
  head, body: String;
  ue:TUserInfo;
  msg:TDefaultMessage;
begin
  Result:=0;
  head := Copy (data, 1, DEFBLOCKSIZE);
  body := Copy (data, DEFBLOCKSIZE+1, Length(data)-DEFBLOCKSIZE);
  msg  := DecodeMessage (head);
  if msg.Comm = SM_AddNewId_Success then
  begin
    show_message('帐号已经成功创建,祝您游戏快乐!',suiInformation);
    Bt_Close.Click;
  end;
  if msg.Comm = SM_AddNewId_Fail then
  begin
    if msg.param=1 then
    begin
      show_message('帐号、密码等不能少于5位',suiInformation);
      Edit_ID.SetFocus;
    end;
    if msg.param=2 then
    begin
      show_message('该帐号已经存在,请换个帐号!',suiInformation);
      Edit_ID.SetFocus;
    end;
    if msg.param=3 then
    begin
      show_message('帐号创建失败,请检查您输入的内容是否包含非法字符!',suiInformation);
      Edit_ID.SetFocus;
    end;
  end;
  CSocket.Close;
  suiStatusBar1.Panels[0].Text:='断开连接。';
end;



procedure TFrm_AddNewId.FormCreate(Sender: TObject);
begin
  SetForm_Style(suiForm1,ExeType);
end;

end.

⌨️ 快捷键说明

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