textout(0, 100, 50, "текст", 0);
или
textout(0, 100, 50, format(#t[0])+"----------", 0);
у меня на ноутбуке текст успешно выводится поверх игры, а на компьютере текст виден, только когда окно игры свернуть.
Что с этим можно сделать?
1. faryatiev - 30 Декабря, 2023 - 07:46:32 - перейти к сообщению
2. Zireael - 30 Декабря, 2023 - 08:05:28 - перейти к сообщению
Так тоже?:
Такое поведение только с этой игрой или другими тоже?
(Добавление)
Ещё можно такой вариант использовать:
CODE:
external(INT, "GetDC", "GetDC", "User32.dll");
external(INT, "TextOut", "TextOutA", "Gdi32.dll");
int HDC = GetDC(0);
loop()TextOut(HDC, 200, 100, "qwerty", 6);
external(INT, "TextOut", "TextOutA", "Gdi32.dll");
int HDC = GetDC(0);
loop()TextOut(HDC, 200, 100, "qwerty", 6);
Такое поведение только с этой игрой или другими тоже?
(Добавление)
Ещё можно такой вариант использовать:
CODE:
#define LWA_COLORKEY 0x00000001
#define GWL_STYLE -16
#define GWL_EXSTYLE -20
#define COLOR_3DFACE 15
#define WS_EX_LAYERED 0x00080000
#define WS_EX_TRANSPARENT 0x00000020
#define WS_VISIBLE 0x10000000
#define RUSSIAN_CHARSET 204
#define TRANSPARENT 1
external(INT, "GetDC", "GetDC", "User32.dll");
external(INT, "TextOut", "TextOutA", "Gdi32.dll");
external(INT, "CreateSolidBrush", "CreateSolidBrush", "Gdi32.dll");
external(INT, "SelectObject", "SelectObject", "Gdi32.dll");
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll");
external(INT, "SetBkMode", "SetBkMode", "Gdi32.dll");
external(INT, "SetBkColor", "SetBkColor", "Gdi32.dll");
external(INT, "SetTextColor", "SetTextColor", "Gdi32.dll");
external(INT, "GetSysColor", "GetSysColor", "User32.dll");
external(INT, "SetLayeredWindowAttributes", "SetLayeredWindowAttributes", "User32");
external(INT, "GetWindowLong", "GetWindowLongA", "User32");
external(INT, "SetWindowLong", "SetWindowLongA", "User32");
createdialog(2);
int DisplayColor, DisplayHeight, DisplayWidth;
int HWND = gethwnd(2);
int crKey = GetSysColor(COLOR_3DFACE);
SetWindowLong(HWND,GWL_STYLE, WS_VISIBLE);
SetWindowLong(HWND,GWL_EXSTYLE, WS_EX_LAYERED + WS_EX_TRANSPARENT);
SetLayeredWindowAttributes(HWND, crKey, 0, LWA_COLORKEY);
getdisplay(DisplayColor, DisplayHeight, DisplayWidth);
int HDC = GetDC(HWND);
int Font = CreateFont(-48, 0, 0, 0, 0, 0, 0, 0, RUSSIAN_CHARSET, 0, 0, 0, 0, "Arial"); // шрифт
SelectObject(HDC, Font);
SetTextColor(HDC, rgb(255, 0, 0)); // цвет текста
SetBkColor(HDC, rgb(0, 255, 0)); // цвет фона
showdialog(2, "", 0, 0, DisplayHeight, DisplayWidth, 0, 1);
pause(1000);
int x = 0;
loop()
{
TextOut(HDC, 200, 100, format(x), size(format(x)));
x++;
sleep(100);
}
#define GWL_STYLE -16
#define GWL_EXSTYLE -20
#define COLOR_3DFACE 15
#define WS_EX_LAYERED 0x00080000
#define WS_EX_TRANSPARENT 0x00000020
#define WS_VISIBLE 0x10000000
#define RUSSIAN_CHARSET 204
#define TRANSPARENT 1
external(INT, "GetDC", "GetDC", "User32.dll");
external(INT, "TextOut", "TextOutA", "Gdi32.dll");
external(INT, "CreateSolidBrush", "CreateSolidBrush", "Gdi32.dll");
external(INT, "SelectObject", "SelectObject", "Gdi32.dll");
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll");
external(INT, "SetBkMode", "SetBkMode", "Gdi32.dll");
external(INT, "SetBkColor", "SetBkColor", "Gdi32.dll");
external(INT, "SetTextColor", "SetTextColor", "Gdi32.dll");
external(INT, "GetSysColor", "GetSysColor", "User32.dll");
external(INT, "SetLayeredWindowAttributes", "SetLayeredWindowAttributes", "User32");
external(INT, "GetWindowLong", "GetWindowLongA", "User32");
external(INT, "SetWindowLong", "SetWindowLongA", "User32");
createdialog(2);
int DisplayColor, DisplayHeight, DisplayWidth;
int HWND = gethwnd(2);
int crKey = GetSysColor(COLOR_3DFACE);
SetWindowLong(HWND,GWL_STYLE, WS_VISIBLE);
SetWindowLong(HWND,GWL_EXSTYLE, WS_EX_LAYERED + WS_EX_TRANSPARENT);
SetLayeredWindowAttributes(HWND, crKey, 0, LWA_COLORKEY);
getdisplay(DisplayColor, DisplayHeight, DisplayWidth);
int HDC = GetDC(HWND);
int Font = CreateFont(-48, 0, 0, 0, 0, 0, 0, 0, RUSSIAN_CHARSET, 0, 0, 0, 0, "Arial"); // шрифт
SelectObject(HDC, Font);
SetTextColor(HDC, rgb(255, 0, 0)); // цвет текста
SetBkColor(HDC, rgb(0, 255, 0)); // цвет фона
showdialog(2, "", 0, 0, DisplayHeight, DisplayWidth, 0, 1);
pause(1000);
int x = 0;
loop()
{
TextOut(HDC, 200, 100, format(x), size(format(x)));
x++;
sleep(100);
}
3. faryatiev - 30 Декабря, 2023 - 10:23:09 - перейти к сообщению
Zireael , спасибо!
Я играю только в одну игру, так что о других не могу сказать.
Ваш второй вариант рабочий, правда, в моём случае сильно мерцает, но разглядеть можно.
Я играю только в одну игру, так что о других не могу сказать.
Ваш второй вариант рабочий, правда, в моём случае сильно мерцает, но разглядеть можно.
CODE:
external(INT, "GetKey", "GetKeyState", "user32.dll");
external (INT, "mciSendString", "mciSendStringA", "Winmm.dll");
char t[4];
#define LWA_COLORKEY 0x00000001
#define GWL_STYLE -16
#define GWL_EXSTYLE -20
#define COLOR_3DFACE 15
#define WS_EX_LAYERED 0x00080000
#define WS_EX_TRANSPARENT 0x00000020
#define WS_VISIBLE 0x10000000
#define RUSSIAN_CHARSET 204
#define TRANSPARENT 1
external(INT, "GetDC", "GetDC", "User32.dll");
external(INT, "TextOut", "TextOutA", "Gdi32.dll");
external(INT, "CreateSolidBrush", "CreateSolidBrush", "Gdi32.dll");
external(INT, "SelectObject", "SelectObject", "Gdi32.dll");
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll");
external(INT, "SetBkMode", "SetBkMode", "Gdi32.dll");
external(INT, "SetBkColor", "SetBkColor", "Gdi32.dll");
external(INT, "SetTextColor", "SetTextColor", "Gdi32.dll");
external(INT, "GetSysColor", "GetSysColor", "User32.dll");
external(INT, "SetLayeredWindowAttributes", "SetLayeredWindowAttributes", "User32");
external(INT, "GetWindowLong", "GetWindowLongA", "User32");
external(INT, "SetWindowLong", "SetWindowLongA", "User32");
createdialog(2);
int DisplayColor, DisplayHeight, DisplayWidth;
int HWND = gethwnd(2);
int crKey = GetSysColor(COLOR_3DFACE);
SetWindowLong(HWND,GWL_STYLE, WS_VISIBLE);
SetWindowLong(HWND,GWL_EXSTYLE, WS_EX_LAYERED + WS_EX_TRANSPARENT);
SetLayeredWindowAttributes(HWND, crKey, 0, LWA_COLORKEY);
getdisplay(DisplayColor, DisplayHeight, DisplayWidth);
int HDC = GetDC(HWND);
int Font = CreateFont(-48, 0, 0, 0, 0, 0, 0, 0, RUSSIAN_CHARSET, 0, 0, 0, 0, "Arial"); // шрифт
SelectObject(HDC, Font);
SetTextColor(HDC, rgb(255, 0, 0)); // цвет текста
SetBkColor(HDC, rgb(0, 255, 0)); // цвет фона
showdialog(2, "", 0, 0, DisplayHeight, DisplayWidth, 0, 1);
pause(1000);
ex:
int x0 = 0;
//resettextout(0);
loop(200)
{
x0++;
mciSendString("status waveLevel level", address(#t[0]), 16, 3);
//TextOut(HDC, 200, 100, format(x0), size(format(x0)));
textout(0, 200, 100, format(#t[0])+"----------", 0);
if (formatsn(format(#t[0]))>50)
{
mouse (RIGHT);
sleep(rand(1700,1900));
goto ex:;
}
sleep(100);
}
external (INT, "mciSendString", "mciSendStringA", "Winmm.dll");
char t[4];
#define LWA_COLORKEY 0x00000001
#define GWL_STYLE -16
#define GWL_EXSTYLE -20
#define COLOR_3DFACE 15
#define WS_EX_LAYERED 0x00080000
#define WS_EX_TRANSPARENT 0x00000020
#define WS_VISIBLE 0x10000000
#define RUSSIAN_CHARSET 204
#define TRANSPARENT 1
external(INT, "GetDC", "GetDC", "User32.dll");
external(INT, "TextOut", "TextOutA", "Gdi32.dll");
external(INT, "CreateSolidBrush", "CreateSolidBrush", "Gdi32.dll");
external(INT, "SelectObject", "SelectObject", "Gdi32.dll");
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll");
external(INT, "SetBkMode", "SetBkMode", "Gdi32.dll");
external(INT, "SetBkColor", "SetBkColor", "Gdi32.dll");
external(INT, "SetTextColor", "SetTextColor", "Gdi32.dll");
external(INT, "GetSysColor", "GetSysColor", "User32.dll");
external(INT, "SetLayeredWindowAttributes", "SetLayeredWindowAttributes", "User32");
external(INT, "GetWindowLong", "GetWindowLongA", "User32");
external(INT, "SetWindowLong", "SetWindowLongA", "User32");
createdialog(2);
int DisplayColor, DisplayHeight, DisplayWidth;
int HWND = gethwnd(2);
int crKey = GetSysColor(COLOR_3DFACE);
SetWindowLong(HWND,GWL_STYLE, WS_VISIBLE);
SetWindowLong(HWND,GWL_EXSTYLE, WS_EX_LAYERED + WS_EX_TRANSPARENT);
SetLayeredWindowAttributes(HWND, crKey, 0, LWA_COLORKEY);
getdisplay(DisplayColor, DisplayHeight, DisplayWidth);
int HDC = GetDC(HWND);
int Font = CreateFont(-48, 0, 0, 0, 0, 0, 0, 0, RUSSIAN_CHARSET, 0, 0, 0, 0, "Arial"); // шрифт
SelectObject(HDC, Font);
SetTextColor(HDC, rgb(255, 0, 0)); // цвет текста
SetBkColor(HDC, rgb(0, 255, 0)); // цвет фона
showdialog(2, "", 0, 0, DisplayHeight, DisplayWidth, 0, 1);
pause(1000);
ex:
int x0 = 0;
//resettextout(0);
loop(200)
{
x0++;
mciSendString("status waveLevel level", address(#t[0]), 16, 3);
//TextOut(HDC, 200, 100, format(x0), size(format(x0)));
textout(0, 200, 100, format(#t[0])+"----------", 0);
if (formatsn(format(#t[0]))>50)
{
mouse (RIGHT);
sleep(rand(1700,1900));
goto ex:;
}
sleep(100);
}
4. Zireael - 30 Декабря, 2023 - 10:41:21 - перейти к сообщению
Цитата:
в моём случае сильно мерцает
Так не используйте textout.
5. faryatiev - 30 Декабря, 2023 - 10:42:34 - перейти к сообщению
Zireael пишет:
Цитата:
в моём случае сильно мерцает
Так не используйте textout.
Не понял, а что использовать? Мне надо вывести уровень звука.
6. Kibor - 30 Декабря, 2023 - 10:46:47 - перейти к сообщению
faryatiev пишет:
а что использовать?
Можно использовать еще
CODE:
(для просмотра ссылки Вам необходимо авторизоваться)
kiborlog (0, "Текст", 5, 5, 300, 250);
7. Zireael - 30 Декабря, 2023 - 10:47:05 - перейти к сообщению
Цитата:
а что использовать?
TextOut.
8. faryatiev - 30 Декабря, 2023 - 10:53:22 - перейти к сообщению
Zireael пишет:
Цитата:
а что использовать?
TextOut.
Ого, я думал это одно и то же. Теперь всё красиво. Спасибо огромное.
Внешняя функция. Я понял.
9. resident - 30 Декабря, 2023 - 15:27:07 - перейти к сообщению
Zireael пишет:
Так тоже?:
Есть что-нибудь для написания текста в созданном скриншоте?
screen(#scr[0][0],0,0,1280,720,w);
//добавляем текст на скриншот
saveimage(BMP, #scr[0][0], "screenshot_"+format(ts)+".bmp" // сохраняем скриншот с текстом
Я представляю как это сделать, но не так сильно надо, чтоб разрабатывать это
10. Zireael - 30 Декабря, 2023 - 15:58:42 - перейти к сообщению
Цитата:
Есть что-нибудь для написания текста в созданном скриншоте?
Можно собрать в exe и запускать из кибор.
C# (Отобразить)