[Delphi] [BaseHook] Модуль визуальных процедур.

Пользователь
Статус
Оффлайн
Регистрация
7 Сен 2014
Сообщения
61
Реакции[?]
86
Поинты[?]
0
Модуль визуальных процедур подключаемый к BaseHook'у ratwayer'a.
Существенно облегчит вам жизнь (не нужно писать процедуры самим).

Список процедур:
procedure DrawDot(X, Y, THICKNESS: Single; Color: color24; A: Byte);
procedure DrawText(X, Y: Single; Text: pchar; Color: color24);
procedure DrawTextBox(x, y, w, h, offset_bc, offset_sh: Integer; text: PChar; color: color24; a: Integer);
procedure DrawCenterText(X, Y: Single; Text: pchar; Color: Color24);
procedure DrawRectangle(X1, Y1, X2, Y2, T: Single; Color: color24; A: Byte);
procedure DrawStaticBox(X, Y, S, T: Single; Color: color24; A: Byte);
procedure DrawCrosshair(scr: vec3_t; size, i, t: byte; color: Color24; a: Byte);

Описание переменных:
X, X1, X2: Координаты по оси X.
Y, Y1, Y2: Координаты по оси Y.
T, Thickness: Толщина линий.
Color: Цвет в формате RGB.
Text: Текст.
W: Ширина.
H: Высота.
I: Отступ.
S, Size: Размер.
offset_bc: Отступ по горизонтали.
offset_sh: Отступ по вертикали.

Пример:
Код:
Отображение точки:
procedure DrawDot(200, 200, 3, Color, 255);
Код:
Отображение прямоугольника:
procedure DrawRectangle(100, 100, 300, 200, 1, Color, 255);
Код:
Отображение квадрата:
procedure DrawStaticBox(400, 400, 20, 1, Color, 255);
Модуль:
Код:
unit Visuals;

// ================================= //
// Ve4niySooN                       
// Последнее изменение: 09.11.2014  
// ================================= //

interface

uses HLSDK, CvarDef, SysUtils;

procedure DrawDot(X, Y, THICKNESS: Single; Color: color24; A: Byte);
procedure DrawText(X, Y: Single; Text: pchar; Color: color24);
procedure DrawTextBox(x, y, w, h, offset_bc, offset_sh: Integer; text: PChar; color: color24; a: Integer);
procedure DrawCenterText(X, Y: Single; Text: pchar; Color: Color24);
procedure DrawRectangle(X1, Y1, X2, Y2, T: Single; Color: color24; A: Byte);
procedure DrawStaticBox(X, Y, S, T: Single; Color: color24; A: Byte);
procedure DrawExtendetBox(X, Y, DestX, DestY: Single; Color: color24; A, W: Byte);
procedure DrawCrosshair(scr: vec3_t; size, i, t: byte; color: Color24; a: Byte);

implementation

procedure DrawMenuBox(x, y, w, h, offset_bc, offset_sh: Integer; text: PChar; color: color24; a: Integer);
begin
  Engine.FillRGBA2(x, y, w, h, color.r, color.g, color.b, a);
  DrawText(x + offset_bc, y + offset_sh, text, color);
end;

procedure DrawExtendetBox(X, Y, DestX, DestY: Single; Color: color24; A, W: Byte);
begin
  Engine.FillRGBA2(Round(X),             Round(Y),            Round(DestX - X),    Round(W),                  Color.R, Color.G, Color.B, A);
  Engine.FillRGBA2(Round(X),             Round(Y + W),        Round(W),            Round(DestY - Y - W),      Color.R, Color.G, Color.B, A);
  Engine.FillRGBA2(Round(X),             Round(DestY - W),    Round(DestX - X),    Round(W),                  Color.R, Color.G, Color.B, A);
  Engine.FillRGBA2(Round(DestX - W),     Round(Y + W),        Round(W),            Round(DestY - Y - W),      Color.R, Color.G, Color.B, A);
end;

procedure DrawCrosshair(scr: vec3_t; size, i, t: byte; color: Color24; a: Byte);
begin
  Engine.FillRGBA2(Round(scr.X - size),Round(scr.Y),size - i,t,color.r,color.g,color.b,a);
  Engine.FillRGBA2(Round(scr.X + i),Round(scr.Y),size,t,color.r,color.g,color.b,a);
  Engine.FillRGBA2(Round(scr.X),Round(scr.Y - size),t,size - i,color.r,color.g,color.b,a);
  Engine.FillRGBA2(Round(scr.X),Round(scr.Y + i),t,size,color.r,color.g,color.b,a);
end;

procedure DrawStaticBox(X, Y, S, T: Single; Color: color24; A: Byte);
begin
  Engine.FillRGBA2(Round(x - s),Round(y - s), Round(s * 2),      Round(t),                 Color.R, Color.G, Color.B, A);
  Engine.FillRGBA2(Round(x - s),Round(y - s), Round(t),          Round(s * 2),             Color.R, Color.G, Color.B, A);
  Engine.FillRGBA2(Round(x + s),Round(y + s), Round(s * 2 / -1), Round(-t),                Color.R, Color.G, Color.B, A);
  Engine.FillRGBA2(Round(x + s),Round(y + s), Round(-t),         Round(s * 2 / -1),        Color.R, Color.G, Color.B, A);
end;

procedure DrawRectangle(X1, Y1, X2, Y2, T: Single; Color: color24; A: Byte);
begin
  Engine.FillRGBA2(Round(x1),Round(y1),Round(X2 - X1),Round(T),Color.R,Color.G,Color.B,A);
  Engine.FillRGBA2(Round(x1),Round(y1),Round(T),Round(Y2 - Y1),Color.R,Color.G,Color.B, A);
  Engine.FillRGBA2(Round(x2),Round(y2),Round(-(X2 - X1)),Round(-T),Color.R,Color.G,Color.B, A);
  Engine.FillRGBA2(Round(x2),Round(y2),Round(-T),Round(-(Y2 - Y1)),Color.R,Color.G,Color.B, A);
end;

procedure DrawDot(X, Y, THICKNESS: Single; Color: Color24; A: Byte);
var
  DT: Integer;
begin
  DT := Round(THICKNESS * 2);
  Engine.FillRGBA2(Round(X - THICKNESS), Round(Y - THICKNESS), DT, DT, Color.R, Color.G, Color.B, A);
end;

procedure DrawText(X, Y: Single; Text: pchar; Color: Color24);
begin
  Engine.DrawSetTextColor(-Color.r, -Color.g, -Color.b);
  Engine.DrawConsoleString(Round(x), Round(y), text);
end;

procedure DrawCenterText(X, Y: Single; Text: pchar; Color: Color24);
var
  th, tl: Integer;
begin
  Engine.DrawSetTextColor(-Color.r, -Color.g, -Color.b);
  Engine.DrawConsoleStringLen(text, @tl, @th);
  Engine.DrawConsoleString(Round(x - (tl shr 1)), Round(y), text);
end;

end.
Скачать:

Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.

 
Последнее редактирование модератором:
Сверху Снизу