Много строк из чата в imgui

Ferrat

Известный
Автор темы
64
29
Хочу сделать что бы если строка из чата содержала " от продажи (комиссия 4 процент(а))" то она выводилась в imgui и следующая которая содержит это выводилась в новую строку
Вот набросил в фотошопе как хочу
PIf2f.png


Я пока сделал только что бы выводило последнюю строку
ы:
local imgui = require 'imgui'
local key = require 'vkeys'
local encoding = require 'encoding' -- загружаем библиотеку
encoding.default = 'CP1251' -- указываем кодировку по умолчанию, она должна совпадать с кодировкой файла. CP1251 - это Windows-1251
u8 = encoding.UTF8 -- и создаём короткий псевдоним для кодировщика UTF-8
-- одно из основных отличий от оригинального апи
-- все переменные, значения которых записываются в ImGui по указателю, могут использоваться только через специальные типы

oldStr = ''
local main_window_state = imgui.ImBool(false)
function imgui.OnDrawFrame()

  if main_window_state.v then -- чтение и запись значения такой переменной осуществляется через поле v (или Value)
    imgui.SetNextWindowSize(imgui.ImVec2(150, 200), imgui.Cond.FirstUseEver) -- меняем размер
    -- но для передачи значения по указателю - обязательно напрямую
    -- тут main_window_state передаётся функции imgui.Begin, чтобы можно было отследить закрытие окна нажатием на крестик
    imgui.Begin('My window', main_window_state)
    imgui.Text(u8(oldStr))
    imgui.End()
  end
end

function main()
  while true do
    wait(0)
    if wasKeyPressed(key.VK_X) then -- активация по нажатию клавиши X
        main_window_state.v = not main_window_state.v -- переключаем статус активности окна, не забываем про .v
    end
    str = select(1, sampGetChatString(99)) --получаем последнюю строку из чата
    if str ~= oldStr then --делаем проверку на то изменилась ли строка
    oldStr = str -- если изменилась то присваиваем новое значение
end
    imgui.Process = main_window_state.v -- теперь значение imgui.Process всегда будет задаваться в зависимости от активности основного окна
  end
end
 

ARMOR

kjor32 is legend
Модератор
4,847
6,102
Хочу сделать что бы если строка из чата содержала " от продажи (комиссия 4 процент(а))" то она выводилась в imgui и следующая которая содержит это выводилась в новую строку
Вот набросил в фотошопе как хочу
PIf2f.png


Я пока сделал только что бы выводило последнюю строку
ы:
local imgui = require 'imgui'
local key = require 'vkeys'
local encoding = require 'encoding' -- загружаем библиотеку
encoding.default = 'CP1251' -- указываем кодировку по умолчанию, она должна совпадать с кодировкой файла. CP1251 - это Windows-1251
u8 = encoding.UTF8 -- и создаём короткий псевдоним для кодировщика UTF-8
-- одно из основных отличий от оригинального апи
-- все переменные, значения которых записываются в ImGui по указателю, могут использоваться только через специальные типы

oldStr = ''
local main_window_state = imgui.ImBool(false)
function imgui.OnDrawFrame()

  if main_window_state.v then -- чтение и запись значения такой переменной осуществляется через поле v (или Value)
    imgui.SetNextWindowSize(imgui.ImVec2(150, 200), imgui.Cond.FirstUseEver) -- меняем размер
    -- но для передачи значения по указателю - обязательно напрямую
    -- тут main_window_state передаётся функции imgui.Begin, чтобы можно было отследить закрытие окна нажатием на крестик
    imgui.Begin('My window', main_window_state)
    imgui.Text(u8(oldStr))
    imgui.End()
  end
end

function main()
  while true do
    wait(0)
    if wasKeyPressed(key.VK_X) then -- активация по нажатию клавиши X
        main_window_state.v = not main_window_state.v -- переключаем статус активности окна, не забываем про .v
    end
    str = select(1, sampGetChatString(99)) --получаем последнюю строку из чата
    if str ~= oldStr then --делаем проверку на то изменилась ли строка
    oldStr = str -- если изменилась то присваиваем новое значение
end
    imgui.Process = main_window_state.v -- теперь значение imgui.Process всегда будет задаваться в зависимости от активности основного окна
  end
end
Юзай хук onServerMessage()
 

Ferrat

Известный
Автор темы
64
29
Последнее редактирование:
  • Ха-ха
Реакции: ARMOR