local imgui = require('imgui')
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
local sampev = require 'lib.samp.events'
local inicfg = require 'inicfg'
local directIni = 'StreamChatByChapo.ini'
local ini = inicfg.load(inicfg.load({
main = {
enabled = true,
sizeX = 300,
sizeY = 300,
posX = select(1, getScreenResolution()) - 320,
posY = select(2, getScreenResolution()) - 325,
},
}, directIni))
inicfg.save(ini, directIni)
local LAST_POS = {x = 0, y = 0}
local LAST_SIZE = {x = 0, y = 0}
local text = 'Сообщения в зоне стрима:\n'
function sampev.onPlayerChatBubble(playerId, color, dist, dur, msg)
if not msg:find('шлакбаум') and not msg:find('карман') and not msg:find('Кушает') and not msg:find('{73B461}') and not msg:find('Смотрит на') then
msg = msg:gsub('{......}', '')
if #msg > 1 then
text = text..sampGetPlayerNickname(playerId)..' ['..playerId..']: '..msg..'\n'
end
end
end
function save()
ini.main.posX, ini.main.posY = LAST_POS.x, LAST_POS.y
ini.main.sizeX, ini.main.sizeY = LAST_SIZE.x, LAST_SIZE.y
inicfg.save(ini, directIni)
end
function onScriptTerminate(s, q)
if s == thisScript() then
save()
end
end
local window = imgui.ImBool(false)
function main()
while not isSampAvailable() do wait(200) end
imgui.Process = false
window.v = true
while 'chapo' ~= 'gay' do
wait(0)
imgui.Process = window.v
end
end
function imgui.OnDrawFrame()
if window.v then
imgui.SetNextWindowPos(imgui.ImVec2(ini.main.posX, ini.main.posY), imgui.Cond.FirstUseEver)
imgui.SetNextWindowSize(imgui.ImVec2(ini.main.sizeX, ini.main.sizeY), imgui.Cond.FirstUseEver)
imgui.Begin('StreamChat by chapo', window, imgui.WindowFlags.NoTitleBar)
LAST_POS = imgui.GetWindowPos()
LAST_SIZE = imgui.GetWindowSize()
imgui.ShowCursor = false
local size = imgui.GetWindowSize()
imgui.SetCursorPos(imgui.ImVec2(5, 5))
imgui.BeginChild('main', imgui.ImVec2(size.x - 10, size.y - 10), true)
imgui.TextWrapped(u8(text))
imgui.EndChild()
imgui.End()
end
end
function BH_theme()
imgui.SwitchContext()
local style = imgui.GetStyle()
local colors = style.Colors
local clr = imgui.Col
local ImVec4 = imgui.ImVec4
local ImVec2 = imgui.ImVec2
style.WindowPadding = ImVec2(6, 4)
style.WindowRounding = 5.0
style.ChildWindowRounding = 5.0
style.FramePadding = ImVec2(5, 2)
style.FrameRounding = 5.0
style.ItemSpacing = ImVec2(7, 5)
style.ItemInnerSpacing = ImVec2(1, 1)
style.TouchExtraPadding = ImVec2(0, 0)
style.IndentSpacing = 6.0
style.ScrollbarSize = 12.0
style.ScrollbarRounding = 5.0
style.GrabMinSize = 20.0
style.GrabRounding = 2.0
style.WindowTitleAlign = ImVec2(0.5, 0.5)
colors[clr.Text] = ImVec4(1.00, 1.00, 1.00, 1.00)
colors[clr.WindowBg] = ImVec4(0.16, 0.18, 0.22, 0.2)
colors[clr.ChildWindowBg] = ImVec4(0.19, 0.22, 0.26, 0.2)
colors[clr.Border] = ImVec4(0.19, 0.22, 0.26, 1.00)
end
BH_theme()