Вопросы по Lua скриптингу

Общая тема для вопросов по разработке скриптов на языке программирования Lua, в частности под MoonLoader.
  • Задавая вопрос, убедитесь, что его нет в списке частых вопросов и что на него ещё не отвечали (воспользуйтесь поиском).
  • Поищите ответ в теме посвященной разработке Lua скриптов в MoonLoader
  • Отвечая, убедитесь, что ваш ответ корректен.
  • Старайтесь как можно точнее выразить мысль, а если проблема связана с кодом, то обязательно прикрепите его к сообщению, используя блок [code=lua]здесь мог бы быть ваш код[/code].
  • Если вопрос связан с MoonLoader-ом первым делом желательно поискать решение на wiki.

Частые вопросы

Как научиться писать скрипты? С чего начать?
Информация - Гайд - Всё о Lua скриптинге для MoonLoader(https://blast.hk/threads/22707/)
Как вывести текст на русском? Вместо русского текста у меня какие-то каракули.
Изменить кодировку файла скрипта на Windows-1251. В Atom: комбинация клавиш Ctrl+Shift+U, в Notepad++: меню Кодировки -> Кодировки -> Кириллица -> Windows-1251.
Как получить транспорт, в котором сидит игрок?
Lua:
local veh = storeCarCharIsInNoSave(PLAYER_PED)
Как получить свой id или id другого игрока?
Lua:
local _, id = sampGetPlayerIdByCharHandle(PLAYER_PED) -- получить свой ид
local _, id = sampGetPlayerIdByCharHandle(ped) -- получить ид другого игрока. ped - это хендл персонажа
Как проверить, что строка содержит какой-то текст?
Lua:
if string.find(str, 'текст', 1, true) then
-- строка str содержит "текст"
end
Как эмулировать нажатие игровой клавиши?
Lua:
local game_keys = require 'game.keys' -- где-нибудь в начале скрипта вне функции main

setGameKeyState(game_keys.player.FIREWEAPON, -1) -- будет сэмулировано нажатие клавиши атаки
Все иды клавиш находятся в файле moonloader/lib/game/keys.lua.
Подробнее о функции setGameKeyState здесь: lua - setgamekeystate | BlastHack — DEV_WIKI(https://www.blast.hk/wiki/lua:setgamekeystate)
Как получить id другого игрока, в которого целюсь я?
Lua:
local valid, ped = getCharPlayerIsTargeting(PLAYER_HANDLE) -- получить хендл персонажа, в которого целится игрок
if valid and doesCharExist(ped) then -- если цель есть и персонаж существует
  local result, id = sampGetPlayerIdByCharHandle(ped) -- получить samp-ид игрока по хендлу персонажа
  if result then -- проверить, прошло ли получение ида успешно
    -- здесь любые действия с полученным идом игрока
  end
end
Как зарегистрировать команду чата SAMP?
Lua:
-- До бесконечного цикла/задержки
sampRegisterChatCommand("mycommand", function (param)
     -- param будет содержать весь текст введенный после команды, чтобы разделить его на аргументы используйте string.match()
    sampAddChatMessage("MyCMD", -1)
end)
Крашит игру при вызове sampSendChat. Как это исправить?
Это происходит из-за бага в SAMPFUNCS, когда производится попытка отправки пакета определенными функциями изнутри события исходящих RPC и пакетов. Исправления для этого бага нет, но есть способ не провоцировать его. Вызов sampSendChat изнутри обработчика исходящих RPC/пакетов нужно обернуть в скриптовый поток с нулевой задержкой:
Lua:
function onSendRpc(id)
  -- крашит:
  -- sampSendChat('Send RPC: ' .. id)

  -- норм:
  lua_thread.create(function()
    wait(0)
    sampSendChat('Send RPC: ' .. id)
  end)
end
 
Последнее редактирование:

Andrinall

Известный
678
531
Как можно заменить один объект на другой? Например объект с айди 1867 на 1954
Можно сделать так
Lua:
for k, v in pairs(getAllObjects()) do
    if doesObjectExist(v) and getObjectModel(v) == 1867 then
        writeMemory( getObjectPointer(v) + 0x22, 4, 1954, true )
    end
end
Но у этого способа есть сильный косяк.
Если менять так модель после создания объекта(секунда, две, не важно), то текстура и модель визуально не поменяются.
Тогда только пересоздавать объект придётся.

А можно так
Lua:
local ev = require 'lib.samp.events'

function ev.onCreateObject(objectId, data)
    if data.modelId == 1867 then
        data.modelId = 1954
        return { objectId, data }
    end
end

Или без зависимости от samp.Lua
Lua:
function onReceiveRpc(rpc, bs)
    if rpc == 44 then
        local objectId = raknetBitStreamReadInt16(bs)
        local modelId  = raknetBitStreamReadInt32(bs)
        if modelId == 1867 then
            raknetBitStreamSetWriteOffset(bs, 16)
            raknetBitStreamWriteInt32(bs, 1954)

            raknetBitStreamSetWriteOffset(bs, 520)
        end
    end
end
 
  • Нравится
Реакции: Sadow

dmitri4

Известный
452
79
Не могу добавить пункт в серверный диалог, где ошибка?
Lua:
local events = require "lib.samp.events"
function events.onShowDialog(id, style, title, button1, button2, text)
    print(id, style, title, button1, button2, text)
    if id == 9973 then
        return {id, style, title, button1, button2, text..'\n\n [4]INFO'}
    end
end
function events.onSendDialogResponse(id, btn, list, input)
    if id == 9973 then
        if list == 4 then
            sampAddChatMessage('Хуета',-1)
            return false
        end
    end
end
Скрытое содержимое доступно для зарегистрированных пользователей!
 

Andrinall

Известный
678
531
Не могу добавить пункт в серверный диалог, где ошибка?
Lua:
local events = require "lib.samp.events"
function events.onShowDialog(id, style, title, button1, button2, text)
    print(id, style, title, button1, button2, text)
    if id == 9973 then
        return {id, style, title, button1, button2, text..'\n\n [4]INFO'}
    end
end
function events.onSendDialogResponse(id, btn, list, input)
    if id == 9973 then
        if list == 4 then
            sampAddChatMessage('Хуета',-1)
            return false
        end
    end
end
*** Скрытый текст не может быть процитирован. ***
Воспроизвёл на локалке диалог, и протестил код, но с мелкими правками. В целом всё работает.
Lua:
function ev.onShowDialog(id, style, title, button1, button2, text)
    if id == 9973 then
        return { id, style, title, button1, button2, text..'\n \n[4] INFO' } -- Если не нужен пробел между строками - убрать пробел между \n
    end
end
function ev.onSendDialogResponse(id, btn, list, input)
    if id == 9973 then
        if btn == 1 and list == 4 then -- если убираешь пробел между строками - заменить 4 на 3
            sampAddChatMessage('Хуета',-1)
            return false
        end
    end
end
Скрытое содержимое доступно для зарегистрированных пользователей!
 
Последнее редактирование:

Иглобрюх

Активный
250
73
Ах да, только сейчас вспомнил. Текст можно указать после минимального и максимального значения, там ещё формат ставится если слайдер флоат.
Не понял тебя в плане как указывать, можешь объяснить как?

test:
imgui.SliderInt("test2L526", test2, 1, 9)
 

Uzkon

Участник
23
14
Не понял тебя в плане как указывать, можешь объяснить как?

test:
imgui.SliderInt("test2L526", test2, 1, 9)
Вроде как-то так, судя по imgui, в mimgui же просто %d
Lua:
-- SliderInt(const char* label, int* v, int v_min, int v_max, const char* display_format = "%.0f");
imgui.SliderInt("test2L526", test2, 1, 9, "Количество %.0f")
 
  • Нравится
Реакции: Иглобрюх

Иглобрюх

Активный
250
73
Вроде как-то так, судя по imgui, в mimgui же просто %d
Lua:
-- SliderInt(const char* label, int* v, int v_min, int v_max, const char* display_format = "%.0f");
imgui.SliderInt("test2L526", test2, 1, 9, "Количество %.0f")
не работает, слайдер сразу после клика по нему применяет максимальное число
 

Ononimus

Потрачен
60
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
код:
local imgui = require 'mimgui'
local wm = require 'windows.message'
local vkeys = require 'vkeys'

local sw, sh = 500, 300
local active = imgui.new.bool(false)
local checkbox = imgui.new.bool(false)

function onWindowMessage(msg, wparam, lparam)
    if msg == wm.WM_KEYUP and wparam == vkeys.VK_M then
        active[0] = not active[0]
    end
end

local mainFrame = imgui.OnFrame(function() return active[0] end, function(self)
    imgui.SetNextWindowSize(imgui.ImVec2(sw, sh), imgui.Cond.FirstUseEver)
    imgui.Begin('Mafia Helper V - 0.1', active)
    if imgui.BeginTabBar('оо') then
        if imgui.BeginTabItem('О хелпере') then
            imgui.Text('Здравствуйте, вас приветствует команда разработчиков')
            imgui.Text('Mafia Helper.') -- Красный
            imgui.Text('Данный хелпер создан для того, чтобы упростить игру')
            imgui.Text('участникам преступных синдикатов, а так же их лидерам и')
            imgui.Text('заместителям.')
            imgui.Text('Команда которая создала данный хелпер, не несёт')
            imgui.Text('ответственности за ваши аккаунты. Качайте хелпер только с')
            imgui.Text('официального форума Online Role Play и') -- ORP ЖОЛТЫМ
            imgui.Text('официального сообщества во ВКонтакте"') -- ВК СИНИМ
            imgui.Text('____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________')
            imgui.Text('Кодер - Wayne Martini.')
            imgui.Text('Оформление - Angel Blanco')
            imgui.Text('____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________')
            imgui.Text(' ')
        if imgui.CollapsingHeader('Mafia Helper - обратная связь') then
            imgui.Text('По вопросам - Кодер and Хелпер по проблемам/вопросам.')
        end
            imgui.EndTabItem()
        end
        if imgui.BeginTabItem('Для лидеров') then
        if imgui.Button("Отыграть выдачу формы.") then
            lua_thread.create(function()
            sampSendChat("/do sdsd")
                            wait(1200)
                            sampSendChat("/me вава
                            wait(1234)
                            sampSendChat("/do вава")
                            wait(1234)
                            sampSendChat("вава
        end)
    end
        if imgui.Button("Отыграть КПК.") then
            lua_thread.create(function()
            sampSendChat("/do sdsd")
                            wait(1233)
                            sampSendChat("/me вава")
                            wait(1233)
                            sampSendChat("/do ваваа")
                            wait(1233)
                            sampSendChat("/me вавава")
                            wait(1233)
                            sampSendChat("/me вавава")
                            wait(1000)
                            sampSendChat('/me вавава')
                            wait(1000)
                            sampSendChat('вавава.')
                            sampAddChatMessage("ваваав")
        end)
    end
        if imgui.Button("Начать собеседование.") then
            lua_thread.create(function()
            sampSendChat("/f sds")
                            end)
                        end
            imgui.EndTabItem()
        end
        if imgui.BeginTabItem('Чат') then
        imgui.Checkbox('Акцент.', checkbox)
        end
    end
    imgui.End()
end)

сделайте чт бы в конце в строчке imgui.Checkbox('Акцент.', checkbox) при пставки галочке был акцент
 

Uzkon

Участник
23
14
не работает, слайдер сразу после клика по нему применяет максимальное число
У меня работает все, проверяй у себя, или кидай как сам делаешь, если, конечно, уже сам не решил
Lua:
local slider = imgui.ImInt(1) -- либо вставляешь переменную из ини

if imgui.SliderInt("slider##1", slider, 1, 9, u8"Количество %.0f") then
    -- code
end
 
  • Нравится
Реакции: Иглобрюх

Ononimus

Потрачен
60
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Да, нажал на кнопку она горит, нажал на вторую кнопку первая перестала гореть, вторая загорелась

Как сделать что бы после нажатия на imgui.Button он оставался активным, пример на фото(я знаю эту функцию салата, её кидать мне не надо) желательно без массива
Дай фулл код пожайлусто инттересно просто кое что
 

Иглобрюх

Активный
250
73
У меня работает все, проверяй у себя, или кидай как сам делаешь, если, конечно, уже сам не решил
Lua:
local slider = imgui.ImInt(1) -- либо вставляешь переменную из ини

if imgui.SliderInt("slider##1", slider, 1, 9, u8"Количество %.0f") then
    -- code
end
Протестил только что на imgui, там всё работает нормально. Но мне нужно на mimgui

upd
Извиняюсь я тупой и не заметил вот это "Вроде как-то так, судя по imgui, в mimgui же просто %d"
 

Uzkon

Участник
23
14
Lua:
local imgui = require 'mimgui'
local wm = require 'windows.message'
local vkeys = require 'vkeys'

local sw, sh = 500, 300
local active = imgui.new.bool(false)
local checkbox = imgui.new.bool(false)

function onWindowMessage(msg, wparam, lparam)
    if msg == wm.WM_KEYUP and wparam == vkeys.VK_M  then
        active[0] = not active[0]
    end
end

local mainFrame = imgui.OnFrame(function() return active[0] end, function(self)
    imgui.SetNextWindowSize(imgui.ImVec2(sw, sh), imgui.Cond.FirstUseEver)
    imgui.Begin('Mafia Helper V - 0.1', active)
    if imgui.BeginTabBar('оо') then
        if imgui.BeginTabItem('О хелпере') then
            imgui.Text('Здравствуйте, вас приветствует команда разработчиков')
            imgui.Text('Mafia Helper.') -- Красный
            imgui.Text('Данный хелпер создан для того, чтобы упростить игру')
            imgui.Text('участникам преступных синдикатов, а так же их лидерам и')
            imgui.Text('заместителям.')
            imgui.Text('Команда которая создала данный хелпер, не несёт')
            imgui.Text('ответственности за ваши аккаунты. Качайте хелпер только с')
            imgui.Text('официального форума Online Role Play и') -- ORP ЖОЛТЫМ
            imgui.Text('официального сообщества во ВКонтакте"') -- ВК СИНИ
            imgui.Text('Кодер - Wayne Martini.')
            imgui.Text('Оформление - Angel Blanco')
          
            imgui.Text(' ')
        if imgui.CollapsingHeader('Mafia Helper - обратная связь') then
            imgui.Text('По вопросам - Кодер and Хелпер по проблемам/вопросам.')
        end
            imgui.EndTabItem()
        end
        if imgui.BeginTabItem('Для лидеров') then
        if imgui.Button("Отыграть выдачу формы.") then
            lua_thread.create(function()
            sampSendChat("/do sdsd")
                            wait(1200)
                            sampSendChat("/me вава
                            wait(1234)
                            sampSendChat("/do вава")
                            wait(1234)
                            sampSendChat("вава
        end)
    end
        if imgui.Button("Отыграть КПК.") then
            lua_thread.create(function()
            sampSendChat("/do sdsd")
                            wait(1233)
                            sampSendChat("/me вава")
                            wait(1233)
                            sampSendChat("/do ваваа")
                            wait(1233)
                            sampSendChat("/me вавава")
                            wait(1233)
                            sampSendChat("/me вавава")
                            wait(1000)
                            sampSendChat('/me вавава')
                            wait(1000)
                            sampSendChat('вавава.')
                            sampAddChatMessage("ваваав")
        end)
    end
        if imgui.Button("Начать собеседование.") then
            lua_thread.create(function()
            sampSendChat("/f sds")
                            end)
                        end
            imgui.EndTabItem()
        end
        if imgui.BeginTabItem('Чат') then
        imgui.Checkbox('Акцент.', checkbox)
        end
    end
    imgui.End()
end)

сделайте чт бы в конце в строчке imgui.Checkbox('Акцент.', checkbox) при пставки галочке был акцент
Проверяй, подправил код. За табуляцию не ручаюсь, багается хз из-за чего, сам подправишь у себя.
Lua:
local imgui = require 'mimgui'
local wm = require 'windows.message'
local vkeys = require 'vkeys'
local ev = require 'lib.samp.events'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8

local sw, sh = 500, 300
local active = imgui.new.bool(false)
local checkbox = imgui.new.bool(false)

function onWindowMessage(msg, wparam, lparam)
    if msg == wm.WM_KEYUP and wparam == vkeys.VK_M and not sampIsCursorActive() then
        active[0] = not active[0]
    end
end

local mainFrame = imgui.OnFrame(function() return active[0] end, function(self)
    imgui.SetNextWindowSize(imgui.ImVec2(sw, sh), imgui.Cond.FirstUseEver)
    imgui.Begin('Mafia Helper V - 0.1', active)
    if imgui.BeginTabBar(u8'оо') then
        if imgui.BeginTabItem(u8'О хелпере') then
            imgui.Text(u8'Здравствуйте, вас приветствует команда разработчиков')
            imgui.Text(u8'Mafia Helper.') -- Красный
            imgui.Text(u8'Данный хелпер создан для того, чтобы упростить игру')
            imgui.Text(u8'участникам преступных синдикатов, а так же их лидерам и')
            imgui.Text(u8'заместителям.')
            imgui.Text(u8'Команда которая создала данный хелпер, не несёт')
            imgui.Text(u8'ответственности за ваши аккаунты. Качайте хелпер только с')
            imgui.Text(u8'официального форума Online Role Play и') -- ORP ЖОЛТЫМ
            imgui.Text(u8'официального сообщества во ВКонтакте"') -- ВК СИНИМ
            imgui.Separator()
            imgui.Text(u8'Кодер - Wayne Martini.')
            imgui.Text(u8'Оформление - Angel Blanco')
            imgui.Separator()
            imgui.Text(u8' ')
            if imgui.CollapsingHeader(u8'Mafia Helper - обратная связь') then
                imgui.Text(u8'По вопросам - Кодер and Хелпер по проблемам/вопросам.')
            end
            imgui.EndTabItem()
        end
        if imgui.BeginTabItem(u8'Для лидеров') then
                        if imgui.Button(u8"Отыграть выдачу формы.") then
                                lua_thread.create(function()
                                sampSendChat("/do sdsd")
                                wait(1200)
                                sampSendChat("/me вава")
                                wait(1234)
                                sampSendChat("/do вава")
                                wait(1234)
                                sampSendChat("вава")
                                end)
                        end
                        if imgui.Button(u8"Отыграть КПК.") then
                                lua_thread.create(function()
                                sampSendChat("/do sdsd")
                                wait(1233)
                                sampSendChat("/me вава")
                                wait(1233)
                                sampSendChat("/do ваваа")
                                wait(1233)
                                sampSendChat("/me вавава")
                                wait(1233)
                                sampSendChat("/me вавава")
                                wait(1000)
                                sampSendChat('/me вавава')
                                wait(1000)
                                sampSendChat('вавава.')
                                sampAddChatMessage("ваваав")
                                end)
                        end
                        if imgui.Button(u8"Начать собеседование.") then
                                lua_thread.create(function()
                                sampSendChat("/f sds")
                                end)
                        end
                        imgui.EndTabItem()
                end
        if imgui.BeginTabItem(u8'Чат') then
                        imgui.Checkbox(u8'Акцент.', checkbox)
        end
    end
    imgui.End()
end)

function ev.onSendChat(msg)
    return {checkbox[0] and "[Японский акцент]: "..msg or msg}
end
 
  • Влюблен
Реакции: Ononimus

Ononimus

Потрачен
60
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
код:
local imgui = require 'mimgui'
local wm = require 'windows.message'
local vkeys = require 'vkeys'

local sw, sh = 500, 300
local active = imgui.new.bool(false)
local checkbox = imgui.new.bool(false)

function onWindowMessage(msg, wparam, lparam)
    if msg == wm.WM_KEYUP and wparam == vkeys.VK_M then
        active[0] = not active[0]
    end
end

local mainFrame = imgui.OnFrame(function() return active[0] end, function(self)
    imgui.SetNextWindowSize(imgui.ImVec2(sw, sh), imgui.Cond.FirstUseEver)
    imgui.Begin('Mafia Helper V - 0.1', active)
    if imgui.BeginTabBar('оо') then
        if imgui.BeginTabItem('О хелпере') then
            imgui.Text('Здравствуйте, вас приветствует команда разработчиков')
            imgui.Text('Mafia Helper.') -- Красный
            imgui.Text('Данный хелпер создан для того, чтобы упростить игру')
            imgui.Text('участникам преступных синдикатов, а так же их лидерам и')
            imgui.Text('заместителям.')
            imgui.Text('Команда которая создала данный хелпер, не несёт')
            imgui.Text('ответственности за ваши аккаунты. Качайте хелпер только с')
            imgui.Text('официального форума Online Role Play и') -- ORP ЖОЛТЫМ
            imgui.Text('официального сообщества во ВКонтакте"') -- ВК СИНИМ
            imgui.Text('____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________')
            imgui.Text('Кодер - Wayne Martini.')
            imgui.Text('Оформление - Angel Blanco')
            imgui.Text('____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________')
            imgui.Text(' ')
        if imgui.CollapsingHeader('Mafia Helper - обратная связь') then
            imgui.Text('По вопросам - Кодер and Хелпер по проблемам/вопросам.')
        end
            imgui.EndTabItem()
        end
        if imgui.BeginTabItem('Для лидеров') then
        if imgui.Button("Отыграть выдачу формы.") then
            lua_thread.create(function()
            sampSendChat("/do sdsd")
                            wait(1200)
                            sampSendChat("/me вава
                            wait(1234)
                            sampSendChat("/do вава")
                            wait(1234)
                            sampSendChat("вава
        end)
    end
        if imgui.Button("Отыграть КПК.") then
            lua_thread.create(function()
            sampSendChat("/do sdsd")
                            wait(1233)
                            sampSendChat("/me вава")
                            wait(1233)
                            sampSendChat("/do ваваа")
                            wait(1233)
                            sampSendChat("/me вавава")
                            wait(1233)
                            sampSendChat("/me вавава")
                            wait(1000)
                            sampSendChat('/me вавава')
                            wait(1000)
                            sampSendChat('вавава.')
                            sampAddChatMessage("ваваав")
        end)
    end
        if imgui.Button("Начать собеседование.") then
            lua_thread.create(function()
            sampSendChat("/f sds")
                            end)
                        end
            imgui.EndTabItem()
        end
        if imgui.BeginTabItem('Чат') then
        imgui.Checkbox('Акцент.', checkbox)
        end
    end
    imgui.End()
end)

сделайте чт бы в конце в строчке imgui.Checkbox('Акцент.', checkbox) при пставки галочке был акцент
ответьте на это пожайлусто
Проверяй, подправил код. За табуляцию не ручаюсь, багается хз из-за чего, сам подправишь у себя.
Lua:
local imgui = require 'mimgui'
local wm = require 'windows.message'
local vkeys = require 'vkeys'
local ev = require 'lib.samp.events'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8

local sw, sh = 500, 300
local active = imgui.new.bool(false)
local checkbox = imgui.new.bool(false)

function onWindowMessage(msg, wparam, lparam)
    if msg == wm.WM_KEYUP and wparam == vkeys.VK_M and not sampIsCursorActive() then
        active[0] = not active[0]
    end
end

local mainFrame = imgui.OnFrame(function() return active[0] end, function(self)
    imgui.SetNextWindowSize(imgui.ImVec2(sw, sh), imgui.Cond.FirstUseEver)
    imgui.Begin('Mafia Helper V - 0.1', active)
    if imgui.BeginTabBar(u8'оо') then
        if imgui.BeginTabItem(u8'О хелпере') then
            imgui.Text(u8'Здравствуйте, вас приветствует команда разработчиков')
            imgui.Text(u8'Mafia Helper.') -- Красный
            imgui.Text(u8'Данный хелпер создан для того, чтобы упростить игру')
            imgui.Text(u8'участникам преступных синдикатов, а так же их лидерам и')
            imgui.Text(u8'заместителям.')
            imgui.Text(u8'Команда которая создала данный хелпер, не несёт')
            imgui.Text(u8'ответственности за ваши аккаунты. Качайте хелпер только с')
            imgui.Text(u8'официального форума Online Role Play и') -- ORP ЖОЛТЫМ
            imgui.Text(u8'официального сообщества во ВКонтакте"') -- ВК СИНИМ
            imgui.Separator()
            imgui.Text(u8'Кодер - Wayne Martini.')
            imgui.Text(u8'Оформление - Angel Blanco')
            imgui.Separator()
            imgui.Text(u8' ')
            if imgui.CollapsingHeader(u8'Mafia Helper - обратная связь') then
                imgui.Text(u8'По вопросам - Кодер and Хелпер по проблемам/вопросам.')
            end
            imgui.EndTabItem()
        end
        if imgui.BeginTabItem(u8'Для лидеров') then
                        if imgui.Button(u8"Отыграть выдачу формы.") then
                                lua_thread.create(function()
                                sampSendChat("/do sdsd")
                                wait(1200)
                                sampSendChat("/me вава")
                                wait(1234)
                                sampSendChat("/do вава")
                                wait(1234)
                                sampSendChat("вава")
                                end)
                        end
                        if imgui.Button(u8"Отыграть КПК.") then
                                lua_thread.create(function()
                                sampSendChat("/do sdsd")
                                wait(1233)
                                sampSendChat("/me вава")
                                wait(1233)
                                sampSendChat("/do ваваа")
                                wait(1233)
                                sampSendChat("/me вавава")
                                wait(1233)
                                sampSendChat("/me вавава")
                                wait(1000)
                                sampSendChat('/me вавава')
                                wait(1000)
                                sampSendChat('вавава.')
                                sampAddChatMessage("ваваав")
                                end)
                        end
                        if imgui.Button(u8"Начать собеседование.") then
                                lua_thread.create(function()
                                sampSendChat("/f sds")
                                end)
                        end
                        imgui.EndTabItem()
                end
        if imgui.BeginTabItem(u8'Чат') then
                        imgui.Checkbox(u8'Акцент.', checkbox)
        end
    end
    imgui.End()
end)

function ev.onSendChat(msg)
    return {checkbox[0] and "[Японский акцент]: "..msg or msg}
end
щас проверю заранее спасибо

Проверяй, подправил код. За табуляцию не ручаюсь, багается хз из-за чего, сам подправишь у себя.
Lua:
local imgui = require 'mimgui'
local wm = require 'windows.message'
local vkeys = require 'vkeys'
local ev = require 'lib.samp.events'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8

local sw, sh = 500, 300
local active = imgui.new.bool(false)
local checkbox = imgui.new.bool(false)

function onWindowMessage(msg, wparam, lparam)
    if msg == wm.WM_KEYUP and wparam == vkeys.VK_M and not sampIsCursorActive() then
        active[0] = not active[0]
    end
end

local mainFrame = imgui.OnFrame(function() return active[0] end, function(self)
    imgui.SetNextWindowSize(imgui.ImVec2(sw, sh), imgui.Cond.FirstUseEver)
    imgui.Begin('Mafia Helper V - 0.1', active)
    if imgui.BeginTabBar(u8'оо') then
        if imgui.BeginTabItem(u8'О хелпере') then
            imgui.Text(u8'Здравствуйте, вас приветствует команда разработчиков')
            imgui.Text(u8'Mafia Helper.') -- Красный
            imgui.Text(u8'Данный хелпер создан для того, чтобы упростить игру')
            imgui.Text(u8'участникам преступных синдикатов, а так же их лидерам и')
            imgui.Text(u8'заместителям.')
            imgui.Text(u8'Команда которая создала данный хелпер, не несёт')
            imgui.Text(u8'ответственности за ваши аккаунты. Качайте хелпер только с')
            imgui.Text(u8'официального форума Online Role Play и') -- ORP ЖОЛТЫМ
            imgui.Text(u8'официального сообщества во ВКонтакте"') -- ВК СИНИМ
            imgui.Separator()
            imgui.Text(u8'Кодер - Wayne Martini.')
            imgui.Text(u8'Оформление - Angel Blanco')
            imgui.Separator()
            imgui.Text(u8' ')
            if imgui.CollapsingHeader(u8'Mafia Helper - обратная связь') then
                imgui.Text(u8'По вопросам - Кодер and Хелпер по проблемам/вопросам.')
            end
            imgui.EndTabItem()
        end
        if imgui.BeginTabItem(u8'Для лидеров') then
                        if imgui.Button(u8"Отыграть выдачу формы.") then
                                lua_thread.create(function()
                                sampSendChat("/do sdsd")
                                wait(1200)
                                sampSendChat("/me вава")
                                wait(1234)
                                sampSendChat("/do вава")
                                wait(1234)
                                sampSendChat("вава")
                                end)
                        end
                        if imgui.Button(u8"Отыграть КПК.") then
                                lua_thread.create(function()
                                sampSendChat("/do sdsd")
                                wait(1233)
                                sampSendChat("/me вава")
                                wait(1233)
                                sampSendChat("/do ваваа")
                                wait(1233)
                                sampSendChat("/me вавава")
                                wait(1233)
                                sampSendChat("/me вавава")
                                wait(1000)
                                sampSendChat('/me вавава')
                                wait(1000)
                                sampSendChat('вавава.')
                                sampAddChatMessage("ваваав")
                                end)
                        end
                        if imgui.Button(u8"Начать собеседование.") then
                                lua_thread.create(function()
                                sampSendChat("/f sds")
                                end)
                        end
                        imgui.EndTabItem()
                end
        if imgui.BeginTabItem(u8'Чат') then
                        imgui.Checkbox(u8'Акцент.', checkbox)
        end
    end
    imgui.End()
end)

function ev.onSendChat(msg)
    return {checkbox[0] and "[Японский акцент]: "..msg or msg}
end
Все работает огромние спасибо просто поклон тебе

Проверяй, подправил код. За табуляцию не ручаюсь, багается хз из-за чего, сам подправишь у себя.
Lua:
local imgui = require 'mimgui'
local wm = require 'windows.message'
local vkeys = require 'vkeys'
local ev = require 'lib.samp.events'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8

local sw, sh = 500, 300
local active = imgui.new.bool(false)
local checkbox = imgui.new.bool(false)

function onWindowMessage(msg, wparam, lparam)
    if msg == wm.WM_KEYUP and wparam == vkeys.VK_M and not sampIsCursorActive() then
        active[0] = not active[0]
    end
end

local mainFrame = imgui.OnFrame(function() return active[0] end, function(self)
    imgui.SetNextWindowSize(imgui.ImVec2(sw, sh), imgui.Cond.FirstUseEver)
    imgui.Begin('Mafia Helper V - 0.1', active)
    if imgui.BeginTabBar(u8'оо') then
        if imgui.BeginTabItem(u8'О хелпере') then
            imgui.Text(u8'Здравствуйте, вас приветствует команда разработчиков')
            imgui.Text(u8'Mafia Helper.') -- Красный
            imgui.Text(u8'Данный хелпер создан для того, чтобы упростить игру')
            imgui.Text(u8'участникам преступных синдикатов, а так же их лидерам и')
            imgui.Text(u8'заместителям.')
            imgui.Text(u8'Команда которая создала данный хелпер, не несёт')
            imgui.Text(u8'ответственности за ваши аккаунты. Качайте хелпер только с')
            imgui.Text(u8'официального форума Online Role Play и') -- ORP ЖОЛТЫМ
            imgui.Text(u8'официального сообщества во ВКонтакте"') -- ВК СИНИМ
            imgui.Separator()
            imgui.Text(u8'Кодер - Wayne Martini.')
            imgui.Text(u8'Оформление - Angel Blanco')
            imgui.Separator()
            imgui.Text(u8' ')
            if imgui.CollapsingHeader(u8'Mafia Helper - обратная связь') then
                imgui.Text(u8'По вопросам - Кодер and Хелпер по проблемам/вопросам.')
            end
            imgui.EndTabItem()
        end
        if imgui.BeginTabItem(u8'Для лидеров') then
                        if imgui.Button(u8"Отыграть выдачу формы.") then
                                lua_thread.create(function()
                                sampSendChat("/do sdsd")
                                wait(1200)
                                sampSendChat("/me вава")
                                wait(1234)
                                sampSendChat("/do вава")
                                wait(1234)
                                sampSendChat("вава")
                                end)
                        end
                        if imgui.Button(u8"Отыграть КПК.") then
                                lua_thread.create(function()
                                sampSendChat("/do sdsd")
                                wait(1233)
                                sampSendChat("/me вава")
                                wait(1233)
                                sampSendChat("/do ваваа")
                                wait(1233)
                                sampSendChat("/me вавава")
                                wait(1233)
                                sampSendChat("/me вавава")
                                wait(1000)
                                sampSendChat('/me вавава')
                                wait(1000)
                                sampSendChat('вавава.')
                                sampAddChatMessage("ваваав")
                                end)
                        end
                        if imgui.Button(u8"Начать собеседование.") then
                                lua_thread.create(function()
                                sampSendChat("/f sds")
                                end)
                        end
                        imgui.EndTabItem()
                end
        if imgui.BeginTabItem(u8'Чат') then
                        imgui.Checkbox(u8'Акцент.', checkbox)
        end
    end
    imgui.End()
end)

function ev.onSendChat(msg)
    return {checkbox[0] and "[Японский акцент]: "..msg or msg}
end
можем связаться вк я еще пару вопросиков позадаю
 

Uzkon

Участник
23
14
ответьте на это пожайлусто

щас проверю заранее спасибо


Все работает огромние спасибо просто поклон тебе


можем связаться вк я еще пару вопросиков позадаю
Задавай здесь, не факт что отвечу, мб другие ответят
 
  • Нравится
Реакции: Ononimus и YarikVL

Ononimus

Потрачен
60
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Задавай здесь, не факт что отвечу, мб другие ответят
хорошо минуту

код:
local imgui = require 'mimgui'
local wm = require 'windows.message'
local vkeys = require 'vkeys'
local ev = require 'lib.samp.events'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8

local sw, sh = 500, 300
local active = imgui.new.bool(false)
local checkbox = imgui.new.bool(false)

function onWindowMessage(msg, wparam, lparam)
    if msg == wm.WM_KEYUP and wparam == vkeys.VK_M and not sampIsCursorActive() then
        active[0] = not active[0]
    end
end

local mainFrame = imgui.OnFrame(function() return active[0] end, function(self)
    imgui.SetNextWindowSize(imgui.ImVec2(sw, sh), imgui.Cond.FirstUseEver)
    imgui.Begin('Mafia Helper V - 0.1', active)
    if imgui.BeginTabBar(u8'оо') then
        if imgui.BeginTabItem(u8'О хелпере') then
            imgui.Text(u8'Здравствуйте, вас приветствует команда разработчиков')
            imgui.Text(u8'Mafia Helper.') -- Красный
            imgui.Text(u8'Данный хелпер создан для того, чтобы упростить игру')
            imgui.Text(u8'участникам преступных синдикатов, а так же их лидерам и')
            imgui.Text(u8'заместителям.')
            imgui.Text(u8'Команда которая создала данный хелпер, не несёт')
            imgui.Text(u8'ответственности за ваши аккаунты. Качайте хелпер только с')
            imgui.Text(u8'официального форума Online Role Play и') -- ORP ЖОЛТЫМ
            imgui.Text(u8'официального сообщества во ВКонтакте"') -- ВК СИНИМ
            imgui.Separator()
            imgui.Text(u8'Кодер - Wayne Martini.')
            imgui.Text(u8'Оформление - Angel Blanco')
            imgui.Separator()
            imgui.Text(u8' ')
            if imgui.CollapsingHeader(u8'Mafia Helper - обратная связь') then
                imgui.Text(u8'По вопросам - Кодер and Хелпер по проблемам/вопросам.')
            end
            imgui.EndTabItem()
        end
        if imgui.BeginTabItem(u8'Для лидеров') then
                        if imgui.Button(u8"Отыграть выдачу формы.") then
                                lua_thread.create(function()
                                sampSendChat("/do sdsd")
                                wait(1200)
                                sampSendChat("/me вава")
                                wait(1234)
                                sampSendChat("/do вава")
                                wait(1234)
                                sampSendChat("вава")
                                end)
                        end
                        if imgui.Button(u8"Отыграть КПК.") then
                                lua_thread.create(function()
                                sampSendChat("/do sdsd")
                                wait(1233)
                                sampSendChat("/me вава")
                                wait(1233)
                                sampSendChat("/do ваваа")
                                wait(1233)
                                sampSendChat("/me вавава")
                                wait(1233)
                                sampSendChat("/me вавава")
                                wait(1000)
                                sampSendChat('/me вавава')
                                wait(1000)
                                sampSendChat('вавава.')
                                sampAddChatMessage("ваваав")
                                end)
                        end
                        if imgui.Button(u8"Начать собеседование.") then
                                lua_thread.create(function()
                                sampSendChat("/f sds")
                                end)
                        end
                        imgui.EndTabItem()
                end
        if imgui.BeginTabItem(u8'Чат') then
                        imgui.Checkbox(u8'Японский акцент.', checkbox)
        end
        if imgui.BeginTabItem(u8'Оружие.') then
                        imgui.Checkbox(u8'Авто-отыгровка оружия.', checkbox)
        end
    end
    imgui.End()
end)

function ev.onSendChat(msg)
    return {checkbox[0] and "[Японский акцент]: "..msg or msg}
end

можно сделать так что бы при включение галочке в строке

if imgui.BeginTabItem(u8'Оружие.') then
imgui.Checkbox(u8'Авто-отыгровка оружия.', checkbox)

была авто отыгровка оружия (оругровки можете не кидать могу сам написать просто паставти буквы туда)
 
Последнее редактирование: