windowmessage

wojciech?

Известный
Автор темы
Проверенный
396
291
Версия MoonLoader
.027.0-preview
почему не игнорирует нажатие кнопки мыши (с простыми кнопками всё окей)?
Lua:
addEventHandler("onWindowMessage", function(message, parameters, lparameters)
  if (message == 0x201) then
    consumeWindowMessage(true, false)
  end
end)
 
Решение
сори за некропостинг
проблема актуальная, @wojciech? у тебя получилось это решить?
Lua:
local hook = require("hooks")
local vkeys = require("vkeys")

function CControllerConfigManager__GetIsMouseButtonDown(this, key)
    if key == vkeys.VK_LBUTTON then
        return 0
    else
        return CControllerConfigManager__GetIsMouseButtonDown(this, key)
    end
end

CControllerConfigManager__GetIsMouseButtonDown = hook.jmp.new("char(__thiscall*)(void*, int)", CControllerConfigManager__GetIsMouseButtonDown, 0x52EF30)

chapo

tg/inst: @moujeek
Модератор
9,080
12,069
почему не игнорирует нажатие кнопки мыши (с простыми кнопками всё окей)?
Lua:
addEventHandler("onWindowMessage", function(message, parameters, lparameters)
  if (message == 0x201) then
    consumeWindowMessage(true, false)
  end
end)

Lua:
WM_LBUTTONDOWN = 0x0201, -- зажатие лкм
WM_LBUTTONUP = 0x0202, -- отжатие лкм
WM_LBUTTONDBLCLK = 0x0203, -- двойной клик лкм

WM_RBUTTONDOWN = 0x0204, -- зажатие пкм
WM_RBUTTONUP = 0x0205, -- отжатие пкм
WM_RBUTTONDBLCLK = 0x0206, -- двойной клик пкм
 
  • Нравится
  • Вау
Реакции: VanoKLR и YarikVL

wojciech?

Известный
Автор темы
Проверенный
396
291
Lua:
WM_LBUTTONDOWN = 0x0201, -- зажатие лкм
WM_LBUTTONUP = 0x0202, -- отжатие лкм
WM_LBUTTONDBLCLK = 0x0203, -- двойной клик лкм

WM_RBUTTONDOWN = 0x0204, -- зажатие пкм
WM_RBUTTONUP = 0x0205, -- отжатие пкм
WM_RBUTTONDBLCLK = 0x0206, -- двойной клик пкм
он само событие видит, но не хочет игнорировать нажатие
при чем если указать игнорирование для скриптов, то для них оно срабатывает, а вот в самой игре проходит
 
Последнее редактирование:

wojciech?

Известный
Автор темы
Проверенный
396
291
сори за некропостинг
проблема актуальная, @wojciech? у тебя получилось это решить?
Lua:
local hook = require("hooks")
local vkeys = require("vkeys")

function CControllerConfigManager__GetIsMouseButtonDown(this, key)
    if key == vkeys.VK_LBUTTON then
        return 0
    else
        return CControllerConfigManager__GetIsMouseButtonDown(this, key)
    end
end

CControllerConfigManager__GetIsMouseButtonDown = hook.jmp.new("char(__thiscall*)(void*, int)", CControllerConfigManager__GetIsMouseButtonDown, 0x52EF30)
 
  • Влюблен
Реакции: stool

stool

Известный
433
351
Lua:
local hook = require("hooks")
local vkeys = require("vkeys")

function CControllerConfigManager__GetIsMouseButtonDown(this, key)
    if key == vkeys.VK_LBUTTON then
        return 0
    else
        return CControllerConfigManager__GetIsMouseButtonDown(this, key)
    end
end

CControllerConfigManager__GetIsMouseButtonDown = hook.jmp.new("char(__thiscall*)(void*, int)", CControllerConfigManager__GetIsMouseButtonDown, 0x52EF30)
метод очень нестабильный
как минимум при запуске игры зависнет наглухо в черном экране, во время игры может крашнуть к хуям
 

wojciech?

Известный
Автор темы
Проверенный
396
291
метод очень нестабильный
как минимум при запуске игры зависнет наглухо в черном экране, во время игры может крашнуть к хуям
как ты его используешь?
 

stool

Известный
433
351
как ты его используешь?
сори за поздний ответ
да банально в конец готового кода запихал и уже словил смерть (рендер зависает, через несколько секунд вылет игры с адресом 0x00000000 o_O)

ps если убрать этот кусок кода, то игра будет точно так же виснуть
1718660858282.png


upd: я разобрался в чем проблема: в готовом коде я забыл подключить vkeys, что приводило к тому, что CController...ButtonDown никак не обрабатывался и соответственно игра шла по пизде.
вывод - я долбоеб, метод адекватный, надо было просто глаза открыть
 
Последнее редактирование:
  • Эм
Реакции: qdIbp