Вопрос Ui.update не обновляет

  • Автор темы Автор темы notddiad
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
5 Авг 2024
Сообщения
11
Реакции
0
Ну просто не обновляет и все, что делать с этим?


[gamesense] No update.
[gamesense] No update.
[gamesense] No update.
[gamesense] No update.
[gamesense] Updated
[gamesense] No update.

code_language.lua:
Expand Collapse Copy
local sounds, prev = filesystem.collect_mp3('csgo/sound/*'), {}

sounds = #sounds < 1 and {'No sounds.'} or sounds
local select_sound = ui.new_combobox('Lua', 'B', 'Sound', unpack(sounds))


local function updater()
    client.delay_call(5, updater)
    local sounds = filesystem.collect_mp3('csgo/sound/*')
    if #sounds == #prev then print('No update.') return false end
    prev = sounds

    sounds = #sounds < 1 and {'No sounds.'} or sounds
    ui.update(select_sound, ui.get(select_sound), unpack(sounds))

    print('Updated')
end

updater()
 
попробуй этот код

lua
local sounds = filesystem.collect_mp3('csgo/sound/*')
local prev_sounds_count = #sounds

sounds = #sounds < 1 and {'No sounds.'} or sounds
local select_sound = ui.new_combobox('Lua', 'B', 'Sound', table.unpack(sounds))

local function updater()
client.delay_call(5, updater)
local current_sounds = filesystem.collect_mp3('csgo/sound/*')

if #current_sounds == prev_sounds_count then
print('[gamesense] No update.')
return
end

local current_selection = ui.get(select_sound)

current_sounds = #current_sounds < 1 and {'No sounds.'} or current_sounds

local new_select_sound = ui.new_combobox('Lua', 'B', 'Sound', table.unpack(current_sounds))

local selection_exists = false
for i, sound in ipairs(current_sounds) do
if sound == current_selection then
ui.set(new_select_sound, current_selection)
selection_exists = true
break
end
end


if not selection_exists and #current_sounds > 0 then
ui.set(new_select_sound, current_sounds[1])
end

ui.set_visible(select_sound, false)
select_sound = new_select_sound

prev_sounds_count = #current_sounds
print('[gamesense] Updated')
end

updater()
 
вроде ui.update работает только на listbox
 
Последнее редактирование:
он тебе дал метод а не готовый код чтоб пофиксить твою хуйню через чат гпт
Какой готовый код, я попробывал дать в аргумент таблицу, и нихуя не поменялось
На самом форуме вообще про таблицы не слова, там пишет что функция принимает несколько аргументов

1741182175828.png
 
Какой готовый код, я попробывал дать в аргумент таблицу, и нихуя не поменялось
На самом форуме вообще про таблицы не слова, там пишет что функция принимает несколько аргументов

Посмотреть вложение 300399
там белым по серому написано, что множество это опциональный вариант, ты можешь для комбобокса просто таблицу кинуть, либо по одному через запятую, нахуй ты ui.get() туда передаешь
 
там белым по серому написано, что множество это опциональный вариант, ты можешь для комбобокса просто таблицу кинуть, либо по одному через запятую, нахуй ты ui.get() туда передаешь

Чего?

ui.update(item: number, value: any, ...)

valueThe value to which the menu item will be set
Второй аргумент - value
 
1741185299550.png
а зачем ты рекурсию используешь тут? если уж на то пошло, что ты не можешь ничего сам, спроси у чатгпт...
 
ага Посмотреть вложение 300406на твоем же видео ты туда зачем то ui.get() пихаешь или ты не соображаешь вообще?

Второй аргумент - value что не понимаешь здесь??? Исходя из документации он должен устанавливать значение UI елемента также как и ui.set

1741189144903.png


Посмотреть вложение 300404а зачем ты рекурсию используешь тут? если уж на то пошло, что ты не можешь ничего сам, спроси у чатгпт...

Мне while true do сделать чтобы проверять закинул ли пользователь какой-то звук еще?
1741189647455.png


code_language.lua:
Expand Collapse Copy
local i = ui.new_combobox('Lua', 'A', 'ui.update Test', 'First', 'Second')

local test_functions = {
    function()
        print('+ ui.update(i, значение, значение, значение)')
        print('Результат: ', ui.update(i, 'First', 'Second', 'Third'))
    end,
    function()
        print('+ ui.update(i, ui.get(i), значение, значение, значение)')
        print('Результат: ', ui.update(i, ui.get(i), 'First', 'Second', 'Third'))
    end,
    function()
        print('+ ui.update(i, {значение, значение, значение})')
        print('Результат: ', ui.update(i, {'First', 'Second', 'Third'}))
    end,
    function()
        print('+ ui.update(i, ui.get(i), {значение, значение, значение})')
        print('Результат: ', ui.update(i, ui.get(i), {'First', 'Second', 'Third'}))
    end
}

for i, v in pairs(test_functions) do v() end
Почекал все ui элементы, работает только на listbox, при этом в документации нигде это не указано. Кайф
 
Последнее редактирование:
Второй аргумент - value что не понимаешь здесь??? Исходя из документации он должен устанавливать значение UI елемента также как и ui.set
нет. он меняет содержание элемента, этот метод работает только на динамические объекты меню, ты не сможешь поменять лейбл или чекбокс например, ui.set меняет значение элемента как если бы это сделал юзер через гуи, а update обновляет компонент элемента
Код:
Expand Collapse Copy
class checkbox:
string name;
bool enabled;

class combobox:
string name;
string chosen;
List<string> updatable_variable;
структура выглядит примерно так где name и лист изначально сетается конструктором, обновить в данном случае можно лишь лист с вариантами, а ui.set изменяет активное значение. по документации можно догадаться как работает данный метод.
 
нет. он меняет содержание элемента, этот метод работает только на динамические объекты меню, ты не сможешь поменять лейбл или чекбокс например, ui.set меняет значение элемента как если бы это сделал юзер через гуи, а update обновляет компонент элемента
Код:
Expand Collapse Copy
class checkbox:
string name;
bool enabled;

class combobox:
string name;
string chosen;
List<string> updatable_variable;
структура выглядит примерно так где name и лист изначально сетается конструктором, обновить в данном случае можно лишь лист с вариантами, а ui.set изменяет активное значение. по документации можно догадаться как работает данный метод.
Бля я щас свой комп нахуй взорву...
Я хочу убрать костыль через listbox, переделав всё на комбобокс, но сколько не пытаясь - не получается обновить нихуя
 
Бля я щас свой комп нахуй взорву...
Я хочу убрать костыль через listbox, переделав всё на комбобокс, но сколько не пытаясь - не получается обновить нихуя
ну видимо ui.update работает только на листбокс, либо в документации не дописаны возможные аргументы для специфических элементов
 
Назад
Сверху Снизу