?? 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
m_EdId :TEdit;
m_EdPasswd :TEdit;
m_EdNewId :TEdit;
m_EdNewPasswd :TEdit;
m_EdConfirm :TEdit;
m_EdYourName :TEdit;
m_EdSSNo :TEdit;
m_EdBirthDay :TEdit;
m_EdQuiz1 :TEdit;
m_EdAnswer1 :TEdit;
m_EdQuiz2 :TEdit;
m_EdAnswer2 :TEdit;
m_EdPhone :TEdit;
m_EdMobPhone :TEdit;
m_EdEMail :TEdit;
m_EdChgId :TEdit;
m_EdChgCurrentpw :TEdit;
m_EdChgNewPw :TEdit;
m_EdChgRepeat :TEdit;
m_nCurFrame :Integer;
m_nMaxFrame :Integer;
m_dwStartTime :LongWord; //茄 橇貳烙寸 矯埃
m_boNowOpening :Boolean;
m_boOpenFirst :Boolean;
m_NewIdRetryUE :TUserEntry;
m_NewIdRetryAdd :TUserEntryAdd;
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
m_sLoginId :String;
m_sLoginPasswd :String;
m_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: TUserEntry);
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);
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 SelChrNewm_btSex (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, MShare, Share;
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);
m_EdId := TEdit.Create (FrmMain.Owner);
with m_EdId do begin
Parent := FrmMain;
Color := clBlack;
Font.Color := clWhite;
Font.Size := 10;
MaxLength := 10;
BorderStyle := bsNone;
OnKeyPress := EdLoginIdKeyPress;
Visible := FALSE;
Tag := 10;
end;
m_EdPasswd := TEdit.Create (FrmMain.Owner);
with m_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 := SCREENWIDTH div 2 - 320 {192}{79};
ny := SCREENHEIGHT div 2 - 238{146}{64};
m_EdNewId := TEdit.Create (FrmMain.Owner);
with m_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;
m_EdNewPasswd := TEdit.Create (FrmMain.Owner);
with m_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;
m_EdConfirm := TEdit.Create (FrmMain.Owner);
with m_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;
m_EdYourName := TEdit.Create (FrmMain.Owner);
with m_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;
m_EdSSNo := TEdit.Create (FrmMain.Owner);
with m_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;
m_EdBirthDay := TEdit.Create (FrmMain.Owner);
with m_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;
m_EdQuiz1 := TEdit.Create (FrmMain.Owner);
with m_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;
m_EdAnswer1 := TEdit.Create (FrmMain.Owner);
with m_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;
m_EdQuiz2 := TEdit.Create (FrmMain.Owner);
with m_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;
m_EdAnswer2 := TEdit.Create (FrmMain.Owner);
with m_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;
m_EdPhone := TEdit.Create (FrmMain.Owner);
with m_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;
m_EdMobPhone := TEdit.Create (FrmMain.Owner);
with m_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;
m_EdEMail := TEdit.Create (FrmMain.Owner);
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -