亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? drawscrn.pas

?? 傳奇客戶端
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
unit DrawScrn;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  DXDraws, DXClass, DirectX, IntroScn, Actor, cliUtil, clFunc,
  HUtil32;


const
   MAXSYSLINE = 8;

   BOTTOMBOARD = 1;
   VIEWCHATLINE = 9;
   AREASTATEICONBASE = 150;
   HEALTHBAR_BLACK = 0;
   HEALTHBAR_RED = 1;


type
   TDrawScreen = class
   private
      m_dwFrameTime       :LongWord;
      m_dwFrameCount      :LongWord;
      m_dwDrawFrameCount  :LongWord;
      m_SysMsgList        :TStringList;
   public
      CurrentScene: TScene;
      ChatStrs: TStringList;
      ChatBks: TList;
      ChatBoardTop: integer;

      HintList: TStringList;
      HintX, HintY, HintWidth, HintHeight: integer;
      HintUp: Boolean;
      HintColor: TColor;

      constructor Create;
      destructor Destroy; override;
      procedure KeyPress (var Key: Char);
      procedure KeyDown (var Key: Word; Shift: TShiftState);
      procedure MouseMove (Shift: TShiftState; X, Y: Integer);
      procedure MouseDown (Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
      procedure Initialize;
      procedure Finalize;
      procedure ChangeScene (scenetype: TSceneType);
      procedure DrawScreen (MSurface: TDirectDrawSurface);
      procedure DrawScreenTop (MSurface: TDirectDrawSurface);
      procedure AddSysMsg (msg: string);
      procedure AddChatBoardString (str: string; fcolor, bcolor: integer);
      procedure ClearChatBoard;

      procedure ShowHint (x, y: integer; str: string; color: TColor; drawup: Boolean);
      procedure ClearHint;
      procedure DrawHint (MSurface: TDirectDrawSurface);
   end;


implementation

uses
   ClMain, MShare, Share;
   

constructor TDrawScreen.Create;
var
   i: integer;
begin
   CurrentScene := nil;
   m_dwFrameTime := GetTickCount;
   m_dwFrameCount := 0;
   m_SysMsgList := TStringList.Create;
   ChatStrs := TStringList.Create;
   ChatBks := TList.Create;
   ChatBoardTop := 0;

   HintList := TStringList.Create;

end;

destructor TDrawScreen.Destroy;
begin
   m_SysMsgList.Free;
   ChatStrs.Free;
   ChatBks.Free;
   HintList.Free;
   inherited Destroy;
end;

procedure TDrawScreen.Initialize;
begin
end;

procedure TDrawScreen.Finalize;
begin
end;

procedure TDrawScreen.KeyPress (var Key: Char);
begin
   if CurrentScene <> nil then
      CurrentScene.KeyPress (Key);
end;

procedure TDrawScreen.KeyDown (var Key: Word; Shift: TShiftState);
begin
   if CurrentScene <> nil then
      CurrentScene.KeyDown (Key, Shift);
end;

procedure TDrawScreen.MouseMove (Shift: TShiftState; X, Y: Integer);
begin
   if CurrentScene <> nil then
      CurrentScene.MouseMove (Shift, X, Y);
end;

procedure TDrawScreen.MouseDown (Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
   if CurrentScene <> nil then
      CurrentScene.MouseDown (Button, Shift, X, Y);
end;

procedure TDrawScreen.ChangeScene (scenetype: TSceneType);
begin
   if CurrentScene <> nil then
      CurrentScene.CloseScene;
   case scenetype of
      stIntro:  CurrentScene := IntroScene;
      stLogin:  CurrentScene := LoginScene;
      stSelectCountry:  ;
      stSelectChr: CurrentScene := SelectChrScene;
      stNewChr:     ;
      stLoading:    ;
      stLoginNotice: CurrentScene := LoginNoticeScene;
      stPlayGame: CurrentScene := PlayScene;
   end;
   if CurrentScene <> nil then
      CurrentScene.OpenScene;
end;

procedure TDrawScreen.AddSysMsg (msg: string);
begin
   if m_SysMsgList.Count >= 10 then m_SysMsgList.Delete (0);
   m_SysMsgList.AddObject (msg, TObject(GetTickCount));
end;

procedure TDrawScreen.AddChatBoardString (str: string; fcolor, bcolor: integer);
var
   i, len, aline: integer;
   dline, temp: string;
const
   BOXWIDTH = (SCREENWIDTH div 2 - 214) * 2{374}; //41 聊天框文字寬度
begin
   len := Length (str);
   temp := '';
   i := 1;
   while TRUE do begin
      if i > len then break;
      if byte (str[i]) >= 128 then begin
         temp := temp + str[i];
         Inc (i);
         if i <= len then temp := temp + str[i]
         else break;
      end else
         temp := temp + str[i];

      aline := FrmMain.Canvas.TextWidth (temp);
      if aline > BOXWIDTH then begin
         ChatStrs.AddObject (temp, TObject(fcolor));
         ChatBks.Add (Pointer(bcolor));
         str := Copy (str, i+1, Len-i);
         temp := '';
         break;
      end;
      Inc (i);
   end;
   if temp <> '' then begin
      ChatStrs.AddObject (temp, TObject(fcolor));
      ChatBks.Add (Pointer(bcolor));
      str := '';
   end;
   if ChatStrs.Count > 200 then begin
      ChatStrs.Delete (0);
      ChatBks.Delete (0);
      if ChatStrs.Count - ChatBoardTop < VIEWCHATLINE then Dec(ChatBoardTop);
   end else if (ChatStrs.Count-ChatBoardTop) > VIEWCHATLINE then begin
      Inc (ChatBoardTop);
   end;

   if str <> '' then
      AddChatBoardString (' ' + str, fcolor, bcolor);

end;

procedure TDrawScreen.ShowHint (x, y: integer; str: string; color: TColor; drawup: Boolean);
var
   data: string;
   w, h: integer;
begin
   ClearHint;
   HintX := x;
   HintY := y;
   HintWidth := 0;
   HintHeight := 0;
   HintUp := drawup;
   HintColor := color;
   while TRUE do begin
      if str = '' then break;
      str := GetValidStr3 (str, data, ['\']);
      w := FrmMain.Canvas.TextWidth (data) + 4{咯歸} * 2;
      if w > HintWidth then HintWidth := w;
      if data <> '' then
         HintList.Add (data)
   end;
   HintHeight := (FrmMain.Canvas.TextHeight('A') + 1) * HintList.Count + 3{咯歸} * 2;
   if HintUp then
      HintY := HintY - HintHeight;
end;

procedure TDrawScreen.ClearHint;
begin
   HintList.Clear;
end;

procedure TDrawScreen.ClearChatBoard;
begin
   m_SysMsgList.Clear;
   ChatStrs.Clear;
   ChatBks.Clear;
   ChatBoardTop := 0;
end;


procedure TDrawScreen.DrawScreen (MSurface: TDirectDrawSurface);
   procedure NameTextOut (surface: TDirectDrawSurface; x, y, fcolor, bcolor: integer; namestr: string);
   var
      i, row: integer;
      nstr: string;
   begin
      row := 0;
      for i:=0 to 10 do begin
         if namestr = '' then break;
         namestr := GetValidStr3 (namestr, nstr, ['\']);
         BoldTextOut (surface,
                      x - surface.Canvas.TextWidth(nstr) div 2,
                      y + row * 12,
                      fcolor, bcolor, nstr);
         Inc (row);
      end;
   end;
var
   i, k, line, sx, sy, fcolor, bcolor: integer;
   actor: TActor;
   str, uname: string;
   dsurface: TDirectDrawSurface;
   d: TDirectDrawSurface;
   rc: TRect;
   infoMsg :String;
begin
   MSurface.Fill(0);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丝袜美腿高跟呻吟高潮一区| 日韩毛片精品高清免费| 成人爱爱电影网址| 视频在线观看一区二区三区| 国产精品免费视频观看| 日韩三级视频在线观看| 欧美成人免费网站| 欧美日韩一区在线| 成人国产在线观看| 激情综合网最新| 亚洲大片免费看| 1024精品合集| 日本一区二区三区高清不卡| 777a∨成人精品桃花网| 色哟哟一区二区在线观看| 精品一二三四区| 日韩专区中文字幕一区二区| 亚洲精品久久久蜜桃| 国产精品欧美久久久久无广告 | 欧美日本在线播放| 97国产精品videossex| 国产精品影视网| 麻豆91精品91久久久的内涵| 亚洲福利电影网| 亚洲激情第一区| 亚洲欧美日本韩国| 懂色av噜噜一区二区三区av| 日韩电影免费在线看| 亚洲二区在线视频| 亚洲韩国一区二区三区| 尤物在线观看一区| 亚洲精品日产精品乱码不卡| 亚洲欧洲性图库| 最新国产成人在线观看| 国产精品久久久久影院| 精品动漫一区二区三区在线观看| 91精品国产色综合久久久蜜香臀| 欧美性受xxxx黑人xyx| 在线观看国产精品网站| 在线观看区一区二| 欧美日韩日本视频| 欧美性一二三区| 欧美理论在线播放| 欧美一级高清片| 精品国产乱码久久久久久老虎 | 日本高清不卡在线观看| 色婷婷av一区二区三区gif| 色噜噜偷拍精品综合在线| 91免费看`日韩一区二区| 91美女片黄在线| 欧美中文字幕一二三区视频| 欧美亚洲国产一区二区三区| 欧美理论在线播放| 欧美videossexotv100| 精品国产免费久久| 欧美国产在线观看| 亚洲男女一区二区三区| 一区2区3区在线看| 日本人妖一区二区| 国产一区二区在线看| 成人激情小说乱人伦| 91久久人澡人人添人人爽欧美| 欧美视频精品在线观看| 日韩一区二区在线观看| 久久久国产精华| 亚洲女人****多毛耸耸8| 亚洲一区二区精品3399| 捆绑调教美女网站视频一区| 国产乱国产乱300精品| 99精品久久久久久| 欧美女孩性生活视频| 精品欧美一区二区久久| 中文字幕亚洲不卡| 午夜精品福利在线| 精品99999| 国产精品久久久久久久久快鸭 | 麻豆精品一区二区综合av| 精品一区二区三区日韩| fc2成人免费人成在线观看播放| 色呦呦国产精品| 精品久久久久久久久久久久久久久| 中文乱码免费一区二区| 午夜精品成人在线| 国产99久久久国产精品潘金| 欧美日韩日日骚| 国产精品视频一区二区三区不卡| 亚洲午夜久久久久久久久久久| 国内精品第一页| 欧美色倩网站大全免费| 国产无一区二区| 午夜激情综合网| 成人听书哪个软件好| 欧美日韩成人综合在线一区二区| 国产亲近乱来精品视频| 天堂一区二区在线免费观看| 成人激情文学综合网| 欧美一区二区三区思思人| **欧美大码日韩| 精品亚洲免费视频| 欧美日韩在线播| 国产精品进线69影院| 久久精品国产**网站演员| 欧美在线观看一区二区| 中文字幕不卡在线观看| 美国三级日本三级久久99| 欧美综合在线视频| 国产精品你懂的在线| 久久精品免费观看| 欧美日韩精品欧美日韩精品| 亚洲欧美综合色| 国产精品538一区二区在线| 91精品在线免费观看| 亚洲精品欧美综合四区| 丁香亚洲综合激情啪啪综合| 日韩免费观看高清完整版| 亚洲一区欧美一区| 99久久精品国产网站| 国产亚洲制服色| 国内成+人亚洲+欧美+综合在线| 在线综合亚洲欧美在线视频| 亚洲午夜一区二区| 在线区一区二视频| 一区二区三区欧美在线观看| av网站免费线看精品| 欧美韩国日本一区| 国产福利视频一区二区三区| 久久综合色之久久综合| 久久国产夜色精品鲁鲁99| 日韩一区二区三区视频在线观看| 天天综合网天天综合色| 欧美影视一区在线| 日本丶国产丶欧美色综合| 日本一区二区三区电影| 高清不卡在线观看| 欧美极品xxx| eeuss国产一区二区三区| 国产精品人成在线观看免费 | 捆绑紧缚一区二区三区视频 | 欧美性videosxxxxx| 亚洲人xxxx| 91麻豆精品一区二区三区| 国产精品网站在线播放| av不卡在线播放| 亚洲欧美视频在线观看视频| 色哟哟亚洲精品| 亚洲五码中文字幕| 欧美人伦禁忌dvd放荡欲情| 婷婷开心激情综合| 欧美岛国在线观看| 国产高清精品久久久久| 国产精品久久久久久久久快鸭| 93久久精品日日躁夜夜躁欧美| 亚洲欧美国产三级| 欧美日韩国产经典色站一区二区三区| 爽好久久久欧美精品| 精品久久国产字幕高潮| 国产精品1区二区.| 日韩美女精品在线| 欧美日韩视频在线观看一区二区三区| 日韩和欧美一区二区三区| 精品美女一区二区三区| 成人一级片在线观看| 亚洲免费观看高清完整版在线观看 | 日韩**一区毛片| 精品福利视频一区二区三区| 国产白丝精品91爽爽久久| 亚洲欧美一区二区三区国产精品| 欧美日韩一区二区三区不卡 | 国产黄色精品网站| 亚洲色图19p| 欧美一区二区视频免费观看| 韩国理伦片一区二区三区在线播放| 日本一区二区免费在线观看视频 | eeuss影院一区二区三区 | 亚洲乱码日产精品bd| 欧美精品久久99久久在免费线| 精品一区二区三区在线视频| 自拍偷拍亚洲激情| 日韩久久久精品| 色哟哟国产精品免费观看| 美腿丝袜亚洲三区| 国产精品久久久久天堂| 5566中文字幕一区二区电影| 粉嫩aⅴ一区二区三区四区 | 亚洲午夜私人影院| 国产亚洲精品久| 一区2区3区在线看| 国产丝袜美腿一区二区三区| 欧美色网站导航| 国产aⅴ精品一区二区三区色成熟| 亚洲午夜私人影院| 亚洲国产精华液网站w| 欧美日韩国产一区| 成人小视频在线| 久久99久久久欧美国产| 亚洲精品视频一区| 国产日韩欧美不卡| 日韩三级精品电影久久久| 在线免费观看日本欧美| 成人午夜电影小说|