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

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

  1. Ken Block

    Ken Block Знаток

    Регистрация:
    22 май 2015
    Сообщения:
    104
    Симпатии:
    6
    Репутация:
    0
    Почему не работает задержка до и после for i = 0, 150 ?
     
  2. randazzo

    Проверенный

    Регистрация:
    21 май 2014
    Сообщения:
    618
    Симпатии:
    226
    Репутация:
    64
    кидай код
     
  3. Alex1301301

    Alex1301301 Активный пользователь

    Регистрация:
    13 июл 2017
    Сообщения:
    30
    Симпатии:
    0
    Репутация:
    0
    Что значит например colors[clr.Text] = ImVec4(1.00, 1.00, 1.00, 1.00)?? Что такое в скобках и как это вообще использовать? В двух Lua вот так(только цифры в скобках разные). Повторюсь, как это вообще использовать и что за координаты в скобках???:
    colors[clr.Text] = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.TextDisabled] = ImVec4(0.50, 0.50, 0.50, 1.00)
    colors[clr.WindowBg] = ImVec4(0.06, 0.06, 0.06, 0.94)
    colors[clr.ChildWindowBg] = ImVec4(1.00, 1.00, 1.00, 0.00)
    colors[clr.PopupBg] = ImVec4(0.08, 0.08, 0.08, 0.94)
    colors[clr.ComboBg] = colors[clr.PopupBg]
    colors[clr.Border] = ImVec4(0.43, 0.43, 0.50, 0.50)
    colors[clr.BorderShadow] = ImVec4(0.00, 0.00, 0.00, 0.00)
    colors[clr.FrameBg] = ImVec4(0.16, 0.29, 0.48, 0.54)
    colors[clr.FrameBgHovered] = ImVec4(0.26, 0.59, 0.98, 0.40)
    colors[clr.FrameBgActive] = ImVec4(0.26, 0.59, 0.98, 0.67)
    colors[clr.TitleBg] = ImVec4(0.04, 0.04, 0.04, 1.00)
    colors[clr.TitleBgActive] = ImVec4(0.16, 0.29, 0.48, 1.00)
    colors[clr.TitleBgCollapsed] = ImVec4(0.00, 0.00, 0.00, 0.51)
    colors[clr.MenuBarBg] = ImVec4(0.14, 0.14, 0.14, 1.00)
    colors[clr.ScrollbarBg] = ImVec4(0.02, 0.02, 0.02, 0.53)
    colors[clr.ScrollbarGrab] = ImVec4(0.31, 0.31, 0.31, 1.00)
    colors[clr.ScrollbarGrabHovered] = ImVec4(0.41, 0.41, 0.41, 1.00)
    colors[clr.ScrollbarGrabActive] = ImVec4(0.51, 0.51, 0.51, 1.00)
    colors[clr.CheckMark] = ImVec4(0.26, 0.59, 0.98, 1.00)
    colors[clr.SliderGrab] = ImVec4(0.24, 0.52, 0.88, 1.00)
    colors[clr.SliderGrabActive] = ImVec4(0.26, 0.59, 0.98, 1.00)
    colors[clr.Button] = ImVec4(0.26, 0.59, 0.98, 0.40)
    colors[clr.ButtonHovered] = ImVec4(0.26, 0.59, 0.98, 1.00)
    colors[clr.ButtonActive] = ImVec4(0.06, 0.53, 0.98, 1.00)
    colors[clr.Header] = ImVec4(0.26, 0.59, 0.98, 0.31)
    colors[clr.HeaderHovered] = ImVec4(0.26, 0.59, 0.98, 0.80)
    colors[clr.HeaderActive] = ImVec4(0.26, 0.59, 0.98, 1.00)
    colors[clr.Separator] = colors[clr.Border]
    colors[clr.SeparatorHovered] = ImVec4(0.26, 0.59, 0.98, 0.78)
    colors[clr.SeparatorActive] = ImVec4(0.26, 0.59, 0.98, 1.00)
    colors[clr.ResizeGrip] = ImVec4(0.26, 0.59, 0.98, 0.25)
    colors[clr.ResizeGripHovered] = ImVec4(0.26, 0.59, 0.98, 0.67)
    colors[clr.ResizeGripActive] = ImVec4(0.26, 0.59, 0.98, 0.95)
    colors[clr.CloseButton] = ImVec4(0.41, 0.41, 0.41, 0.50)
    colors[clr.CloseButtonHovered] = ImVec4(0.98, 0.39, 0.36, 1.00)
    colors[clr.CloseButtonActive] = ImVec4(0.98, 0.39, 0.36, 1.00)
    colors[clr.PlotLines] = ImVec4(0.61, 0.61, 0.61, 1.00)
    colors[clr.PlotLinesHovered] = ImVec4(1.00, 0.43, 0.35, 1.00)
    colors[clr.PlotHistogram] = ImVec4(0.90, 0.70, 0.00, 1.00)
    colors[clr.PlotHistogramHovered] = ImVec4(1.00, 0.60, 0.00, 1.00)
    colors[clr.TextSelectedBg] = ImVec4(0.26, 0.59, 0.98, 0.35)
    colors[clr.ModalWindowDarkening] = ImVec4(0.80, 0.80, 0.80, 0.35)
     
  4. DarkP1xel

    DarkP1xel #ТГК
    BH Team

    Регистрация:
    17 июн 2013
    Сообщения:
    2.488
    Симпатии:
    1.806
    Репутация:
    414
    Для каждого компонента GUI можно настроить свой цвет. Это не координаты, а цветовая палитра.
     
  5. Alex1301301

    Alex1301301 Активный пользователь

    Регистрация:
    13 июл 2017
    Сообщения:
    30
    Симпатии:
    0
    Репутация:
    0
    А где используется это всё??? И можно узнать эти цвета?
     
  6. Ken Block

    Ken Block Знаток

    Регистрация:
    22 май 2015
    Сообщения:
    104
    Симпатии:
    6
    Репутация:
    0
    Как сделать проверку анимации игрока ? И что бы когда была анимка как у грузчиков на адвансе прописывалась команда ( CRRY_PRTIAL вроде ) /eat ?
     
  7. zwhoz

    zwhoz Знаток

    Регистрация:
    24 авг 2013
    Сообщения:
    103
    Симпатии:
    9
    Репутация:
    4
    
    memory.write(sampGetBase() + 0x63EAF,  0xBD, 1, true)
    memory.write(sampGetBase() + 0x63EB0,  100,  4, true) -- posX
    memory.fill(sampGetBase() + 0x63EB4,  0x90, 4, true)
    
    memory.write(sampGetBase() + 0x63DB1,  10,  4, true) --- Первая строка Timestamp posX
    memory.write(sampGetBase() + 0x63FD6,  10,  4, true) ---  Остальные строки Timestamp posX
    
     
    Последние данные очков репутации:
    uczoja62: 1 Очко 13 фев 2018
    #3527 zwhoz, 13 фев 2018
    Последнее редактирование: 13 фев 2018
    DonHomka нравится это.
  8. Alex1301301

    Alex1301301 Активный пользователь

    Регистрация:
    13 июл 2017
    Сообщения:
    30
    Симпатии:
    0
    Репутация:
    0
    local key = require "vkeys"
    local imgui = require "imgui"
    local moon = require "lib.moonloader"
    local encoding = require 'encoding'
    encoding.default = 'CP1251'
    u8 = encoding.UTF8
    
    local TestInt = 0
    local TestFloat = 0.00
    
    
    
    local main_test_imgui = imgui.ImBool(false)
    function imgui.OnDrawFrame()
        if main_test_imgui.v then
            imgui.Begin("Window")
            imgui.Checkbox("testbox", false)
            imgui.SliderFloat("testfloat", TestFloat, 0.00, 10.00)
            imgui.SliderInt("TestInt", TestInt, 0, 10)
            imgui.End()
        end
    end
    
    
    
    function main()
        if not isSampfuncsLoaded() or not isSampLoaded() then return end
        while not isSampAvailable() do wait(100) end
        while true do
        wait(0)
        if wasKeyPressed(key.VK_H) then
            main_test_imgui.v = not main_test_imgui.v
        end
        imgui.Process = main_test_imgui.v end
    end
    Помогите плз. Я делаю ImGui просто для примера, а при активации у меня зависает SA:MP. Что я делаю не так? Вот код:
     
  9. Vlad Horii

    Vlad Horii Знаток

    Регистрация:
    16 июл 2017
    Сообщения:
    289
    Симпатии:
    49
    Репутация:
    22
    У тебе перебор end`ов в функции main
     
  10. Artur_iOS

    Artur_iOS Знаток

    Регистрация:
    18 мар 2017
    Сообщения:
    144
    Симпатии:
    40
    Репутация:
    11
    Буфер создай для Slider`ов ImInt ImFloat
     
  11. u3_HeDP_DHa

    u3_HeDP_DHa Активный пользователь

    Регистрация:
    16 апр 2017
    Сообщения:
    39
    Симпатии:
    4
    Репутация:
    1
    возможно ли как-то распознать данный символ (белый квадрат, а внутри черная точка, ибо вставить не получилось) и вырезать его из текста?
     
  12. Alex1301301

    Alex1301301 Активный пользователь

    Регистрация:
    13 июл 2017
    Сообщения:
    30
    Симпатии:
    0
    Репутация:
    0
    Всмысле??? Скажи где и куда что вставлять плиз
     
  13. Artur_iOS

    Artur_iOS Знаток

    Регистрация:
    18 мар 2017
    Сообщения:
    144
    Симпатии:
    40
    Репутация:
    11
    local TestInt = imgui.ImInt(0)
    local TestFloat = imgui.ImFloat(0.00)
     
  14. drags

    drags Активный пользователь

    Регистрация:
    24 сен 2013
    Сообщения:
    26
    Симпатии:
    0
    Репутация:
    0
    Это не работает напрямую через http, мне нужно без загрузки файла на пк
     
  15. Artur_iOS

    Artur_iOS Знаток

    Регистрация:
    18 мар 2017
    Сообщения:
    144
    Симпатии:
    40
    Репутация:
    11
    Отправляешь http запрос(через тот же luasocket можно), сайт возвращает исходный код и ты запускаешь его как поток
     
  16. Alex1301301

    Alex1301301 Активный пользователь

    Регистрация:
    13 июл 2017
    Сообщения:
    30
    Симпатии:
    0
    Репутация:
    0
    Тоже не робит. Сам попробуй в игре запустить
    local key = require "vkeys"
    local imgui = require "imgui"
    local moon = require "lib.moonloader"
    local encoding = require 'encoding'
    encoding.default = 'CP1251'
    u8 = encoding.UTF8
    
    local TestInt = imgui.ImInt(0)
    local TestFloat = imgui.ImFloat(0.00)
    
    
    
    local main_test_imgui = imgui.ImBool(false)
    function imgui.OnDrawFrame()
        if main_test_imgui.v then
            imgui.Begin("Window")
            imgui.Checkbox("testbox", false)
            imgui.SliderFloat("testfloat", TestFloat, 0.00, 10.00)
            imgui.SliderInt("TestInt", TestInt, 0, 10)
            imgui.End()
        end
    end
    
    
    
    function main()
        if not isSampfuncsLoaded() or not isSampLoaded() then return end
        while not isSampAvailable() do wait(100) end
        while true do
        wait(0)
        if wasKeyPressed(key.VK_H) then
            main_test_imgui.v = not main_test_imgui.v
        end
        imgui.Process = main_test_imgui.v end
    end
     
  17. zwhoz

    zwhoz Знаток

    Регистрация:
    24 авг 2013
    Сообщения:
    103
    Симпатии:
    9
    Репутация:
    4
    Вот.
    
    local key = require "vkeys"
    local imgui = require "imgui"
    local moon = require "lib.moonloader"
    local encoding = require 'encoding'
    encoding.default = 'CP1251'
    u8 = encoding.UTF8
    
    local main_test_imgui = imgui.ImBool(false)
    local checkbox = imgui.ImBool(false)
    local TestInt = imgui.ImInt(0)
    local TestFloat = imgui.ImFloat(0.00)
    function imgui.OnDrawFrame()
        if main_test_imgui.v then
            local sw, sh = getScreenResolution()
            imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
            imgui.SetNextWindowSize(imgui.ImVec2(200, 200), imgui.Cond.FirstUseEver)
            imgui.Begin(u8'Window', main_test_imgui)
            imgui.Checkbox("testbox", checkbox)
            imgui.SliderFloat("TestFloat", TestFloat, 0.00, 10.00)
            imgui.SliderInt("TestInt", TestInt, 0, 10)
            imgui.End()
        end
    end
    
    function main()
        if not isSampfuncsLoaded() or not isSampLoaded() then return end
        while not isSampAvailable() do wait(100) end
        while true do
            wait(0)
            if wasKeyPressed(key.VK_H) then
                main_test_imgui.v = not main_test_imgui.v
            end
            imgui.Process = main_test_imgui.v
        end
    end
    
     
    Artur_iOS нравится это.
  18. Alex1301301

    Alex1301301 Активный пользователь

    Регистрация:
    13 июл 2017
    Сообщения:
    30
    Симпатии:
    0
    Репутация:
    0
    Что такое и как использовать:
    encoding.default = 'CP1251'
    u8 = encoding.UTF8
     
  19. zwhoz

    zwhoz Знаток

    Регистрация:
    24 авг 2013
    Сообщения:
    103
    Симпатии:
    9
    Репутация:
    4
    Кодировка текста.
    Если хочешь на англ. можно так: imgui.Begin('Window', main_test_imgui)
    Если хочешь на русском надо так: imgui.Begin(u8'Окно', main_test_imgui), иначе вместо русских букв будут символы.
     
  20. DonHomka

    DonHomka Lua Helper (иногда)
    Проверенный

    Регистрация:
    8 ноя 2017
    Сообщения:
    487
    Симпатии:
    159
    Репутация:
    42
    вопросы будут. а так верно
     
  21. drags

    drags Активный пользователь

    Регистрация:
    24 сен 2013
    Сообщения:
    26
    Симпатии:
    0
    Репутация:
    0
    Можно подробней для тупых, получил код, есть переменная script, :run() на неё не работает
     
  22. Artur_iOS

    Artur_iOS Знаток

    Регистрация:
    18 мар 2017
    Сообщения:
    144
    Симпатии:
    40
    Репутация:
    11
  23. drags

    drags Активный пользователь

    Регистрация:
    24 сен 2013
    Сообщения:
    26
    Симпатии:
    0
    Репутация:
    0
  24. Malkas

    Malkas Пользователь

    Регистрация:
    8 фев 2018
    Сообщения:
    8
    Симпатии:
    0
    Репутация:
    0
    Подскажите, как визуально поднять человека на N метров вверх, влево и тд.
    Какие пакеты юзать?
     
  25. Artur_iOS

    Artur_iOS Знаток

    Регистрация:
    18 мар 2017
    Сообщения:
    144
    Симпатии:
    40
    Репутация:
    11
    К функции.

    Узнаешь пед игрока, узнаешь его корды, тпшишь добавив к Z координате N значение. Возможно нужно в цикле тпшить. Это теоретически должно работать.

    lua - getcharcoordinates | BlastHack — DEV_WIKI(https://blast.hk/wiki/lua:getcharcoordinates)
    lua - setcharcoordinates | BlastHack — DEV_WIKI(https://blast.hk/wiki/lua:setcharcoordinates)
     
  26. drags

    drags Активный пользователь

    Регистрация:
    24 сен 2013
    Сообщения:
    26
    Симпатии:
    0
    Репутация:
    0
    Я понял что к функции, но как? такая ботва не работает
    function test() return script end
    --или вот такая
    function test() script end --тут вообще будет ошибка
    UPD: Разобрался, приравнивается к функции, но запуская поток скрипт не работает( и в потоке я вызывал функцию mains() (переименовал во избежание конфликта)
     
    #3546 drags, 13 фев 2018
    Последнее редактирование: 13 фев 2018
  27. DonHomka

    DonHomka Lua Helper (иногда)
    Проверенный

    Регистрация:
    8 ноя 2017
    Сообщения:
    487
    Симпатии:
    159
    Репутация:
    42
    Поток создать?
    lua_theard.create(function() print("322") end)
     
  28. Alex1301301

    Alex1301301 Активный пользователь

    Регистрация:
    13 июл 2017
    Сообщения:
    30
    Симпатии:
    0
    Репутация:
    0
    Как получить хендл педа/актера и потом хендл транспорта???
     
  29. Vlad Horii

    Vlad Horii Знаток

    Регистрация:
    16 июл 2017
    Сообщения:
    289
    Симпатии:
    49
    Репутация:
    22
  30. Ken Block

    Ken Block Знаток

    Регистрация:
    22 май 2015
    Сообщения:
    104
    Симпатии:
    6
    Репутация:
    0
    Как сделать проверку на активацию скрипта MVDhelper.luac и потом загружался мой скрипт который выгружает команды?
     
  31. Alex1301301

    Alex1301301 Активный пользователь

    Регистрация:
    13 июл 2017
    Сообщения:
    30
    Симпатии:
    0
    Репутация:
    0
  32. Vlad Horii

    Vlad Horii Знаток

    Регистрация:
    16 июл 2017
    Сообщения:
    289
    Симпатии:
    49
    Репутация:
    22
    Handle
    Player handle
    Car handle
    Vehicle handle
     
    ZKelo нравится это.
  33. Bogach

    Bogach Знаток

    Регистрация:
    9 ноя 2015
    Сообщения:
    375
    Симпатии:
    17
    Репутация:
    7
    Здравствуйте товарищи скриптеры, появилось несколько вопросов:
    1. Как получить дистанцию от моего персонажа, до другого определенного игрока?
    2. Если допустим мне надо получать с текстового файла первую строчку или последнюю
    (нажал кнопку к примеру, получил первую строчку(или последнюю)) как - то можно это сделать?
    Если что примеры дайте ответы на вопросы, буду безмерно благодарен.
     
  34. Alex1301301

    Alex1301301 Активный пользователь

    Регистрация:
    13 июл 2017
    Сообщения:
    30
    Симпатии:
    0
    Репутация:
    0
    Помогите плз! Я хочу сделать Тп в ближайший кар, но не знаю как и что. Я понял, что нужны эти опкоды:
    Vehicle car, Ped ped = storeClosestEntities(Ped ped)
    warpCharIntoCar(Ped ped, Vehicle car)
    bool result, int id = sampGetPlayerIdByCharHandle(Ped handle)


    Помогите пожалуйста! Мне нужно это сделать. плз
     
  35. Vlad Horii

    Vlad Horii Знаток

    Регистрация:
    16 июл 2017
    Сообщения:
    289
    Симпатии:
    49
    Репутация:
    22
    Начинай, поможем, а то тут вопросы, а не написание на заказ.
    Возникнут вопросы, пиши
     
  36. Alex1301301

    Alex1301301 Активный пользователь

    Регистрация:
    13 июл 2017
    Сообщения:
    30
    Симпатии:
    0
    Репутация:
    0
    Ты шаришь в ImGui??? И второй вопрос, можно я у тебя буду советы в вк спрашивать? Ну тип иногда, а то тут не оч удобно
     
  37. Vlad Horii

    Vlad Horii Знаток

    Регистрация:
    16 июл 2017
    Сообщения:
    289
    Симпатии:
    49
    Репутация:
    22
    Шарю
    Спрашивай
     
  38. imring

    Проверенный

    Регистрация:
    3 авг 2016
    Сообщения:
    293
    Симпатии:
    142
    Репутация:
    46
    float distance = getDistanceBetweenCoords3d(float x1, float y1, float z1, float x2, float y2, float z2)  -- 050A
    Пример:
    local result, handle = getCharPlayerIsTargeting(playerHandle)
    if result then
        local mx, my, mz = getCharCoordinates(playerPed)
        local x, y, z = getCharCoordinates(handle)
        local distance = getDistanceBetweenCoords3d(mx, my, mz, x, y, z)
        -- ...
    end
    
    local file = io.open(..., 'r')
    local text, t = file:read('*a'), {}
    for w in text:gmatch('[^\r\n]+') do
        t[#t+1] = w
    end
    -- Первая строка: t[1] ; Последняя строка: t[#t]
    -- ...
    
     
    Последние данные очков репутации:
    Bogach: 1 Очко (Спасибо дружище!) 14 фев 2018
    Bogach нравится это.
  39. Bogach

    Bogach Знаток

    Регистрация:
    9 ноя 2015
    Сообщения:
    375
    Симпатии:
    17
    Репутация:
    7
    А можешь объяснить некоторые вещи? Например:
    В этой строке: local text, t = file:read('*a'), после запятой стоит {} - это что ? вроде как это добавление в массив, но наименования массива нет
    Что значит буква w вот тут: for w in text:gmatch('[^\r\n]+') do
    в t я так понял попадает строка, если я не прав, то скажи что на самом деле
     
  40. imring

    Проверенный

    Регистрация:
    3 авг 2016
    Сообщения:
    293
    Симпатии:
    142
    Репутация:
    46
    в таблице t будет каждая строка с файла

    w будет строкой после \n
     
    Bogach нравится это.