Мимгуи инпут текст

Sheba

Участник
Автор темы
146
11
год не работал с луа, и решил сделать типо хелпера для армии и инпут текст при расскодировке жалуеться на функцию abc если крутить перемещать то на ffi жалуеться прошу помочь \
Lua:
local tag = "{fff000} Helper for Miltary {ffffff}"
local name = "РѕРіСѓР·РѕРє"

local imgui = require 'mimgui'
    local encoding = require 'encoding'
    encoding.default = 'CP1251'
    local u8 = encoding.UTF8
    local new = imgui.new

    local WinState = new.bool()
    local inputField = new.char[256]() -- создаём буфер для инпута
  
function main()

    while not isSampAvailable() do
        wait(100)
    end
    wait(500)
    sampAddChatMessage(tag .. "SUCCESFULL LOADED! Команда: /Mhelper.", -1)
    sampRegisterChatCommand('Mhelper', function() WinState[0] = not WinState[0] end)
    sampRegisterChatCommand('friskrp', friskrpp)
 
  
  
    while true do
        wait(0)
if inputField then
    abc()
end
      
      
    end
end     

function abc()
    text = u8:decode(ffi.string(inputField))
sampAddChatMessage(text,-1)
wait(2000)
  
end

function friskrpp(id)

    if id == "" then
        sampAddChatMessage(tag .. "Введи айди игрока: /friskrp [ID].", -1)
    else

    lua_thread.create(function()
        wait(1500)
        sampSendChat('/do В кармане перчатки')
        wait(1500)
        sampSendChat('/me достал перчатки и надел их')
        wait(1500)
        sampSendChat('/me Начал обыскивать заключенного')
        wait(1500)
        sampSendChat('/frisk' ..id..'')
      
        end)
    end
end


    imgui.OnFrame(function() return WinState[0] end, function(player)
        imgui.SetNextWindowPos(imgui.ImVec2(1200,2000), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(750, 450), imgui.Cond.Always)
        imgui.Begin('##Window', WinState, imgui.WindowFlags.NoResize)
        imgui.InputText(u8"Ваш текст", inputField, 256)
    
      
        imgui.End()
    end)

именно вот в этой вариации жалуеться на глобальную ffi в функции abc

если че то на глупости ошибся, прошу понять я не трогал луа около года
 

хромиус)

:steamhappy:
Друг
4,971
3,239
Lua:
local tag = "{fff000} Helper for Milf {ffffff}"
local name = "РѕРіСѓР·РѕРє"
local imgui = require 'mimgui'
local new = imgui.new
local ffi = require('ffi')
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
local WinState = new.bool()
local inputField = new.char[256]() -- создаём буфер для инпута

imgui.OnInitialize(function()
    imgui.GetIO().IniFilename = nil
end)
function main()
    while not isSampAvailable() do wait(0) end
    sampAddChatMessage(tag..' >loaded', -1)
    sampRegisterChatCommand('Mhelper', function() WinState[0] = not WinState[0] end)
    sampRegisterChatCommand('friskrp', friskrpp)
    wait(-1) -- зачем создавать флуд отдельной функцией в бесконечном цикле
end
function friskrpp(id)
    if id == "" then
        sampAddChatMessage(tag .. "Введи айди игрока: /friskrp [ID].", -1)
    else
        lua_thread.create(function()
            wait(1500)
            sampSendChat('/do В кармане перчатки')
            wait(1500)
            sampSendChat('/me достал перчатки и надел их')
            wait(1500)
            sampSendChat('/me Начал обыскивать заключенного')
            wait(1500)
            sampSendChat('/frisk ' ..id..'') -- не было пробела
        end)
    end
end
imgui.OnFrame(function() return WinState[0] end, function(player)
    imgui.SetNextWindowPos(imgui.ImVec2(1200,2000), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(750, 450), imgui.Cond.Always)
    imgui.Begin('##Window', WinState, imgui.WindowFlags.NoResize)
    imgui.InputText(u8"Ваш текст", inputField, 256)
    if imgui.Button('>send text') then
        lua_thread.create(function ()
            wait(2000)
            sampAddChatMessage(u8:decode(ffi.string(inputField),-1))
        end)
    end
    imgui.End()
end)
по факту код должен быть такой, если правильно понимать его
если тебе нужен ответ конкретно на твой вопрос, то
Lua:
if #inputField[0] > 0 then
    abc()
end
в функции abc также нужно поставить для inputField значение value
 
  • Нравится
Реакции: MLycoris

Sheba

Участник
Автор темы
146
11
Lua:
local tag = "{fff000} Helper for Milf {ffffff}"
local name = "РѕРіСѓР·РѕРє"
local imgui = require 'mimgui'
local new = imgui.new
local ffi = require('ffi')
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
local WinState = new.bool()
local inputField = new.char[256]() -- создаём буфер для инпута

imgui.OnInitialize(function()
    imgui.GetIO().IniFilename = nil
end)
function main()
    while not isSampAvailable() do wait(0) end
    sampAddChatMessage(tag..' >loaded', -1)
    sampRegisterChatCommand('Mhelper', function() WinState[0] = not WinState[0] end)
    sampRegisterChatCommand('friskrp', friskrpp)
    wait(-1) -- зачем создавать флуд отдельной функцией в бесконечном цикле
end
function friskrpp(id)
    if id == "" then
        sampAddChatMessage(tag .. "Введи айди игрока: /friskrp [ID].", -1)
    else
        lua_thread.create(function()
            wait(1500)
            sampSendChat('/do В кармане перчатки')
            wait(1500)
            sampSendChat('/me достал перчатки и надел их')
            wait(1500)
            sampSendChat('/me Начал обыскивать заключенного')
            wait(1500)
            sampSendChat('/frisk ' ..id..'') -- не было пробела
        end)
    end
end
imgui.OnFrame(function() return WinState[0] end, function(player)
    imgui.SetNextWindowPos(imgui.ImVec2(1200,2000), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(750, 450), imgui.Cond.Always)
    imgui.Begin('##Window', WinState, imgui.WindowFlags.NoResize)
    imgui.InputText(u8"Ваш текст", inputField, 256)
    if imgui.Button('>send text') then
        lua_thread.create(function ()
            wait(2000)
            sampAddChatMessage(u8:decode(ffi.string(inputField),-1))
        end)
    end
    imgui.End()
end)
по факту код должен быть такой, если правильно понимать его
если тебе нужен ответ конкретно на твой вопрос, то
Lua:
if #inputField[0] > 0 then
    abc()
end
в функции abc также нужно поставить для inputField значение value
попробовал код все еще жалуеться на 46 строке на ffi, я хз но есть догадка может ffi это библиотека и ее подключить надо
просто по логам он не понимает что такое ffi
 

FreX

Активный
149
40
попробовал код все еще жалуеться на 46 строке на ffi, я хз но есть догадка может ffi это библиотека и ее подключить надо
просто по логам он не понимает что такое ffi
local ffi = require('ffi')