- Версия MoonLoader
- Другое
Пытаюсь добавить свой cef интерфейс по коду chapo, но в игре он не отображается.
Lua:
require("ArizonaAPI")
-- [ COMMON ] --
local function debugMsg(...)
print(('[LuaCEF] [DEBUG] %s'):format(table.concat({ ... }), '\t'));
end
-- [ CEF ] --
local LuaCEF = {}
setmetatable(LuaCEF, {__call = function(t, ...)
return t:new(...)
end})
function LuaCEF:eval(code, fallback)
local fn = executeUIBrowserJSCode or function() end;
return fn(([[
try {
eval(`%s`);
} catch(e) {
%s;
}
]]):format(code, fallback or ''));
end
function LuaCEF:new(id)
local instance = {
id = id,
visible = false
};
return setmetatable(instance, {__index = self})
end
function LuaCEF:destroy()
LuaCEF:eval(([[
const uiElement = document.querySelector('#%s');
if (uiElement)
uiElement.remove();
]]):format(self.id));
end
function LuaCEF:setVisible(isVisible, displayMode)
debugMsg('Switching iframe visible to', tostring(isVisible));
self.visible = isVisible;
LuaCEF:eval(([[
document.querySelector('#%s').style.display = '%s';
]]):format(self.id, isVisible and (displayMode or 'block') or 'none', self.id));
end
function LuaCEF:createFromFile(path)
self.path = path;
LuaCEF:eval(([[
const b = document.querySelector('body');
const f = document.createElement('iframe');
f.id = '%s';
f.src = '%s';
f.style.width = '100vw';
f.style.height = '100vh';
f.style.display = 'none';
f.style.backgroundColor = 'transparent';
b.appendChild(f);
]]):format(self.id, 'clientfile://./../Game/Gameface/Binaries/Win64/TrilogyLoader/cef/' .. path));
debugMsg('iframe created, id:', tostring(self.id), 'display changed to "none"');
end
-- [ MAIN ] --
local ui = LuaCEF:new('shitcefmenu');
function onScriptLoad()
sampRegisterChatCommand('togglemenu', function()
ui:setVisible(not ui.visible);
sampAddChatMessage('Меню ' .. (ui.visible and 'включено' or 'выключено'), 0xFFffffff);
end);
end
function onExitScript()
ui:destroy();
end
function onSendUIBrowserMessage(msg)
if (msg == 'onSvelteAppInit') then
ui:createFromFile('testcef.html');
end
end
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Test button</title>
<style>
@import url('https://fonts.cdnfonts.com/css/gilroy-bold');
button {
font-family: 'Gilroy-Bold', sans-serif;
padding: 10px 20px;
font-size: 16px;
cursor: pointer;
}
</style>
</head>
<body>
<div id="main">
<button onclick="">Click Me</button>
</div>
</body>
</html>