?? introscn.pas
字號:
if Sender = m_EdMobPhone then begin
FrmDlg.NAHelps.Add ('Your mobile telephone number');
FrmDlg.NAHelps.Add ('');
end;
if Sender = m_EdEMail then begin
FrmDlg.NAHelps.Add ('Please type your E-mail address.');
FrmDlg.NAHelps.Add ('Your E-mail will be used to access');
FrmDlg.NAHelps.Add ('some of our services. You can');
FrmDlg.NAHelps.Add ('receive latest update information.');
FrmDlg.NAHelps.Add ('');
end;
end;
procedure TLoginScene.HideLoginBox;
begin
//EdId.Visible := FALSE;
//EdPasswd.Visible := FALSE;
//FrmDlg.DLogin.Visible := FALSE;
ChangeLoginState (lsCloseAll);
end;
procedure TLoginScene.OpenLoginDoor;
begin
m_boNowOpening := TRUE;
m_dwStartTime := GetTickCount;
HideLoginBox;
PlaySound (s_rock_door_open);
end;
procedure TLoginScene.PlayScene (MSurface: TDirectDrawSurface);
var
d: TDirectDrawSurface;
begin
if m_boOpenFirst then begin
m_boOpenFirst := FALSE;
m_EdId.Visible := TRUE;
m_EdPasswd.Visible := TRUE;
m_EdId.SetFocus;
end;
{$IF CUSTOMLIBFILE = 1}
d := g_WMainImages.Images[83{102-80}];
{$ELSE}
d := g_WChrSelImages.Images[102-80];
{$IFEND}
if d <> nil then begin
MSurface.Draw ((SCREENWIDTH - 800) div 2, (SCREENHEIGHT - 600) div 2, d.ClientRect, d, FALSE);
end;
if m_boNowOpening then begin
// if GetTickCount - StartTime > 230 then begin
//開門速度
if GetTickCount - m_dwStartTime > 50 then begin
m_dwStartTime := GetTickCount;
Inc (m_nCurFrame);
end;
if m_nCurFrame >= m_nMaxFrame-1 then begin
m_nCurFrame := m_nMaxFrame-1;
if not g_boDoFadeOut and not g_boDoFadeIn then begin
g_boDoFadeOut := TRUE;
g_boDoFadeIn := TRUE;
g_nFadeIndex := 29;
end;
end;
{$IF CUSTOMLIBFILE = 1}
d := g_WMainImages.Images[m_nCurFrame+84{103 + CurFrame-80}];
{$ELSE}
d := g_WChrSelImages.Images[103 + m_nCurFrame-80];
{$IFEND}
if d <> nil then
MSurface.Draw ((SCREENWIDTH - 800) div 2 + 152{152}, (SCREENHEIGHT - 600) div 2 + 96{96}, d.ClientRect, d, TRUE);
if g_boDoFadeOut then begin
if g_nFadeIndex <= 1 then begin
g_WMainImages.ClearCache;
g_WChrSelImages.ClearCache;
DScreen.ChangeScene (stSelectChr); //
end;
end;
end;
end;
procedure TLoginScene.ChangeLoginState (state: TLoginState);
var
i, focus: integer;
c: TControl;
begin
focus := -1;
case state of
lsLogin: focus := 10;
lsNewIdRetry, lsNewId: focus := 11;
lsChgpw: focus := 12;
lsCloseAll: focus := -1;
end;
with FrmMain do begin //login
for i:=0 to ControlCount-1 do begin
c := Controls[i];
if c is TEdit then begin
if c.Tag in [10..12] then begin
if c.Tag = focus then begin
c.Visible := TRUE;
TEdit(c).Text := '';
end else begin
c.Visible := FALSE;
TEdit(c).Text := '';
end;
end;
end;
end;
if EnglishVersion then //康鞏滾傈籃 林刮殿廢鍋齲 澇仿闌 救茄促.
m_EdSSNo.Visible := FALSE;
case state of
lsLogin:
begin
FrmDlg.DNewAccount.Visible := FALSE;
FrmDlg.DChgPw.Visible := FALSE;
FrmDlg.DLogin.Visible := TRUE;
if m_EdId.Visible then m_EdId.SetFocus;
end;
lsNewIdRetry,
lsNewId:
begin
if m_boUpdateAccountMode then
m_EdNewId.Enabled := FALSE
else
m_EdNewId.Enabled := TRUE;
FrmDlg.DNewAccount.Visible := TRUE;
FrmDlg.DChgPw.Visible := FALSE;
FrmDlg.DLogin.Visible := FALSE;
if m_EdNewId.Visible and m_EdNewId.Enabled then begin
m_EdNewId.SetFocus;
end else begin
if m_EdConfirm.Visible and m_EdConfirm.Enabled then
m_EdConfirm.SetFocus;
end;
end;
lsChgpw:
begin
FrmDlg.DNewAccount.Visible := FALSE;
FrmDlg.DChgPw.Visible := TRUE;
FrmDlg.DLogin.Visible := FALSE;
if m_EdChgId.Visible then m_EdChgId.SetFocus;
end;
lsCloseAll:
begin
FrmDlg.DNewAccount.Visible := FALSE;
FrmDlg.DChgPw.Visible := FALSE;
FrmDlg.DLogin.Visible := FALSE;
end;
end;
end;
end;
procedure TLoginScene.NewClick;
begin
m_boUpdateAccountMode := FALSE;
FrmDlg.NewAccountTitle := '';
ChangeLoginState (lsNewId);
end;
procedure TLoginScene.NewIdRetry (boupdate: Boolean);
begin
m_boUpdateAccountMode := boupdate;
ChangeLoginState (lsNewidRetry);
m_EdNewId.Text := m_NewIdRetryUE.sAccount;
m_EdNewPasswd.Text := m_NewIdRetryUE.sPassword;
m_EdYourName.Text := m_NewIdRetryUE.sUserName;
m_EdSSNo.Text := m_NewIdRetryUE.sSSNo;
m_EdQuiz1.Text := m_NewIdRetryUE.sQuiz;
m_EdAnswer1.Text := m_NewIdRetryUE.sAnswer;
m_EdPhone.Text := m_NewIdRetryUE.sPhone;
m_EdEMail.Text := m_NewIdRetryUE.sEMail;
m_EdQuiz2.Text := m_NewIdRetryAdd.sQuiz2;
m_EdAnswer2.Text := m_NewIdRetryAdd.sAnswer2;
m_EdMobPhone.Text := m_NewIdRetryAdd.sMobilePhone;
m_EdBirthDay.Text := m_NewIdRetryAdd.sBirthDay;
end;
procedure TLoginScene.UpdateAccountInfos (ue: TUserEntry);
begin
m_NewIdRetryUE := ue;
FillChar (m_NewIdRetryAdd, sizeof(TUserEntryAdd), #0);
m_boUpdateAccountMode := TRUE; //扁糧俊 樂綽 瀝焊甫 犁澇仿竅綽 版快
NewIdRetry (TRUE);
FrmDlg.NewAccountTitle := '(Please complete all the required fields of the account information)';
end;
procedure TLoginScene.OkClick;
var
key: char;
begin
key := #13;
EdLoginPasswdKeyPress (self, key);
end;
procedure TLoginScene.ChgPwClick;
begin
ChangeLoginState (lsChgPw);
end;
function TLoginScene.CheckUserEntrys: Boolean;
begin
Result := FALSE;
m_EdNewId.Text := Trim(m_EdNewId.Text);
m_EdQuiz1.Text := Trim(m_EdQuiz1.Text);
m_EdYourName.Text := Trim(m_EdYourName.Text);
if not NewIdCheckNewId then exit;
if not EnglishVersion then begin //康鞏 滾傈俊輯綽 眉農救竊
if not NewIdCheckSSNo then
exit;
end;
if not NewIdCheckBirthday then exit;
if Length(m_EdNewId.Text) < 3 then begin
m_EdNewId.SetFocus;
exit;
end;
if Length(m_EdNewPasswd.Text) < 3 then begin
m_EdNewPasswd.SetFocus;
exit;
end;
if m_EdNewPasswd.Text <> m_EdConfirm.Text then begin
m_EdConfirm.SetFocus;
exit;
end;
if Length(m_EdQuiz1.Text) < 1 then begin
m_EdQuiz1.SetFocus;
exit;
end;
if Length(m_EdAnswer1.Text) < 1 then begin
m_EdAnswer1.SetFocus;
exit;
end;
if Length(m_EdQuiz2.Text) < 1 then begin
m_EdQuiz2.SetFocus;
exit;
end;
if Length(m_EdAnswer2.Text) < 1 then begin
m_EdAnswer2.SetFocus;
exit;
end;
if Length(m_EdYourName.Text) < 1 then begin
m_EdYourName.SetFocus;
exit;
end;
if not EnglishVersion then begin //康鞏 滾傈俊輯綽 眉農救竊
if Length(m_EdSSNo.Text) < 1 then begin
m_EdSSNo.SetFocus;
exit;
end;
end;
Result := TRUE;
end;
procedure TLoginScene.NewAccountOk;
var
ue: TUserEntry;
ua: TUserEntryAdd;
begin
if CheckUserEntrys then begin
FillChar (ue, sizeof(TUserEntry), #0);
FillChar (ua, sizeof(TUserEntryAdd), #0);
ue.sAccount := LowerCase(m_EdNewId.Text);
ue.sPassword := m_EdNewPasswd.Text;
ue.sUserName := m_EdYourName.Text;
//
if not EnglishVersion then
ue.sSSNo := m_EdSSNo.Text
else
ue.sSSNo := '650101-1455111';
ue.sQuiz := m_EdQuiz1.Text;
ue.sAnswer := Trim(m_EdAnswer1.Text);
ue.sPhone := m_EdPhone.Text;
ue.sEMail := Trim(m_EdEMail.Text);
ua.sQuiz2 := m_EdQuiz2.Text;
ua.sAnswer2 := Trim(m_EdAnswer2.Text);
ua.sBirthday := m_EdBirthDay.Text;
ua.sMobilePhone := m_EdMobPhone.Text;
m_NewIdRetryUE := ue; //犁矯檔錠 葷儈
m_NewIdRetryUE.sAccount := '';
m_NewIdRetryUE.sPassword := '';
m_NewIdRetryAdd := ua;
if not m_boUpdateAccountMode then
FrmMain.SendNewAccount (ue, ua)
else
FrmMain.SendUpdateAccount (ue, ua);
m_boUpdateAccountMode := FALSE;
NewAccountClose;
end;
end;
procedure TLoginScene.NewAccountClose;
begin
if not m_boUpdateAccountMode then
ChangeLoginState (lsLogin);
end;
procedure TLoginScene.ChgpwOk;
var
uid, passwd, newpasswd: string;
begin
if m_EdChgNewPw.Text = m_EdChgRepeat.Text then begin
uid := m_EdChgId.Text;
passwd := m_EdChgCurrentpw.Text;
newpasswd := m_EdChgNewPw.Text;
FrmMain.SendChgPw (uid, passwd, newpasswd);
ChgpwCancel;
end else begin
FrmDlg.DMessageDlg ('Password confirmation is not correct.', [mbOk]);
m_EdChgNewPw.SetFocus;
end;
end;
procedure TLoginScene.ChgpwCancel;
begin
ChangeLoginState (lsLogin);
end;
{-------------------- TSelectChrScene ------------------------}
constructor TSelectChrScene.Create;
begin
CreateChrMode := FALSE;
FillChar (ChrArr, sizeof(TSelChar)*2, #0);
ChrArr[0].FreezeState := TRUE; //扁夯撈 倔絹 樂綽 惑怕
ChrArr[1].FreezeState := TRUE;
NewIndex := 0;
EdChrName := TEdit.Create (FrmMain.Owner);
with EdChrName do begin
Parent := FrmMain;
Height := 16;
Width := 137;
BorderStyle := bsNone;
Color := clBlack;
Font.Color := clWhite;
ImeMode := LocalLanguage;
MaxLength := 14;
Visible := FALSE;
OnKeyPress := EdChrnameKeyPress;
end;
SoundTimer := TTimer.Create (FrmMain.Owner);
with SoundTimer do begin
OnTimer := SoundOnTimer;
Interval := 1;
Enabled := FALSE;
end;
inherited Create (stSelectChr);
end;
destructor TSelectChrScene.Destroy;
begin
inherited Destroy;
end;
procedure TSelectChrScene.OpenScene;
begin
FrmDlg.DSelectChr.Visible := TRUE;
SoundTimer.Enabled := TRUE;
SoundTimer.Interval := 1;
end;
procedure TSelectChrScene.CloseScene;
begin
SilenceSound;
FrmDlg.DSelectChr.Visible := FALSE;
SoundTimer.Enabled := FALSE;
end;
procedure TSelectChrScene.SoundOnTimer (Sender: TObject);
begin
PlayBGM (bmg_select);
SoundTimer.Enabled := FALSE;
//SoundTimer.Interval := 38 * 1000;
end;
procedure TSelectChrScene.SelChrSelect1Click;
begin
if (not ChrArr[0].Selected) and (ChrArr[0].Valid) then begin
FrmMain.SelectChr(ChrArr[0].UserChr.Name);//2004/05/17
ChrArr[0].Selected := TRUE;
ChrArr[1].Selected := FALSE;
ChrArr[0].Unfreezing := TRUE;
ChrArr[0].AniIndex := 0;
ChrArr[0].DarkLevel := 0;
ChrArr[0].EffIndex := 0;
ChrArr[0].StartTime := GetTickCount;
ChrArr[0].MoreTime := GetTickCount;
ChrArr[0].StartEffTime := GetTickCount;
PlaySound (s_meltstone);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -