Цикл for | Imgui

Setkh

Участник
Автор темы
74
6
Версия MoonLoader
.026-beta
Почему только первая пара кнопок нажимается и отправляет сообщение в чат, а остальные не производят никаких действий?
Lua:
                for i = 1, #changename.name do
                    imgui.SetCursorPosX(15)
                    imgui.TextColoredRGB("{FFFFFF}"..changename.name[i].."["..changename.id[i].."]")
                    imgui.SameLine()
                    imgui.SetCursorPosX(150)
                    imgui.TextColoredRGB("{FFFFFF}"..changename.newname[i])
                    imgui.SameLine()
                    imgui.SetCursorPosX(290)
                    imgui.TextColoredRGB("")
                    imgui.SameLine()
                    imgui.SetCursorPosX(395)
                    if imgui.Button(fa.ICON_FA_CHECK.. u8"", imgui.ImVec2(30, 0)) then
                        sampSendChat("/okay "..changename.id[i])
                    end
                    imgui.SameLine()
                    imgui.SetCursorPosX(430)
                    if imgui.Button(fa.ICON_FA_TIMES.. u8"", imgui.ImVec2(30, 0)) then
                        sampSendChat("/pm "..changename.id[i].." Ники RP формата меняются через: /donate")
                    end
                end
 
Решение
Lua:
                for i = 1, #changename.name do
                    imgui.SetCursorPosX(15)
                    imgui.TextColoredRGB("{FFFFFF}"..changename.name[i].."["..changename.id[i].."]")
                    imgui.SameLine()
                    imgui.SetCursorPosX(165)
                    imgui.TextColoredRGB("{FFFFFF}"..changename.newname[i])
                    imgui.SameLine()
                    imgui.SetCursorPosX(290)
                    imgui.TextColoredRGB("")
                    for i2 = 1, #changename.id do
                        imgui.SameLine()
                        imgui.SetCursorPosX(395)
                        if imgui.Button(fa.ICON_FA_CHECK.. u8"##Ок,"..i..","..i2, imgui.ImVec2(30, 0)) then...

Double Tap Inside

Известный
Проверенный
1,916
1,261
Ну, как я понял текст на кнопке это также и строковый id по совместительству. Чтобы кнопки считались разыми делают так "Удалить##Удаление"..index, добавляю индекс или ключ (у тебя это переменная i ). Таким образом каждая кнопка будет иметь свой "уникальный" айди. Текст после ## виден в интерфейсе не будет.

P.S.
Делать админхелперы это сейчас в тренде? :)
 
Последнее редактирование:
  • Нравится
Реакции: AnWu

Setkh

Участник
Автор темы
74
6
Ну, как я понял текст на кнопке это также и строковый id по совместительству. Чтобы кнопки считались разыми делают так "Удалить##Удаление"..index, добавляю индекс или ключ (у тебя это переменная i ). Таким образом каждая кнопка будет иметь свой "уникальный" айди. Текст после ## виден в интерфейсе не будет.

P.S.
Делать админхелперы это сейчас в тренде? :)
В тренде :D

Не помогло это, плюсом к тому что последующие кнопки некликабельны под ними ещё какая-то муть из пикселей появляется -_-
 

Setkh

Участник
Автор темы
74
6
Lua:
                for i = 1, #changename.name do
                    imgui.SetCursorPosX(15)
                    imgui.TextColoredRGB("{FFFFFF}"..changename.name[i].."["..changename.id[i].."]")
                    imgui.SameLine()
                    imgui.SetCursorPosX(165)
                    imgui.TextColoredRGB("{FFFFFF}"..changename.newname[i])
                    imgui.SameLine()
                    imgui.SetCursorPosX(290)
                    imgui.TextColoredRGB("")
                    for i = 1, #changename.id do
                        imgui.SameLine()
                        imgui.SetCursorPosX(395)
                        if imgui.Button(fa.ICON_FA_CHECK.. u8"##Ок"..i, imgui.ImVec2(30, 0)) then
                            sampAddChatMessage("/okay "..changename.id[i], -1)
                        end
                        imgui.SameLine()
                        imgui.SetCursorPosX(430)
                        if imgui.Button(fa.ICON_FA_TIMES.. u8"##Удалить"..i, imgui.ImVec2(30, 0)) then
                            sampAddChatMessage("/pm "..changename.id[i].." Ники RP формата меняются через: /donate", -1)
                        end
                    end
                    imgui.SameLine()
                    imgui.SetCursorPosX(480)
                    imgui.TextColoredRGB("{FFFFFF}"..math.ceil(changename.timer[i]) - math.ceil(os.clock())..u8" сек.")
                 end
 
Последнее редактирование:

Double Tap Inside

Известный
Проверенный
1,916
1,261
Lua:
                for i = 1, #changename.name do
                    imgui.SetCursorPosX(15)
                    imgui.TextColoredRGB("{FFFFFF}"..changename.name[i].."["..changename.id[i].."]")
                    imgui.SameLine()
                    imgui.SetCursorPosX(165)
                    imgui.TextColoredRGB("{FFFFFF}"..changename.newname[i])
                    imgui.SameLine()
                    imgui.SetCursorPosX(290)
                    imgui.TextColoredRGB("")
                    for i2 = 1, #changename.id do
                        imgui.SameLine()
                        imgui.SetCursorPosX(395)
                        if imgui.Button(fa.ICON_FA_CHECK.. u8"##Ок,"..i..","..i2, imgui.ImVec2(30, 0)) then
                            sampAddChatMessage("/okay "..changename.id[i], -1)
                        end
                        imgui.SameLine()
                        imgui.SetCursorPosX(430)
                        if imgui.Button(fa.ICON_FA_TIMES.. u8"##Удалить,"..i..","..i2, imgui.ImVec2(30, 0)) then
                            sampAddChatMessage("/pm "..changename.id[i].." Ники RP формата меняются через: /donate", -1)
                        end
                    end
                    imgui.SameLine()
                    imgui.SetCursorPosX(480)
                    imgui.TextColoredRGB("{FFFFFF}"..math.ceil(changename.timer[i]) - math.ceil(os.clock())..u8" сек.")

                end
            end
Работает, спасибо! :)

Но, почему-то, при наведении на кнопки они не подсвечиваются, с чем связано?
До добавления этого: "..i..","..i2" кнопки подсвечивались как и должны
Наверное потому, что индексы в товем for постоянно меняются... и выходит так, что кнопки пересоздаются заново........ А если каждый кадр ты видишь "Новую" кнопку, то как же можно определить, что ты на какой-то кнопке навел мышку. Как такое происходит? Да хуй знает, это уже твой код, я хуй знает что ты там перебираешь и как часто там меняется значение, в каком порядке итд...
(или это просто стиль имгуя такой, но скорее всео нет)

Также тут должно быть i2 наверное, по идее....
sampAddChatMessage("/pm "..changename.id[i].." Ники RP формата меняются через: /donate", -1) sampAddChatMessage("/okay "..changename.id[i], -1)
 
Последнее редактирование:
  • Влюблен
Реакции: Setkh