share.pas

来自「FIR引擎最新源码+注册」· PAS 代码 · 共 125 行

PAS
125
字号
unit Share;

interface
uses
  Windows, Classes, SysUtils, Inifiles;
type
  TSuperSession = record
    sAccount: string;
    sPassword: string;
    nMyQQ: Integer;
    boLogined: Boolean;
    boLockLogined: Boolean;
  end;
  pTSuperSession = ^TSuperSession;

  TUserSession = record
    sAccount: string[32];
    sPassword: string[32];
    sSerialNumber: string[32];
    btBind: Byte;
    nUserQQ: Integer;
    btMode: Byte;
    btPermission: Byte;
    btMainVersion: Byte; //引擎版本
    nUserIPaddr: Integer;
    nUserCount: Integer; //用户数
    nLicCount: Integer; //授权剩余次数
    dStartDate: TDateTime; //开始时间
    dEndDate: TDateTime; //结束时间
  end;
  pTUserSession = ^TUserSession;
  TIPaddr = record
    A: Byte;
    b: Byte;
    c: Byte;
    D: Byte;
    Port: Integer;
  end;
var
  g_MySelf: TSuperSession;
  g_sServerAddr: string = '127.0.0.1';
  g_nServerPort: Integer = 37000;
  g_sAccount: string = '123456789';
  g_sPassword: string = '123456789';
  g_nMyQQ: Integer = 123456789;

  g_sCaption: string;
  g_boConnect: Boolean = False;
  g_sRecvMsg: string;
  g_sRecvGameMsg: string;
  g_boBusy: Boolean;
  btCode: Byte = 1;
procedure LoadConfig();
function MakeIPToStr(IPAddr: TIPaddr): string;
function MakeIPToInt(sIPaddr: string): Integer;
function MakeIntToIP(nIPaddr: Integer): string;
implementation
uses HUtil32;
function MakeIntToIP(nIPaddr: Integer): string;
var
  IPAddr: TIPaddr;
begin
  FillChar(IPAddr, SizeOf(TIPaddr), 0);
  IPAddr.A := LoByte(LoWord(nIPaddr));
  IPAddr.b := HiByte(LoWord(nIPaddr));
  IPAddr.c := LoByte(HiWord(nIPaddr));
  IPAddr.D := HiByte(HiWord(nIPaddr));
  Result := MakeIPToStr(IPAddr);
end;

function MakeIPToStr(IPAddr: TIPaddr): string;
begin
  Result := IntToStr(IPAddr.A) + '.' + IntToStr(IPAddr.b) + '.' + IntToStr(IPAddr.c) + '.' + IntToStr(IPAddr.D);
end;

function MakeIPToInt(sIPaddr: string): Integer;
var
  sA, sB, SC, sD: string;
  A, b, c, D: Byte;
begin
  Result := -1;
  sIPaddr := Trim(GetValidStr3(sIPaddr, sA, ['.']));
  sIPaddr := Trim(GetValidStr3(sIPaddr, sB, ['.']));
  sD := Trim(GetValidStr3(sIPaddr, SC, ['.']));
  if (sA <> '') and (sB <> '') and (SC <> '') and (sD <> '') then begin
    A := Str_ToInt(sA, 0);
    b := Str_ToInt(sB, 0);
    c := Str_ToInt(SC, 0);
    D := Str_ToInt(sD, 0);
    Result := MakeLong(MakeWord(A, b), MakeWord(c, D));
  end;
end;

procedure LoadConfig();
var
  Configfile: TInifile;
  sServerAddr: string;
  nServerPort: Integer;
  sAccount: string;
  sPassword: string;
  nMyQQ: Integer;
begin
  Configfile := TInifile.Create(ExtractFilePath(ParamStr(0)) + 'Config.ini');
  sServerAddr := Configfile.ReadString('Setup', 'ServerAddr', '');
  if sServerAddr = '' then Configfile.WriteString('Setup', 'ServerAddr', g_sServerAddr)
  else g_sServerAddr := sServerAddr;
  nServerPort := Configfile.ReadInteger('Setup', 'ServerPort', 0);
  if nServerPort <= 0 then Configfile.WriteInteger('Setup', 'ServerPort', g_nServerPort)
  else g_nServerPort := nServerPort;
  sAccount := Configfile.ReadString('Setup', 'Account', '');
  if sAccount = '' then Configfile.WriteString('Setup', 'Account', g_sAccount)
  else g_sAccount := sAccount;
  sPassword := Configfile.ReadString('Setup', 'Password', '');
  if sPassword = '' then Configfile.WriteString('Setup', 'Password', g_sPassword)
  else g_sPassword := sPassword;
  nMyQQ := Configfile.ReadInteger('Setup', 'MyQQ', 0);
  if nMyQQ <= 0 then Configfile.WriteInteger('Setup', 'MyQQ', g_nMyQQ)
  else g_nMyQQ := nMyQQ;
  Configfile.Free;
end;

end.


⌨️ 快捷键说明

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