Ошибка sampSetChatInputEnabled(true)

Farshmak_Savage

Новичок
Автор темы
25
1
Код:
---------- НАСТРОЙКИ и БИБЛИОТЕКИ ---------->>
local imgui = require 'imgui'
local inicfg = require 'inicfg'
local key = require 'vkeys'
local vkeys = require 'vkeys'
local sampev = require 'lib.samp.events'
local encoding = require "encoding"
require 'lib.sampfuncs'
require 'lib.moonloader'
encoding.default = 'CP1251'
u8 = encoding.UTF8
script_name('Support Tools')
script_version('05.08.2021')

----------- ПЕРЕМЕННЫЕ ------->>

local main_window_state = imgui.ImBool(false)
local question = imgui.ImBool(false)
local lovim_ans = false
local checked = true
local fileGPS = 'moonloader/config/gps.txt'
local fileGPS1 = io.open('moonloader/config/gps.txt')
local all = {
    vazhnoe = {},
    raboti = {},
    gosski = {},
    nelegal = {},
    avto = {},
    prochee = {},
    poisk = {}
}
local cfg = inicfg.load(all, 'GPS.ini')
local dialog_now = 0
local tSelBut = { "Словить репорт" }
local sWindow = tSelBut[1]
local tSelButtons = { "Основное", "Связь с разработчиком", "Информация" }
local sWindows = tSelButtons[1]
local buffer = imgui.ImBuffer('',256)
local showing = false

----------- ИМГУИ ------------>>

function imgui.OnDrawFrame()
    if not question.v then
        imgui.Process = false
    end
    local entered_text = sampGetCurrentDialogEditboxText()

    if question.v then
        style()
        local so, sp = getScreenResolution()
        imgui.Process = question.v
        imgui.SetNextWindowPos(imgui.ImVec2(so / 1.3, sp / 7), imgui.Cond.Once)
        imgui.SetNextWindowSize(imgui.ImVec2(300, 600))
        imgui.Begin(u8'SupportTools by Thiago_Rosserno', question)
        
        if imgui.CollapsingHeader(u8'Готовые ответы') then
            if imgui.Button(u8'Не понял вопрос', imgui.ImVec2(142, 25)) then
                sampSetCurrentDialogEditboxText(entered_text .. 'Здравствуйте уважаемый игрок, задайте вопрос корректно. Приятной игры! ')
            end
            
            imgui.SameLine()
            if imgui.Button(u8'Не знаю', imgui.ImVec2(142, 25)) then
                sampSetCurrentDialogEditboxText(entered_text .. 'Здравствуйте уважаемый игрок, мы не владеем данной информацией. Приятной игры!')
            end
            
            if imgui.Button(u8'Не тепаем', imgui.ImVec2(142, 25)) then
                sampSetCurrentDialogEditboxText(entered_text .. 'Здравствуйте уважаемый игрок, к сожалению, не телепортируем. Приятной игры!')
            end
            
            imgui.SameLine()
            if imgui.Button(u8'Не выдаем', imgui.ImVec2(142, 25)) then
                sampSetCurrentDialogEditboxText(entered_text .. 'Здравствуйте уважаемый игрок, не выдаем. Приятной игры! ')
            end
            
            if imgui.Button(u8'Не чиним', imgui.ImVec2(142, 25)) then
                sampSetCurrentDialogEditboxText(entered_text .. 'Здравствуйте уважаемый игрок, к сожалению, не чиним. Приятной игры!')
            end
            
            imgui.SameLine()           
            if imgui.Button(u8'Оставьте ЖБ', imgui.ImVec2(142, 25)) then
                sampSetCurrentDialogEditboxText(entered_text .. 'Здравствуйте уважаемый игрок, оставьте жалобу на форуме. Приятной игры!')
            end

            if imgui.Button(u8'Тех. Поддержка', imgui.ImVec2(142, 25)) then
                sampSetCurrentDialogEditboxText(entered_text .. 'Здравствуйте уважаемый игрок, обратитесь в Тех. Поддержку. Приятной игры!')
            end
            
            imgui.SameLine()
            if imgui.Button(u8'Форум', imgui.ImVec2(142, 25)) then
                sampSetCurrentDialogEditboxText(entered_text .. 'Здравствуйте уважаемый игрок, форум можно найти по ссылке f.santrope-rp.ru. Приятной игры!')
            end
            
            if imgui.Button(u8'Offtop', imgui.ImVec2(142, 25)) then
                sampSetCurrentDialogEditboxText(entered_text .. 'Здравствуйте уважаемый игрок, не оффтопьте, пожалуйста. Приятной игры! ')
            end
            
            imgui.SameLine()
            if imgui.Button(u8'Промокоды', imgui.ImVec2(142, 25)) then
                sampSetCurrentDialogEditboxText(entered_text .. 'Здравствуйте уважаемый игрок, #winter, #snow21. Приятной игры!')
            end
            
            if imgui.Button(u8'Админ', imgui.ImVec2(142, 25)) then
                sampSetCurrentDialogEditboxText(entered_text .. 'Здравствуйте уважаемый игрок, вам нужно отстоять пост хелпера. Приятной игры!')
            end
            
            imgui.SameLine()
            if imgui.Button(u8'Хелпер', imgui.ImVec2(142, 25)) then
                sampSetCurrentDialogEditboxText(entered_text .. 'Здравствуйте уважаемый игрок, остоять пост Заместителя/Лидера или по заявкам на форуме. Приятной игры!')
            end
        end

--GPS------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        
        if imgui.CollapsingHeader(u8'GPS') then
            imgui.BeginChild('##GPS', imgui.ImVec2(285, 337), true)
            if imgui.CollapsingHeader(u8'Важные') then
                for i=1, #all.vazhnoe do
                    if imgui.Button(u8(all.vazhnoe[i]), imgui.ImVec2(260, 25)) then
                        sampSetCurrentDialogEditboxText(entered_text .. '/gps -> 1. Важное -> ' .. all.vazhnoe[i])
                    end
                end
            end
            if imgui.CollapsingHeader(u8'Работы') then
                for i=1, #all.raboti do
                    if imgui.Button(u8(all.raboti[i]), imgui.ImVec2(280, 25)) then
                        sampSetCurrentDialogEditboxText(entered_text .. '/gps -> 2. Работа -> ' .. all.raboti[i])
                    end
                end
            end
            if imgui.CollapsingHeader(u8'Офф. орг') then
                for i=1, #all.gosski do
                    if imgui.Button(u8(all.gosski[i]), imgui.ImVec2(280, 25)) then
                        sampSetCurrentDialogEditboxText(entered_text .. '/gps -> 3. Офф. орг -> ' .. all.gosski[i])
                    end
                end
            end
            if imgui.CollapsingHeader(u8'Неофф. орг') then
                for i=1, #all.nelegal do
                    if imgui.Button(u8(all.nelegal[i]), imgui.ImVec2(280, 25)) then
                        sampSetCurrentDialogEditboxText(entered_text .. '/gps -> 4. Нелегал. орг -> ' .. all.nelegal[i])
                    end
                end
            end
            if imgui.CollapsingHeader(u8'Автосервисы') then
                for i=1, #all.avto do
                    if imgui.Button(u8(all.avto[i]), imgui.ImVec2(280, 25)) then
                        sampSetCurrentDialogEditboxText(entered_text .. '/gps -> 5. Автосалоны -> ' .. all.avto[i])
                    end
                end
            end
            if imgui.CollapsingHeader(u8'Прочее') then
                for i=1, #all.prochee do
                    if imgui.Button(u8(all.prochee[i]), imgui.ImVec2(280, 25)) then
                        sampSetCurrentDialogEditboxText(entered_text .. '/gps -> 6. Прочее -> ' .. all.prochee[i])
                    end
                end
            end
            if imgui.CollapsingHeader(u8'Поиск') then
                for i=1, #all.poisk do
                    if imgui.Button(u8(all.poisk[i]), imgui.ImVec2(280, 25)) then
                        sampSetCurrentDialogEditboxText(entered_text .. '/gps -> 7. Поиск мест -> ' .. all.poisk[i])
                    end
                end
            end
            imgui.EndChild()
        end
--Термины------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        if imgui.CollapsingHeader(u8'Термины') then
        if imgui.Button(u8'СК', imgui.ImVec2(26, 25)) then
        sampSetCurrentDialogEditboxText(entered_text .. 'СК-Убийство при появлении.')
        end
        imgui.SameLine()
        if imgui.Button(u8'ТК', imgui.ImVec2(26, 25)) then
        sampSetCurrentDialogEditboxText(entered_text .. 'ТК-Убийство своих.')
        end
        imgui.SameLine()
        if imgui.Button(u8'ДМ', imgui.ImVec2(26, 25)) then
        sampSetCurrentDialogEditboxText(entered_text .. 'ДМ-Убийство без причины.')
        end
        imgui.SameLine()
        if imgui.Button(u8'ДБ', imgui.ImVec2(26, 25)) then
        sampSetCurrentDialogEditboxText(entered_text .. 'ДБ-Убийство с машины (машиной).')
        end
        imgui.SameLine()
        if imgui.Button(u8'ПГ', imgui.ImVec2(26, 25)) then
        sampSetCurrentDialogEditboxText(entered_text .. 'ПГ-Изображение из себя героя.')
        end
        imgui.SameLine()
        if imgui.Button(u8'МГ', imgui.ImVec2(26, 25)) then
        sampSetCurrentDialogEditboxText(entered_text .. 'МГ-Использование информации из реального мира в игровой чат')
        end
        imgui.SameLine()
        if imgui.Button(u8'БХ', imgui.ImVec2(26, 25)) then
        sampSetCurrentDialogEditboxText(entered_text .. 'БХ-"Бани Хоп"-нонРП бег с прыжками')
        end
        imgui.SameLine()
        if imgui.Button(u8'ЗЗ', imgui.ImVec2(26, 25)) then
        sampSetCurrentDialogEditboxText(entered_text .. 'ЗЗ-Зеленая Зона')
        end
        imgui.SameLine()
        if imgui.Button(u8'РП', imgui.ImVec2(26, 25)) then
        sampSetCurrentDialogEditboxText(entered_text .. 'РП-Игра по ролям где каждый должен соблюдать свою роль.')
        end
        if imgui.Button(u8'УК', imgui.ImVec2(26, 25)) then
        sampSetCurrentDialogEditboxText(entered_text .. 'АК-Академический Кодекс.')
        end
        imgui.SameLine()
        if imgui.Button(u8'АК', imgui.ImVec2(26, 25)) then
        sampSetCurrentDialogEditboxText(entered_text .. 'УК-Уголовный Кодекс.')
        end
        imgui.SameLine()
        if imgui.Button(u8'ЦК', imgui.ImVec2(26, 25)) then
        sampSetCurrentDialogEditboxText(entered_text .. 'ЦК-Рубийство, с целью полной ликвидидации какого-либо персонажа')
        end
        imgui.SameLine()
        if imgui.Button(u8'СХ', imgui.ImVec2(26, 25)) then
        sampSetCurrentDialogEditboxText(entered_text .. 'СХ-"Spead Hack"-Чит на увеличение скорости ТС.')
        end
        imgui.SameLine()
        if imgui.Button(u8'ГМ', imgui.ImVec2(26, 25)) then
        sampSetCurrentDialogEditboxText(entered_text .. 'ГМ-"God Mode"-Режим Бога.')
        end
        imgui.SameLine()
        if imgui.Button(u8'ВХ', imgui.ImVec2(26, 25)) then
        sampSetCurrentDialogEditboxText(entered_text .. 'ВХ-Чит на просмотр сквозь стены или прижок из ТС в движении.')
        end
        imgui.SameLine()
        if imgui.Button(u8'ООС', imgui.ImVec2(28, 25)) then
        sampSetCurrentDialogEditboxText(entered_text .. 'OOC-это все, что касается реального мира.')
        end
        imgui.SameLine()
        if imgui.Button(u8'IC', imgui.ImVec2(26, 25)) then
        sampSetCurrentDialogEditboxText(entered_text .. 'IC-это все, что касается виртуального мира, то есть игры.')
        end
        imgui.SameLine()
        if imgui.Button(u8'РК', imgui.ImVec2(26, 25)) then
        sampSetCurrentDialogEditboxText(entered_text .. 'РК-Возвращение на место где тебя убили.')
        end
        end       
--ADMINS-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        if imgui.CollapsingHeader(u8'Admin') then
        if imgui.Button('Kick') then
        imgui.OpenPopup('popup name')
        end
        end

        --Popup
        if imgui.BeginPopup(u8'popup name') then
            if imgui.Button('Click on me!') then
            sampSetChatInputText("/ans")
            sampSetChatInputEnable(true)           
            end
            imgui.EndPopup()
        end
--Прочее-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        --imgui.SetCursorPosY(500)
        if imgui.Button(u8'Приветствие', imgui.ImVec2(285, 25)) then
                sampSetCurrentDialogEditboxText(entered_text .. 'Здравствуйте уважаемый игрок, ')
        end
        if imgui.Button(u8'Приятной игры', imgui.ImVec2(285, 25)) then
            sampSetCurrentDialogEditboxText(entered_text .. 'Приятной игры!')
        end
        if imgui.Button(u8'Расписание контейнеров', imgui.ImVec2(285, 25)) then
            sampSetCurrentDialogEditboxText(entered_text .. '16:30, 17:45, 18:30, 19:45')
        end
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        if not lovim_ans then
            if imgui.SelButton(lovim_ans, u8'Включить', imgui.ImVec2(255, 25)) then
                lovim_ans = not lovim_ans
                if lovim_ans then
                info_msg('{FFFFFF}Ловля репорта {66FF00}ВКЛЮЧЕНА!')
                sampSendChat('/ans')
                else
                info_msg('{FFFFFF}Ловля репорта {FF0000}ВЫКЛЮЧЕНА!')
                end
            end
        else
            if imgui.SelButton(lovim_ans, u8'Выключить', imgui.ImVec2(255, 25)) then
                lovim_ans = not lovim_ans
                if lovim_ans then
                info_msg('{FFFFFF}Ловля репорта {66FF00}ВКЛЮЧЕНА')
                sampSendChat('/ans')
                else
                info_msg('{FFFFFF}Ловля репорта {FF0000}ВЫКЛЮЧЕНА!')
                end
            end
        end
        imgui.SameLine()
        hint('При ловле репорта, лучше всего стоять на месте,\nЧтобы избежать багов в скрипте и диалогах.')
        imgui.End()
    end
    if main_window_state.v then
    style()
    local so, sp = getScreenResolution()
    imgui.Process = main_window_state.v
    imgui.SetNextWindowPos(imgui.ImVec2(so / 3.5, sp / 2.3))
    imgui.SetNextWindowSize(imgui.ImVec2(600, 400))
    imgui.Begin(u8'SupportTools by Thiago_Rosserno', main_window_state)
    imgui.BeginChild('##menu', imgui.ImVec2(175, 365), true)
    for _, nButton in pairs(tSelButtons) do
        if imgui.SelButton(sWindows == nButton, u8(nButton), imgui.ImVec2(120, 40)) then
            sWindows = nButton
        end
    end
    
    
        if sWindows == tSelButtons[1] then
            selectable = 0
        end
        if sWindows == tSelButtons[2] then
            selectable = 1
        end
        if sWindows == tSelButtons[3] then
            selectable = 2
        end
    imgui.EndChild()
    imgui.End()
    end

end
вот весь код. При нажатии на кнопку 'Click on me!' скринт крашится и больше не открывается.
в консоли выдает такую ошибку:
[ML] (error) Support Tools: ...BY DAPO SHOW\GTA 120K BY DAPO SHOW\moonloader\STools.lua:252: attempt to call global 'sampSetChatInputEnable' (a nil value)
stack traceback:
...BY DAPO SHOW\GTA 120K BY DAPO SHOW\moonloader\STools.lua:252: in function 'OnDrawFrame'
...DAPO SHOW\GTA 120K BY DAPO SHOW\moonloader\lib\imgui.lua:1377: in function <...DAPO SHOW\GTA 120K BY DAPO SHOW\moonloader\lib\imgui.lua:1366>
[ML] (error) Support Tools: Script died due to an error. (id:9)
В чем ошибка? Где что дописать? Хееелп