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

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

  1. trefa

    trefa 000011100010111000101010000011100010111100011100
    Проверенный

    Регистрация:
    5 фев 2015
    Сообщения:
    1.014
    Симпатии:
    400
    не переменная, а функция
    https://blast.hk/wiki/lua:lockplayercontrol
    ещё можно рпс эмулировать.
     
  2. Petr_Sergeevich

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

    Регистрация:
    25 июн 2017
    Сообщения:
    492
    Симпатии:
    132
    Это всё круто, конечно, но как и где их использовать?
     
  3. Belo4ka_belka

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

    Регистрация:
    28 июл 2015
    Сообщения:
    71
    Симпатии:
    1
    Да. Обычный text. Сейчас применяю такую штуку:
    
    -- в секции автовыполнения
    imgui.GetIO().Fonts:Clear()
        glyph_ranges_cyrillic = imgui.GetIO().Fonts:GetGlyphRangesCyrillic()
        imgui.GetIO().Fonts:AddFontFromFileTTF(getFolderPath(0x14) .. '\\Calibri.ttf', 25.0, nil, glyph_ranges_cyrillic)
        imgui.RebuildFonts()
    Но даже я понимаю что это зашквар. + почему-то не хочет times new roman применять (ошибку Visual studio выдает когда скрипт до этого кода доходит) (каждую букву с названием шрифта в fonts сравнивал - все верно. Не применяются только шрифты содержащие несколько слов в названии (где есть пробелы)). Хотелось бы иметь возможность применять шрифт и размер для каждого элемента по отдельности, а не всем скопом как в примере выше. Ну или хотя-бы размер шрифта...
     
  4. trefa

    trefa 000011100010111000101010000011100010111100011100
    Проверенный

    Регистрация:
    5 фев 2015
    Сообщения:
    1.014
    Симпатии:
    400
    times.ttf пробуй
     
    Belo4ka_belka нравится это.
  5. Belo4ka_belka

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

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

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

    Регистрация:
    25 июн 2017
    Сообщения:
    492
    Симпатии:
    132
    Создаёшь уникальный шрифт (название!):
    
    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 нравится это.
  7. Belo4ka_belka

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

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

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

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

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

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

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

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

    Регистрация:
    25 июн 2017
    Сообщения:
    492
    Симпатии:
    132
    Проблема в том, что не понятно, где их устанавливать
    
    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
     
  11. ufdhbi

    ufdhbi уфдхби
    Проверенный

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

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

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

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

    Регистрация:
    25 ноя 2017
    Сообщения:
    65
    Симпатии:
    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
     
  14. HatiGreez

    HatiGreez Знающий

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

    ufdhbi уфдхби
    Проверенный

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

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

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

    #HaCKeR Знающий

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

    #HaCKeR Знающий

    Регистрация:
    21 дек 2016
    Сообщения:
    257
    Симпатии:
    44
    Сделать его глобальной переменной
     
  19. wizX

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

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

    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
     
  20. TopKitten

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

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

    #HaCKeR Знающий

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

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

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

    #HaCKeR Знающий

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

    #Incognito. Интересующийся

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



    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)
     
    #25539 #Incognito., 16 апр 2019 в 18:04
    Последнее редактирование: 16 апр 2019 в 19:05
  25. wizX

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

    Регистрация:
    27 янв 2019
    Сообщения:
    306
    Симпатии:
    100
    во-первых, тачка не полетит. Да и в этом месте много лишнего и не совсем то, что мне нужно.
     
    #25540 wizX, 16 апр 2019 в 18:09
    Последнее редактирование: 16 апр 2019 в 18:17
  26. dmitri4

    dmitri4 Знающий

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

    Вложения:

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

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

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

    HatiGreez Знающий

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

    Pakulichev vk.com/pavel.akulichev
    Проверенный

    Регистрация:
    28 окт 2017
    Сообщения:
    528
    Симпатии:
    164
    imgui.ShowCursor = false
    onShowTextDraw
    Ответил в теме.
     
  30. #Incognito.

    #Incognito. Интересующийся

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

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

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

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

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

    Pakulichev vk.com/pavel.akulichev
    Проверенный

    Регистрация:
    28 окт 2017
    Сообщения:
    528
    Симпатии:
    164
    setVirtualKeyDown(VK_SPACE, true)
     
  34. #Incognito.

    #Incognito. Интересующийся

    Регистрация:
    10 авг 2016
    Сообщения:
    183
    Симпатии:
    43
    Короче, захотел я сделать для себя мини биндер, а тут писюн на весь экран. Почему 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
     
  35. James Hawk

    James Hawk Друг форума

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