SlonPvpru

[ARZ] LoadingCrasher MrCreepTon v2.0

Jun 4th, 2020
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 21.96 KB | None | 0 0
  1. -- https://www.blast.hk/threads/45566/
  2.  
  3. local ev = require('lib.samp.events')
  4. local ini = require('inicfg')
  5. local effil = require('effil')
  6. local md5 = require('md5')
  7. local imgui = require('imgui')
  8. local encoding = require('encoding')
  9. local vk = require('vkeys')
  10. encoding.default = 'CP1251'
  11. local u8 = encoding.UTF8
  12. local protect = false
  13.  
  14.  
  15.  
  16. function ev.onSendEnterVehicle()
  17.     lua_thread.create(function()
  18.         protect = true
  19.         wait(2000)
  20.         protect = false
  21.     end)
  22. end
  23.  
  24. function ev.onUnoccupiedSync()
  25.     if protect then return false end
  26. end
  27.  
  28. function samp_create_jopa_data(sync_type, copy_from_player)
  29.     local ffi = require 'ffi'
  30.     local sampfuncs = require 'sampfuncs'
  31.     -- from SAMP.Lua
  32.     local raknet = require 'samp.raknet'
  33.     --require 'samp.synchronization'
  34.     copy_from_player = copy_from_player or true
  35.  
  36.     local sync_traits = {
  37.         player = {'PlayerSyncData', raknet.PACKET.PLAYER_SYNC, sampStorePlayerOnfootData},
  38.         vehicle = {'VehicleSyncData', raknet.PACKET.VEHICLE_SYNC, sampStorePlayerIncarData},
  39.         passenger = {'PassengerSyncData', raknet.PACKET.PASSENGER_SYNC, sampStorePlayerPassengerData},
  40.         aim = {'AimSyncData', raknet.PACKET.AIM_SYNC, sampStorePlayerAimData},
  41.         trailer = {'TrailerSyncData', raknet.PACKET.TRAILER_SYNC, sampStorePlayerTrailerData},
  42.         unoccupied = {'UnoccupiedSyncData', raknet.PACKET.UNOCCUPIED_SYNC, nil},
  43.         bullet = {'BulletSyncData', raknet.PACKET.BULLET_SYNC, nil},
  44.         spectator = {'SpectatorSyncData', raknet.PACKET.SPECTATOR_SYNC, nil}
  45.     }
  46.     local sync_info = sync_traits[sync_type]
  47.     local data_type = 'struct ' .. sync_info[1]
  48.     local data = ffi.new(data_type, {})
  49.     local raw_data_ptr = tonumber(ffi.cast('uintptr_t', ffi.new(data_type .. '*', data)))
  50.     -- copy player's sync data to the allocated memory
  51.     if copy_from_player then
  52.  
  53.         local copy_func = sync_info[3]
  54.         if copy_func then
  55.  
  56.             local _, player_id
  57.             if copy_from_player == true then
  58.                 _, player_id = sampGetPlayerIdByCharHandle(PLAYER_PED)
  59.             else
  60.                 player_id = tonumber(copy_from_player)
  61.             end
  62.             copy_func(player_id, raw_data_ptr)
  63.         end
  64.     end
  65.     -- function to send packet
  66.     local func_send = function()
  67.         local bs = raknetNewBitStream()
  68.         raknetBitStreamWriteInt8(bs, sync_info[2])
  69.         raknetBitStreamWriteBuffer(bs, raw_data_ptr, ffi.sizeof(data))
  70.         raknetSendBitStreamEx(bs, sampfuncs.HIGH_PRIORITY, sampfuncs.UNRELIABLE_SEQUENCED, 1)
  71.         raknetDeleteBitStream(bs)
  72.     end
  73.     -- metatable to access sync data and 'send' function
  74.     local mt = {
  75.         __index = function(t, index)
  76.             return data[index]
  77.         end,
  78.         __newindex = function(t, index, value)
  79.             data[index] = value
  80.         end
  81.     }
  82.     return setmetatable({send = func_send}, mt)
  83. end
  84.  
  85. local key = '................................'
  86. local state = false
  87. local menu = imgui.ImBool(false)
  88. local log = imgui.ImBool(true)
  89. local line = imgui.ImBool(true)
  90. -- local log_posing = false
  91. -- local log_x, log_y = 50, 50
  92. -- local log_text = {
  93. --  'Готов к логгированию',
  94. --  '',
  95. --  '',
  96. --  '',
  97. --  '',
  98. --  '',
  99. --  '',
  100. --  '',
  101. --  '',
  102. -- }
  103. local priv = false
  104. local dissync = false
  105. local max = imgui.ImInt(50)
  106.  
  107. function imgui.OnDrawFrame()
  108.     if menu.v then
  109.         local xw, yw = getScreenResolution()
  110.         imgui.SetNextWindowPos(imgui.ImVec2(xw/2, yw/2), imgui.Cond.FirstUseEver)
  111.         imgui.SetNextWindowSize(imgui.ImVec2(500, 170), imgui.Cond.FirstUseEver)
  112.         imgui.Begin(u8'Бутыльный разрыватель | Автор: MrCreepTon', menu, imgui.WindowFlags.NoResize)
  113.         if state then
  114.             if imgui.Button(u8'Выключить', imgui.ImVec2(-0.1, 20)) then
  115.                 sampProcessChatInput('/butilka')
  116.             end
  117.         else
  118.             if imgui.Button(u8'Включить', imgui.ImVec2(-0.1, 20)) then
  119.                 sampProcessChatInput('/butilka')
  120.             end
  121.         end
  122.         if imgui.Button(u8'Сохранить настройки', imgui.ImVec2(-0.1, 20)) then
  123.             saveIni()
  124.         end
  125.         imgui.Separator()
  126.         imgui.BeginChild(u8'##window1', imgui.ImVec2(275, 70), false)
  127.         imgui.Checkbox(u8'Включить логгирование', log)
  128.         -- if log.v then
  129.         --  if imgui.Button(u8'Изменить местоположение окна') then
  130.         --      log_posing = true
  131.         --  end
  132.         -- end
  133.         imgui.Checkbox(u8'Включить линии к жертвам', line)
  134.         imgui.EndChild()
  135.         imgui.SameLine()
  136.         imgui.BeginChild(u8'##window2', imgui.ImVec2(200, 70), false)
  137.         imgui.PushItemWidth(50)
  138.         imgui.InputInt(u8'Радиус', max, 0, 0)
  139.         imgui.EndChild()
  140.         imgui.End()
  141.     end
  142.     -- if log.v then
  143.     --  imgui.SetNextWindowPos(imgui.ImVec2(log_x, log_y))
  144.     --  imgui.SetNextWindowSize(imgui.ImVec2(350, 200))
  145.     --  imgui.Begin(u8'Butilka Logging', false, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
  146.     --  imgui.TextColoredRGB(log_text[1])
  147.     --  imgui.TextColoredRGB(log_text[2])
  148.     --  imgui.TextColoredRGB(log_text[3])
  149.     --  imgui.TextColoredRGB(log_text[4])
  150.     --  imgui.TextColoredRGB(log_text[5])
  151.     --  imgui.TextColoredRGB(log_text[6])
  152.     --  imgui.TextColoredRGB(log_text[7])
  153.     --  imgui.TextColoredRGB(log_text[8])
  154.     --  imgui.TextColoredRGB(log_text[9])
  155.     --  imgui.End()
  156.     -- end
  157. end
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165. local a = {
  166.     'a',
  167.     'b',
  168.     'c',
  169.     'd',
  170.     'e',
  171.     'f',
  172.     'g',
  173.     'h',
  174.     'i',
  175.     'j',
  176.     'k',
  177.     'l',
  178.     'm',
  179.     'n',
  180.     'p',
  181.     'q',
  182.     'r',
  183.     's',
  184.     't',
  185.     'u',
  186.     'v',
  187.     'w',
  188.     'x',
  189.     'y',
  190.     'z'
  191. }
  192.  
  193.  
  194.  
  195. local c = {
  196.     'а',
  197.     'б',
  198.     'в',
  199.     'г',
  200.     'д',
  201.     'е',
  202.     'ё',
  203.     'ж',
  204.     'з',
  205.     'и',
  206.     'й',
  207.     'к',
  208.     'л',
  209.     'м',
  210.     'н',
  211.     'о',
  212.     'п',
  213.     'р',
  214.     'с',
  215.     'т',
  216.     'у',
  217.     'ф',
  218.     'х',
  219.     'ц',
  220.     'ч',
  221.     'ш',
  222.     'щ',
  223.     'ъ',
  224.     'ы',
  225.     'ь',
  226.     'э',
  227.     'ю',
  228.     'я'
  229. }
  230.  
  231.  
  232.  
  233.  
  234.  
  235. local e = {
  236.     'А',
  237.     'Б',
  238.     'В',
  239.     'Г',
  240.     'Д',
  241.     'Е',
  242.     'Ё',
  243.     'Ж',
  244.     'З',
  245.     'И',
  246.     'Й',
  247.     'К',
  248.     'Л',
  249.     'М',
  250.     'Н',
  251.     'О',
  252.     'П',
  253.     'Р',
  254.     'С',
  255.     'Т',
  256.     'У',
  257.     'Ф',
  258.     'Х',
  259.     'Ц',
  260.     'Ч',
  261.     'Ш',
  262.     'Щ',
  263.     'Ъ',
  264.     'Ы',
  265.     'Ь',
  266.     'Э',
  267.     'Ю',
  268.     'Я'
  269. }
  270.  
  271.  
  272.  
  273. function renderTarget(id)
  274.     local t = lua_thread.create(function()
  275.         local _, ped = sampGetCharHandleBySampPlayerId(id)
  276.         local gx, gy, gz = 0, 0, 0
  277.         if _ then
  278.             gx, gy, gz = getCharCoordinates(ped)
  279.         else
  280.             return false
  281.         end
  282.         while _ and state do
  283.             wait(10)
  284.  
  285.             _, ped = sampGetCharHandleBySampPlayerId(id)
  286.             if _ then
  287.                 local mx, my, mz = getCharCoordinates(PLAYER_PED)
  288.                 local x, y, z = getCharCoordinates(ped)
  289.                 if not isCharInArea3d(ped, gx - 5, gy - 5, gz - 5, gx + 5, gy + 5, gz + 5, false) then
  290.                     break
  291.                 end
  292.                 local mxw, myw = convert3DCoordsToScreen(mx, my, mz)
  293.                 local xw, yw = convert3DCoordsToScreen(x, y, z)
  294.                 if isCharOnScreen(ped) then
  295.                     renderDrawLine(mxw, myw, xw, yw, 2, 0xFFFF5656)
  296.                 end
  297.             end
  298.         end
  299.     end)
  300.     --t:terminate()
  301. end
  302.  
  303. function main()
  304.     repeat wait(0) until isSampAvailable()
  305.     wait(2000)
  306.     loadIni()
  307.     sampAddChatMessage('{FF5656}[Бутыльный разрыватель]: {FFFFFF}Успешно загрузились!', -1)
  308.     sampRegisterChatCommand('butilka.menu', function()
  309.         menu.v = not menu.v
  310.     end)
  311.     sampRegisterChatCommand('butilka', function()
  312.         state = not state
  313.         if state then return sampAddChatMessage('{FF5656}[Бутыльный разрыватель]: {FFFFFF}Включен!', -1) end
  314.         return sampAddChatMessage('{FF5656}[Бутыльный разрыватель]: {FFFFFF}Выключен!', -1)
  315.     end)
  316.     while true do
  317.         wait(0)
  318.         -- if log_posing then
  319.         --  if isKeyDown(vk.VK_LBUTTON) then
  320.         --      log_posing = false
  321.         --      sampToggleCursor(false)
  322.         --      sampAddChatMessage('{FF5656}[Бутыльный разрыватель]: {FFFFFF}Успешно установлены новые координаты!', -1)
  323.         --      sampAddChatMessage('{FF5656}[Бутыльный разрыватель]: {FFFFFF}Если после закрытия меню вы заморозитесь, прожмите {FF5656}ESC', -1)
  324.         --  end
  325.         --  sampToggleCursor(true)
  326.         --  local xw, yw = getCursorPos()
  327.         --  log_x, log_y = xw + 20, yw
  328.         -- end
  329.         imgui.Process = menu.v
  330.     end
  331. end
  332.  
  333.  
  334.  
  335. function loadIni()
  336.     local settings = ini.load(nil, 'nabutilku1.1')
  337.     if settings == nil then
  338.         saveIni()
  339.     else
  340.         max.v = settings.settings.radius
  341.         log.v = settings.settings.log
  342.         line.v = settings.settings.line
  343.     end
  344. end
  345.  
  346. function zapros(method, url, args, resolve, reject)
  347.     local request_thread = effil.thread(function (method, url, args)
  348.         local requests = require 'requests'
  349.         local result, response = pcall(requests.request, method, url, args)
  350.         if result then
  351.             response.json, response.xml = nil, nil
  352.             return true, response
  353.         else
  354.             return false, response
  355.         end
  356.     end)(method, url, args)
  357.     -- Если запрос без функций обработки ответа и ошибок.
  358.     if not resolve then resolve = function() end end
  359.     if not reject then reject = function() end end
  360.     -- Проверка выполнения потока
  361.     local t = lua_thread.create(function()
  362.         local runner = request_thread
  363.         while true do
  364.             local status, err = runner:status()
  365.             if not err then
  366.                 if status == 'completed' then
  367.                     local result, response = runner:get()
  368.                     if result then
  369.                         resolve(response)
  370.                     else
  371.                         reject(response)
  372.                     end
  373.                     return
  374.                 elseif status == 'canceled' then
  375.                     return reject(status)
  376.                 end
  377.             else
  378.                 return reject(err)
  379.             end
  380.             wait(0)
  381.         end
  382.     end)
  383.     return false
  384. end
  385.  
  386.  
  387.  
  388.  
  389. function saveIni()
  390.     ini.save({
  391.         settings = {
  392.             radius = max.v,
  393.             log = log.v,
  394.             line = line.v
  395.         }
  396.     }, 'nabutilku1.1')
  397. end
  398.  
  399.  
  400.  
  401. function ev.onPlayerEnterVehicle(id, vehid, pass)
  402.     if state and not dissync then
  403.         local _, veh = sampGetCarHandleBySampVehicleId(vehid)
  404.         if _ then
  405.             if getDriverOfCar(veh) == -1 or not pass and isCharOnFoot(PLAYER_PED) then
  406.                 local x, y, z = getCharCoordinates(PLAYER_PED)
  407.                 local cx, cy, cz = getCarCoordinates(veh)
  408.                 local dist = getDistanceBetweenCoords3d(x, y, z, cx, cy, cz)
  409.                 if dist <= max.v then
  410.                     local t = lua_thread.create(function()
  411.                         local _, ped = sampGetCharHandleBySampPlayerId(id)
  412.                         if _ then
  413.                             local px, py, pz = getCharCoordinates(ped)
  414.                             dist = getDistanceBetweenCoords3d(cx, cy, cz, px, py, pz)
  415.                             if log.v then
  416.                                 printStringNow('~y~Attention:~n~~w~Player ~r~'..sampGetPlayerNickname(id)..'['..id..'] ~w~is entering vehicle...', 3000)
  417.                             end
  418.                             while dist > 3 do
  419.                                 wait(0)
  420.  
  421.                                 if dist > 5 then
  422.                                     if log.v then
  423.                                         printStringNow('~r~Error:~n~~w~Player ~r~'..sampGetPlayerNickname(id)..'['..id..'] ~w~ne sel v avto', 3000)
  424.                                     end
  425.                                     break
  426.                                 end
  427.                                 _, ped = sampGetCharHandleBySampPlayerId(id)
  428.                                 if _ then
  429.                                     px, py, pz = getCharCoordinates(ped)
  430.                                     dist = getDistanceBetweenCoords3d(cx, cy, cz, px, py, pz)
  431.                                 else
  432.                                     if log.v then
  433.                                         printStringNow('~r~Error:~n~~w~Player left', 3000)
  434.                                         break
  435.                                     end
  436.                                     break
  437.                                 end
  438.                             end
  439.                         else
  440.                             if log.v then
  441.                                 printStringNow('~r~Error:~n~~w~Player left', 3000)
  442.                             end
  443.                         end
  444.                         wait(300)
  445.                         dissync = true
  446.                         local x, y, z = getCharCoordinates(PLAYER_PED)
  447.                         local angle = getHeadingFromVector2d(cx - x, cy - y)
  448.                         local dist = getDistanceBetweenCoords2d(cx, cy, x, y)
  449.                         while dist > 6 do
  450.                             x = x + 5 * math.sin(-math.rad(angle))
  451.  
  452.                             y = y + 5 * math.cos(-math.rad(angle))
  453.                             local sync = samp_create_jopa_data('player')
  454.                             sync.position.x, sync.position.y, sync.position.z = x, y, cz
  455.  
  456.                             sync.moveSpeed.z = -1
  457.                             sync.send()
  458.                             dist = getDistanceBetweenCoords2d(cx, cy, x, y)
  459.                         end
  460.                         local sync = samp_create_jopa_data('player')
  461.                         sync.position.x, sync.position.y, sync.position.z = cx, cy, cz
  462.                         -- sync.surfingVehicleId = vehid
  463.                         -- sync.surfingOffsets.z = -1
  464.                         sync.moveSpeed.z = -1
  465.                         sync.send()
  466.                         wait(10)
  467.                         for i = 1, 3 do
  468.                             local sync = samp_create_jopa_data('unoccupied')
  469.                             sync.vehicleId = vehid
  470.                             sync.seatId = 0
  471.                             --sync.vehicleHealth = 1000
  472.                             sync.position.x, sync.position.y, sync.position.z = cx, cy, cz - 0.2
  473.                             sync.send()
  474.                             wait(10)
  475.                         end
  476.                         x, y, z = getCharCoordinates(PLAYER_PED)
  477.                         dist = getDistanceBetweenCoords2d(cx, cy, x, y)
  478.                         while dist > 6 do
  479.                             angle = getHeadingFromVector2d(x - cx, y - cy)
  480.                             cx = cx + 5 * math.sin(-math.rad(angle))
  481.                             cy = cy + 5 * math.cos(-math.rad(angle))
  482.                             local sync = samp_create_jopa_data('player')
  483.                             sync.position.x, sync.position.y, sync.position.z = cx, cy, z
  484.                             sync.moveSpeed.z = -1
  485.                             sync.send()
  486.                             dist = getDistanceBetweenCoords2d(cx, cy, x, y)
  487.                         end
  488.                         wait(30)
  489.                         dissync = false
  490.                         sampForceOnfootSync()
  491.                         if log.v then
  492.                             printStringNow('~g~Success:~n~~w~Player ~r~'..sampGetPlayerNickname(id)..'['..id..'] ~w~sel na butilku', 3000)
  493.                         end
  494.                         if id ~= nil and line.v then
  495.                             renderTarget(id)
  496.                         end
  497.                     end)
  498.                     --t:terminate()
  499.                 end
  500.             end
  501.         end
  502.     end
  503. end
  504.  
  505.  
  506.  
  507. function ev.onSetPlayerPos()
  508.     if dissync then return false end
  509. end
  510.  
  511.  
  512.  
  513. function ev.onSendPlayerSync(data)
  514.     if dissync then return false end
  515. end
  516.  
  517.  
  518.  
  519. function imgui.TextColoredRGB(text)
  520.     local style = imgui.GetStyle()
  521.     local colors = style.Colors
  522.     local ImVec4 = imgui.ImVec4
  523.     local explode_argb = function(argb)
  524.         local a = bit.band(bit.rshift(argb, 24), 0xFF)
  525.         local r = bit.band(bit.rshift(argb, 16), 0xFF)
  526.         local g = bit.band(bit.rshift(argb, 8), 0xFF)
  527.         local b = bit.band(argb, 0xFF)
  528.         return a, r, g, b
  529.     end
  530.  
  531.     local getcolor = function(color)
  532.         if color:sub(1, 6):upper() == 'SSSSSS' then
  533.             local r, g, b = colors[1].x, colors[1].y, colors[1].z
  534.             local a = tonumber(color:sub(7, 8), 16) or colors[1].w * 255
  535.             return ImVec4(r, g, b, a / 255)
  536.         end
  537.         local color = type(color) == 'string' and tonumber(color, 16) or color
  538.         if type(color) ~= 'number' then return end
  539.         local r, g, b, a = explode_argb(color)
  540.         return imgui.ImColor(r, g, b, a):GetVec4()
  541.     end
  542.  
  543.     local render_text = function(text_)
  544.         for w in text_:gmatch('[^\r\n]+') do
  545.             local text, colors_, m = {}, {}, 1
  546.             w = w:gsub('{(......)}', '{%1FF}')
  547.             while w:find('{........}') do
  548.                 local n, k = w:find('{........}')
  549.                 local color = getcolor(w:sub(n + 1, k - 1))
  550.                 if color then
  551.                     text[#text], text[#text + 1] = w:sub(m, n - 1), w:sub(k + 1, #w)
  552.                     colors_[#colors_ + 1] = color
  553.                     m = n
  554.                 end
  555.                 w = w:sub(1, n - 1) .. w:sub(k + 1, #w)
  556.             end
  557.             if text[0] then
  558.                 for i = 0, #text do
  559.                     imgui.TextColored(colors_[i] or colors[1], u8(text[i]))
  560.                     imgui.SameLine(nil, 0)
  561.                 end
  562.                 imgui.NewLine()
  563.             else imgui.Text(u8(w)) end
  564.         end
  565.     end
  566.     render_text(text)
  567. end
  568.  
  569.  
  570.  
  571. -- function writeLog(text)
  572. --  if text ~= log_text[1] then
  573. --      for i = 9, 2, -1 do
  574. --          log_text[i] = log_text[i - 1]
  575. --      end
  576. --      log_text[1] = text
  577. --  end
  578. -- end
  579.  
  580. function apply_custom_style()
  581.     imgui.SwitchContext()
  582.     local style = imgui.GetStyle()
  583.     local colors = style.Colors
  584.     local clr = imgui.Col
  585.     local ImVec4 = imgui.ImVec4
  586.     style.WindowRounding = 2.0
  587.     style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
  588.     style.ChildWindowRounding = 2.0
  589.     style.FrameRounding = 2.0
  590.     style.ItemSpacing = imgui.ImVec2(5.0, 4.0)
  591.     style.ScrollbarSize = 13.0
  592.     style.ScrollbarRounding = 0
  593.     style.GrabMinSize = 8.0
  594.     style.GrabRounding = 1.0
  595.     colors[clr.FrameBg]                = ImVec4(0.48, 0.16, 0.16, 0.54)
  596.     colors[clr.FrameBgHovered]         = ImVec4(0.98, 0.26, 0.26, 0.40)
  597.     colors[clr.FrameBgActive]          = ImVec4(0.98, 0.26, 0.26, 0.67)
  598.     colors[clr.TitleBg]                = ImVec4(0.04, 0.04, 0.04, 1.00)
  599.     colors[clr.TitleBgActive]          = ImVec4(0.48, 0.16, 0.16, 1.00)
  600.     colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 0.51)
  601.     colors[clr.CheckMark]              = ImVec4(0.98, 0.26, 0.26, 1.00)
  602.     colors[clr.SliderGrab]             = ImVec4(0.88, 0.26, 0.24, 1.00)
  603.     colors[clr.SliderGrabActive]       = ImVec4(0.98, 0.26, 0.26, 1.00)
  604.     colors[clr.Button]                 = ImVec4(0.98, 0.26, 0.26, 0.40)
  605.     colors[clr.ButtonHovered]          = ImVec4(0.98, 0.26, 0.26, 1.00)
  606.     colors[clr.ButtonActive]           = ImVec4(0.98, 0.06, 0.06, 1.00)
  607.     colors[clr.Header]                 = ImVec4(0.98, 0.26, 0.26, 0.31)
  608.     colors[clr.HeaderHovered]          = ImVec4(0.98, 0.26, 0.26, 0.80)
  609.     colors[clr.HeaderActive]           = ImVec4(0.98, 0.26, 0.26, 1.00)
  610.     colors[clr.Separator]              = colors[clr.Border]
  611.     colors[clr.SeparatorHovered]       = ImVec4(0.75, 0.10, 0.10, 0.78)
  612.     colors[clr.SeparatorActive]        = ImVec4(0.75, 0.10, 0.10, 1.00)
  613.     colors[clr.ResizeGrip]             = ImVec4(0.98, 0.26, 0.26, 0.25)
  614.     colors[clr.ResizeGripHovered]      = ImVec4(0.98, 0.26, 0.26, 0.67)
  615.     colors[clr.ResizeGripActive]       = ImVec4(0.98, 0.26, 0.26, 0.95)
  616.     colors[clr.TextSelectedBg]         = ImVec4(0.98, 0.26, 0.26, 0.35)
  617.     colors[clr.Text]                   = ImVec4(1.00, 1.00, 1.00, 1.00)
  618.     colors[clr.TextDisabled]           = ImVec4(0.50, 0.50, 0.50, 1.00)
  619.     colors[clr.WindowBg]               = ImVec4(0.06, 0.06, 0.06, 0.94)
  620.     colors[clr.ChildWindowBg]          = ImVec4(1.00, 1.00, 1.00, 0.00)
  621.     colors[clr.PopupBg]                = ImVec4(0.08, 0.08, 0.08, 0.94)
  622.     colors[clr.ComboBg]                = colors[clr.PopupBg]
  623.     colors[clr.Border]                 = ImVec4(0.43, 0.43, 0.50, 0.50)
  624.     colors[clr.BorderShadow]           = ImVec4(0.00, 0.00, 0.00, 0.00)
  625.     colors[clr.MenuBarBg]              = ImVec4(0.14, 0.14, 0.14, 1.00)
  626.     colors[clr.ScrollbarBg]            = ImVec4(0.02, 0.02, 0.02, 0.53)
  627.     colors[clr.ScrollbarGrab]          = ImVec4(0.31, 0.31, 0.31, 1.00)
  628.     colors[clr.ScrollbarGrabHovered]   = ImVec4(0.41, 0.41, 0.41, 1.00)
  629.     colors[clr.ScrollbarGrabActive]    = ImVec4(0.51, 0.51, 0.51, 1.00)
  630.     colors[clr.CloseButton]            = ImVec4(0.41, 0.41, 0.41, 0.50)
  631.     colors[clr.CloseButtonHovered]     = ImVec4(0.98, 0.39, 0.36, 1.00)
  632.     colors[clr.CloseButtonActive]      = ImVec4(0.98, 0.39, 0.36, 1.00)
  633.     colors[clr.PlotLines]              = ImVec4(0.61, 0.61, 0.61, 1.00)
  634.     colors[clr.PlotLinesHovered]       = ImVec4(1.00, 0.43, 0.35, 1.00)
  635.     colors[clr.PlotHistogram]          = ImVec4(0.90, 0.70, 0.00, 1.00)
  636.     colors[clr.PlotHistogramHovered]   = ImVec4(1.00, 0.60, 0.00, 1.00)
  637.     colors[clr.ModalWindowDarkening]   = ImVec4(0.80, 0.80, 0.80, 0.35)
  638. end
  639.  
  640. apply_custom_style()
Add Comment
Please, Sign In to add comment