📄 introscn.pas
字号:
6: begin
Help1 := 6;
exit;
end;
7: begin
Help1 := 7;
exit;
end;
8: begin
Help1 := 8;
exit;
end;
9: begin
Help1 := 9;
exit;
end;
10: begin
Help1 := 10;
exit;
end;
11: begin
Help1 := 11;
exit;
end;
12: begin
Help1 := 12;
exit;
end;
13: begin
Help1 := 13;
exit;
end;
14: begin
Help1 := 14;
exit;
end;
end;
end;
end;
procedure TSelectChrScene.LoadHelp2;
var
indexHelp2: Integer;
begin
Randomize;
indexHelp2 := Random(29);
if m_boNowLoading then begin
case indexHelp2 of
0: begin
Help2 := 0;
exit;
end;
1: begin
Help2 := 1;
exit;
end;
2: begin
Help2 := 2;
exit;
end;
3: begin
Help2 := 3;
exit;
end;
4: begin
Help2 := 4;
exit;
end;
5: begin
Help2 := 5;
exit;
end;
6: begin
Help2 := 6;
exit;
end;
7: begin
Help2 := 7;
exit;
end;
8: begin
Help2 := 8;
exit;
end;
9: begin
Help2 := 9;
exit;
end;
10: begin
Help2 := 10;
exit;
end;
11: begin
Help2 := 11;
exit;
end;
12: begin
Help2 := 12;
exit;
end;
13: begin
Help2 := 13;
exit;
end;
14: begin
Help2 := 14;
exit;
end;
15: begin
Help2 := 15;
exit;
end;
16: begin
Help2 := 16;
exit;
end;
17: begin
Help2 := 17;
exit;
end;
18: begin
Help2 := 18;
exit;
end;
19: begin
Help2 := 19;
exit;
end;
20: begin
Help2 := 20;
exit;
end;
21: begin
Help2 := 21;
exit;
end;
22: begin
Help2 := 22;
exit;
end;
23: begin
Help2 := 23;
exit;
end;
24: begin
Help2 := 24;
exit;
end;
25: begin
Help2 := 25;
exit;
end;
26: begin
Help2 := 26;
exit;
end;
27: begin
Help2 := 27;
exit;
end;
28: begin
Help2 := 28;
exit;
end;
end;
end;
end;
procedure TSelectChrScene.HideSelectChrBox;
var
indexNumber: Integer;
begin
m_nCurFrame := 0;
m_nMaxFrame := 10;
Randomize;
indexNumber := Random(3);
if m_boNowLoading then begin
case indexNumber of
0: begin
Numbert := 930;
exit;
end;
1: begin
Numbert := 931;
exit;
end;
2: begin
Numbert := 932;
exit;
end;
end;
end;
if not g_boDoFadeOut and not g_boDoFadeIn then begin
g_boDoFastFadeOut := TRUE;
g_nFadeIndex := 29;
m_boNowLoading := FALSE;
end;
end;
procedure TSelectChrScene.PlayScene (MSurface: TDirectDrawSurface);
var
n, bx, by, fx, fy, img: integer;
ex, ey:Integer; //选择人物时显示的效果光位置
d, e, f, g, dd: TDirectDrawSurface;
ax, ay: integer;
cx,cy: integer;
svname: string;
begin
bx:=0;
by:=0;
fx:=0;
fy:=0;
{$IF SWH = SWH800}
d := g_WMainImages.Images[65];
{$ELSEIF SWH = SWH1024}
d := g_WMainImages.Images[65];
{$IFEND}
//显示选择人物背景画面
if d <> nil then begin
MSurface.Draw ((SCREENWIDTH - d.Width) div 2,(SCREENHEIGHT - d.Height) div 2, d.ClientRect, d, FALSE);
end;
for n:=0 to 2 do begin
if (not ChrArr[n].Valid) or (ChrArr[n].IsCreating) then begin
d := nil;
d := g_WMainImages.Images[44];
if (not m_boNowLoading) then begin
cy := 19;
case n of
0: begin
cx := 47;
end;
1: begin
cx := 286;
end;
2: begin
cx := 526;
end;
end;
end;
MSurface.Draw (cx,cy, d.ClientRect, d, FALSE);
end;
if ChrArr[n].Valid then begin
ex := (SCREENWIDTH - 800) div 2 + 90;
ey := (SCREENHEIGHT - 600) div 2 + 58;
case ChrArr[n].UserChr.Job of
0: begin
if ChrArr[n].UserChr.Sex = 0 then begin
bx := (SCREENWIDTH - 800) div 2 + 138;
by := (SCREENHEIGHT - 600) div 2 + 211;
fx := bx;
fy := by;
end else begin
bx := (SCREENWIDTH - 800) div 2 + 121;
by := (SCREENHEIGHT - 600) div 2 + 197;
fx := bx;
fy := by;
end;
end;
1: begin
if ChrArr[n].UserChr.Sex = 0 then begin
bx := (SCREENWIDTH - 800) div 2 + 130;
by := (SCREENHEIGHT - 600) div 2 + 200;
fx := bx;
fy := by;
end else begin
bx := (SCREENWIDTH - 800) div 2 + 135;
by := (SCREENHEIGHT - 600) div 2 + 217;
fx := bx;
fy := by;
end;
end;
2: begin
if ChrArr[n].UserChr.Sex = 0 then begin
bx := (SCREENWIDTH - 800) div 2 + 138;
by := (SCREENHEIGHT - 600) div 2 + 205;
fx := bx;
fy := by;
end else begin
bx := (SCREENWIDTH - 800) div 2 + 130;
by := (SCREENHEIGHT - 600) div 2 + 229;
fx := bx;
fy := by;
end;
end;
end;
if n > 0 then begin
ex := (SCREENWIDTH - 800) div 2;
ey := (SCREENHEIGHT - 600) div 2;
bx := bx + 240*n;
by := by;
fx := fx + 240*n;
fy := fy ;
end;
if ChrArr[n].Unfreezing then begin
img := 40 + ChrArr[n].UserChr.Job * 40 + ChrArr[n].UserChr.Sex * 120;
d := g_WChrSelImages.Images[img + ChrArr[n].aniIndex];
d := g_WChrSelImages.GetCachedImage((img + ChrArr[n].aniIndex), ax, ay);
//e := g_WChrSelImages.Images[4 + ChrArr[n].effIndex];
if (d <> nil) and (not ChrArr[n].IsCreating) then MSurface.Draw (bx + ax , by + ay, d.ClientRect, d, TRUE);
//if e <> nil then DrawBlend (MSurface, ex, ey, e, 1);
if GetTickCount - ChrArr[n].StartTime > 50{120} then begin
ChrArr[n].StartTime := GetTickCount;
ChrArr[n].aniIndex := ChrArr[n].aniIndex + 1;
end;
if GetTickCount - ChrArr[n].startefftime >50{ 110} then begin
ChrArr[n].startefftime := GetTickCount;
ChrArr[n].effIndex := ChrArr[n].effIndex + 1;
//if ChrArr[n].effIndex > EFFECTFRAME-1 then
// ChrArr[n].effIndex := EFFECTFRAME-1;
end;
if ChrArr[n].aniIndex > FREEZEFRAME-1 then begin
ChrArr[n].Unfreezing := FALSE;
ChrArr[n].FreezeState := FALSE;
ChrArr[n].aniIndex := 0;
end;
end else
if not ChrArr[n].Selected and (not ChrArr[n].FreezeState and not ChrArr[n].Freezing) then begin
ChrArr[n].Freezing := TRUE;
ChrArr[n].aniIndex := 0;
ChrArr[n].StartTime := GetTickCount;
end;
if ChrArr[n].Freezing then begin
img := 40 + ChrArr[n].UserChr.Job * 40 + ChrArr[n].UserChr.Sex * 120;
//d := g_WChrSelImages.Images[img + FREEZEFRAME - ChrArr[n].aniIndex - 1];
d := g_WChrSelImages.GetCachedImage((img + FREEZEFRAME - ChrArr[n].aniIndex - 1), ax, ay);
if (d <> nil) and (not ChrArr[n].IsCreating) then MSurface.Draw (bx + ax, by + ay, d.ClientRect, d, TRUE);
if GetTickCount - ChrArr[n].StartTime > 50 then begin
ChrArr[n].StartTime := GetTickCount;
ChrArr[n].aniIndex := ChrArr[n].aniIndex + 1;
end;
if ChrArr[n].aniIndex > FREEZEFRAME-1 then begin
ChrArr[n].Freezing := FALSE;
ChrArr[n].FreezeState := TRUE;
ChrArr[n].aniIndex := 0;
end;
end;
if not ChrArr[n].Unfreezing and not ChrArr[n].Freezing then begin
if not ChrArr[n].FreezeState then begin
img := 20 + ChrArr[n].UserChr.Job * 40 + ChrArr[n].aniIndex + ChrArr[n].UserChr.Sex * 120;
//d := g_WChrSelImages.Images[img];
d := g_WChrSelImages.GetCachedImage(img, ax, ay);
if (d <> nil) and (not ChrArr[n].IsCreating) then begin
if ChrArr[n].DarkLevel > 0 then begin
dd := TDirectDrawSurface.Create (frmMain.DXDraw.DDraw);
dd.SystemMemory := TRUE;
dd.SetSize (d.Width, d.Height);
dd.Draw (0, 0, d.ClientRect, d, FALSE);
MakeDark (dd, 30-ChrArr[n].DarkLevel);
MSurface.Draw (fx, fy, dd.ClientRect, dd, TRUE);
dd.Free;
end else
MSurface.Draw (fx + ax, fy + ay, d.ClientRect, d, TRUE)
end;
end else begin
img := 40 + ChrArr[n].UserChr.Job * 40 + ChrArr[n].UserChr.Sex * 120;
// d := g_WChrSelImages.Images[img];
d := g_WChrSelImages.GetCachedImage(img, ax, ay);
if (d <> nil) and (not ChrArr[n].IsCreating) then
MSurface.Draw (bx + ax, by + ay, d.ClientRect, d, TRUE);
end;
if ChrArr[n].Selected then begin
if GetTickCount - ChrArr[n].StartTime > 300 then begin
ChrArr[n].StartTime := GetTickCount;
ChrArr[n].aniIndex := ChrArr[n].aniIndex + 1;
if ChrArr[n].aniIndex > SELECTEDFRAME-1 then
ChrArr[n].aniIndex := 0;
end;
if GetTickCount - ChrArr[n].moretime > 25 then begin
ChrArr[n].moretime := GetTickCount;
if ChrArr[n].DarkLevel > 0 then
ChrArr[n].DarkLevel := ChrArr[n].DarkLevel - 1;
end;
end;
end;
//显示选择角色时人物名称等级
if (ChrArr[n].UserChr.Name <> '') and (ChrArr[n].Selected) then begin
with MSurface do begin
SetBkMode (Canvas.Handle, TRANSPARENT);
BoldTextOut (MSurface, (SCREENWIDTH - 800) div 2 + 167, (SCREENHEIGHT - 600) div 2 + 458, clWhite, clBlack, inttostr(n+1));
BoldTextOut (MSurface, (SCREENWIDTH - 800) div 2 + 167, (SCREENHEIGHT - 600) div 2 + 484, clWhite, clBlack, ChrArr[n].UserChr.Name);
BoldTextOut (MSurface, (SCREENWIDTH - 800) div 2 + 167, (SCREENHEIGHT - 600) div 2 + 510, clWhite, clBlack, IntToStr(ChrArr[n].UserChr.Level));
BoldTextOut (MSurface, (SCREENWIDTH - 800) div 2 + 167, (SCREENHEIGHT - 600) div 2 + 536, clWhite, clBlack, GetJobName(ChrArr[n].UserChr.Job));
Canvas.Release;
end;
end;
if m_boNowLoading then begin
d := g_WMainImages.Images[Numbert];
if d <> nil then
MSurface.Draw (0, 0, d.ClientRect, d, TRUE);
f := g_WMainImages.Images[1010+help1];
if d <> nil then
MSurface.Draw ((SCREENWIDTH - f.Width) div 2, (SCREENHEIGHT - f.Height) div 2 -20, f, TRUE);
g := g_WMainImages.Images[1040+help2];
if f <> nil then
MSurface.Draw ((SCREENWIDTH - g.Width) div 2, (SCREENHEIGHT - g.Height) div 2 + 200, g, TRUE);
if GetTickCount - m_LoadingTime > 80 then begin
m_LoadingTime := GetTickCount;
Inc (m_nCurFrame);
end;
if m_nCurFrame >= m_nMaxFrame-1 then begin
m_nCurFrame := m_nMaxFrame-1;
m_nCurFrame := 0;
end;
e := g_WMainImages.Images[940 + m_nCurFrame];
if e <> nil then
MSurface.Draw ((SCREENWIDTH - e.Width) div 2, (SCREENHEIGHT - e.Height) div 2 + 250, e, TRUE);
end else begin
with MSurface do begin
SetBkMode (Canvas.Handle, TRANSPARENT);
if BO_FOR_TEST then svname := 'ThedeathRules'
else svname := g_sServerName;
BoldTextOut (MSurface, SCREENWIDTH div 2 - Canvas.TextWidth(svname) div 2, (SCREENHEIGHT - 600) div 2 + 8, clWhite, clBlack, svname);
Canvas.Release;
end;
end;
end;
end;
end;
{----------------------------- TLoading ------------------------------}
{constructor TLoading.Create;
begin
inherited Create (stLoading);
end;
destructor TLoading.Destroy;
begin
inherited Destroy;
end;
procedure TLoading.OpenScene;
begin
m_nCurFrame := 0;
m_nMaxFrame := 10;
end;
procedure TLoading.CloseScene;
begin
end;
procedure TLoading.PlayScene (MSurface: TDirectDrawSurface);
var
d: TDirectDrawSurface;
sWil:Integer;
begin
case Random(3) of
0:begin
sWil:=931;
end;
1:begin
sWil:=931;
end;
2:begin
sWil:=931;
end;
end;
d := g_WMainImages.Images[sWil];
if d <> nil then begin
MSurface.Draw ((SCREENWIDTH - 800) div 2, (SCREENHEIGHT - 600) div 2, d.ClientRect, d, FALSE);
end;
end;}
{--------------------------- TLoginNotice ----------------------------}
{constructor TLoginNotice.Create;
begin
inherited Create (stLoginNotice);
end;
destructor TLoginNotice.Destroy;
begin
inherited Destroy;
end;}
{---- Adjust global SVN revision ----}
initialization
SVNRevision('$Id: IntroScn.pas 326 2006-08-24 19:52:54Z Dataforce $');
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -