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

📄 rltclient.pas

📁 一般的数据库管理系统 uses Classes, SConnectEx, TltConst, ExtCtrls, MMSystem, Types, windows, TltLogic , Sy
💻 PAS
字号:
unit rltClient;

interface
uses  TltConst, SConnect, Forms, ClientInterpreter, SysUtils, Classes, rltgame, IniFiles;
type
  TrltConnect = class(TSocketConnection)
  private
    FInterpreter : TCustomDataBlockInterpreter;
  protected
    ErrorCode : integer;
    procedure DoError(E: Exception); override;
  public
    function GetInterpreter: TCustomDataBlockInterpreter; override;
    function GetLastError:integer;
  end;
  TrltClient = class(TComponent)
  public
    constructor Create(AOwner: TComponent); override;
    function PlayerIndex(ID : String) : integer;
//
    function LoginPlayer(APlayer : TPlayer):boolean;
    procedure LogoffPlayer(ID : String);
//
    procedure KillPlayer(ID : String);
  private
  end;
var
  Client : TrltClient;
  RltConnection : TrltConnect;    //连接
  TltInterpreter : TrltClientInterpreter;//数据解析器



  function init(): boolean;
  function finit(): boolean ;

implementation

function init():boolean;
var
  IniFile : TIniFile;
begin
  //初始化网络

  IniFile :=  TIniFile.Create(ExtractFilePath(Application.ExeName)+'roulette.ini');

  RltConnection := TrltConnect.Create(Application);
  RltConnection.Address := IniFile.ReadString('sys','ip','127.0.0.1');
  RltConnection.Port := IniFile.ReadInteger('sys','port',8080);
  result := true;
  IniFile.Free;
end ;
function finit(): boolean ;
begin
  TltInterpreter.Free;
//  SConnection.Free;
  result := true;
end;
{ TrltClient }

constructor TrltClient.Create(AOwner: TComponent);
begin
  inherited;
end;


procedure TrltClient.KillPlayer(ID: String);
var
  Index : integer;
begin
  Index := PlayerIndex(ID);
  if Index>=0 then
  begin
    PlayerPanel[Index].State := ppsNoBody;
    PlayerPanel[Index].UserName := '';
    PlayerPanel[Index].Password := '';
    Players[Index].UserID := '';
    Players[Index].Password := '';
    Players[Index].money := 0;
    Players[Index].ClearBets;
  end;
end;

function TrltClient.LoginPlayer(APlayer: TPlayer): boolean;
begin

end;

procedure TrltClient.LogoffPlayer(ID: String);
var
  Index : integer;
begin
  Index := PlayerIndex(ID);
  if Index>=0 then
  begin
//    Player[Index].ke

    KillPlayer(ID);
  end;
end;

function TrltClient.PlayerIndex(ID: String): integer;
var
  I : integer;
begin
  Result := -1;
  for I := 0 to Length(Players) do
  begin
    if Players[I].UserID = ID then
    begin
      Result := I;
      Break;
    end;
  end;

end;

{ TrltConnect }

procedure TrltConnect.DoError(E: Exception);
begin
//  inherited;
  ErrorCode := -1;
end;

function TrltConnect.GetInterpreter: TCustomDataBlockInterpreter;
begin
  if not Assigned(FInterpreter) then
    FInterpreter := TrltClientInterpreter.Create(Self, SSockets);
  Result := FInterpreter;
end;

function TrltConnect.GetLastError: integer;
begin
  Result := ErrorCode;
  ErrorCode := 0;
end;

initialization
  Client := TrltClient.Create(nil);
finalization
  Client.Free;

end.
 

⌨️ 快捷键说明

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