Вставление combo

boy next door

Участник
Автор темы
263
24
Версия MoonLoader
.026-beta
Здарова.
Как сделать выбор combo и вывод с ним сообщение?
Пример:
Выбрал значение *Яблоко*..
..sampSendChat('Ох, какое же это 'textcombo' вкусное!')
Как это сделать?
 
Решение
Lua:
local imgui = require("mimgui")
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8

local window = imgui.new.bool()
local test = imgui.new.int(0)
local item_list = {u8"хуй", u8"гагажга", u8"прикол"}
local ImItems = imgui.new['const char*'][#item_list](item_list)

imgui.OnFrame(function() return window[0] end, function(player)
    local sw, sh = getScreenResolution()
    imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.Always, imgui.ImVec2(0.5, 0.5))
    if imgui.Begin(u8'Тест', window, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.AlwaysAutoResize) then
        if imgui.Combo(u8'Выберите', test, ImItems, #item_list) then
            local selected_value = u8:decode(item_list[test[0] +...

chromiusj

fullstack eblan
Модератор
5,754
4,057
Lua:
local imgui = require("mimgui")
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8

local window = imgui.new.bool()
local test = imgui.new.int(0)
local item_list = {u8"хуй", u8"гагажга", u8"прикол"}
local ImItems = imgui.new['const char*'][#item_list](item_list)

imgui.OnFrame(function() return window[0] end, function(player)
    local sw, sh = getScreenResolution()
    imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.Always, imgui.ImVec2(0.5, 0.5))
    if imgui.Begin(u8'Тест', window, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.AlwaysAutoResize) then
        if imgui.Combo(u8'Выберите', test, ImItems, #item_list) then
            local selected_value = u8:decode(item_list[test[0] + 1])
            sampAddChatMessage(selected_value, -1)
        end
    end
    imgui.End()
end)

function main()
    sampRegisterChatCommand("test", function()
        window[0] = not window[0]
    end)
    wait(-1)
end
1704918560693.png
 
  • Нравится
Реакции: boy next door и plalkeo

boy next door

Участник
Автор темы
263
24
Lua:
local imgui = require("mimgui")
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8

local window = imgui.new.bool()
local test = imgui.new.int(0)
local item_list = {u8"хуй", u8"гагажга", u8"прикол"}
local ImItems = imgui.new['const char*'][#item_list](item_list)

imgui.OnFrame(function() return window[0] end, function(player)
    local sw, sh = getScreenResolution()
    imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.Always, imgui.ImVec2(0.5, 0.5))
    if imgui.Begin(u8'Тест', window, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.AlwaysAutoResize) then
        if imgui.Combo(u8'Выберите', test, ImItems, #item_list) then
            local selected_value = u8:decode(item_list[test[0] + 1])
            sampAddChatMessage(selected_value, -1)
        end
    end
    imgui.End()
end)

function main()
    sampRegisterChatCommand("test", function()
        window[0] = not window[0]
    end)
    wait(-1)
end
Посмотреть вложение 228187
Огромное спасибо!
Кстати, как сделать так, чтобы при выбранным значении, выводилось другое сообщение?
Например:
{u8'Отсутсвует', u8'Раз', u8'dwa'. u8'tri'}
Если выбрать отсутсвует, то оно напишет
sampAddChatMessage с ошибкой, что мол параметр не выбран.