- Версия MoonLoader
- .027.0-preview
(я вообще ничего не понимать в CEF)
В общем, у меня есть один скрипт, и в нем есть одна функция для инвентаря. Колхозить имгуи окна при открытии инвентаря или задрачивать команды для этой функции - не хотелось. Поэтому появилась идея: Нарисовать свою кнопку в инвентаре, а по ее нажатию уже запускать функцию. Кое-как вышло добавить кнопку, а вот с вызовом функции из скрипта - я встал в тупик. Как мне это можно реализовать? Хелп ми плиз, знатоки. Была мысль цефом отправить свой пакет, а скриптом его перехватить и вызвать функцию - но вышла лажа
В общем, у меня есть один скрипт, и в нем есть одна функция для инвентаря. Колхозить имгуи окна при открытии инвентаря или задрачивать команды для этой функции - не хотелось. Поэтому появилась идея: Нарисовать свою кнопку в инвентаре, а по ее нажатию уже запускать функцию. Кое-как вышло добавить кнопку, а вот с вызовом функции из скрипта - я встал в тупик. Как мне это можно реализовать? Хелп ми плиз, знатоки. Была мысль цефом отправить свой пакет, а скриптом его перехватить и вызвать функцию - но вышла лажа
Lua:
function initializeInventory()
evalcef([[
(function(){
if (window.invObserver) return;
function inject() {
const header = document.querySelector('.inventory-window__header-title');
const header2 = header.querySelector('.inventory-window__header-title-icon.icon-bag');
if (!header2) return;
if (header.querySelector('#inv-stack-wrapper')) return;
const wrapper = document.createElement('div');
wrapper.id = 'inv-stack-wrapper';
wrapper.className = 'inventory-window__header-title';
wrapper.innerHTML = `
''
<i id="inventory-stack" class="inventory-window__header-control-sort icon-refresh" ></i>
`;
header.appendChild(wrapper);
wrapper.querySelector('#inventory-stack').onclick = function() {
*ТУТ МОГ БЫТЬ ВЫЗОВ ФУНКЦИИ, но увы((*
};
console.log('[INV] injected');
}
// наблюдатель за DOM
window.invObserver = new MutationObserver(() => {
inject();
});
window.invObserver.observe(document.body, {
childList: true,
subtree: true
});
// первая попытка
inject();
})();
]])
end