D
deleted-user-548977
Гость
Автор темы
Если юзать с полноэкранном могут возникать различные проблемы. Тут уж конфликт с виндой
--куда-то
local ffi = require 'ffi'
ffi.cdef [[
bool ShowWindow(unsigned long hWnd, int nCmdShow);
]]
local hwnd = ffi.cast('unsigned long**', 0xC17054)[0][0]
-- разворачиваем
ffi.C.ShowWindow(hwnd, 3)
Если юзать с полноэкранном могут возникать различные проблемы. Тут уж конфликт с виндой
--куда-то
local ffi = require 'ffi'
ffi.cdef [[
bool ShowWindow(unsigned long hWnd, int nCmdShow);
]]
local hwnd = ffi.cast('unsigned long**', 0xC17054)[0][0]
-- разворачиваем
ffi.C.ShowWindow(hwnd, 3)
через раз конечно, но работает, а можно сделать просто чтобы иконка в панели задач начинала мигать? без разворачивания ужеЕсли юзать с полноэкранном могут возникать различные проблемы. Тут уж конфликт с виндой
Lua:--куда-то local ffi = require 'ffi' ffi.cdef [[ bool ShowWindow(unsigned long hWnd, int nCmdShow); ]] local hwnd = ffi.cast('unsigned long**', 0xC17054)[0][0] -- разворачиваем ffi.C.ShowWindow(hwnd, 3)
через раз конечно, но работает, а можно сделать просто чтобы иконка в панели задач начинала мигать? без разворачивания уже
local ffi = require('ffi')
ffi.cdef [[
int BOOL;
int HANDLE;
int HWND;
int bInvert;
HWND GetActiveWindow(void);
BOOL FlashWindow(HWND hWnd, BOOL bInvert);
]]
ffi.C.FlashWindow(ffi.C.GetActiveWindow(), true)
крашит скрипт когда отправляю нужное сообщение, можешь подсказать ошибку?Lua:local ffi = require('ffi') ffi.cdef [[ int BOOL; int HANDLE; int HWND; int bInvert; HWND GetActiveWindow(void); BOOL FlashWindow(HWND hWnd, BOOL bInvert); ]] ffi.C.FlashWindow(ffi.C.GetActiveWindow(), true)
![]()
Функция FlashWindow (winuser.h) - Win32 apps
Мигает указанное окно один раз. Активное состояние окна не изменяется.learn.microsoft.com
local sampev = require 'lib.samp.events'
local ffi = require 'ffi'
function sampev.onServerMessage(color, text)
if text:match('o_o') then
ffi.cdef [[
int BOOL;
int HANDLE;
int HWND;
int bInvert;
HWND GetActiveWindow(void);
BOOL FlashWindow(HWND hWnd, BOOL bInvert);
]]
ffi.C.FlashWindow(ffi.C.GetActiveWindow(), true)
end
end
мб я обосрался пока пытался переписать, есть точно работающий сниппет https://www.blast.hk/threads/13380/post-272625крашит скрипт когда отправляю нужное сообщение, можешь подсказать ошибку?
Lua:local sampev = require 'lib.samp.events' local ffi = require 'ffi' function sampev.onServerMessage(color, text) if text:match('o_o') then ffi.cdef [[ int BOOL; int HANDLE; int HWND; int bInvert; HWND GetActiveWindow(void); BOOL FlashWindow(HWND hWnd, BOOL bInvert); ]] ffi.C.FlashWindow(ffi.C.GetActiveWindow(), true) end end
А то что ты получаешь hwnd активного окна, когда человек собирается это юзать в свёрнутом режиме ни о чём не говорит?мб я обосрался пока пытался переписать, есть точно работающий сниппет https://www.blast.hk/threads/13380/post-272625
local hwnd = ffi.cast('unsigned long**', 0xC17054)[0][0]
Полноэкран к сожалению работает хреново. Это вопрос винды, с этим на 100% нельзя справиться. Особенно больно из другого полноэкрана и темболее сампа разворачиватьсячерез раз конечно, но работает, а можно сделать просто чтобы иконка в панели задач начинала мигать? без разворачивания уже
ffi.cdef [[
unsigned long GetForegroundWindow(void);
]]
local fore = ffi.C.GetForegroundWindow()
if fore ~= hwnd then
ffi.C.ShowWindow(fore, 6)
wait(500)
ffi.C.ShowWindow(hwnd, 3)
end
спасибо, а не подскажешь как использовать его в коде? у меня никак не получается, не доходит до меняА то что ты получаешь hwnd активного окна, когда человек собирается это юзать в свёрнутом режиме ни о чём не говорит?
Вот статический адрес hwnd окна игры, который вернёт то что нужно при любых обстоятельствах. Используйте его, а не какой-то GetActiveWindow
Lua:local hwnd = ffi.cast('unsigned long**', 0xC17054)[0][0]
Полноэкран к сожалению работает хреново. Это вопрос винды, с этим на 100% нельзя справиться. Особенно больно из другого полноэкрана и темболее сампа разворачиваться
Я вывел +- для себя стабильный способ работающий в 99.9% случаев. Мои условия: Фикс реестра + антиафк + лаунчер арз + винда 10.
500мс это прям на грани и скорее всего если пк слабый этого будет мало. Ставь больше если чтоLua:ffi.cdef [[ unsigned long GetForegroundWindow(void); ]] local fore = ffi.C.GetForegroundWindow() if fore ~= hwnd then ffi.C.ShowWindow(fore, 6) wait(500) ffi.C.ShowWindow(hwnd, 3) end
local sampev = require 'lib.samp.events'
local ffi = require 'ffi'
ffi.cdef [[
unsigned long GetForegroundWindow(void);
]]
local fore = ffi.C.GetForegroundWindow()
function sampev.onServerMessage(color, text)
if text:match('o_o') then
lua_thread.create(function()
if fore ~= hwnd then
ffi.C.ShowWindow(fore, 6)
wait(500)
ffi.C.ShowWindow(hwnd, 3)
addOneOffSound(0.00, 0.00, 0.00, 1132)
end
end)
end
end
Пока ты в свёрнутом режиме, игра не работает, сообщения не хукаются. Тебе нужно, чтобы игра работала в свёрнутом режиме и событие обрабатывалось. Можешь спиздить код отсюда.спасибо, а не подскажешь как использовать его в коде? у меня никак не получается, не доходит до меня
функции main нет потому что в основном коде она занята под регистрацию команд
Lua:local sampev = require 'lib.samp.events' local ffi = require 'ffi' ffi.cdef [[ unsigned long GetForegroundWindow(void); ]] local fore = ffi.C.GetForegroundWindow() function sampev.onServerMessage(color, text) if text:match('o_o') then lua_thread.create(function() if fore ~= hwnd then ffi.C.ShowWindow(fore, 6) wait(500) ffi.C.ShowWindow(hwnd, 3) addOneOffSound(0.00, 0.00, 0.00, 1132) end end) end end
антиафк есть, звук появляется, но ничего кроме этого не происходитПока ты в свёрнутом режиме, игра не работает, сообщения не хукаются. Тебе нужно, чтобы игра работала в свёрнутом режиме и событие обрабатывалось. Можешь спиздить код отсюда.
![]()
Lua - Работа в свёрнутом режиме
Всем привет, меня зовут Vintik Недавно я искал и, как можете догадаться, нашёл (в этой теме) скрипт "работа в свёрнутом режиме". Суть его в том, что Вы можете свернуть игру (например, через Alt + Tab), а она будет продолжать работать. Очень удобно, если Вы, например, сидите в тюрьме – свернули...www.blast.hk
хорошо, в целом со всем, что мне нужно было я разобрался, спасибо всемМожешь тут поковырять
![]()
Lua - @Mentions - Упоминания в чате
Упоминания игроков и оповещения о них в чате SA:MP Скрипт, позволяющий быстро упоминать других игроков в чате различными способами через символ @, например: @Jeffy_Cosmo. Подробнее о всех способах ниже в спойлере "Варианты упоминаний игроков". Функционал данной системы очень пригодится в любой...www.blast.hk
Ну кинь тогда полный код или опиши хоть что не такспасибо, а не подскажешь как использовать его в коде? у меня никак не получается, не доходит до меня
функции main нет потому что в основном коде она занята под регистрацию команд
Lua:local sampev = require 'lib.samp.events' local ffi = require 'ffi' ffi.cdef [[ unsigned long GetForegroundWindow(void); ]] local fore = ffi.C.GetForegroundWindow() function sampev.onServerMessage(color, text) if text:match('o_o') then lua_thread.create(function() if fore ~= hwnd then ffi.C.ShowWindow(fore, 6) wait(500) ffi.C.ShowWindow(hwnd, 3) addOneOffSound(0.00, 0.00, 0.00, 1132) end end) end end