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

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

  1. Di3

    Di3 Знающий

    Регистрация:
    8 сен 2017
    Сообщения:
    290
    Симпатии:
    12
    
    function module.getKeysName(keys)
       if type(keys) ~= "table" then
          print("[RKeys | getKeysName]: Bad argument #1. Value \"", tostring(keys), "\" is not table.")
          return false
       else
          local tKeysName = {}
          for k, v in ipairs(keys) do
             tKeysName[k] = vkeys.id_to_name(v)
          end
          return tKeysName
       end
    end
    Нихуя не понятно,но очень интересно?) Где здесь какое либо ограничение на клавишу?(
     
  2. The Spark

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

    Регистрация:
    29 апр 2018
    Сообщения:
    82
    Симпатии:
    8
    Читаю текстдрав, там вылезает ересть в виде "~w~Еды: ~y~1 ~w~Чипсов: ~y~14~w~/~y~20" Мне нужно убрать это всё и получить "Еды: 1 Чипсов: 14/20"
     
  3. Di3

    Di3 Знающий

    Регистрация:
    8 сен 2017
    Сообщения:
    290
    Симпатии:
    12
    if textdrawtext:find('~w~Еды: ~y~(%d+) ~w~Чипсов: ~y~(%d+)~w~/~y~(%d+)') then
    local havchik1,havchik2,havchik3 =  textdrawtext:match('~w~Еды: ~y~(%d+) ~w~Чипсов: ~y~(%d+)~w~/~y~(%d+)')
    print(string.format('Еды: [%s]',havchik1))
    print(string.format('Чипсов: [%s/%s]',havchik2,havchik3))
    
    end
    Нашел проблему.


        if msg == wm.WM_KEYDOWN or msg == wm.WM_SYSKEYDOWN  then
    ---code
    end
    В incustom//hotkey.lua устанавливаются только нажатия обычных и системных клавиш, нужно найти сообщение о нажатой клавише мыши. ХМ
     
    The Spark нравится это.
  4. Belo4ka_belka

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

    Регистрация:
    28 июл 2015
    Сообщения:
    71
    Симпатии:
    1
    А почему ты уверен что твоя xbutton не обычная клавиша? Ты попытался сделать как я говорил? Поставь вместо имени клавиши (VK_RETURN например) его виртуальный код (0x05) вроде бы у XBUTTON1, ссылку раньше кидал - там коды.
     
  5. Di3

    Di3 Знающий

    Регистрация:
    8 сен 2017
    Сообщения:
    290
    Симпатии:
    12
    Пробовал,толку 0
     
  6. Belo4ka_belka

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

    Регистрация:
    28 июл 2015
    Сообщения:
    71
    Симпатии:
    1
    скинь ту строчку где ты попробовал. Я изначально не был уверен в стопроцентности этого варика, но вдруг все таки ты криво как-то написал)
     
  7. Di3

    Di3 Знающий

    Регистрация:
    8 сен 2017
    Сообщения:
    290
    Симпатии:
    12
    local tBlockKeys = {[vkeys.VK_LMENU] = true, [vkeys.VK_RSHIFT] = true, [vkeys.VK_LSHIFT] = true, [vkeys.VK_LCONTROL] = true, [vkeys.VK_RCONTROL] = true}
    Я просто убрал RETURN,понимаешь нажатия мышки не отправляются там)
     
  8. Belo4ka_belka

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

    Регистрация:
    28 июл 2015
    Сообщения:
    71
    Симпатии:
    1
    Не вижу кода клавиши которую ты хотел нажать. Не понимаю, если ты изначально уверен в провале твоих действий касательно моего совета, то зачем ведешь со мной диалог дальше?
     
  9. Di3

    Di3 Знающий

    Регистрация:
    8 сен 2017
    Сообщения:
    290
    Симпатии:
    12
    Что отвечает в событии onWindowMessage за нажатие клавиш мышки?
    wm.WM_KEYDOWN
    wm.WM_SYSKEYDOWN 
    Не ловит эти нажатия
     
  10. Lemonager

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

    Регистрация:
    24 мар 2018
    Сообщения:
    68
    Симпатии:
    40
    Так задумано в луа, что два потока багаются? Или я реализовал не так?
     
  11. MrCold

    MrCold Знающий

    Регистрация:
    13 июл 2017
    Сообщения:
    232
    Симпатии:
    15
    Можно сделать рендер без просада FPS?
     
  12. Belo4ka_belka

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

    Регистрация:
    28 июл 2015
    Сообщения:
    71
    Симпатии:
    1
    Такой вопрос: имеется переменные с моим именем и ID. По отдельности переменные выводится, но в одной строке никак:
    
    -- должно выйти "Nick_Name [id]"
    str = "{FFFAFA}" .. memory.tostring(dwSAMP + 0x219A6F, 25) .. "" -- nick
    str2 = " [" .. memory.read(dwPlayers + 0x4, 2) .. "]" -- id
    print('' .. str .. '' .. str2 .. '') -- fail (принтит только переменную str ("Nick_Name"))
    imgui.TextColoredRGB('' .. str2 .. '') -- success ("[id]"), такая же тема и с str("Nick_Name")
    
    Что за дела? Разные типы данных? ID в int выводятся, разве она конфликтует с стринг? tostring/tonumber (по отдельности и вместе) применял к переменной с ID - бесполезно. Да и в теории если бы проблема была в ID то хотя бы символы "[" "]" отображались бы, или ошибку должно было выдать, но ничего нет.

    Если кто-то хочет протестировать лично, то вот вам полный пул адресов (работает без СФ и прочего):
    
    ffi.cdef[[
    int SendMessageA(int, int, int, int);
    unsigned int GetModuleHandleA(const char* lpModuleName);
    ]]
    dwSAMP = ffi.C.GetModuleHandleA('samp.dll')
            dwAddress0 = memory.getuint32(dwSAMP + 0x21A0F8)
            dwAddress = memory.getuint32(dwAddress0 + 0x3CD)
            dwPlayers = memory.getuint32(dwAddress + 0x18)
    После этих строчек применяете те что в первом вопросе и смотрите результат.
     
  13. Petr_Sergeevich

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

    Регистрация:
    25 июн 2017
    Сообщения:
    492
    Симпатии:
    132
    Как изменить флаги у directx шрифта? Нужна только обводка
    Рендер осуществляется с помощью этой функции:

    
    function d3dxfont_draw(font, text, rect, color, format)
        if font then
            local prect = ffi.new('RECT[1]', {{rect[1], rect[2], rect[3], rect[4]}})
            return font.vtbl.DrawTextA(font, nil, text, -1, prect, format, color)
        end
    end
    
     
  14. LeonidDecart

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

    Регистрация:
    27 июн 2018
    Сообщения:
    59
    Симпатии:
    2
    Возможно ли в луа определить свой IP адрес?
     
  15. kAerain

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

    Регистрация:
    16 июн 2018
    Сообщения:
    61
    Симпатии:
    10
    Направь запрос на http://api.ipify.org/
     
  16. Alkasch226

    Alkasch226 Активный участник

    Регистрация:
    3 авг 2015
    Сообщения:
    39
    Симпатии:
    4
    Ребята, может сталкивался кто. У некоторых людей просто не запускается скрипт, все необходимое установлено, лог обновляется, но нужного скрипта там нет, будто мун его не видит.
    Как нерфить?
     
  17. LeonidDecart

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

    Регистрация:
    27 июн 2018
    Сообщения:
    59
    Симпатии:
    2
    спасибо )
     
  18. #HaCKeR

    #HaCKeR Знающий

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

    Alkasch226 Активный участник

    Регистрация:
    3 авг 2015
    Сообщения:
    39
    Симпатии:
    4
    Не в коде дело, другие более-менее большие скрипты тоже не работают у таких ребят.
    Проблема в чем-то на компе, как мне кажется, но как им помочь - не знаю.
     
  20. #HaCKeR

    #HaCKeR Знающий

    Регистрация:
    21 дек 2016
    Сообщения:
    257
    Симпатии:
    44
    Мун разный, у кого-то может 25 у других 26
     
  21. Alkasch226

    Alkasch226 Активный участник

    Регистрация:
    3 авг 2015
    Сообщения:
    39
    Симпатии:
    4
    С одной и той же сборки запускают, в логе вообще нет никакой информации о скрипте, будто мун его не видит.
    Всего пару человек с подобным обращались, из нескольких сотен.
     
  22. Oreshka23

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

    Регистрация:
    10 май 2015
    Сообщения:
    177
    Симпатии:
    59
    Мега смешной пранк
     
  23. LeonidDecart

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

    Регистрация:
    27 июн 2018
    Сообщения:
    59
    Симпатии:
    2
    Запрос направить, то направил, только я хз, как сделать чтобы этот IP с сайта спарсился. Знаю функцию скачивания, но мне лень ебаться с открытием файла и парса строчки

    upload_2019-4-15_18-35-4.png /
     
  24. kAerain

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

    Регистрация:
    16 июн 2018
    Сообщения:
    61
    Симпатии:
    10
    
    local lanes = require('lanes').configure() -- в начало скрипта, конечно же
    
    -- в функу
    async_http_request('GET', 'https://api.ipify.org', nil,
      function(response)
        print(response.text)
      end,
      function(err)
        print(err)
      end)
    
    
    function async_http_request(method, url, args, resolve, reject)
        local request_lane = lanes.gen('*', {package = {path = package.path, cpath = package.cpath}}, function()
            local requests = require 'requests'
            local ok, result = pcall(requests.request, method, url, args)
            if ok then
                result.json, result.xml = nil, nil -- cannot be passed through a lane
                return true, result
            else
                return false, result -- return error
            end
        end)
        if not reject then reject = function() end end
        lua_thread.create(function()
            local lh = request_lane()
            while true do
                local status = lh.status
                if status == 'done' then
                    local ok, result = lh[1], lh[2]
                    if ok then resolve(result) else reject(result) end
                    return
                elseif status == 'error' then
                    return reject(lh[1])
                elseif status == 'killed' or status == 'cancelled' then
                    return reject(status)
                end
                wait(0)
            end
        end)
    end
    
     
  25. LeonidDecart

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

    Регистрация:
    27 июн 2018
    Сообщения:
    59
    Симпатии:
    2
    Это под стиллер, хотелось бы как можно меньше библиотек использовать. Придётся определять IP при запросе на сайт. Других способов нет?
     
  26. Petr_Sergeevich

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

    Регистрация:
    25 июн 2017
    Сообщения:
    492
    Симпатии:
    132
    
    local sampev = require 'lib.samp.events'
    function sampev.onSetCheckpoint(position, radius)
        local x, y, z = getCharCoordinates(PLAYER_PED)
        local distance = getDistanceBetweenCoords3d(x, y, z, position.x, position.y, position.z)
        sampAddChatMessage("Расстояние до чекпоинта: " .. distance, -1)
    end
    
    Срабатывает один раз, когда чекпоинт появляется на карте. Можешь потом записывать куда-нибудь координаты и что-то с этим всем делать
     
  27. Akionka

    Akionka Знающий

    Регистрация:
    2 фев 2018
    Сообщения:
    252
    Симпатии:
    109
    Как добиться такого же эффекта на lua? Залочена камера + показана мышь. В Pawn это SelectTextDraw()
     

    Вложения:

    • sa-mp-000.png
      sa-mp-000.png
      Размер файла:
      690,1 КБ
      Просмотров:
      25
  28. deddosouru

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

    Регистрация:
    14 сен 2015
    Сообщения:
    1.706
    Симпатии:
    979
    showCursor(bool show, [bool lockControls])
     
    Akionka нравится это.
  29. #Incognito.

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

    Регистрация:
    10 авг 2016
    Сообщения:
    183
    Симпатии:
    43
    Какой номерок у ПКМ? и как сделать что когда жму ПКМ и insert и таргета нет - пишет в чат

    function targer()
        while true do wait(0)
            if isKeyJustPressed(45) then
     
  30. Petr_Sergeevich

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

    Регистрация:
    25 июн 2017
    Сообщения:
    492
    Симпатии:
    132
    https://docs.microsoft.com/en-us/windows/desktop/inputdev/virtual-key-codes
    0x02 - ПКМ

    --

    Как рендерить d3dx текст с обводкой? Хелп, кто шарит
     
    #25510 Petr_Sergeevich, 15 апр 2019 в 19:19
    Последнее редактирование: 15 апр 2019 в 19:25
  31. deddosouru

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

    Регистрация:
    14 сен 2015
    Сообщения:
    1.706
    Симпатии:
    979
    enum FontFlag { FCR_NONE = 0x0, FCR_BOLD = 0x1, FCR_ITALICS = 0x2, FCR_BORDER = 0x4, FCR_SHADOW = 0x8, FCR_UNDERLINE = 0x10, FCR_STRIKEOUT = 0x20, };
     
  32. Belo4ka_belka

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

    Регистрация:
    28 июл 2015
    Сообщения:
    71
    Симпатии:
    1
    Как применить пушфонт к виджету? В аргументах он принимает какую-то структуру, ибо это явно не строковое название желаемого шрифта. Конкретно интересует times new roman 10-го размера.
     
  33. no3jour

    no3jour Участник

    Регистрация:
    16 ноя 2018
    Сообщения:
    9
    Симпатии:
    0
    Существуют ли переменные для измены виртуального мира ( нашел только для изменение интерьера)
    и для временной заморозки персонажа
     
  34. trefa

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

    Регистрация:
    5 фев 2015
    Сообщения:
    1.014
    Симпатии:
    400
    1 - нет
    2- да

    Что за виджет, imgui?
     
  35. no3jour

    no3jour Участник

    Регистрация:
    16 ноя 2018
    Сообщения:
    9
    Симпатии:
    0
    Какая переменная для временной заморозки, скажи если не сложно