Помогите с LUA Скриптингом

h0los

Активный
Автор темы
192
30
что не так? (суть: хочу вывести рядом хп)
Lua:
require("lib.moonloader")
local display = true
local font = renderCreateFont("Arial", 20, 15)

function main()
    sampRegisterChatCommand("hud", cmd_hud)
    while true do
        wait(0)
        renderFontDrawText(font, "$" .. getPlayerMoney(PLAYER_HANDLE), 1200, 50, -1)
        renderFontDrawText(font, "H" .. getCharHealth(pedHandle_ped))
    end
end

function cmd_hud()
    display = not display
    displayHud(display)
end
 

Hinаta

Известный
778
360
Lua:
require("lib.moonloader")
local display = true
local font = renderCreateFont("Arial", 20, 15)

function main()
    sampRegisterChatCommand("hud", function()
        display = not display
        displayHud(display)
    end)
    while true do
        wait(0)
        if not display then
            renderFontDrawText(font, "$" .. getPlayerMoney(PLAYER_HANDLE), 1200, 50, -1)
            renderFontDrawText(font, "HP " .. getCharHealth(PLAYER_PED), 1200, 75, -1)
        end
    end
end
 

h0los

Активный
Автор темы
192
30
Lua:
require("lib.moonloader")
local display = true
local font = renderCreateFont("Arial", 20, 15)

function main()
    sampRegisterChatCommand("hud", function()
        display = not display
        displayHud(display)
    end)
    while true do
        wait(0)
        if not display then
            renderFontDrawText(font, "$" .. getPlayerMoney(PLAYER_HANDLE), 1200, 50, -1)
            renderFontDrawText(font, "HP " .. getCharHealth(PLAYER_PED), 1200, 75, -1)
        end
    end
end
а бронь еще можешь добавить?
 

Hinаta

Известный
778
360

h0los

Активный
Автор темы
192
30

h0los

Активный
Автор темы
192
30
Можно. Я с самого начала предлагал делать это всё на mimgui. Лично мне так проще и, объективно, возможностей больше
я основы понял но захотелось просто минималистичный супер мега худ сделать

ты же учишься. Я тоже, но это я уже знаю. Сам делай аналогичным образом, в голове что-то останется
кстати получилось
1700997844983.png
 
  • Нравится
Реакции: Hinаta

Hinаta

Известный
778
360
Можно. Я с самого начала предлагал делать это всё на mimgui. Лично мне так проще и, объективно, возможностей больше
вот простенький микрохудик с использованием mimgui

1700999405568.png

Lua:
local imgui = require('mimgui')
local ImVec2 = imgui.ImVec2
local flags = imgui.WindowFlags

local hud = imgui.new.bool()

local hudFrame = imgui.OnFrame(function() return hud[0] end,
    function(ok)
        ok.HideCursor = true
        imgui.SetNextWindowSize(ImVec2(100, 0))
        imgui.Begin('hud window', hud, flags.NoTitleBar + flags.NoResize)
        imgui.PushFont(segoe)
        local health = getCharHealth(PLAYER_PED)
        imgui.ProgressBar(health / 100, nil, 'Health: ' .. health)
        local armour = getCharArmour(PLAYER_PED)
        imgui.ProgressBar(armour / 100, nil, 'Armour: ' .. armour)
        imgui.PopFont()
        imgui.End()
    end
)

function main()
    repeat wait(0) until isSampAvailable()
    sampRegisterChatCommand('mhud', function()
        displayHud(hud[0])
        hud[0] = not hud[0]
    end)
end

imgui.OnInitialize(function()
    local config = imgui.ImFontConfig()
    config.MergeMode = true
    local glyph_ranges = imgui.GetIO().Fonts:GetGlyphRangesCyrillic()
    segoe = imgui.GetIO().Fonts:AddFontFromFileTTF(getFolderPath(0x14) .. '\\segoeui.ttf', 22.0, nil, glyph_ranges)

    -- theme
    local style = imgui.GetStyle();
    local colors = style.Colors;

    style.WindowPadding = imgui.ImVec2(10, 10);
    style.FramePadding = imgui.ImVec2(0.5, 0.5);
    style.FrameRounding = 5;
    colors[imgui.Col.Border] = imgui.ImVec4(0, 0, 0, 0);
    colors[imgui.Col.WindowBg] = imgui.ImVec4(0.13, 0.13, 0.13, 0.9);

    colors[imgui.Col.FrameBg] = imgui.ImVec4(0, 0, 0, 0.5);
    colors[imgui.Col.FrameBgHovered] = imgui.ImVec4(0, 0, 0, 0.3);
    colors[imgui.Col.FrameBgActive] = imgui.ImVec4(0, 0, 0, 0.6);
end)
 
Последнее редактирование:
  • Нравится
Реакции: MrDorlik

h0los

Активный
Автор темы
192
30
вот простенький микрохудик с использованием mimgui

Посмотреть вложение 222310
Lua:
local imgui = require('mimgui')
local ImVec2 = imgui.ImVec2
local flags = imgui.WindowFlags

local hud = imgui.new.bool()

function floor(what, step) return what - what % step end

local hudFrame = imgui.OnFrame(function() return hud[0] end,
    function(ok)
        ok.HideCursor = true
        imgui.SetNextWindowSize(ImVec2(100, 0))
        imgui.Begin('hud window', hud, flags.NoTitleBar + flags.NoResize)
        imgui.PushFont(segoe)
        local health = getCharHealth(PLAYER_PED)
        imgui.ProgressBar(health / 100, nil, 'Health: ' .. health)
        local armour = getCharArmour(PLAYER_PED)
        imgui.ProgressBar(armour / 100, nil, 'Armour: ' .. armour)
        imgui.PopFont()
        imgui.End()
    end
)

function main()
    repeat wait(0) until isSampAvailable()
    sampRegisterChatCommand('mhud', function()
        displayHud(hud[0])
        hud[0] = not hud[0]
    end)
end

imgui.OnInitialize(function()
    local config = imgui.ImFontConfig()
    config.MergeMode = true
    local glyph_ranges = imgui.GetIO().Fonts:GetGlyphRangesCyrillic()
    segoe = imgui.GetIO().Fonts:AddFontFromFileTTF(getFolderPath(0x14) .. '\\segoeui.ttf', 22.0, nil, glyph_ranges)

    -- theme
    local style = imgui.GetStyle();
    local colors = style.Colors;

    style.WindowPadding = imgui.ImVec2(10, 10);
    style.FramePadding = imgui.ImVec2(0.5, 0.5);
    style.FrameRounding = 5;
    colors[imgui.Col.Border] = imgui.ImVec4(0, 0, 0, 0);
    colors[imgui.Col.WindowBg] = imgui.ImVec4(0.13, 0.13, 0.13, 0.9);

    colors[imgui.Col.FrameBg] = imgui.ImVec4(0, 0, 0, 0.5);
    colors[imgui.Col.FrameBgHovered] = imgui.ImVec4(0, 0, 0, 0.3);
    colors[imgui.Col.FrameBgActive] = imgui.ImVec4(0, 0, 0, 0.6);
end)
альтернативу на imgui сделать можно?
 
  • Эм
Реакции: MrDorlik

h0los

Активный
Автор темы
192
30
вот простенький микрохудик с использованием mimgui

Посмотреть вложение 222310
Lua:
local imgui = require('mimgui')
local ImVec2 = imgui.ImVec2
local flags = imgui.WindowFlags

local hud = imgui.new.bool()

local hudFrame = imgui.OnFrame(function() return hud[0] end,
    function(ok)
        ok.HideCursor = true
        imgui.SetNextWindowSize(ImVec2(100, 0))
        imgui.Begin('hud window', hud, flags.NoTitleBar + flags.NoResize)
        imgui.PushFont(segoe)
        local health = getCharHealth(PLAYER_PED)
        imgui.ProgressBar(health / 100, nil, 'Health: ' .. health)
        local armour = getCharArmour(PLAYER_PED)
        imgui.ProgressBar(armour / 100, nil, 'Armour: ' .. armour)
        imgui.PopFont()
        imgui.End()
    end
)

function main()
    repeat wait(0) until isSampAvailable()
    sampRegisterChatCommand('mhud', function()
        displayHud(hud[0])
        hud[0] = not hud[0]
    end)
end

imgui.OnInitialize(function()
    local config = imgui.ImFontConfig()
    config.MergeMode = true
    local glyph_ranges = imgui.GetIO().Fonts:GetGlyphRangesCyrillic()
    segoe = imgui.GetIO().Fonts:AddFontFromFileTTF(getFolderPath(0x14) .. '\\segoeui.ttf', 22.0, nil, glyph_ranges)

    -- theme
    local style = imgui.GetStyle();
    local colors = style.Colors;

    style.WindowPadding = imgui.ImVec2(10, 10);
    style.FramePadding = imgui.ImVec2(0.5, 0.5);
    style.FrameRounding = 5;
    colors[imgui.Col.Border] = imgui.ImVec4(0, 0, 0, 0);
    colors[imgui.Col.WindowBg] = imgui.ImVec4(0.13, 0.13, 0.13, 0.9);

    colors[imgui.Col.FrameBg] = imgui.ImVec4(0, 0, 0, 0.5);
    colors[imgui.Col.FrameBgHovered] = imgui.ImVec4(0, 0, 0, 0.3);
    colors[imgui.Col.FrameBgActive] = imgui.ImVec4(0, 0, 0, 0.6);
end)
Lua:
require("lib.moonloader")
local imgui = require("imgui")
local health = getCharHealth(PLAYER_PED)
local armour = getCharArmour(PLAYER_PED)

local main_window_state = imgui.ImBool(false)
function imgui.OnDrawFrame()
    imgui.ShowCursor = main_window_state.v
    if main_window_state.v then
        imgui.SetNextWindowSize(imgui.ImVec2(80, 80), imgui.Cond.FirstUseEver)
        imgui.Begin("Hud", main_window_state, imgui.WindowFlags.NoTitleBar + imgui.WindowFlags.NoResize)
        imgui.ProgressBar(health / 100, nil, 'Health: ' .. health)
        imgui.ProgressBar(armour / 100, nil, 'Armour: ' .. armour)
        imgui.End()
    end
end

function main()
    sampRegisterChatCommand("ih", cmd_ih)
    imgui.Process = true
    while true do
        wait(0)
    end
end

function cmd_ih()
    main_window_state.v = not main_window_state.v
    imgui.Process = main_window_state.v
end
попытался сделать на имгуи не получилось отредачте плз
 
  • Эм
  • Bug
Реакции: qdIbp и MrDorlik

Daniel_Govnocode

Активный
275
39
Lua:
require("lib.moonloader")
local imgui = require("imgui")
local health = getCharHealth(PLAYER_PED)
local armour = getCharArmour(PLAYER_PED)

local main_window_state = imgui.ImBool(false)
function imgui.OnDrawFrame()
    imgui.ShowCursor = main_window_state.v
    if main_window_state.v then
        imgui.SetNextWindowSize(imgui.ImVec2(80, 80), imgui.Cond.FirstUseEver)
        imgui.Begin("Hud", main_window_state, imgui.WindowFlags.NoTitleBar + imgui.WindowFlags.NoResize)
        imgui.ProgressBar(health / 100, nil, 'Health: ' .. health)
        imgui.ProgressBar(armour / 100, nil, 'Armour: ' .. armour)
        imgui.End()
    end
end

function main()
    sampRegisterChatCommand("ih", cmd_ih)
    imgui.Process = true
    while true do
        wait(0)
    end
end

function cmd_ih()
    main_window_state.v = not main_window_state.v
    imgui.Process = main_window_state.v
end
попытался сделать на имгуи не получилось отредачте плз
Могу дать код, который высвечивает без имгуи и мимгуи скинуть.