Вопросы по Lua скриптингу

Общая тема для вопросов по разработке скриптов на языке программирования Lua, в частности под MoonLoader.
  • Задавая вопрос, убедитесь, что его нет в списке частых вопросов и что на него ещё не отвечали (воспользуйтесь поиском).
  • Поищите ответ в теме посвященной разработке Lua скриптов в MoonLoader
  • Отвечая, убедитесь, что ваш ответ корректен.
  • Старайтесь как можно точнее выразить мысль, а если проблема связана с кодом, то обязательно прикрепите его к сообщению, используя блок [code=lua]здесь мог бы быть ваш код[/code].
  • Если вопрос связан с MoonLoader-ом первым делом желательно поискать решение на wiki.

Частые вопросы

Как научиться писать скрипты? С чего начать?
Информация - Гайд - Всё о Lua скриптинге для MoonLoader(https://blast.hk/threads/22707/)
Как вывести текст на русском? Вместо русского текста у меня какие-то каракули.
Изменить кодировку файла скрипта на Windows-1251. В Atom: комбинация клавиш Ctrl+Shift+U, в Notepad++: меню Кодировки -> Кодировки -> Кириллица -> Windows-1251.
Как получить транспорт, в котором сидит игрок?
Lua:
local veh = storeCarCharIsInNoSave(PLAYER_PED)
Как получить свой id или id другого игрока?
Lua:
local _, id = sampGetPlayerIdByCharHandle(PLAYER_PED) -- получить свой ид
local _, id = sampGetPlayerIdByCharHandle(ped) -- получить ид другого игрока. ped - это хендл персонажа
Как проверить, что строка содержит какой-то текст?
Lua:
if string.find(str, 'текст', 1, true) then
-- строка str содержит "текст"
end
Как эмулировать нажатие игровой клавиши?
Lua:
local game_keys = require 'game.keys' -- где-нибудь в начале скрипта вне функции main

setGameKeyState(game_keys.player.FIREWEAPON, -1) -- будет сэмулировано нажатие клавиши атаки
Все иды клавиш находятся в файле moonloader/lib/game/keys.lua.
Подробнее о функции setGameKeyState здесь: lua - setgamekeystate | BlastHack — DEV_WIKI(https://www.blast.hk/wiki/lua:setgamekeystate)
Как получить id другого игрока, в которого целюсь я?
Lua:
local valid, ped = getCharPlayerIsTargeting(PLAYER_HANDLE) -- получить хендл персонажа, в которого целится игрок
if valid and doesCharExist(ped) then -- если цель есть и персонаж существует
  local result, id = sampGetPlayerIdByCharHandle(ped) -- получить samp-ид игрока по хендлу персонажа
  if result then -- проверить, прошло ли получение ида успешно
    -- здесь любые действия с полученным идом игрока
  end
end
Как зарегистрировать команду чата SAMP?
Lua:
-- До бесконечного цикла/задержки
sampRegisterChatCommand("mycommand", function (param)
     -- param будет содержать весь текст введенный после команды, чтобы разделить его на аргументы используйте string.match()
    sampAddChatMessage("MyCMD", -1)
end)
Крашит игру при вызове sampSendChat. Как это исправить?
Это происходит из-за бага в SAMPFUNCS, когда производится попытка отправки пакета определенными функциями изнутри события исходящих RPC и пакетов. Исправления для этого бага нет, но есть способ не провоцировать его. Вызов sampSendChat изнутри обработчика исходящих RPC/пакетов нужно обернуть в скриптовый поток с нулевой задержкой:
Lua:
function onSendRpc(id)
  -- крашит:
  -- sampSendChat('Send RPC: ' .. id)

  -- норм:
  lua_thread.create(function()
    wait(0)
    sampSendChat('Send RPC: ' .. id)
  end)
end
 
Последнее редактирование:

AugustTN

Известный
1,363
472
В чем проблема? Скрипт запускается, но в игре неактивен. Ошибок и ероров в логе нету
Lua:
require "lib.moonloader" -- подключение библиотеки
local keys = require "vkeys"
local imgui = require 'imgui'
local encoding = require 'encoding'
local hook = require 'lib.samp.events'
encoding.default = 'CP1251'
u8 = encoding.UTF8

imgui.ToggleButton = require('imgui_addons').ToggleButton
imgui.HotKey = require('imgui_addons').HotKey
imgui.Spinner = require('imgui_addons').Spinner
imgui.BufferingBar = require('imgui_addons').BufferingBar

local themes = import "resource/imgui_themes.lua"

local tag = "{dc143c}[BLOCKED] "

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
 
    sampAddChatMessage(tag .. "{FFFFFF}Скрипт успешно {30d5c8}активирован", -1)
    sampAddChatMessage(tag .. "{FFFFFF}Активация на - {ffdb8b}NumPad1", -1)
 
     while true do
        wait(0)
        if isKeyJustPressed(VK_NUMPAD1) then        -- NumPad1
            act = not act
            sampAddChatMessage(act and '{dc143c}[BLOCKED]{FFFFFF} Блокировка сообщений успешно{00ff0d} активирована' or '{dc143c}[BLOCKED]{FFFFFF} Блокировка сообщений{FF0000} деактивирована', -1)
        end
    end
end

function sampev.onServerMessage(color, text)
    if string.find(text, 'Отправитель:', 1, true) then
        return false
    end
end
вместо sampev замени на hook.onServerMessage
 

ChаtGPT

Активный
403
97
Как можно совместить imgui.Spacing() и imgui.SameLine()? Мне нужен отступ сверху и с боку, но когда пишу эти функции то срабатывает только 1 из них

Как можно совместить imgui.Spacing() и imgui.SameLine()? Мне нужен отступ сверху и с боку, но когда пишу эти функции то срабатывает только 1 из них
разобрался: imgui.PushStyleVar(imgui.StyleVar.WindowPadding, imgui.ImVec2(8, 8))
 
Последнее редактирование:

ChаtGPT

Активный
403
97
как сделать что бы кнопки или beginchild были с гострыми углами? у меня они с закругленными(для конкретного окна)
 

F0RQU1N and

Известный
1,304
497
В чем проблема? Буквально 5 минут назад все работало, код не менял. Проблема во всех скриптах которые используют эту функцию
Код:
[ML] (error) query.lua: X:\SAMP Medium PC by chapo\moonloader\query.lua:19: calling 'send' on bad self (udp{connected} expected, got userdata)
stack traceback:
    [C]: in function 'send'
    X:\SAMP Medium PC by chapo\moonloader\query.lua:19: in function 'QueryServerInfo'
    X:\SAMP Medium PC by chapo\moonloader\query.lua:73: in function 'PrintServerInfo'
    X:\SAMP Medium PC by chapo\moonloader\query.lua:98: in function <X:\SAMP Medium PC by chapo\moonloader\query.lua:93>
[ML] (error) query.lua: Script died due to an error. (10207654)
Lua:
local ffi = require("ffi")
local bit = require("bit")
local socket = require("socket")

function QueryServerInfo(ip, port, timeout)
    local ret, response_data, isThread
    local s = socket.udp()
    s:setpeername(ip, port)
    s:settimeout(0)

    local request_data = ffi.new("char[11]", "\x53\x41\x4D\x50\x00\x00\x00\x00\x00\x00\x69")
    local wPort = ffi.new("uint16_t", port)
    local byteIp = {ip:match("(%d+)%.(%d+)%.(%d+)%.(%d+)")}

    for i = 1, 4 do request_data[3+i] = tonumber(byteIp[i]) or 0 end
    request_data[8] = tonumber(wPort)
    request_data[9] = bit.rshift(tonumber(wPort), 8)
 
    s:send(ffi.string(request_data, 11))

    timeout = os.clock() + (((timeout ~= nil) and timeout or 3000) / 1000)
    isThread = pcall(wait, 0)
    while response_data == nil and os.clock() < timeout do
        if isThread then wait(0) end
        response_data = s:receive()
    end

    if response_data and response_data:len() > 11 and response_data:sub(1, 4) == "\x53\x41\x4D\x50" then
        local szData = ffi.new("char[?]", 1024, response_data)
        for i = response_data:len(), 1023 do szData[i] = 0 end

        local parse_data = function(offs, size)
            if size <= 0 then return ffi.new("char[1]", 0) end -- new
    
            local ret = ffi.new("char[?]", size, 0)
            for i = 0, tonumber(size) - 1 do
                ret[i] = szData[i + offs]
            end
            return ret
        end

        local bytePassword = ffi.new("uint8_t", szData[11])
        local wOnlinePlayers = ffi.cast("uint16_t*", parse_data(12, 2))[0]
        local wMaxPlayers = ffi.cast("uint16_t*", parse_data(14, 2))[0]
        local iHostNameLen = ffi.cast("uint32_t*", parse_data(16, 4))[0]
        local szHostName = parse_data(20, iHostNameLen)
        local iGameModeLen = ffi.cast("uint32_t*", parse_data(iHostNameLen + 20, 4))[0]
        local szGameMode = parse_data(iHostNameLen + 24, iGameModeLen)
        local iLanguageLen = ffi.cast("uint32_t*", parse_data(iHostNameLen + iGameModeLen + 24, 4))[0]
        local szLanguage = parse_data(iHostNameLen + iGameModeLen + 28, iLanguageLen)

        ret = {
            password = (bytePassword ~= 0),
            players = {
                online = tonumber(wOnlinePlayers),
                max = tonumber(wMaxPlayers)
            },
            hostname = ffi.string(szHostName, iHostNameLen),
            gamemode = ffi.string(szGameMode, iGameModeLen),
            language = ffi.string(szLanguage, iLanguageLen)
        }
    end

    s:close()
    return ret
end

-- в случае игнора от сервера в течение 1 секунды - повторит попытку ещё 4 раза
function PrintServerInfo(ip, port)
    local current_attempt = 1

    ::label_try::
    local result = QueryServerInfo(ip, port, 1000)
    if result then
        print("Info about " .. ip .. ":")
        print("Password: " .. (result.password and "true" or "false"))
        print("Players: " .. result.players.online .. '/' .. result.players.max)
        print("Hostname: " .. result.hostname)
        print("Mode: " .. result.gamemode)
        print("Language: " .. result.language)
    else
        if current_attempt <= 5 then
            current_attempt = current_attempt + 1
            goto label_try
        end

        print("Error: cannot get info about " .. ip)
    end

    print()
end

function main()
    if not isSampLoaded() then return end
    while not isSampAvailable() do wait(100) end

    -- вызываем из main, игру не будет фризить во время вызовов
    PrintServerInfo("37.230.137.174", 7778)
    PrintServerInfo("185.169.134.4", 7777)
    PrintServerInfo("51.83.207.240", 7777)

    wait(-1)
end
код скопирован отсюда: https://www.blast.hk/threads/13380/page-21#post-915030

UPD: никогда не пойму как работает этот ваш луа, после перезагрузки компа все пофиксилось
разве не надо ничего деиницилизировать?
 

Sadow

Известный
1,427
592
Как сделать картинку-кнопку которая при нажатии перекинет на сайт? При этом вот картинка:
Lua:
local blasthack_data ="\x89\x50\x4E\x47\x0D\x0A\x1A\x0A\x00\x00\x00\x0D\x49\x48\x44\x52\x00\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7A\x7A\xF4\x00\x00\x00\x01\x73\x52\x47\x42\x00\xAE\xCE\x1C\xE9\x00\x00\x00\x04\x67\x41\x4D\x41\x00\x00\xB1\x8F\x0B\xFC\x61\x05\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x12\x74\x00\x00\x12\x74\x01\xDE\x66\x1F\x78\x00\x00\x03\xA3\x49\x44\x41\x54\x58\x47\xC5\x57\x4B\x4B\x1B\x51\x14\x3E\x73\xF3\x32\x2F\x13\x4D\xAD\x94\x0A\xD2\xAD\x62\xB4\x88\xB4\x1B\x69\x36\xEA\xAE\xAB\x0A\xEE\xD5\xFA\x37\xFA\x23\xBA\x69\xC1\x1F\x62\x0B\x52\xE8\x46\xAB\x52\x10\x8C\xCB\x0A\xC6\x45\x69\x13\x8D\x31\xD1\xC9\x63\xA6\xE7\x3B\x99\xA4\x51\xCC\x3C\x24\xEA\x07\x77\x66\xEE\xCC\xBD\xE7\x3B\xF7\xDE\x73\xCE\x9C\xA3\x99\x0C\xEA\x40\xA5\x52\xA1\x2F\x1B\x1B\x94\xCD\x66\xE9\xE4\xF8\x98\xF2\xF9\x3C\x55\x2E\x2F\x49\xBF\xBA\xA2\x5A\xAD\x66\x8D\xB2\x47\x20\x10\xA0\x50\x28\x44\x91\x48\x84\x06\x53\x29\x1A\x19\x19\xA1\xB1\xB1\x31\x9A\x5B\x58\xA0\x68\x34\x6A\x8D\x6A\xE2\x9A\x02\x6B\xAB\xAB\xF4\x6D\x73\x93\xFA\x13\x09\x11\xE2\xF3\xF9\x48\x29\x45\x9A\xA6\x49\xF3\x02\x88\x45\x33\x0C\x83\x1A\x8D\x86\x28\x7F\x5E\x2C\xD2\x9B\x4C\x86\x3E\xAF\xAF\x5B\xA3\x3A\x14\x78\x3D\x33\x23\x2F\xA0\xF5\x7D\x02\x3B\x0C\xA5\x7E\xEC\xED\x49\x5F\xE1\xB2\xB6\xB2\x22\x9D\xFB\x26\x07\xC0\x81\x5D\x7D\xBF\xBC\x2C\x7D\xAD\x5C\x2E\x9B\x53\x13\x13\x72\x4E\x0F\x89\x5C\x2E\x47\x3F\xF7\xF7\x49\xC1\xE0\x12\x7C\xE6\x6E\xE1\xCD\x12\xBA\x03\x9C\x5F\x99\x5B\x65\x0F\x0E\xC4\xE0\x9C\x00\x62\xBD\x5A\xA5\x32\x7B\x44\x2F\x94\x00\x27\x3C\x4D\x9D\xF0\x56\xC0\xDA\x9D\x00\x4B\x3D\x2F\x97\xA9\xC2\xEE\xA8\xBB\x74\x47\x3B\x80\x13\xC7\xA0\xE0\xE7\x30\x0A\x27\xC0\x59\xD4\x1D\xDC\xB1\x1B\xC0\x59\x00\x37\xDC\xA2\x57\x42\xBD\x00\x9C\xE0\x56\xBA\xAE\x3F\x9A\x02\xE0\x56\x55\x36\x2C\xAF\x80\xBA\xAD\x63\xC3\xF3\x5D\x17\x00\x6E\x91\xE2\x45\x00\xC6\xD6\x38\xB4\x16\xCE\xCE\xE8\xEF\xE9\x29\xFD\xE1\x56\xE0\x10\x5B\xAB\xD7\x3D\xCB\x01\xD8\xAE\x6E\x9F\x54\x67\x92\x2A\x5B\x3B\xBE\x8B\xF1\x59\xEF\xD1\xBF\xE2\xAD\x6B\x70\x38\x15\xDF\x30\x0D\x09\xAD\xC5\x52\x49\xDE\xBB\x57\xA1\x29\xAB\xAB\xF9\xFB\xF1\x23\xE2\x01\x58\x5D\x9E\xDB\x29\x13\x60\x42\xEB\x27\x13\xF1\x9B\x34\xFC\xF4\x39\x0D\x3F\x1B\xA5\x88\xCF\x90\x6F\x25\x76\xD3\x6B\xBF\x56\x17\xB0\xF5\x3F\xBF\xDF\x4F\x29\x8E\x58\xF1\x1B\xFF\x88\x90\xCF\xA4\x54\xFA\x2D\x0D\x2D\xAD\xD3\xD0\xE2\x27\x1A\x9A\x59\xA2\x90\xE2\x1D\x61\x25\x10\xAC\xBC\xC0\x31\x00\x18\xBC\xDA\x00\x2B\x92\x8C\xC7\xDB\xAB\x0F\x6A\x06\xC5\xA6\xDE\x51\xA3\xF4\x5B\x5A\x74\x72\x91\x02\xD4\x40\xB0\x90\x1D\xF0\x72\x0C\x8E\x0A\x00\x10\x8A\xF3\xC5\x0A\xD1\x1A\x26\x1B\x62\xFE\x88\x54\x30\x4A\x5A\x28\xCA\xCF\xBF\xC8\xD0\x58\x14\x8E\x48\x6C\xC3\x3D\x7C\x2F\x46\x47\x3F\x58\xCF\xB6\x80\x3D\x88\x91\xF1\xBD\x6E\xB0\x22\x27\x5B\xA4\x02\x61\xAA\x17\x8E\xA8\xF8\xFD\x23\x95\xF4\xA6\x17\x68\xEC\x9E\xA1\x60\xD0\x9A\xE5\x0C\x2D\x33\x3B\x6B\x62\xA2\x13\xB0\xF5\x30\x46\x28\xD2\xEC\x1B\x72\x14\x40\xD5\x44\xD6\xF4\x7F\x33\x9F\x0C\x0C\x88\x67\x38\x01\x32\x65\x16\x1E\xDC\x00\xE4\x61\xCE\xF5\x60\x17\x20\xAC\x91\x9F\xC9\x7D\xF2\xDC\xB2\x0F\x34\x37\x86\xD8\xE2\x54\x41\x0F\xDB\x05\x8F\x88\x86\xC3\x14\xE7\xC4\x52\xC8\xF8\x5D\xB8\xAF\x4F\xEE\xC3\x9C\x7C\xE2\x1B\xDE\x97\x10\xE3\x5D\xEC\x2A\xB8\x15\xB2\xD7\x96\x36\x76\x90\x18\xC0\x77\x59\xBD\x75\x1F\x64\xCF\x88\x31\x69\x22\x16\x93\xC0\x05\x65\x52\xC9\x24\x12\x4D\xF9\x75\xDB\x1D\x2D\x38\xC1\xAD\x90\xA3\xB9\x51\xA0\x13\x10\x3C\xD0\xDF\x2F\x06\x07\x45\x10\xB4\x00\xC8\xC1\x37\x51\x82\xEF\xE2\x39\x5D\x80\xB1\x92\x1F\x22\x6F\x77\x63\x30\x9D\x40\x5C\x68\x91\xDE\x06\x28\x15\x63\xE1\xB6\x63\x98\x13\xDC\x0A\xC9\x28\xF2\xF6\x5E\x03\x2B\xB4\xCB\xB4\xC0\x09\x6E\x85\x8A\xC5\x6D\xC5\xD3\x4B\x80\x13\xDC\xDA\xC5\xC5\x85\xF9\x32\x9D\x7E\xBC\xB4\x1C\xB5\x5A\x86\xCB\x25\xA4\x47\x0F\x05\x70\x81\x13\xDC\xED\xD2\xEC\xD5\xF4\xB4\x58\xF5\x43\x94\x66\xA0\xDC\xDE\xDD\x95\x7E\x3B\x7E\x6E\x73\xAD\x96\x9E\x9C\x24\xA4\xE9\x25\x24\x17\x56\x35\x0C\x63\x81\xC5\x62\x92\x97\x86\x39\xAD\xA2\x14\xB2\x20\x13\xB2\xD3\x7C\xDC\x5B\x3B\x3B\x16\x2B\xBB\x34\x0F\xBE\x16\x04\xB8\x54\x93\x8A\x25\x7B\x78\x48\x39\x2E\xCF\x91\x3A\xDF\xA9\x3C\xE7\xA0\x14\xE1\x20\xD5\x2E\xCF\xC7\xC7\x69\x6E\x7E\xFE\x46\x79\x4E\xF4\x0F\x09\xEC\x02\xE9\x87\xB9\x03\x0F\x00\x00\x00\x00\x49\x45\x4E\x44\xAE\x42\x60\x82"
 

F0RQU1N and

Известный
1,304
497
Как сделать картинку-кнопку которая при нажатии перекинет на сайт? При этом вот картинка:
Lua:
local blasthack_data ="\x89\x50\x4E\x47\x0D\x0A\x1A\x0A\x00\x00\x00\x0D\x49\x48\x44\x52\x00\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7A\x7A\xF4\x00\x00\x00\x01\x73\x52\x47\x42\x00\xAE\xCE\x1C\xE9\x00\x00\x00\x04\x67\x41\x4D\x41\x00\x00\xB1\x8F\x0B\xFC\x61\x05\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x12\x74\x00\x00\x12\x74\x01\xDE\x66\x1F\x78\x00\x00\x03\xA3\x49\x44\x41\x54\x58\x47\xC5\x57\x4B\x4B\x1B\x51\x14\x3E\x73\xF3\x32\x2F\x13\x4D\xAD\x94\x0A\xD2\xAD\x62\xB4\x88\xB4\x1B\x69\x36\xEA\xAE\xAB\x0A\xEE\xD5\xFA\x37\xFA\x23\xBA\x69\xC1\x1F\x62\x0B\x52\xE8\x46\xAB\x52\x10\x8C\xCB\x0A\xC6\x45\x69\x13\x8D\x31\xD1\xC9\x63\xA6\xE7\x3B\x99\xA4\x51\xCC\x3C\x24\xEA\x07\x77\x66\xEE\xCC\xBD\xE7\x3B\xF7\xDE\x73\xCE\x9C\xA3\x99\x0C\xEA\x40\xA5\x52\xA1\x2F\x1B\x1B\x94\xCD\x66\xE9\xE4\xF8\x98\xF2\xF9\x3C\x55\x2E\x2F\x49\xBF\xBA\xA2\x5A\xAD\x66\x8D\xB2\x47\x20\x10\xA0\x50\x28\x44\x91\x48\x84\x06\x53\x29\x1A\x19\x19\xA1\xB1\xB1\x31\x9A\x5B\x58\xA0\x68\x34\x6A\x8D\x6A\xE2\x9A\x02\x6B\xAB\xAB\xF4\x6D\x73\x93\xFA\x13\x09\x11\xE2\xF3\xF9\x48\x29\x45\x9A\xA6\x49\xF3\x02\x88\x45\x33\x0C\x83\x1A\x8D\x86\x28\x7F\x5E\x2C\xD2\x9B\x4C\x86\x3E\xAF\xAF\x5B\xA3\x3A\x14\x78\x3D\x33\x23\x2F\xA0\xF5\x7D\x02\x3B\x0C\xA5\x7E\xEC\xED\x49\x5F\xE1\xB2\xB6\xB2\x22\x9D\xFB\x26\x07\xC0\x81\x5D\x7D\xBF\xBC\x2C\x7D\xAD\x5C\x2E\x9B\x53\x13\x13\x72\x4E\x0F\x89\x5C\x2E\x47\x3F\xF7\xF7\x49\xC1\xE0\x12\x7C\xE6\x6E\xE1\xCD\x12\xBA\x03\x9C\x5F\x99\x5B\x65\x0F\x0E\xC4\xE0\x9C\x00\x62\xBD\x5A\xA5\x32\x7B\x44\x2F\x94\x00\x27\x3C\x4D\x9D\xF0\x56\xC0\xDA\x9D\x00\x4B\x3D\x2F\x97\xA9\xC2\xEE\xA8\xBB\x74\x47\x3B\x80\x13\xC7\xA0\xE0\xE7\x30\x0A\x27\xC0\x59\xD4\x1D\xDC\xB1\x1B\xC0\x59\x00\x37\xDC\xA2\x57\x42\xBD\x00\x9C\xE0\x56\xBA\xAE\x3F\x9A\x02\xE0\x56\x55\x36\x2C\xAF\x80\xBA\xAD\x63\xC3\xF3\x5D\x17\x00\x6E\x91\xE2\x45\x00\xC6\xD6\x38\xB4\x16\xCE\xCE\xE8\xEF\xE9\x29\xFD\xE1\x56\xE0\x10\x5B\xAB\xD7\x3D\xCB\x01\xD8\xAE\x6E\x9F\x54\x67\x92\x2A\x5B\x3B\xBE\x8B\xF1\x59\xEF\xD1\xBF\xE2\xAD\x6B\x70\x38\x15\xDF\x30\x0D\x09\xAD\xC5\x52\x49\xDE\xBB\x57\xA1\x29\xAB\xAB\xF9\xFB\xF1\x23\xE2\x01\x58\x5D\x9E\xDB\x29\x13\x60\x42\xEB\x27\x13\xF1\x9B\x34\xFC\xF4\x39\x0D\x3F\x1B\xA5\x88\xCF\x90\x6F\x25\x76\xD3\x6B\xBF\x56\x17\xB0\xF5\x3F\xBF\xDF\x4F\x29\x8E\x58\xF1\x1B\xFF\x88\x90\xCF\xA4\x54\xFA\x2D\x0D\x2D\xAD\xD3\xD0\xE2\x27\x1A\x9A\x59\xA2\x90\xE2\x1D\x61\x25\x10\xAC\xBC\xC0\x31\x00\x18\xBC\xDA\x00\x2B\x92\x8C\xC7\xDB\xAB\x0F\x6A\x06\xC5\xA6\xDE\x51\xA3\xF4\x5B\x5A\x74\x72\x91\x02\xD4\x40\xB0\x90\x1D\xF0\x72\x0C\x8E\x0A\x00\x10\x8A\xF3\xC5\x0A\xD1\x1A\x26\x1B\x62\xFE\x88\x54\x30\x4A\x5A\x28\xCA\xCF\xBF\xC8\xD0\x58\x14\x8E\x48\x6C\xC3\x3D\x7C\x2F\x46\x47\x3F\x58\xCF\xB6\x80\x3D\x88\x91\xF1\xBD\x6E\xB0\x22\x27\x5B\xA4\x02\x61\xAA\x17\x8E\xA8\xF8\xFD\x23\x95\xF4\xA6\x17\x68\xEC\x9E\xA1\x60\xD0\x9A\xE5\x0C\x2D\x33\x3B\x6B\x62\xA2\x13\xB0\xF5\x30\x46\x28\xD2\xEC\x1B\x72\x14\x40\xD5\x44\xD6\xF4\x7F\x33\x9F\x0C\x0C\x88\x67\x38\x01\x32\x65\x16\x1E\xDC\x00\xE4\x61\xCE\xF5\x60\x17\x20\xAC\x91\x9F\xC9\x7D\xF2\xDC\xB2\x0F\x34\x37\x86\xD8\xE2\x54\x41\x0F\xDB\x05\x8F\x88\x86\xC3\x14\xE7\xC4\x52\xC8\xF8\x5D\xB8\xAF\x4F\xEE\xC3\x9C\x7C\xE2\x1B\xDE\x97\x10\xE3\x5D\xEC\x2A\xB8\x15\xB2\xD7\x96\x36\x76\x90\x18\xC0\x77\x59\xBD\x75\x1F\x64\xCF\x88\x31\x69\x22\x16\x93\xC0\x05\x65\x52\xC9\x24\x12\x4D\xF9\x75\xDB\x1D\x2D\x38\xC1\xAD\x90\xA3\xB9\x51\xA0\x13\x10\x3C\xD0\xDF\x2F\x06\x07\x45\x10\xB4\x00\xC8\xC1\x37\x51\x82\xEF\xE2\x39\x5D\x80\xB1\x92\x1F\x22\x6F\x77\x63\x30\x9D\x40\x5C\x68\x91\xDE\x06\x28\x15\x63\xE1\xB6\x63\x98\x13\xDC\x0A\xC9\x28\xF2\xF6\x5E\x03\x2B\xB4\xCB\xB4\xC0\x09\x6E\x85\x8A\xC5\x6D\xC5\xD3\x4B\x80\x13\xDC\xDA\xC5\xC5\x85\xF9\x32\x9D\x7E\xBC\xB4\x1C\xB5\x5A\x86\xCB\x25\xA4\x47\x0F\x05\x70\x81\x13\xDC\xED\xD2\xEC\xD5\xF4\xB4\x58\xF5\x43\x94\x66\xA0\xDC\xDE\xDD\x95\x7E\x3B\x7E\x6E\x73\xAD\x96\x9E\x9C\x24\xA4\xE9\x25\x24\x17\x56\x35\x0C\x63\x81\xC5\x62\x92\x97\x86\x39\xAD\xA2\x14\xB2\x20\x13\xB2\xD3\x7C\xDC\x5B\x3B\x3B\x16\x2B\xBB\x34\x0F\xBE\x16\x04\xB8\x54\x93\x8A\x25\x7B\x78\x48\x39\x2E\xCF\x91\x3A\xDF\xA9\x3C\xE7\xA0\x14\xE1\x20\xD5\x2E\xCF\xC7\xC7\x69\x6E\x7E\xFE\x46\x79\x4E\xF4\x0F\x09\xEC\x02\xE9\x87\xB9\x03\x0F\x00\x00\x00\x00\x49\x45\x4E\x44\xAE\x42\x60\x82"
imagebutton, в коллбеке просто сайт открываешь
 

whyega52

Eblang головного мозга
Модератор
2,838
2,784
if imgui.ImageButton(ImTextureID user_texture_id,const ImVec2& size,const ImVec2& uv0 = ImVec20,) then
-- link
end