как добавить имгуи меню в скрипт

maraudeder6009

Участник
Автор темы
294
21
У меня уже есть написан сам скрипт, хочу добавить имгуи меню и еще несколько функций типу слапер, колизия и т.д
 

Manuel Leon

Известный
266
166
Lua:
local imgui = require('imgui') -- библиотека имгуи
local encoding = require 'encoding' -- библиотека кодировки
encoding.default = 'CP1251' -- устанавливает кодировку
u8 = encoding.UTF8

local window = imgui.ImBool(false) -- переменная для активного окна

function main()
    while not isSampAvailable() do wait(200) end
    sampRegisterChatCommand('imgui',function() -- по команде /imgui будет включаться/выключаться окно
        window.v = not window.v -- присваиваем противоположное значение переменной
    end)
    while true do
        wait(0)
        imgui.Process = window.v -- имгуи процесс равен значению переменной
    end
end

function imgui.OnDrawFrame()
    local x,y = getScreenResolution() -- размер экрана
    if window.v then -- если переменная активна 
        imgui.SetNextWindowPos(imgui.ImVec2(x/3, y/3), imgui.Cond.FirstUseEver) -- установка позиции
        imgui.SetNextWindowSize(imgui.ImVec2(500.0, 500.0), imgui.Cond.FirstUseEver) -- установка размера
        imgui.Begin('Window Title', window) -- само окно
           -- your code
        imgui.End() -- конец окна
    end
end
 

maraudeder6009

Участник
Автор темы
294
21
Lua:
local imgui = require('imgui') -- библиотека имгуи
local encoding = require 'encoding' -- библиотека кодировки
encoding.default = 'CP1251' -- устанавливает кодировку
u8 = encoding.UTF8

local window = imgui.ImBool(false) -- переменная для активного окна

function main()
    while not isSampAvailable() do wait(200) end
    sampRegisterChatCommand('imgui',function() -- по команде /imgui будет включаться/выключаться окно
        window.v = not window.v -- присваиваем противоположное значение переменной
    end)
    while true do
        wait(0)
        imgui.Process = window.v -- имгуи процесс равен значению переменной
    end
end

function imgui.OnDrawFrame()
    local x,y = getScreenResolution() -- размер экрана
    if window.v then -- если переменная активна
        imgui.SetNextWindowPos(imgui.ImVec2(x/3, y/3), imgui.Cond.FirstUseEver) -- установка позиции
        imgui.SetNextWindowSize(imgui.ImVec2(500.0, 500.0), imgui.Cond.FirstUseEver) -- установка размера
        imgui.Begin('Window Title', window) -- само окно
           -- your code
        imgui.End() -- конец окна
    end
end
а как туда впихнуть свой скрипт?
 

Alt F4

Участник
37
6
чел если сам не знаешь как вписать так и скажи, нам просто интересно мы так скажем юные начальные скриптеры и я уверен что ты сам не знаешь как вписать скрипт в imgui вот, это все что я хотел сказать
 

Sanchez.

Известный
704
187
чел если сам не знаешь как вписать так и скажи, нам просто интересно мы так скажем юные начальные скриптеры и я уверен что ты сам не знаешь как вписать скрипт в imgui вот, это все что я хотел сказать
ЛОЛ, это сделать проще простого, впихаешь некоторые кусочки кода туда, куда надо + мне надо увидеть ваш код, чтобы впихнуть этот кусок под ваш код
 

Alt F4

Участник
37
6
+ мне надо увидеть ваш код, чтобы впихнуть этот кусок под ваш код
тебя не просили пихать туда сам код мы тебя попросили просто обьяснить как это делаеться или если есть тема на бх или видос на ют то кинь ПОЖАЛУЙСТА
 

Bebraoff

Активный
499
52
ЛОЛ, это сделать проще простого, впихаешь некоторые кусочки кода туда, куда надо + мне надо увидеть ваш код, чтобы впихнуть этот кусок под ваш код
б
ЛОЛ, это сделать проще простого, впихаешь некоторые кусочки кода туда, куда надо + мне надо увидеть ваш код, чтобы впихнуть этот кусок под ваш код
санчез можеш пожалуста сделать карпак дпс со звуком мигалки дпс буду благодарен
 

Sanchez.

Известный
704
187
@Alt F4 ты не знаешь как впихнуть в твой код кусок КОДА?!?!
Хорошо, объясняю.
У нас есть пример кода
Код:
require 'lib.moonloader'

function main()
    while not isSampAvailable() do wait(100) end
  
    while true do
        wait(0)
    end
end
Надо впихнуть в этот код это:
Lua:
local imgui = require('imgui') -- библиотека имгуи
local encoding = require 'encoding' -- библиотека кодировки
encoding.default = 'CP1251' -- устанавливает кодировку
u8 = encoding.UTF8

local window = imgui.ImBool(false) -- переменная для активного окна

function main()
    while not isSampAvailable() do wait(200) end
    while true do
        wait(0)
        imgui.Process = window.v -- имгуи процесс равен значению переменной
    end
end

Делаем вот так:

Lua:
require 'lib.moonloader'
local imgui = require 'imgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8

local window = imgui.ImBool(false)

function main()
    while not isSampAvailable() do wait(100) end
  
    sampRegisterChatCommand('imgui',function() -- по команде /imgui будет включаться/выключаться окно
        window.v = not window.v -- присваиваем противоположное значение переменной
    end)
  
    while true do
        wait(0)
        imgui.Process = window.v
    end
end

Все блять, СЛОЖНО?
Если ты не знаешь как что-то впихнуть в свой код, вряд ли ты будешь хорошим скриптером, потому что ты не можешь думать своим мозгом. Это элементарно
 

Alt F4

Участник
37
6
можешь показать мне на примере вот этого:

require "lib.moonloader"

function main()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(2000) end
sampRegisterChatCommand('rheal', rheal)
while true do
wait(0)
end
end

function rheal()
local peds = getAllChars()
for _, v in pairs(peds) do
local result, myid = sampGetPlayerIdByCharHandle(playerPed)
local mx, my, mz = getCharCoordinates(playerPed)
local x, y, z = getCharCoordinates(v)
local distance = getDistanceBetweenCoords3d(mx, my, mz, x, y, z)
local result, id = sampGetPlayerIdByCharHandle(v)
if result and id ~= sampGetPlayerIdByCharHandle(PLAYER_PED) and distance < 12.0 then
if id ~= myid then
sampSendChat('/heal '..tonumber(id))
end
end
end
end

как в него пихнуть имгуй, это на бх твой метод помоему или кого то еще вот кароч просто рандом взял и мог бы ты показать как?
 
  • Bug
Реакции: F0RQU1N and

Стэнфорд

Потрачен
1,058
540
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
можешь показать мне на примере вот этого:

require "lib.moonloader"

function main()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(2000) end
sampRegisterChatCommand('rheal', rheal)
while true do
wait(0)
end
end

function rheal()
local peds = getAllChars()
for _, v in pairs(peds) do
local result, myid = sampGetPlayerIdByCharHandle(playerPed)
local mx, my, mz = getCharCoordinates(playerPed)
local x, y, z = getCharCoordinates(v)
local distance = getDistanceBetweenCoords3d(mx, my, mz, x, y, z)
local result, id = sampGetPlayerIdByCharHandle(v)
if result and id ~= sampGetPlayerIdByCharHandle(PLAYER_PED) and distance < 12.0 then
if id ~= myid then
sampSendChat('/heal '..tonumber(id))
end
end
end
end

как в него пихнуть имгуй, это на бх твой метод помоему или кого то еще вот кароч просто рандом взял и мог бы ты показать как?
НРП врач с Аризоны, привет)
Изучи тему https://www.blast.hk/threads/19292/
 

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Друг
8,777
11,223
можешь показать мне на примере вот этого:

require "lib.moonloader"

function main()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(2000) end
sampRegisterChatCommand('rheal', rheal)
while true do
wait(0)
end
end

function rheal()
local peds = getAllChars()
for _, v in pairs(peds) do
local result, myid = sampGetPlayerIdByCharHandle(playerPed)
local mx, my, mz = getCharCoordinates(playerPed)
local x, y, z = getCharCoordinates(v)
local distance = getDistanceBetweenCoords3d(mx, my, mz, x, y, z)
local result, id = sampGetPlayerIdByCharHandle(v)
if result and id ~= sampGetPlayerIdByCharHandle(PLAYER_PED) and distance < 12.0 then
if id ~= myid then
sampSendChat('/heal '..tonumber(id))
end
end
end
end

как в него пихнуть имгуй, это на бх твой метод помоему или кого то еще вот кароч просто рандом взял и мог бы ты показать как?
1630238164350.png

Lua:
local imgui = require('imgui')
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8

local window = imgui.ImBool(false)

function main()
    while not isSampAvailable() do wait(200) end
    imgui.Process = false
    window.v = true  --show window
    while true do
        wait(0)
        imgui.Process = window.v
    end
end

function imgui.OnDrawFrame()
    if window.v then
        imgui.SetNextWindowPos(imgui.ImVec2(600.0, 250.0), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowSize(imgui.ImVec2(260.0, 230.0), imgui.Cond.FirstUseEver)
        imgui.Begin('Heal In Radius', window)

        imgui.SetCursorPos(imgui.ImVec2(5, 23))
        imgui.BeginChild('child:playerlist', imgui.ImVec2(250, 200), true)
            local list = getList()
            if imgui.Button('Heal All', imgui.ImVec2(250, 20)) then
                if list[1] then
                    for i = 1, #list do sampSendChat('/heal '..i) end
                end
            end
            imgui.Separator()
            if list[1] then
                for i = 1, #list do
                    imgui.Text(sampGetPlayerNickname(list[i]))
                    imgui.SameLine()
                    imgui.SetCursorPosX(200)
                    if imgui.Button('Heal##'..tostring(i), imgui.ImVec2(50, 20)) then
                        sampSendChat('/heal '..i)
                    end
                    imgui.Separator()
                end
            end
        imgui.EndChild()

        imgui.End()
    end
end

function getList()
    local t = {}
    for k, v in pairs(getAllChars()) do
        local myX, myY, myZ = getCharCoordinates(PLAYER_PED)
        local x, y, z = getCharCoordinates(v)
        if getDistanceBetweenCoords3d(myX, myY, myZ, x, y, z) <= 12 then
            _, id = sampGetPlayerIdByCharHandle(v)
            if id ~= select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)) then
                table.insert(t, id)
            end
        end
    end
    return t
end
 

Alt F4

Участник
37
6
Посмотреть вложение 112458
Lua:
local imgui = require('imgui')
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8

local window = imgui.ImBool(false)

function main()
    while not isSampAvailable() do wait(200) end
    imgui.Process = false
    window.v = true  --show window
    while true do
        wait(0)
        imgui.Process = window.v
    end
end

function imgui.OnDrawFrame()
    if window.v then
        imgui.SetNextWindowPos(imgui.ImVec2(600.0, 250.0), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowSize(imgui.ImVec2(260.0, 230.0), imgui.Cond.FirstUseEver)
        imgui.Begin('Heal In Radius', window)

        imgui.SetCursorPos(imgui.ImVec2(5, 23))
        imgui.BeginChild('child:playerlist', imgui.ImVec2(250, 200), true)
            local list = getList()
            if imgui.Button('Heal All', imgui.ImVec2(250, 20)) then
                if list[1] then
                    for i = 1, #list do sampSendChat('/heal '..i) end
                end
            end
            imgui.Separator()
            if list[1] then
                for i = 1, #list do
                    imgui.Text(sampGetPlayerNickname(list[i]))
                    imgui.SameLine()
                    imgui.SetCursorPosX(200)
                    if imgui.Button('Heal##'..tostring(i), imgui.ImVec2(50, 20)) then
                        sampSendChat('/heal '..i)
                    end
                    imgui.Separator()
                end
            end
        imgui.EndChild()

        imgui.End()
    end
end

function getList()
    local t = {}
    for k, v in pairs(getAllChars()) do
        local myX, myY, myZ = getCharCoordinates(PLAYER_PED)
        local x, y, z = getCharCoordinates(v)
        if getDistanceBetweenCoords3d(myX, myY, myZ, x, y, z) <= 12 then
            _, id = sampGetPlayerIdByCharHandle(v)
            if id ~= select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)) then
                table.insert(t, id)
            end
        end
    end
    return t
end
спасибо огромное! я уже нашел тему и делаю имгуй окно) только вот вопрос у тебя в скриптах тоже есть имгуй окна например там незнаю где аксы визуал там где ширину и т.д с экраном можно делать имгуи у тебя красивый вопрос, как сделать на подобии такого?