Lua ASI SF console hook (вывод в windows console)

g305noobo

Известный
Автор темы
Модератор
304
479
Версия SA-MP
  1. 0.3.7 (R1)
  2. 0.3.7-R3
Описание: создает консоль от Windows и выводит туда сообщения из консоли SAMPFUNCS.
для двух+ мониторов супер удобно 😎
1707773884571.png


- изменена кодировка на 1251 (теперь русские символы отображаются корректно)
- включены ANSI escape codes (позволяет использовать 8 разных цветов)
Lua:
local color = {
    reset = "\027[0m",
    black = "\027[30m",
    red = "\027[31m",
    green = "\027[32m",
    yellow = "\027[33m",
    blue = "\027[34m",
    magenta = "\027[35m",
    cyan = "\027[36m",
    white = "\027[37m"
}
- добавлена функция, которая извлекает цвет из строки и заменяет его на ближайший по цвету ANSI (в двух словах, теперь консоль будет примерно с такими же цветами как и в сф)
- добавлена поддержка SAMPFUNCS R3 (правда я не тестил..)
 

Вложения

  • sampfuncs_to_windows.lua
    4 KB · Просмотры: 32
  • sampfuncs_to_windows.asi
    33.5 KB · Просмотры: 12
Последнее редактирование:

kyrtion

Известный
902
321
круто сделал! когда нибудь протестирую и отпишусь отзыв)

для двух+ мониторов супер удобно 😎
можно и 1 монитор, если игра запущена в оконном режиме

UPD: наверное надо поставить префикс эксклюзив этой темы, но я тебе поддерживаю
 
Последнее редактирование:

kyrtion

Известный
902
321
@g305noobo
есть предложение на поправки (или как исправить?)
1. Первое мысли приходило это поддержка кириллицы и других языках.
Попытался конвертировать, но вышло не получилось. Может надо буффировать эта строка и конвертировать в UTF-8? (не шарю)
1707728903123.png


2. Поддержка цветов.
Попытался конвертировать цвета в консоли, ну допустим 27[31m, 27[0m. Не получилось
Ну в итоге только ждать ваш ответ)
 
  • Нравится
Реакции: Madjestik

g305noobo

Известный
Автор темы
Модератор
304
479
@g305noobo
есть предложение на поправки (или как исправить?)
1. Первое мысли приходило это поддержка кириллицы и других языках.
Попытался конвертировать, но вышло не получилось. Может надо буффировать эта строка и конвертировать в UTF-8? (не шарю)
Посмотреть вложение 231816

2. Поддержка цветов.
Попытался конвертировать цвета в консоли, ну допустим 27[31m, 27[0m. Не получилось
Ну в итоге только ждать ваш ответ)
для кириллицы в луа добавь SetConsoleOutputCP
Lua:
ffi.cdef[[
    int AllocConsole();
    int WriteConsoleA(void* hConsoleOutput, const char* lpBuffer, unsigned long nNumberOfCharsToWrite, unsigned long* lpNumberOfCharsWritten, void* lpReserved);
    void* GetStdHandle(unsigned long nStdHandle);
    int SetConsoleOutputCP(unsigned int CodePage);
]]

ffi.C.AllocConsole()
ffi.C.SetConsoleOutputCP(1251)
-- пример вывода: print_console("Example, пример\n")
попозже добавлю это и цвета в скрипт/плагин из темы + поддержку р3 сампфункса
 
  • Влюблен
Реакции: kyrtion

kyrtion

Известный
902
321
для кириллицы в луа добавь SetConsoleOutputCP
попозже добавлю это и цвета в скрипт/плагин из темы + поддержку р3 сампфункса
оу май гад...

а кстати, когда выделяешь текст (попытался что-нибудь сделать, чтобы остановился игру я попытался вроде 5-6 раз выделить (ток иметь анти-афк, многопоточные и оконный режим))
 

g305noobo

Известный
Автор темы
Модератор
304
479
оу май гад...

а кстати, когда выделяешь текст (попытался что-нибудь сделать, чтобы остановился игру я попытался вроде 5-6 раз выделить (ток иметь анти-афк, многопоточные и оконный режим))
ничего не понял
 
  • Нравится
Реакции: AnWu

kyrtion

Известный
902
321
ничего не понял
попытаюсь как правильно сказать, чтобы у тебя хорошо вообразило.
ну общем, если выделить текст в консоле (изменится в заголовке на "Выбрать C:\Games\gta_sa.exe"), игра останавливается и пока я не отпускаю выделение в консоль
 

_razor

t.me/sssecretway | ТГК: t.me/razor_code
Всефорумный модератор
1,948
3,211
попытаюсь как правильно сказать, чтобы у тебя хорошо вообразило.
ну общем, если выделить текст в консоле (изменится в заголовке на "Выбрать C:\Games\gta_sa.exe"), игра останавливается и пока я не отпускаю выделение в консоль
потому что в одном потоке все работает, при выделении текста в консоли она замораживается, поэтому игра и встает
 
  • Нравится
Реакции: kyrtion и g305noobo

g305noobo

Известный
Автор темы
Модератор
304
479
🤔
- изменена кодировка на 1251 (теперь русские символы отображаются корректно)
- включены ANSI escape codes (позволяет использовать 8 разных цветов)
Lua:
local color = {
reset = "\027[0m",
black = "\027[30m",
red = "\027[31m",
green = "\027[32m",
yellow = "\027[33m",
blue = "\027[34m",
magenta = "\027[35m",
cyan = "\027[36m",
white = "\027[37m"
}
- добавлена функция, которая извлекает цвет из строки и заменяет его на ближайший по цвету ANSI (в двух словах, теперь консоль будет примерно с такими же цветами как и в сф)
- добавлена поддержка SAMPFUNCS R3 (правда я не тестил..)
 
  • Нравится
Реакции: kyrtion