📄 introscn.pas
字号:
unit IntroScn;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, StdCtrls, Controls, Forms, Dialogs,
extctrls, DXDraws, DXClass, FState, Grobal2, cliUtil, clFunc, SoundUtil,
DXSounds, HUtil32;
const
SELECTEDFRAME = 16;
FREEZEFRAME = 13;
EFFECTFRAME = 14;
type
TLoginState = (lsLogin, lsNewid, lsNewidRetry, lsChgpw, lsCloseAll);
TSceneType = (stIntro, stLogin, stSelectCountry, stSelectChr, stNewChr, stLoading,
stLoginNotice, stPlayGame);
TSelChar = record
Valid: Boolean;
UserChr: TUserCharacterInfo;
Selected: Boolean;
FreezeState: Boolean; //TRUE:倔篮惑怕 FALSE:踌篮惑怕
Unfreezing: Boolean; //踌绊 乐绰 惑怕牢啊?
Freezing: Boolean; //倔绊 乐绰 惑怕?
AniIndex: integer; //踌绰(绢绰) 局聪皋捞记
DarkLevel: integer;
EffIndex: integer; //瓤苞 局聪皋捞记
starttime: longword;
moretime: longword;
startefftime: longword;
end;
TScene = class
private
public
SceneType: TSceneType;
constructor Create (scenetype: TSceneType);
procedure Initialize; dynamic;
procedure Finalize; dynamic;
procedure OpenScene; dynamic;
procedure CloseScene; dynamic;
procedure OpeningScene; dynamic;
procedure KeyPress (var Key: Char); dynamic;
procedure KeyDown (var Key: Word; Shift: TShiftState); dynamic;
procedure MouseMove (Shift: TShiftState; X, Y: Integer); dynamic;
procedure MouseDown (Button: TMouseButton; Shift: TShiftState; X, Y: Integer); dynamic;
procedure PlayScene (MSurface: TDirectDrawSurface); dynamic;
end;
TIntroScene = class (TScene)
private
public
constructor Create;
destructor Destroy; override;
procedure OpenScene; override;
procedure CloseScene; override;
procedure PlayScene (MSurface: TDirectDrawSurface); override;
end;
TLoginScene = class (TScene)
private
EdId: TEdit;
EdPasswd: TEdit;
EdNewId: TEdit;
EdNewPasswd: TEdit;
EdConfirm: TEdit;
EdYourName: TEdit;
EdSSNo: TEdit;
EdBirthDay: TEdit;
EdQuiz1: TEdit;
EdAnswer1: TEdit;
EdQuiz2: TEdit;
EdAnswer2: TEdit;
EdPhone: TEdit;
EdMobPhone: TEdit;
EdEMail: TEdit;
EdChgId: TEdit;
EdChgCurrentpw: TEdit;
EdChgNewPw: TEdit;
EdChgRepeat: TEdit;
CurFrame, MaxFrame: integer;
StartTime: longword; //茄 橇贰烙寸 矫埃
NowOpening: Boolean;
BoOpenFirst: Boolean;
NewIdRetryUE: TUserEntryInfo;
NewIdRetryAdd: TUserEntryAddInfo;
procedure EdLoginIdKeyPress (Sender: TObject; var Key: Char);
procedure EdLoginPasswdKeyPress (Sender: TObject; var Key: Char);
procedure EdNewIdKeyPress (Sender: TObject; var Key: Char);
procedure EdNewOnEnter (Sender: TObject);
function CheckUserEntrys: Boolean;
function NewIdCheckNewId: Boolean;
function NewIdCheckSSno: Boolean;
function NewIdCheckBirthDay: Boolean;
public
LoginId, LoginPasswd: string;
BoUpdateAccountMode: Boolean;
constructor Create;
destructor Destroy; override;
procedure OpenScene; override;
procedure CloseScene; override;
procedure PlayScene (MSurface: TDirectDrawSurface); override;
procedure ChangeLoginState (state: TLoginState);
procedure NewClick;
procedure NewIdRetry (boupdate: Boolean);
procedure UpdateAccountInfos (ue: TUserEntryInfo);
procedure OkClick;
procedure ChgPwClick;
procedure NewAccountOk;
procedure NewAccountClose;
procedure ChgpwOk;
procedure ChgpwCancel;
procedure HideLoginBox;
procedure OpenLoginDoor;
procedure PassWdFail;
end;
TSelectChrScene = class (TScene)
private
SoundTimer: TTimer;
CreateChrMode: Boolean;
EdChrName: TEdit;
procedure SoundOnTimer (Sender: TObject);
procedure MakeNewChar (index: integer);
procedure EdChrnameKeyPress (Sender: TObject; var Key: Char);
function GetJobName (job: integer): string;
public
NewIndex: integer;
ChrArr: array[0..1] of TSelChar;
constructor Create;
destructor Destroy; override;
procedure OpenScene; override;
procedure CloseScene; override;
procedure PlayScene (MSurface: TDirectDrawSurface); override;
procedure SelChrSelect1Click;
procedure SelChrSelect2Click;
procedure SelChrStartClick;
procedure SelChrNewChrClick;
procedure SelChrEraseChrClick;
procedure SelChrCreditsClick;
procedure SelChrExitClick;
procedure SelChrNewClose;
procedure SelChrNewJob (job: integer);
procedure SelChrNewSex (sex: integer);
procedure SelChrNewPrevHair;
procedure SelChrNewNextHair;
procedure SelChrNewOk;
procedure ClearChrs;
procedure AddChr (uname: string; job, hair, level, sex: integer);
procedure SelectChr (index: integer);
end;
TLoginNotice = class (TScene)
private
public
constructor Create;
destructor Destroy; override;
end;
implementation
uses
ClMain;
constructor TScene.Create (scenetype: TSceneType);
begin
SceneType := scenetype;
end;
procedure TScene.Initialize;
begin
end;
procedure TScene.Finalize;
begin
end;
procedure TScene.OpenScene;
begin
;
end;
procedure TScene.CloseScene;
begin
;
end;
procedure TScene.OpeningScene;
begin
end;
procedure TScene.KeyPress (var Key: Char);
begin
end;
procedure TScene.KeyDown (var Key: Word; Shift: TShiftState);
begin
end;
procedure TScene.MouseMove (Shift: TShiftState; X, Y: Integer);
begin
end;
procedure TScene.MouseDown (Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
end;
procedure TScene.PlayScene (MSurface: TDirectDrawSurface);
begin
;
end;
{------------------- TIntroScene ----------------------}
constructor TIntroScene.Create;
begin
inherited Create (stIntro);
end;
destructor TIntroScene.Destroy;
begin
inherited Destroy;
end;
procedure TIntroScene.OpenScene;
begin
end;
procedure TIntroScene.CloseScene;
begin
end;
procedure TIntroScene.PlayScene (MSurface: TDirectDrawSurface);
begin
end;
{--------------------- Login ----------------------}
constructor TLoginScene.Create;
var
nx, ny: integer;
begin
inherited Create (stLogin);
//登陆ID输入框
EdId := TEdit.Create (FrmMain.Owner);
with EdId do begin
Parent := FrmMain; Color := clBlack; Font.Color := clWhite; Font.Size := 10; MaxLength := 10;
BorderStyle := bsNone; OnKeyPress := EdLoginIdKeyPress; Visible := FALSE;
Tag := 10;
end;
//密码输入框
EdPasswd := TEdit.Create (FrmMain.Owner);
with EdPasswd do begin
Parent := FrmMain; Color := clBlack; Font.Size := 10; MaxLength := 10; Font.Color := clWhite;
BorderStyle := bsNone; PasswordChar := '*';
OnKeyPress := EdLoginPasswdKeyPress; Visible := FALSE;
Tag := 10;
end;
nx := 79;
ny := 64;
EdNewId := TEdit.Create (FrmMain.Owner);
with EdNewId do begin
Parent := FrmMain; Height := 16; Width := 116; Left := nx + 161; Top := ny + 116;
BorderStyle := bsNone; Color := clBlack; Font.Color := clWhite; MaxLength := 10;
Visible := FALSE; OnKeyPress := EdNewIdKeyPress; OnEnter := EdNewOnEnter;
Tag := 11;
end;
EdNewPasswd := TEdit.Create (FrmMain.Owner);
with EdNewPasswd do begin
Parent := FrmMain; Height := 16; Width := 116; Left := nx + 161; Top := ny + 137;
BorderStyle := bsNone; Color := clBlack; Font.Color := clWhite; MaxLength := 10;
PasswordChar := '*'; Visible := FALSE; OnKeyPress := EdNewIdKeyPress; OnEnter := EdNewOnEnter;
Tag := 11;
end;
EdConfirm := TEdit.Create (FrmMain.Owner);
with EdConfirm do begin
Parent := FrmMain; Height := 16; Width := 116; Left := nx + 161; Top := ny + 158;
BorderStyle := bsNone; Color := clBlack; Font.Color := clWhite; MaxLength := 10;
PasswordChar := '*'; Visible := FALSE; OnKeyPress := EdNewIdKeyPress; OnEnter := EdNewOnEnter;
Tag := 11;
end;
EdYourName := TEdit.Create (FrmMain.Owner);
with EdYourName do begin
Parent := FrmMain; Height := 16; Width := 116; Left := nx + 161; Top := ny + 187;
BorderStyle := bsNone; Color := clBlack; Font.Color := clWhite; MaxLength := 20;
Visible := FALSE; OnKeyPress := EdNewIdKeyPress; OnEnter := EdNewOnEnter;
Tag := 11;
end;
EdSSNo := TEdit.Create (FrmMain.Owner);
with EdSSNo do begin
Parent := FrmMain; Height := 16; Width := 116; Left := nx + 161; Top := ny + 207;
BorderStyle := bsNone; Color := clBlack; Font.Color := clWhite; MaxLength := 14;
Visible := FALSE; OnKeyPress := EdNewIdKeyPress; OnEnter := EdNewOnEnter;
Tag := 11;
end;
EdBirthDay := TEdit.Create (FrmMain.Owner);
with EdBirthDay do begin
Parent := FrmMain; Height := 16; Width := 116; Left := nx + 161; Top := ny + 227;
BorderStyle := bsNone; Color := clBlack; Font.Color := clWhite; MaxLength := 10;
Visible := FALSE; OnKeyPress := EdNewIdKeyPress; OnEnter := EdNewOnEnter;
Tag := 11;
end;
EdQuiz1 := TEdit.Create (FrmMain.Owner);
with EdQuiz1 do begin
Parent := FrmMain; Height := 16; Width := 163; Left := nx + 161; Top := ny + 256;
BorderStyle := bsNone; Color := clBlack; Font.Color := clWhite; MaxLength := 20;
Visible := FALSE; OnKeyPress := EdNewIdKeyPress; OnEnter := EdNewOnEnter;
Tag := 11;
end;
EdAnswer1 := TEdit.Create (FrmMain.Owner);
with EdAnswer1 do begin
Parent := FrmMain; Height := 16; Width := 163; Left := nx + 161; Top := ny + 276;
BorderStyle := bsNone; Color := clBlack; Font.Color := clWhite; MaxLength := 12;
Visible := FALSE; OnKeyPress := EdNewIdKeyPress; OnEnter := EdNewOnEnter;
Tag := 11;
end;
EdQuiz2 := TEdit.Create (FrmMain.Owner);
with EdQuiz2 do begin
Parent := FrmMain; Height := 16; Width := 163; Left := nx + 161; Top := ny + 297;
BorderStyle := bsNone; Color := clBlack; Font.Color := clWhite; MaxLength := 20;
Visible := FALSE; OnKeyPress := EdNewIdKeyPress; OnEnter := EdNewOnEnter;
Tag := 11;
end;
EdAnswer2 := TEdit.Create (FrmMain.Owner);
with EdAnswer2 do begin
Parent := FrmMain; Height := 16; Width := 163; Left := nx + 161; Top := ny + 317;
BorderStyle := bsNone; Color := clBlack; Font.Color := clWhite; MaxLength := 12;
Visible := FALSE; OnKeyPress := EdNewIdKeyPress; OnEnter := EdNewOnEnter;
Tag := 11;
end;
EdPhone := TEdit.Create (FrmMain.Owner);
with EdPhone do begin
Parent := FrmMain; Height := 16; Width := 116; Left := nx + 161; Top := ny + 347;
BorderStyle := bsNone; Color := clBlack; Font.Color := clWhite; MaxLength := 14;
Visible := FALSE; OnKeyPress := EdNewIdKeyPress; OnEnter := EdNewOnEnter;
Tag := 11;
end;
EdMobPhone := TEdit.Create (FrmMain.Owner);
with EdMobPhone do begin
Parent := FrmMain; Height := 16; Width := 116; Left := nx + 161; Top := ny + 368;
BorderStyle := bsNone; Color := clBlack; Font.Color := clWhite; MaxLength := 13;
Visible := FALSE; OnKeyPress := EdNewIdKeyPress; OnEnter := EdNewOnEnter;
Tag := 11;
end;
EdEMail := TEdit.Create (FrmMain.Owner);
with EdEMail do begin
Parent := FrmMain; Height := 16; Width := 116; Left := nx + 161; Top := ny + 388;
BorderStyle := bsNone; Color := clBlack; Font.Color := clWhite; MaxLength := 40;
Visible := FALSE; OnKeyPress := EdNewIdKeyPress; OnEnter := EdNewOnEnter;
Tag := 11;
end;
nx := 192;
ny := 150;
EdChgId := TEdit.Create (FrmMain.Owner);
with EdChgId do begin
Parent := FrmMain; Height := 16; Width := 137; Left := nx+239; Top := ny+117;
BorderStyle := bsNone; Color := clBlack; Font.Color := clWhite; MaxLength := 10;
Visible := FALSE; OnKeyPress := EdNewIdKeyPress; OnEnter := EdNewOnEnter;
Tag := 12;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -