Работа с большим кол-вом картинок. ImGui.

A S K I T

Активный
Автор темы
201
69
Версия MoonLoader
.026-beta
Не знаю какой заголовок дать этому вопросу, в общем, делаю худ, и, возник вопрос, можно-ли как-то по другому реализовать отображение оружия, чтобы не было так много строк кода?

Lua:
-- Картинки оружия.
weapon_0 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\0.png')
weapon_1 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\1.png')
weapon_2 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\2.png')
weapon_3 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\3.png')
weapon_4 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\4.png')
weapon_5 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\5.png')
weapon_6 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\6.png')
weapon_7 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\7.png')
weapon_8 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\8.png')
weapon_9 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\9.png')
weapon_10 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\10.png')
weapon_11 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\11.png')
weapon_12 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\12.png')
weapon_13 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\13.png')
weapon_14 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\14.png')
weapon_15 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\15.png')
weapon_16 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\16.png')
weapon_17 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\17.png')
weapon_18 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\18.png')
weapon_19 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\19.png')
weapon_20 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\20.png')
weapon_21 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\21.png')
weapon_22 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\22.png')
weapon_23 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\23.png')
weapon_24 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\24.png')
weapon_25 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\25.png')
weapon_26 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\26.png')
weapon_27 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\27.png')
weapon_28 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\28.png')
weapon_29 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\29.png')
weapon_30 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\30.png')
weapon_31 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\31.png')
weapon_32 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\32.png')
weapon_33 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\33.png')
weapon_34 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\34.png')
weapon_35 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\35.png')
weapon_36 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\36.png')
weapon_37 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\37.png')
weapon_38 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\38.png')
weapon_39 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\39.png')
weapon_40 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\40.png')
weapon_41 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\41.png')
weapon_42 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\42.png')
weapon_43 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\43.png')
weapon_44 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\44.png')
weapon_45 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\45.png')
weapon_46 = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\46.png')

-- Оружие.
if cfg.settings.hudWidget_weapon then
    imgui.BeginChild('##hud_weapon', imgui.ImVec2(100, 105), false)
        if getCurrentCharWeapon(PLAYER_PED) == 0 then
            imgui.Image(weapon_0, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 1 then
            imgui.Image(weapon_1, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 2 then
            imgui.Image(weapon_2, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 3 then
            imgui.Image(weapon_3, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 4 then
            imgui.Image(weapon_4, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 5 then
            imgui.Image(weapon_5, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 6 then
            imgui.Image(weapon_6, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 7 then
            imgui.Image(weapon_7, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 8 then
            imgui.Image(weapon_8, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 9 then
            imgui.Image(weapon_9, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 10 then
            imgui.Image(weapon_10, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 11 then
            imgui.Image(weapon_11, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 12 then
            imgui.Image(weapon_12, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 13 then
            imgui.Image(weapon_13, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 14 then
            imgui.Image(weapon_14, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 15 then
            imgui.Image(weapon_15, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 16 then
            imgui.Image(weapon_16, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 17 then
            imgui.Image(weapon_17, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 18 then
            imgui.Image(weapon_18, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 19 then
            imgui.Image(weapon_19, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 20 then
            imgui.Image(weapon_20, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 21 then
            imgui.Image(weapon_21, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 22 then
            imgui.Image(weapon_22, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 23 then
            imgui.Image(weapon_23, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 24 then
            imgui.Image(weapon_24, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 25 then
            imgui.Image(weapon_25, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 26 then
            imgui.Image(weapon_26, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 27 then
            imgui.Image(weapon_27, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 28 then
            imgui.Image(weapon_28, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 29 then
            imgui.Image(weapon_29, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 30 then
            imgui.Image(weapon_30, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 31 then
            imgui.Image(weapon_31, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 32 then
            imgui.Image(weapon_32, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 33 then
            imgui.Image(weapon_33, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 34 then
            imgui.Image(weapon_34, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 35 then
            imgui.Image(weapon_35, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 36 then
            imgui.Image(weapon_36, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 37 then
            imgui.Image(weapon_37, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 38 then
            imgui.Image(weapon_38, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 39 then
            imgui.Image(weapon_39, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 40 then
            imgui.Image(weapon_40, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 41 then
            imgui.Image(weapon_41, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 42 then
            imgui.Image(weapon_42, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 43 then
            imgui.Image(weapon_43, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 44 then
            imgui.Image(weapon_44, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 45 then
            imgui.Image(weapon_45, imgui.ImVec2(100, 100))
        elseif getCurrentCharWeapon(PLAYER_PED) == 46 then
            imgui.Image(weapon_46, imgui.ImVec2(100, 100))
        end

        if (imgui.IsMouseClicked(1) and imgui.IsWindowHovered()) then
            window_hudWidgetSettings.v = not window_hudWidgetSettings.v
        end
    imgui.EndChild()
    imgui.SameLine()
end
 
Решение
Lua:
-- В начало
local weap = {}
for i = 0, 46 do
    weap[i] = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\'..i..'.png') -- Убедись, что название картинок от 0 до 46, как выше в for
end

-- OnDrawFrame
for i = 0, 46 do
    if getCurrentCharWeapon(PLAYER_PED) == i then
        imgui.Image(weap[i], imgui.ImVec2(50, 50))
    end
end
ezgif-2-773d2060544d.gif

Картинок ганов у меня не было.)

Dmitriy Makarov

25.05.2021
Проверенный
2,478
1,113
Lua:
-- В начало
local weap = {}
for i = 0, 46 do
    weap[i] = imgui.CreateTextureFromFile(getGameDirectory()..'\\moonloader\\papka\\'..i..'.png') -- Убедись, что название картинок от 0 до 46, как выше в for
end

-- OnDrawFrame
for i = 0, 46 do
    if getCurrentCharWeapon(PLAYER_PED) == i then
        imgui.Image(weap[i], imgui.ImVec2(50, 50))
    end
end
ezgif-2-773d2060544d.gif

Картинок ганов у меня не было.)
 
  • Влюблен
Реакции: A S K I T