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

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

?? clfunc.pas

?? 解元 傳奇2客戶端delphi源程序
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
begin
   for i:=0 to 20-1 do begin
      if (DealRemoteItems[i].S.Name = ci.S.Name) and (DealRemoteItems[i].MakeIndex = ci.MakeIndex) then begin
         FillChar (DealRemoteItems[i], sizeof(TClientItem), #0);
         break;
      end;
   end;
end;

{----------------------------------------------------------}
//計算兩點間的距離(X或Y方向)
function  GetDistance (sx, sy, dx, dy: integer): integer;
begin
   Result := _MAX(abs(sx-dx), abs(sy-dy));
end;
//根據方向和當前位置確定下一個位置坐標(位移量=1)
procedure GetNextPosXY (dir: byte; var x, y:Integer);
begin
   case dir of
      DR_UP:        begin x := x;   y := y-1; end;
      DR_UPRIGHT:   begin x := x+1; y := y-1; end;
      DR_RIGHT:     begin x := x+1; y := y;   end;
      DR_DOWNRIGHT: begin x := x+1; y := y+1; end;
      DR_DOWN:      begin x := x;   y := y+1; end;
      DR_DOWNLEFT:  begin x := x-1; y := y+1; end;
      DR_LEFT:      begin x := x-1; y := y;   end;
      DR_UPLEFT:    begin x := x-1; y := y-1; end;
   end;
end;
//根據方向和當前位置確定下一個位置坐標(位移量=2)
procedure GetNextRunXY (dir: byte; var x, y:Integer);
begin
   case dir of
      DR_UP:        begin x := x;   y := y-2; end;
      DR_UPRIGHT:   begin x := x+2; y := y-2; end;
      DR_RIGHT:     begin x := x+2; y := y;   end;
      DR_DOWNRIGHT: begin x := x+2; y := y+2; end;
      DR_DOWN:      begin x := x;   y := y+2; end;
      DR_DOWNLEFT:  begin x := x-2; y := y+2; end;
      DR_LEFT:      begin x := x-2; y := y;   end;
      DR_UPLEFT:    begin x := x-2; y := y-2; end;
   end;
end;
//根據兩點計算移動的方向
function GetNextDirection (sx, sy, dx, dy: Integer): byte;
var
   flagx, flagy: integer;
begin
   Result := DR_DOWN;
   if sx < dx then flagx := 1
   else if sx = dx then flagx := 0
   else flagx := -1;
   if abs(sy-dy) > 2
    then if (sx >= dx-1) and (sx <= dx+1) then flagx := 0;

   if sy < dy then flagy := 1
   else if sy = dy then flagy := 0
   else flagy := -1;
   if abs(sx-dx) > 2 then if (sy > dy-1) and (sy <= dy+1) then flagy := 0;

   if (flagx = 0)  and (flagy = -1) then Result := DR_UP;
   if (flagx = 1)  and (flagy = -1) then Result := DR_UPRIGHT;
   if (flagx = 1)  and (flagy = 0)  then Result := DR_RIGHT;
   if (flagx = 1)  and (flagy = 1)  then Result := DR_DOWNRIGHT;
   if (flagx = 0)  and (flagy = 1)  then Result := DR_DOWN;
   if (flagx = -1) and (flagy = 1)  then Result := DR_DOWNLEFT;
   if (flagx = -1) and (flagy = 0)  then Result := DR_LEFT;
   if (flagx = -1) and (flagy = -1) then Result := DR_UPLEFT;
end;
//根據當前方向獲得轉身后的方向
function  GetBack (dir: integer): integer;
begin
   Result := DR_UP;
   case dir of
      DR_UP:         Result := DR_DOWN;
      DR_DOWN:       Result := DR_UP;
      DR_LEFT:       Result := DR_RIGHT;
      DR_RIGHT:      Result := DR_LEFT;
      DR_UPLEFT:     Result := DR_DOWNRIGHT;
      DR_UPRIGHT:    Result := DR_DOWNLEFT;
      DR_DOWNLEFT:   Result := DR_UPRIGHT;
      DR_DOWNRIGHT:  Result := DR_UPLEFT;
   end;
end;
//根據當前坐標和方向獲得后退的坐標
procedure GetBackPosition (sx, sy, dir: integer; var newx, newy: integer);
begin
   newx := sx;
   newy := sy;
   case dir of
      DR_UP:      newy := newy+1;
      DR_DOWN:    newy := newy-1;
      DR_LEFT:    newx := newx+1;
      DR_RIGHT:   newx := newx-1;
      DR_UPLEFT:
         begin
            newx := newx + 1;
            newy := newy + 1;
         end;
      DR_UPRIGHT:
         begin
            newx := newx - 1;
            newy := newy + 1;
         end;
      DR_DOWNLEFT:
         begin
            newx := newx + 1;
            newy := newy - 1;
         end;
      DR_DOWNRIGHT:
         begin
            newx := newx - 1;
            newy := newy - 1;
         end;
   end;
end;
//根據當前位置和方向獲得前進一步的坐標
procedure GetFrontPosition (sx, sy, dir: integer; var newx, newy: integer);
begin
   newx := sx;
   newy := sy;
   case dir of
      DR_UP:      newy := newy-1;
      DR_DOWN:    newy := newy+1;
      DR_LEFT:    newx := newx-1;
      DR_RIGHT:   newx := newx+1;
      DR_UPLEFT:
         begin
            newx := newx - 1;
            newy := newy - 1;
         end;
      DR_UPRIGHT:
         begin
            newx := newx + 1;
            newy := newy - 1;
         end;
      DR_DOWNLEFT:
         begin
            newx := newx - 1;
            newy := newy + 1;
         end;
      DR_DOWNRIGHT:
         begin
            newx := newx + 1;
            newy := newy + 1;
         end;
   end;
end;
//根據兩點位置獲得飛行方向(8個方向)
function  GetFlyDirection (sx, sy, ttx, tty: integer): Integer;
var
   fx, fy: Real;
begin
   fx := ttx - sx;
   fy := tty - sy;
   sx := 0;
   sy := 0;
   Result := DR_DOWN;
   if fx=0 then begin         //兩點的X坐標相等
      if fy < 0 then Result := DR_UP
      else Result := DR_DOWN;
      exit;
   end;
   if fy=0 then begin         //兩點的Y坐標相等
      if fx < 0 then Result := DR_LEFT
      else Result := DR_RIGHT;
      exit;
   end;
   if (fx > 0) and (fy < 0) then begin
      if -fy > fx*2.5 then Result := DR_UP
      else if -fy < fx/3 then Result := DR_RIGHT
      else Result := DR_UPRIGHT;
   end;
   if (fx > 0) and (fy > 0) then begin
      if fy < fx/3 then Result := DR_RIGHT
      else if fy > fx*2.5 then Result := DR_DOWN
      else Result := DR_DOWNRIGHT;
   end;
   if (fx < 0) and (fy > 0) then begin
      if fy  < -fx/3 then Result := DR_LEFT
      else if fy > -fx*2.5 then Result := DR_DOWN
      else Result := DR_DOWNLEFT;
   end;
   if (fx < 0) and (fy < 0) then begin
      if -fy > -fx*2.5 then Result := DR_UP
      else if -fy < -fx/3 then Result := DR_LEFT
      else Result := DR_UPLEFT;
   end;
end;
//根據兩點位置獲得飛行方向(16個方向)
function  GetFlyDirection16 (sx, sy, ttx, tty: integer): Integer;
var
   fx, fy: Real;
begin
   fx := ttx - sx;
   fy := tty - sy;
   sx := 0;
   sy := 0;
   Result := 0;
   if fx=0 then begin
      if fy < 0 then Result := 0
      else Result := 8;
      exit;
   end;
   if fy=0 then begin
      if fx < 0 then Result := 12
      else Result := 4;
      exit;
   end;
   if (fx > 0) and (fy < 0) then begin
      Result := 4;
      if -fy > fx/4 then Result := 3;
      if -fy > fx/1.9 then Result := 2;
      if -fy > fx*1.4 then Result := 1;
      if -fy > fx*4 then Result := 0;
   end;
   if (fx > 0) and (fy > 0) then begin
      Result := 4;
      if fy > fx/4 then Result := 5;
      if fy > fx/1.9 then Result := 6;
      if fy > fx*1.4 then Result := 7;
      if fy > fx*4 then Result := 8;
   end;
   if (fx < 0) and (fy > 0) then begin
      Result := 12;
      if fy > -fx/4 then Result := 11;
      if fy > -fx/1.9 then Result := 10;
      if fy > -fx*1.4 then Result := 9;
      if fy > -fx*4 then Result := 8;
   end;
   if (fx < 0) and (fy < 0) then begin
      Result := 12;
      if -fy > -fx/4 then Result := 13;
      if -fy > -fx/1.9 then Result := 14;
      if -fy > -fx*1.4 then Result := 15;
      if -fy > -fx*4 then Result := 0;
   end;
end;
//按逆時針轉動一個方向后的方向
function  PrivDir (ndir: integer): integer;
begin
   if ndir - 1 < 0 then Result := 7
   else Result := ndir-1;
end;
//按順時針轉動一個方向后的方向
function  NextDir (ndir: integer): integer;
begin
   if ndir + 1 > 7 then Result := 0
   else Result := ndir+1;
end;
//著重顯示文字(以bcolor色加文字邊框),效果如鏤空
procedure BoldTextOut (surface: TDirectDrawSurface; x, y, fcolor, bcolor: integer; str: string);
begin
   with surface do begin
      Canvas.Font.Name:='宋體';
      Canvas.Font.Charset:=GB2312_CHARSET;
      Canvas.Font.Color := bcolor;
      Canvas.TextOut (x-1, y, str);
      Canvas.TextOut (x+1, y, str);
      Canvas.TextOut (x, y-1, str);
      Canvas.TextOut (x, y+1, str);
      Canvas.Font.Color := fcolor;
      Canvas.TextOut (x, y, str);
   end;
end;

function  GetTakeOnPosition (smode: integer): integer;
begin
   Result := -1;
   case smode of //StdMode
      5, 6:
         Result := U_WEAPON;     //武器
      10, 11:
         Result := U_DRESS;      //衣服
      15,16:
         Result := U_HELMET;     //頭盔
      19,20,21:
         Result := U_NECKLACE;   //項鏈
      22,23:
         Result := U_RINGL;      //左戒指
      24,26:
         Result := U_ARMRINGR;   //右手戒指
      25:
         Result := U_ARMRINGL;   //右手戒指
      30:
         Result := U_RIGHTHAND;  //右手 
   end;
end;
//判斷某個鍵是否按下
function  IsKeyPressed (key: byte): Boolean;
var
   keyvalue: TKeyBoardState;
begin
   Result := FALSE;
   FillChar(keyvalue, sizeof(TKeyboardState), #0);
   if GetKeyboardState (keyvalue) then
      if (keyvalue[key] and $80) <> 0 then
         Result := TRUE;
end;

procedure AddChangeFace (recogid: integer);
begin
   ChangeFaceReadyList.Add (pointer(recogid));
end;

procedure DelChangeFace (recogid: integer);
var
   i: integer;
begin
   for i:=0 to ChangeFaceReadyList.Count-1 do begin
      if integer(ChangeFaceReadyList[i]) = recogid then begin
         ChangeFaceReadyList.Delete (i);
         break;
      end;
   end;
end;

function  IsChangingFace (recogid: integer): Boolean;
var
   i: integer;
begin
   Result := FALSE;
   for i:=0 to ChangeFaceReadyList.Count-1 do begin
      if integer(ChangeFaceReadyList[i]) = recogid then begin
         Result := TRUE;
         break;
      end;
   end;
end;


Initialization
  DropItems := TList.Create;
Finalization
  DropItems.Free;
end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲男人天堂av| 日本韩国一区二区三区视频| 波多野结衣的一区二区三区| 欧美日韩一区不卡| 欧美国产禁国产网站cc| 日韩avvvv在线播放| 99国产精品久久久久久久久久久| 欧美一级二级三级乱码| 亚洲一二三区在线观看| 丁香激情综合国产| 日韩精品一区二区三区视频| 亚洲高清在线精品| 色综合天天综合网天天狠天天| 精品久久久网站| 日本午夜精品一区二区三区电影| yourporn久久国产精品| 久久精品欧美一区二区三区不卡| 日本在线播放一区二区三区| 色成年激情久久综合| 国产精品久久看| 国产精品白丝av| 欧美mv日韩mv亚洲| 免费在线视频一区| 欧美一区二区二区| 免费精品视频在线| 日韩美女一区二区三区| 日韩中文字幕不卡| 欧美一级生活片| 麻豆精品精品国产自在97香蕉| 欧美日本一区二区在线观看| 亚洲激情网站免费观看| 日本高清不卡一区| 亚洲愉拍自拍另类高清精品| 在线观看不卡一区| 天天影视色香欲综合网老头| 制服丝袜亚洲播放| 精品一区二区在线观看| 久久亚洲综合av| 国产成人av一区二区三区在线| 精品电影一区二区三区| 国产精品一区二区在线看| 日本一区二区三区电影| 波多野结衣在线aⅴ中文字幕不卡| 国产精品久久一卡二卡| 91久久精品一区二区三区| 午夜久久福利影院| 日韩三级视频中文字幕| 国产一区久久久| 18成人在线观看| 欧美少妇性性性| 韩国精品主播一区二区在线观看| 久久婷婷国产综合精品青草| 国产成人午夜精品影院观看视频 | 粉嫩高潮美女一区二区三区 | 国产91丝袜在线播放九色| 中文字幕一区二区视频| 欧美手机在线视频| 激情综合色播五月| 国产精品美女久久福利网站| 91国偷自产一区二区使用方法| 丝袜脚交一区二区| 国产日产欧产精品推荐色| 一本色道久久综合亚洲91| 男人的j进女人的j一区| 欧美韩国日本不卡| 在线亚洲高清视频| 久久99在线观看| 亚洲精品v日韩精品| 精品久久人人做人人爽| 色综合久久综合| 久久99热国产| 一区二区三区蜜桃网| 精品国偷自产国产一区| 91在线免费视频观看| 蜜臀久久久久久久| 亚洲欧美日韩中文播放| 精品福利一区二区三区| 欧洲一区二区三区在线| 国产美女在线精品| 性感美女极品91精品| 中文字幕av在线一区二区三区| 欧美专区亚洲专区| 风间由美一区二区三区在线观看 | 久久色视频免费观看| 在线视频欧美精品| 国产69精品久久久久毛片| 婷婷久久综合九色综合伊人色| 国产精品日产欧美久久久久| 欧美日本国产视频| 一本久久a久久精品亚洲| 国产精品一区二区91| 日韩综合小视频| 亚洲综合视频在线观看| 国产精品网站在线观看| 精品久久久久99| 欧美一区中文字幕| 欧美日韩aaaaaa| 日本道精品一区二区三区| 成人精品小蝌蚪| 国产乱人伦偷精品视频不卡| 免费欧美在线视频| 日韩在线观看一区二区| 午夜精品久久久久久久蜜桃app| 亚洲欧洲日韩一区二区三区| 国产日韩欧美电影| 国产喷白浆一区二区三区| 欧美成人精品3d动漫h| 欧美一区二区网站| 91精品啪在线观看国产60岁| 在线影院国内精品| 欧美色综合网站| 欧美日韩高清影院| 91精品国产91综合久久蜜臀| 欧美日韩一区成人| 欧美一区国产二区| 日韩精品在线网站| 久久久一区二区三区| 久久久天堂av| 国产午夜精品一区二区三区四区| 精品国产sm最大网站| 久久久久综合网| 国产女人18毛片水真多成人如厕| 国产日韩欧美a| 国产精品动漫网站| 一区二区三区免费| 日本三级亚洲精品| 久久草av在线| www.在线成人| 欧美无砖专区一中文字| 欧美精品18+| 精品久久久久av影院| 国产精品嫩草99a| 一区二区三区四区国产精品| 亚洲成a人片综合在线| 久久成人免费网| 国产精品一区2区| 一本大道久久a久久综合| 欧美色倩网站大全免费| 日韩午夜在线影院| 中文字幕二三区不卡| 亚洲综合视频在线观看| 蜜臀av一区二区在线观看| 丰满少妇久久久久久久 | 国产成人免费视频精品含羞草妖精| 国产福利一区在线| 91麻豆精东视频| 欧美一区二区视频免费观看| 久久综合色之久久综合| 综合激情成人伊人| 另类欧美日韩国产在线| gogo大胆日本视频一区| 91精品国产综合久久福利软件| 精品成a人在线观看| 亚洲欧美乱综合| 国产精品123| 欧美美女一区二区三区| 国产偷国产偷精品高清尤物| 亚洲国产日韩综合久久精品| 国产精品中文欧美| 欧美日韩国产在线观看| 欧美激情在线一区二区三区| 婷婷国产v国产偷v亚洲高清| 不卡av免费在线观看| 91精品国产综合久久福利软件| 成人欧美一区二区三区1314 | 日韩免费看的电影| 亚洲欧美一区二区不卡| 国产麻豆精品theporn| 777奇米四色成人影色区| 亚洲天堂成人网| 国产91色综合久久免费分享| 宅男噜噜噜66一区二区66| 亚洲男同性恋视频| voyeur盗摄精品| 久久久久久黄色| 日韩黄色小视频| 91国偷自产一区二区三区成为亚洲经典 | 懂色av一区二区三区蜜臀| 欧美精选一区二区| 亚洲自拍偷拍图区| 91在线国产观看| 欧美国产日韩一二三区| 久久91精品久久久久久秒播| 欧美乱妇23p| 亚洲电影第三页| 欧美伊人久久久久久久久影院| 中文字幕av在线一区二区三区| 久久99精品久久久久婷婷| 欧美美女一区二区在线观看| 亚洲午夜免费视频| 欧美专区日韩专区| 亚洲一区二区三区四区在线观看| 成人黄页毛片网站| 亚洲欧洲精品天堂一级| 成人av午夜影院| 欧美国产一区二区在线观看| 国产黑丝在线一区二区三区| 欧美精品一区二区蜜臀亚洲| 麻豆精品新av中文字幕| 日韩女优电影在线观看|