- 42
- 6
- Версия MoonLoader
- .026-beta
Делаю биндер и не пойму как при нажатий кнопки "+" добавить новый массив в конец json с заданными параметрами
Тут у меня цикл в котором он рендерит поля для ввода и задержки с методом
Вот как выглядит сам цикл:
Сама таблица json выглядит так:
Тут у меня цикл в котором он рендерит поля для ввода и задержки с методом
Lua:
imgui.BeginChild('binds_edit', imgui.ImVec2(680, 250), false)
local itemsList = {u8"Отправить серверу", u8"-Отправить клиенту SAMP", u8"-Написать в чат и закрыть его", u8"Написать в чат", u8"В локальный чат", u8"-В активное диалоговое окно", u8"-Скопировать в буфер обмена", u8"-В консоль SF и биндера", u8"-В уведомления", u8"-Без отправки"}
local items = imgui.new['const char*'][#itemsList](itemsList)
for l = 1, #tbinder[PickedTab].binds[Pickedbind].lines do
lines = l
BindLinesEdit = imgui.new.char[256](str(tbinder[PickedTab].binds[Pickedbind].lines[lines].text))
BindDelayEdit = imgui.new.char[128](encodeJson(tbinder[PickedTab].binds[Pickedbind].lines[lines].delay))
current = imgui.new.int(tbinder[PickedTab].binds[Pickedbind].lines[lines].method)
imgui.PushItemWidth(400)
if imgui.InputText("###BindLinesEdit"..l, BindLinesEdit, sizeof(BindLinesEdit)) then
--1
tbinder[PickedTab].binds[Pickedbind].lines[lines].text = str(BindLinesEdit)
end
imgui.SameLine()
imgui.PushItemWidth(120)
if imgui.InputText("###BindDelayEdit"..l, BindDelayEdit, sizeof(BindDelayEdit)) then
--2
tbinder[PickedTab].binds[Pickedbind].lines[lines].delay = decodeJson(str(BindDelayEdit))
end
imgui.SameLine()
imgui.PushItemWidth(120)
--3
if imgui.Combo("###method"..l, current, items, #itemsList) then
tbinder[PickedTab].binds[Pickedbind].lines[lines].method = current[0]
end
end
--При нажатий кнопки должны добавиться значения 1, 2, 3 только пустые
if imgui.Button("+") then
end
imgui.EndChild()
Вот как выглядит сам цикл:
Сама таблица json выглядит так:
Json:
[
{
"binds": [
{
--Cюда в lines дожен прибавиться еще один массив в конец с пустыми значениями method, delay, text
"lines": [
{
"method": 0,
"delay": 1900,
"text": "/me достал из кармана бейджик"
},
{
"method": 0,
"text": "/me надел бейджик",
"delay": 1900
},
{
"method": 0,
"text": "/do На бейджике: Доктор Фамилия | Хирург",
"delay": 1900
},
{
"method": 0,
"text": "/clist 9",
"delay": 1900
}
],
"name": "Бейджик [надеть]",
"cmd": "нбэйдж",
"key": {
"v": {}
}
}
]
}
]