📄 rltclient.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 + -