Помогите с кодом и несколькими переменными.

btrtmr

Участник
Автор темы
39
2
Мужики, такая ситуация, вроде бы сделал всё правильно, но почему-то в чат вводит только одну строку
/me засунул правую руку в карман, достал КПК, после включил его и ввел данные.
Если убрать данную строку
sampSendChat("/do "..nick.. " объявлен в розыск по статье: «"..var3.."»."); wait(500)
То скрипт сработает и выдаст розыск. Хочу сделать так, чтобы в чат вводилась и эта отыгровка с ником персонажа:
sampSendChat("/do "..nick.. " объявлен в розыск по статье: «"..var3.."»."); wait(500)
Lua:
script_name('FBI-Support')

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


local main_window_state = imgui.ImBool(false)
local text_buffer = imgui.ImBuffer(256)

function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then return end
        while not isSampAvailable() do wait(100) end
        sampRegisterChatCommand("mpj", mpjail)
        sampRegisterChatCommand("sus", cmd_suspect)
        sampRegisterChatCommand("as", cmd_imgui)

    _,    nick = sampGetPlayerNickname(var1)

        sampAddChatMessage("{C0C0C0}[{1E90FF}FBI-Support{C0C0C0}] Скрипт успешно загружен. Разработчик: NNWalker.", 0xC0C0C0)

        while true do
        wait(0)
        
        if main_window_state.v == false then
        imgui.Process = false

        end
        end
end

function cmd_suspect(param)
    var1, var2, var3 = string.match(param, "(.+) (.+) (.+)")
    if var1 ==nil or var1 == "" then
        sampAddChatMessage("{C0C0C0}[{1E90FF}FBI-Support{C0C0C0}] Используйте команду: /sus [ID] [Кол-во звездв] [Причина].", 0xC0C0C0)
    else
        sampSendChat("/me засунул правую руку в карман, достал КПК, после включил его и ввел данные."); wait(500)
        sampSendChat("/su "..var1.." "..var2.." "..var3); wait(500)
        sampSendChat("/do "..nick.. " объявлен в розыск по статье: «"..var3.."»."); wait(500)
    end
end

function cmd_imgui(arg)
    main_window_state.v = not main_window_state.v
    imgui.Process = main_window_state.v
end

function imgui.OnDrawFrame()
local sw, sh = getScreenResolution()
        imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
if main_window_state.v then -- чтение и запись значения такой переменной осуществляется через поле v (или Value)
    imgui.SetNextWindowSize(imgui.ImVec2(300, 150), imgui.Cond.FirstUseEver) -- меняем размер
  imgui.Begin(u8"FBI-Support", main_window_state) -- новое окно с заголовком 'My window'
  imgui.Text(u8"/sus - Выдать игроку розыск.") -- простой текст внутри этого окна
  imgui.End() -- конец окна
end
end


imgui.SwitchContext()
local style = imgui.GetStyle()
local colors = style.Colors
local clr = imgui.Col
local ImVec4 = imgui.ImVec4
local ImVec2 = imgui.ImVec2

style.WindowPadding = ImVec2(15, 15)
style.WindowRounding = 6.0
style.FramePadding = ImVec2(5, 5)
style.FrameRounding = 4.0
style.ItemSpacing = ImVec2(12, 8)
style.ItemInnerSpacing = ImVec2(8, 6)
style.IndentSpacing = 25.0
style.ScrollbarSize = 15.0
style.ScrollbarRounding = 9.0
style.GrabMinSize = 5.0
style.GrabRounding = 3.0

    colors[clr.Text] = ImVec4(0.80, 0.80, 0.83, 1.00)
    colors[clr.TextDisabled] = ImVec4(0.24, 0.23, 0.29, 1.00)
    colors[clr.WindowBg] = ImVec4(0.06, 0.05, 0.07, 1.00)
    colors[clr.ChildWindowBg] = ImVec4(0.07, 0.07, 0.09, 1.00)
    colors[clr.PopupBg] = ImVec4(0.07, 0.07, 0.09, 1.00)
    colors[clr.Border] = ImVec4(0.80, 0.80, 0.83, 0.88)
    colors[clr.BorderShadow] = ImVec4(0.92, 0.91, 0.88, 0.00)
    colors[clr.FrameBg] = ImVec4(0.10, 0.09, 0.12, 1.00)
    colors[clr.FrameBgHovered] = ImVec4(0.24, 0.23, 0.29, 1.00)
    colors[clr.FrameBgActive] = ImVec4(0.56, 0.56, 0.58, 1.00)
    colors[clr.TitleBg] = ImVec4(0.76, 0.31, 0.00, 1.00)
    colors[clr.TitleBgCollapsed] = ImVec4(1.00, 0.98, 0.95, 0.75)
    colors[clr.TitleBgActive] = ImVec4(0.80, 0.33, 0.00, 1.00)
    colors[clr.MenuBarBg] = ImVec4(0.10, 0.09, 0.12, 1.00)
    colors[clr.ScrollbarBg] = ImVec4(0.10, 0.09, 0.12, 1.00)
    colors[clr.ScrollbarGrab] = ImVec4(0.80, 0.80, 0.83, 0.31)
    colors[clr.ScrollbarGrabHovered] = ImVec4(0.56, 0.56, 0.58, 1.00)
    colors[clr.ScrollbarGrabActive] = ImVec4(0.06, 0.05, 0.07, 1.00)
    colors[clr.ComboBg] = ImVec4(0.19, 0.18, 0.21, 1.00)
    colors[clr.CheckMark] = ImVec4(1.00, 0.42, 0.00, 0.53)
    colors[clr.SliderGrab] = ImVec4(1.00, 0.42, 0.00, 0.53)
    colors[clr.SliderGrabActive] = ImVec4(1.00, 0.42, 0.00, 1.00)
    colors[clr.Button] = ImVec4(0.10, 0.09, 0.12, 1.00)
    colors[clr.ButtonHovered] = ImVec4(0.24, 0.23, 0.29, 1.00)
    colors[clr.ButtonActive] = ImVec4(0.56, 0.56, 0.58, 1.00)
    colors[clr.Header] = ImVec4(0.10, 0.09, 0.12, 1.00)
    colors[clr.HeaderHovered] = ImVec4(0.56, 0.56, 0.58, 1.00)
    colors[clr.HeaderActive] = ImVec4(0.06, 0.05, 0.07, 1.00)
    colors[clr.ResizeGrip] = ImVec4(0.00, 0.00, 0.00, 0.00)
    colors[clr.ResizeGripHovered] = ImVec4(0.56, 0.56, 0.58, 1.00)
    colors[clr.ResizeGripActive] = ImVec4(0.06, 0.05, 0.07, 1.00)
    colors[clr.CloseButton] = ImVec4(0.40, 0.39, 0.38, 0.16)
    colors[clr.CloseButtonHovered] = ImVec4(0.40, 0.39, 0.38, 0.39)
    colors[clr.CloseButtonActive] = ImVec4(0.40, 0.39, 0.38, 1.00)
    colors[clr.PlotLines] = ImVec4(0.40, 0.39, 0.38, 0.63)
    colors[clr.PlotLinesHovered] = ImVec4(0.25, 1.00, 0.00, 1.00)
    colors[clr.PlotHistogram] = ImVec4(0.40, 0.39, 0.38, 0.63)
    colors[clr.PlotHistogramHovered] = ImVec4(0.25, 1.00, 0.00, 1.00)
    colors[clr.TextSelectedBg] = ImVec4(0.25, 1.00, 0.00, 0.43)
    colors[clr.ModalWindowDarkening] = ImVec4(1.00, 0.98, 0.95, 0.73)
 
Последнее редактирование:

trefa

3d print
Всефорумный модератор
2,107
1,264
Lua:
function cmd_clear(param)
    id, pricina = string.match(param, "(.+) (.+)")
    if id ==nil or id == "" then
        sampAddChatMessage("{FFA500}[FBI-CLEAR] {FFFFFF}Используйте команду: /clear [ID] [Причина].", 0xFF0000)
    else
            lua_thread.create(function()
        sampSendChat("/me достав КПК из кармана, разблокировал его и вошёл в систему."); wait(500)
                sampSendChat("/me перешел в раздел закрытия дел, попытался закрыть дело."); wait(1500)
                sampSendChat("/do Мобильная база данных запросила подтверждение на совершение операции."); wait(1500)
                sampShowDialog(53, "Подтверждение снятия розыска", "Вы действительно хотите снять розыск с {ffff00}"..string.gsub(sampGetPlayerNickname(id),'_',' ').."?\n\n{ff0000}Примечание: снимать розыск преступникам разрешено только лидерам!", "Да", "Нет", 0)
    while sampIsDialogActive(53) do wait(100) end
    local result, button, _, input = sampHasDialogRespond(53)
--тут проверяешь переменную button через if/else
    end)
    end
end
И так на каждые отыгровки? Легче будет использовать систему диалогов.
 

FBenz

Активный
328
40
Помогите решить эту проблему.

Lua:
function cmd_clear(param)
    id, pricina = string.match(param, "(.+) (.+)")
    if id ==nil or id == "" then
        sampAddChatMessage("{FFA500}[FBI-CLEAR] {FFFFFF}Используйте команду: /clear [ID] [Причина].", 0xFF0000)
    else
            lua_thread.create(function()
        sampSendChat("/me достав КПК из кармана, разблокировал его и вошёл в систему."); wait(500)
                sampSendChat("/me перешел в раздел закрытия дел, попытался закрыть дело."); wait(1500)
                sampSendChat("/do Мобильная база данных запросила подтверждение на совершение операции."); wait(1500)
                sampShowDialog(53, "Подтверждение снятия розыска", "Вы действительно хотите снять розыск с {ffff00}"..string.gsub(sampGetPlayerNickname(id),'_',' ').."?\n\n{ff0000}Примечание: снимать розыск преступникам разрешено только лидерам!", "Да", "Нет", 0)
    end)
    end
end
Чтобы при выборе "Да" шла одна отыгровка, а при выборе "Нет" - другая.
Я хз, конечно, но при любой работе с интерфейсами, я всего imgui юзаю, как по мне и проще, и красивее. Я бы сделал это через imgui.
А так - sampSendDialogResponse(id диалога, id кнопки (левая - 1, правая - 0), nil, nil). В твоем случае у кнопки "Да" айди 1.