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

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

  1. TheNeitherStrike

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

    Регистрация:
    25 мар 2016
    Сообщения:
    167
    Симпатии:
    22
    Можно, еще как. Раньше делал, но сейчас забыл функцию.

    Повторю вопрос. Каким способом можно воткнуть в землю авто? setVehicleQuaternion не работает почему то (
     
  2. N1ghT

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

    Регистрация:
    14 мар 2015
    Сообщения:
    77
    Симпатии:
    10
    Есть сайт с тремя вкладками. Как можно получить инфу с сайта если открыта именно эта вкладка? id вкладки знаю, но как взаимодейстовать с HTML я хз.
     
    tawertip нравится это.
  3. Belo4ka_belka

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

    Регистрация:
    28 июл 2015
    Сообщения:
    97
    Симпатии:
    1
    Актуально.
     
  4. Decadans

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

    Регистрация:
    12 янв 2018
    Сообщения:
    99
    Симпатии:
    2
    Как можно сделать активацию и деактивацию разных функций скрипта?
    Есть какая-то функция. Если пользователь ее активирует переключив ползунок, то она будет работать. Не переключит - не будет.
     
  5. laz3r228

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

    Регистрация:
    24 ноя 2016
    Сообщения:
    426
    Симпатии:
    52
    Используя функцию из сниппетов https://blast.hk/threads/13380/page-3#post-322995
    Столкнулся с такой проблемой:
    Как можно пофиксить? Код:
    
    local sx, sy = transform2d(BulletSync[i].o.x, BulletSync[i].o.y, BulletSync[i].o.z)
    local fx, fy = transform2d(BulletSync[i].t.x, BulletSync[i].t.y, BulletSync[i].t.z)
    renderDrawLine(sx, sy, fx, fy, 1, bulletTypes[BulletSync[i].tType])
    renderDrawPolygon(fx, fy-1, 3, 3, 4.0, 10, bulletTypes[BulletSync[i].tType])
    
     
  6. Shell :3

    Shell :3 Интересующийся

    Регистрация:
    10 июл 2018
    Сообщения:
    132
    Симпатии:
    22
    Вот статья, там показано как подключить библиотеку и как раз таки сделать этот ползунок.
    https://blast.hk/threads/27544/
     
    Decadans нравится это.
  7. Infernus

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

    Регистрация:
    25 ноя 2017
    Сообщения:
    77
    Симпатии:
    9
    Как можно в Lua воспроизвести этот код?
    0A8C: write_memory 5497121 size 5 value 144 virtual_protect 1 
    При size 5 в аналогичном опкоде lua получаю краш. Именно в этом проблема.
     
    #25312 Infernus, 14 апр 2019
    Последнее редактирование: 14 апр 2019
  8. James Hawk

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

    Регистрация:
    1 сен 2016
    Сообщения:
    769
    Симпатии:
    139
    В луа size/value имеют значения от 1 до 4
     
  9. Decadans

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

    Регистрация:
    12 янв 2018
    Сообщения:
    99
    Симпатии:
    2
    Как получить скорость авто, в котором находится игрок? Только скорость должна быть в км/ч.
     
  10. GamerTop

    GamerTop Участник

    Регистрация:
    15 янв 2017
    Сообщения:
    12
    Симпатии:
    0
    Парни,вообще не шарю в Lua скриптинге, может кто написать штуку,что бы при входе (когда коннектишься к серверу) писался определенный цвет?
    Может кто такое написать? Текст,думаю, сам смогу поправить, с вас только шаблон нужен))
     
  11. Decadans

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

    Регистрация:
    12 янв 2018
    Сообщения:
    99
    Симпатии:
    2
    Просто в main пихаешь sampAddChatMessage.

    function main()
      repeat wait(0) until isSampAvalible()
      sampAddChatMessage ('Что может быть легче?!', -1)
    end
     
    #25316 Decadans, 14 апр 2019
    Последнее редактирование: 14 апр 2019
    GamerTop нравится это.
  12. Belo4ka_belka

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

    Регистрация:
    28 июл 2015
    Сообщения:
    97
    Симпатии:
    1
    Здравствуйте, товарищи. Стоит задача получить ХП и броню таргета (цели) без использования СФ. Посоветовали через память - так и делаю. Нижеприведенный код работает почти идеально идеально:
    
                    dwAddress0 = memory.getuint32(dwSAMP + 0x21A0F8)
                    dwAddress = memory.getuint32(dwAddress0 + 0x3CD)
                    dwPlayers = memory.getuint32(dwAddress + 0x18)
                    dwRemoteplayer = memory.getuint32(dwPlayers+0x2E+id*4) -- i - ID
                    dwRemoteplayerData = memory.getuint32(dwRemoteplayer + 0x0)
                    fHP = memory.getfloat(dwRemoteplayerData + 444)
                    fARM = memory.getfloat(dwRemoteplayerData + 440)
    Однако переменную dwSAMP (базовый адрес модуля samp.dll) я получаю из вне (на данный момент получаю адрес через АХК и оконным сообщением передаю скрипту ЛУА). Есть возможность узнать базовый адрес модуля samp.dll в адресном пространстве ГТА не прибегая к использованию СФ?

    Второй вопрос необязательный: дело в том, что когда я все эти адреса тестировал (редактировал код не выключая ГТА а просто перезапуская луа скрипт другим скриптом) при попытке читать память получал краш, но при перезаходе (т.е. при перезагрузке ГТАшки) все работало (имеется ввиду чтение памяти проходило успешно) и краша не было. Так и должно быть? Или эти функции нестабильны сами по себе?
     
  13. Petr_Sergeevich

    Проверенный

    Регистрация:
    25 июн 2017
    Сообщения:
    564
    Симпатии:
    170
    Как рендерить примитивы через directx? В каком направлении хотя бы копать? Совсем никакой инфы не нашёл
     
  14. GamerTop

    GamerTop Участник

    Регистрация:
    15 янв 2017
    Сообщения:
    12
    Симпатии:
    0


    [ML] (error) GTABY.lua: C:\Grand Theft Auto\moonloader\GTABY.lua:12: unfinished string near ''Я новичек :), -1)'
    [ML] (error) GTABY.lua: Script died due to an error. (1189BD4C)


    Я даже это сделать не смог :D
     
  15. laz3r228

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

    Регистрация:
    24 ноя 2016
    Сообщения:
    426
    Симпатии:
    52
    sampAddChatMessage ('Что может быть легче?!', -1)
     
  16. GamerTop

    GamerTop Участник

    Регистрация:
    15 янв 2017
    Сообщения:
    12
    Симпатии:
    0

    [ML] (error) Author: C:\Grand Theft Auto\moonloader\GTABY.lua:10: attempt to call global 'isSampAvalible' (a nil value)
    stack traceback:
    C:\Grand Theft Auto\moonloader\GTABY.lua: in function <C:\Grand Theft Auto\moonloader\GTABY.lua:9>
    [ML] (error) Author: Script died due to an error. (11832CBC)

    До этого вообще не писал lua. И вообще не писал. Вообще...
    Делаю для того,что бы друг скинул это себе в moonloader,а ему в чат при запуске - "ТЫ ЛОХ"
     
  17. Petr_Sergeevich

    Проверенный

    Регистрация:
    25 июн 2017
    Сообщения:
    564
    Симпатии:
    170
    С такими скриптами лучше и не начинать писать на Lua.

    
    function main()
        while not isSampAvailable() do wait(0) end
        sampAddChatMessage("Ты лох", -1)
        wait(-1)
    end
    
     
  18. Decadans

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

    Регистрация:
    12 янв 2018
    Сообщения:
    99
    Симпатии:
    2
    Актуально.
     
  19. GamerTop

    GamerTop Участник

    Регистрация:
    15 янв 2017
    Сообщения:
    12
    Симпатии:
    0
    Я и не хочу Lua изучать, хочу другу это скинуть)))
     
  20. BetRo

    BetRo Новичок

    Регистрация:
    13 апр 2019
    Сообщения:
    3
    Симпатии:
    0
    Как сделать автоматическую замену текста в чате, например, с "Привет" на "Пока", только не вот этим способом (Если возможно другим кодом, данный не меняет).
    ————————————————————————————————————————————

    Код выведения какого-либо текста при открытии диалога.
     
  21. Infernus

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

    Регистрация:
    25 ноя 2017
    Сообщения:
    77
    Симпатии:
    9
    Это я знаю. Но как это с Cleo перенести в lua?
     
  22. san0

    Друг

    Регистрация:
    15 дек 2013
    Сообщения:
    396
    Симпатии:
    291
    В cleo, в случае отличия размера от 2 или 4, выполняется заполнения памяти.
    memory.fill(0x53E121, 0x90, 5, true)
    
    ffi.cdef('unsigned int GetModuleHandleA(const char* lpModuleName);');
      
    local samp_base = ffi.C.GetModuleHandleA('samp.dll')
    assert(samp_base ~= 0, 'SA:MP is not loaded!')
      
    print(string.format('samp.dll base module is located at 0x%06X', samp_base))
    https://blast.hk/threads/13315/page-6#post-167421
     
    #25327 san0, 14 апр 2019
    Последнее редактирование: 14 апр 2019
    Belo4ka_belka и Infernus нравится это.
  23. Decadans

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

    Регистрация:
    12 янв 2018
    Сообщения:
    99
    Симпатии:
    2
    Как получить скорость авто, в котором находится игрок? Только скорость должна быть в км/ч.

    И как скрывать элементы худа или же полностью скрыть его?
     
    #25328 Decadans, 14 апр 2019
    Последнее редактирование: 14 апр 2019
  24. TopKitten

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

    Регистрация:
    5 дек 2017
    Сообщения:
    64
    Симпатии:
    3
    function mda(arg)
        lua_thread.create(function ()
            if getCarModel(storeCarCharIsInNoSave(PLAYER_PED)) == 599 then
            sampAddChatMessage("{00FF00}Activated.", -1)
            else
            sampAddChatMessage("{DC143C}Deactivated.", -1)
            end
         end)
    end
    почему крашит скрипт если else?
     
  25. Amazing

    Amazing Участник

    Регистрация:
    29 апр 2013
    Сообщения:
    16
    Симпатии:
    3
    Худ:
            
            displayRadar(false)
            displayHud(false)
    
    Скорость (не уверен, что это то, что тебе нужно):
    
    carHundle = storeCarCharIsInNoSave(pPed)
    getCarSpeed(carHundle)
    
     
    Decadans нравится это.
  26. The Spark

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

    Регистрация:
    29 апр 2018
    Сообщения:
    128
    Симпатии:
    18
    local text = sampTextdrawGetString(13)
    sampAddChatMessage(text, -1)"~w~Еды: ~y~1 ~w~Чипсов: ~y~14~w~/~y~20"
    Как убрать всю эту лажу и оставить "Еды: 1 Чипсов 14/20"?
     
  27. Belo4ka_belka

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

    Регистрация:
    28 июл 2015
    Сообщения:
    97
    Симпатии:
    1
    Спасибо за помощь! По сути в assert да и вовсе в проверках на ошибки нет смысла, если я заведомо играю в самп верно? Т.е. если бы в одиночку ещё играл то там да - samp.dll не загружен.
     
    #25332 Belo4ka_belka, 14 апр 2019
    Последнее редактирование: 14 апр 2019
  28. Lemonager

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

    Регистрация:
    24 мар 2018
    Сообщения:
    242
    Симпатии:
    195
     sampAddChatMessage("Еды: 1. Чипсов: 14/20",  - 1)
    Если ты про это, то вот так. Или ты работаешь с текстдравом и выводишь инфу полученную? Не особо понял с чем помочь
     
  29. Decadans

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

    Регистрация:
    12 янв 2018
    Сообщения:
    99
    Симпатии:
    2
    Как получит название оружия в руках?
     
  30. Belo4ka_belka

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

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

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

    Регистрация:
    8 сен 2017
    Сообщения:
    375
    Симпатии:
    19
    Как можно исправить проблему в rKeys с тем что нельзя биндить клавиши МЫШКИ?
    X BUTTON 1
    X BUTTON 2 ит.д
     
  32. Belo4ka_belka

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

    Регистрация:
    28 июл 2015
    Сообщения:
    97
    Симпатии:
    1
    Попробуй использовать вместо переменной keys.VK как-то там не помню уже.. число-код клавиши. 0x05 - например это VK_XBUTTON1. Список тут: https://api.farmanager.com/ru/winapi/virtualkeycodes.html
     
  33. Di3

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

    Регистрация:
    8 сен 2017
    Сообщения:
    375
    Симпатии:
    19
    Причем тут это,я зарегистрировать клавишу не могу.
     
  34. laz3r228

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

    Регистрация:
    24 ноя 2016
    Сообщения:
    426
    Симпатии:
    52
    Используя функцию из сниппетов https://blast.hk/threads/13380/page-3#post-322995
    Столкнулся с такой проблемой:
    Как можно пофиксить? Код:
    
    local sx, sy = transform2d(BulletSync[i].o.x, BulletSync[i].o.y, BulletSync[i].o.z)
    local fx, fy = transform2d(BulletSync[i].t.x, BulletSync[i].t.y, BulletSync[i].t.z)
    renderDrawLine(sx, sy, fx, fy, 1, bulletTypes[BulletSync[i].tType])
    renderDrawPolygon(fx, fy-1, 3, 3, 4.0, 10, bulletTypes[BulletSync[i].tType])
    
     
  35. Decadans

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

    Регистрация:
    12 янв 2018
    Сообщения:
    99
    Симпатии:
    2
    Как получить название оружия в руках у персонажа?