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

Тема в разделе "Lua", создана пользователем FYP, 8 авг 2016.

  1. Belo4ka_belka

    Belo4ka_belka Постоянный участник

    Регистрация:
    28 июл 2015
    Сообщения:
    97
    Симпатии:
    1
    Я конечно попробую, но сможешь мне объяснить за пушфонт что-то? Хотелось бы все таки иметь гибкость для каждого элемента.
     
  2. Petr_Sergeevich

    Проверенный

    Регистрация:
    25 июн 2017
    Сообщения:
    564
    Симпатии:
    170
    Создаёшь уникальный шрифт (название!):
    
    local exFont = nil
    function imgui.BeforeDrawFrame()
        if exFont == nil then
            imgui.GetIO().Fonts:Clear()
            exFont = imgui.GetIO().Fonts:AddFontFromFileTTF(getFolderPath(0x14)..'\\arial.ttf', 16.0, nil, imgui.GetIO().Fonts:GetGlyphRangesCyrillic())
            -- Чтобы остался дефолтный шрифт для прочих элементов:
            imgui.GetIO().Fonts:AddFontFromFileTTF(getFolderPath(0x14)..'\\trebucbd.ttf', 15.5, nil, imgui.GetIO().Fonts:GetGlyphRangesCyrillic())
            imgui.RebuildFonts()
        end
    end
    
    Использование:
    
    imgui.PushFont(exFont)
        imgui.Text("example")
    imgui.PopFont()
    
     
    Infernus и Belo4ka_belka нравится это.
  3. Belo4ka_belka

    Belo4ka_belka Постоянный участник

    Регистрация:
    28 июл 2015
    Сообщения:
    97
    Симпатии:
    1
    АААА. То есть я уже почти все верно сделал?? Емае как я не догадался сам... Спасибо!
     
  4. Petr_Sergeevich

    Проверенный

    Регистрация:
    25 июн 2017
    Сообщения:
    564
    Симпатии:
    170
    Всё просто, достаточно немного подумать головой)

    После sampAddChatMessage:
    
    isSecondWindow.v = true
    
    В бесконечном цикле:
    
    imgui.Process = ... or isSecondWindow.v
    
    В imgui.OnDrawFrame:
    
    if isSecondWindow.v then
    
    end
    
     
    DeniskaaaXDD нравится это.
  5. deddosouru

    deddosouru Смотрю аниме, служу Сатане
    Друг

    Регистрация:
    14 сен 2015
    Сообщения:
    1.757
    Симпатии:
    1.032
    когда устанавливаешь флаги шрифта при создании
     
  6. Petr_Sergeevich

    Проверенный

    Регистрация:
    25 июн 2017
    Сообщения:
    564
    Симпатии:
    170
    Проблема в том, что не понятно, где их устанавливать
    
    local d3ddev = ffi.cast('void*', getD3DDevicePtr())
    local font = ffi.new('ID3DXFont*[1]', { nil })
    d3dx9_43.D3DXCreateFontA(d3ddev, 13, 0, 600, 1, false, 1, 0, 4, 0, name, font)
    
    https://docs.microsoft.com/en-us/windows/desktop/direct3d9/d3dxcreatefont
    То ли я жестко туплю, то ли там нет ничего похожего на флаги, за исключением Italic
     
  7. ufdhbi

    ufdhbi https://vk.com/gfrtgf
    Проверенный

    Регистрация:
    3 фев 2015
    Сообщения:
    845
    Симпатии:
    355
    if menushka.v then
    вынеси эту хуйню из первой меню
     
  8. Petr_Sergeevich

    Проверенный

    Регистрация:
    25 июн 2017
    Сообщения:
    564
    Симпатии:
    170
    У тебя второе окно будет открыто только в том случае, если активно первое.
    п.с. У тебя несуществующий Child закрывается
     
  9. Infernus

    Infernus Постоянный участник

    Регистрация:
    25 ноя 2017
    Сообщения:
    77
    Симпатии:
    9
    function imgui.OnDrawFrame()
        if menu.v then
            local x, y = getScreenResolution()
            imgui.SetNextWindowPos(imgui.ImVec2(x / 2, y / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
            imgui.SetNextWindowSize(imgui.ImVec2(740, 500), imgui.Cond.FirstUseEver)
            imgui.Begin(u8"AutoSchool binder || v"..thisScript().version, menu, imgui.WindowFlags.MenuBar + imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
            if not selected then selected = 1 end
            if imgui.MenuItem(u8'Настройки') then selected = 1 end
            imgui.End()
        end
        if menushka.v then
            imgui.Begin(u8'Настройки', menushka, imgui.WindowFlags.NoResize + imgui.WindowFlags.MenuBar)
            if imgui.Checkbox("##autoscreen", autoscreen) then cfg.settings.autoscreen = autoscreen.v end
            imgui.Text(u8"Авто-отыгровка, после принятия на экзамен") imgui.SameLine()
            imgui.EndChild()
            imgui.End()
        end
    end
     
  10. HatiGreez

    HatiGreez Знающий

    Регистрация:
    11 июл 2017
    Сообщения:
    262
    Симпатии:
    17
    Имею массив с имгуи булевыми переменными. Производится парсинг этой таблицы, но возникла проблема, что показывается мышка. Как адекватно можно исправить это?
    
    win = {}
    win.var1 = imgui.ImBool(false)
    win.var2 = imgui.ImBool(false)
    --В цикле майн:
        for _,v in pairs(win) do
            imgui.Process = v
        end
    
     
  11. ufdhbi

    ufdhbi https://vk.com/gfrtgf
    Проверенный

    Регистрация:
    3 фев 2015
    Сообщения:
    845
    Симпатии:
    355
    проблема не в парсе, а в имгуи окнах
     
  12. Lemonager

    Lemonager Папуг теам
    Проверенный

    Регистрация:
    24 мар 2018
    Сообщения:
    242
    Симпатии:
    195
    что делает sampSendBulletData? Отправляет выстрел? Можно любой абсолютно конкретный пример? Симпу кину за помощь
     
  13. #HaCKeR

    #HaCKeR Знающий

    Регистрация:
    21 дек 2016
    Сообщения:
    266
    Симпатии:
    47
    Как можно отправлять серверу, что у тебя вообще нету оружия? Хотя оно есть.
     
  14. #HaCKeR

    #HaCKeR Знающий

    Регистрация:
    21 дек 2016
    Сообщения:
    266
    Симпатии:
    47
    Сделать его глобальной переменной
     
  15. bu3ka3

    bu3ka3 black call to your code
    Проверенный

    Регистрация:
    27 янв 2019
    Сообщения:
    421
    Симпатии:
    178
    Помогите, что не так может быть с круиз-контролем? Вроде код должен автоматом ехать по той же скорости, но, автомобиль замедляется и тачка едет медленно.

    function main()
        while true do wait(0)
            if isCharInAnyCar(PLAYER_PED) and isKeyJustPressed(0x47) then cruise = not cruise end
                if isCharInAnyCar(PLAYER_PED) and cruise then
                local veh = storeCarCharIsInNoSave(PLAYER_PED)
                local speed = getCarSpeed(veh)
                setCarForwardSpeed(veh, speed)
                setGameKeyState(16, 255)
            end
        end
    end
     
  16. TopKitten

    TopKitten Постоянный участник

    Регистрация:
    5 дек 2017
    Сообщения:
    64
    Симпатии:
    3
    if закрыты диалоги then
    как буит?
     
  17. #HaCKeR

    #HaCKeR Знающий

    Регистрация:
    21 дек 2016
    Сообщения:
    266
    Симпатии:
    47
    
    if not sampIsDialogActive() then
    --code
    end
    
    ты не сможешь сделать так круиз-контроль.
     
    TopKitten нравится это.
  18. bu3ka3

    bu3ka3 black call to your code
    Проверенный

    Регистрация:
    27 янв 2019
    Сообщения:
    421
    Симпатии:
    178
    А как именно надо, чекая сурс какого-то клео, вроде понял, что именно так.
     
  19. #HaCKeR

    #HaCKeR Знающий

    Регистрация:
    21 дек 2016
    Сообщения:
    266
    Симпатии:
    47
    Ты не сможешь так сделать круиз потому что любая кочка и машина полетит. а так ща может быть помогу, жди.
    Клац, это твоя помощь
     
  20. DeniskaaaXDD

    DeniskaaaXDD Знающий

    Регистрация:
    10 авг 2016
    Сообщения:
    209
    Симпатии:
    53
    Почему у меня первый имгуи и второй одинакового размера?



    function imgui.OnDrawFrame()
        if menushka.v then
            local x, y = getScreenResolution()
            imgui.SetNextWindowPos(imgui.ImVec2(x / 2, y / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
            imgui.SetNextWindowSize(imgui.ImVec2(400, 203), imgui.Cond.FirstUseEver)
            imgui.Begin(u8"AutoSchool binder || v"..thisScript().version, menushka, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
            imgui.Text(u8"тут типо имгуи")
            imgui.End()
        end
        if menu.v then
            local x, y = getScreenResolution()
            imgui.SetNextWindowPos(imgui.ImVec2(x / 2, y / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
            imgui.SetNextWindowSize(imgui.ImVec2(740, 500), imgui.Cond.FirstUseEver)
            imgui.Begin(u8"AutoSchool binder || v"..thisScript().version, menu, imgui.WindowFlags.MenuBar + imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
     
    #25430 DeniskaaaXDD, 16 апр 2019
    Последнее редактирование: 16 апр 2019
  21. bu3ka3

    bu3ka3 black call to your code
    Проверенный

    Регистрация:
    27 янв 2019
    Сообщения:
    421
    Симпатии:
    178
    во-первых, тачка не полетит. Да и в этом месте много лишнего и не совсем то, что мне нужно.
     
    #25431 bu3ka3, 16 апр 2019
    Последнее редактирование: 16 апр 2019
  22. dmitri4

    dmitri4 Знающий

    Регистрация:
    8 май 2017
    Сообщения:
    263
    Симпатии:
    29
    Кривоватый но для примера сойдет
     

    Вложения:

    • kruiz.lua
      Размер файла:
      3,4 КБ
      Просмотров:
      1
  23. The Spark

    The Spark Интересующийся

    Регистрация:
    29 апр 2018
    Сообщения:
    128
    Симпатии:
    18
    Подскажите хук входящего textdraw`a
     
  24. HatiGreez

    HatiGreez Знающий

    Регистрация:
    11 июл 2017
    Сообщения:
    262
    Симпатии:
    17
    Как можно адекватно организовать рендер mgui окна какого-то без курсора, но при этом чтобы курсор в других местах работал и в.ч. не относящихся к imgui.
     
  25. Pakulichev

    Pakulichev кошачий сквад
    Проверенный

    Регистрация:
    28 окт 2017
    Сообщения:
    632
    Симпатии:
    229
    imgui.ShowCursor = false
    onShowTextDraw
    Ответил в теме.
     
  26. DeniskaaaXDD

    DeniskaaaXDD Знающий

    Регистрация:
    10 авг 2016
    Сообщения:
    209
    Симпатии:
    53
    Как сделать проверку координат?
     
  27. laz3r228

    laz3r228 Свой человек

    Регистрация:
    24 ноя 2016
    Сообщения:
    426
    Симпатии:
    52
    
    local posX, posY, posZ = getCharCoordinates(playerPed)
    if posX == ... and posY == ... and posZ == ... then
        ....
    end
    
     
  28. LuaMaster

    LuaMaster Постоянный участник

    Регистрация:
    13 апр 2017
    Сообщения:
    70
    Симпатии:
    2
    Привет всем, как зделать на луа языке что бы при активации команды постоянно была зажата кнопка, в моём случае пробел?
     
  29. Pakulichev

    Pakulichev кошачий сквад
    Проверенный

    Регистрация:
    28 окт 2017
    Сообщения:
    632
    Симпатии:
    229
    setVirtualKeyDown(VK_SPACE, true)
     
  30. DeniskaaaXDD

    DeniskaaaXDD Знающий

    Регистрация:
    10 авг 2016
    Сообщения:
    209
    Симпатии:
    53
    Короче, захотел я сделать для себя мини биндер, а тут писюн на весь экран. Почему if nazemn.v then не ждёт моего нажатия на кнопку?

    local nazemn                = imgui.ImBool(false)
    function nazem()
        wait(0)
        if nazemn.v then
            sampAddChatMessage("[КПК Помощник]: Если Вы хотите начать РП отыгровку, нажмите {00FF33}1{ffffff}.", 0xfa9005)
            sampAddChatMessage("[КПК Помощник]: Если Вы хотите отменить РП отыгровку, нажмите {00FF33}2{ffffff}.", 0xfa9005)
            if isKeyJustPressed(50) then
                sampAddChatMessage("[КПК Помощник]: Вы отменили РП отыгровку.", 0xfa9005)
            elseif isKeyJustPressed(49) then
                sampSendChat("Здравствуйте, меня зовут "..myname..". Я буду принимать у вас экзамен.")
                wait(2000)
                sampSendChat("Покажите ваш паспорт.")
                sampAddChatMessage("[КПК Помощник]: {FFFFFF}Должно быть: {00FF33}18+ лет. С 5 лет надо мед. карту", 0xfa9005)
                sampAddChatMessage("[КПК Помощник]: {FFFFFF}Если игрок успешно прошел проверку, нажмите {00FF33}1{ffffff}.", 0xfa9005)
                sampAddChatMessage("[КПК Помощник]: {FFFFFF}Если игрок не допущен по какой-либо причине, нажмите {00FF33}2{ffffff}.", 0xfa9005)
            end
        end
    end
    
            if imgui.Button(u8"Принять экзамен на наземный транспорт", nazemn) then end
     
  31. James Hawk

    James Hawk Местный житель

    Регистрация:
    1 сен 2016
    Сообщения:
    769
    Симпатии:
    139
    По нажатию на кнопку должна запуститься функция?
    Можно же код сразу в цикл под клавишу закинуть
     
  32. Pakulichev

    Pakulichev кошачий сквад
    Проверенный

    Регистрация:
    28 окт 2017
    Сообщения:
    632
    Симпатии:
    229
    А почему должен ждать? Условие кнопки же не указано.
    nazemn.v = not nazemn.v
     
  33. Jarik123321

    Jarik123321 Участник

    Регистрация:
    21 мар 2018
    Сообщения:
    5
    Симпатии:
    0
    Помоги, пожалуйста
     

    Вложения:

    • moonloader.log
      Размер файла:
      3,4 КБ
      Просмотров:
      6
  34. HanPrincess

    HanPrincess Знающий

    Регистрация:
    17 июн 2015
    Сообщения:
    223
    Симпатии:
    23
    Как брать ники из txt файла по порядку?
     
  35. Akionka

    Akionka Знающий

    Регистрация:
    2 фев 2018
    Сообщения:
    267
    Симпатии:
    118
    for nick in io.lines('moonloader/config/nicks.txt') do
        print(nick)
    end
     
    Mahonya и HanPrincess нравится это.