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

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

  1. drags

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

    Регистрация:
    24 сен 2013
    Сообщения:
    88
    Симпатии:
    45
    Как можно сделать плавный поворот камеры?
     
  2. drags

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

    Регистрация:
    24 сен 2013
    Сообщения:
    88
    Симпатии:
    45
    Так, чет я туповат... Ну точно не так нужно?
        local posX, posY, posZ = GetCoordinates()
       local pX = x - posX
       local pY = y - posY
       local zAngle = getHeadingFromVector2d(pX, pY)
    
       local x2, y2 = getActiveCameraCoordinates()
       local zangles = getHeadingFromVector2d(x2, y2)
       value1 =  zAngle - zangles / 4 / 2 / zAngle
     
  3. Artur_iOS

    Artur_iOS Знающий

    Регистрация:
    18 мар 2017
    Сообщения:
    211
    Симпатии:
    86
    setPlayerModel(Player player, Model modelId)
     
  4. KolyaEpt

    KolyaEpt Участник

    Регистрация:
    20 янв 2017
    Сообщения:
    12
    Симпатии:
    0
    Как узнать, сел ли мой перс в машину или нет средствами Events?
    
    function sampev.onPlayerEnterVehicle(playerId, vehicleId, passenger)
        sampAddChatMessage(playerId .. " " .. vehicleId .. " " .. tostring(passenger))
        return true
    end
    
    Данный код срабатывает только тогда, когда другие челы садятся в кар в зоне моего стрима...
     
  5. randazzo

    randazzo не админ какой-то
    Команда форума Всефорумный модератор

    Регистрация:
    21 май 2014
    Сообщения:
    1.206
    Симпатии:
    660
    OUTCOMING_RPCS[RPC.ENTERVEHICLE]              = {'onSendEnterVehicle', {vehicleId = 'int16'}, {passenger = 'bool8'}}
     
    KolyaEpt нравится это.
  6. TheKontulup

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

    Регистрация:
    11 июл 2017
    Сообщения:
    136
    Симпатии:
    8
    Как можно получить координаты полоски здоровья и брони, а то со структурами и адресами памяти я вообще не лажу, не понимаю как с ними работать для получения определённых значений.
     
  7. david1899

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

    Регистрация:
    10 окт 2017
    Сообщения:
    58
    Симпатии:
    0
    Как сделать что бы скрипт запускался на нажатие двух клавиш?
     
  8. Nishikinov

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

    Регистрация:
    13 июл 2017
    Сообщения:
    48
    Симпатии:
    13
    Работаю с запросами, никак не хотят передаваться параметры.

    Пробовал:
    async_http_request('POST', 'http://address.com', {params = {param1 = 'value1', param2 = 123}},
      function(response) -- вызовется при успешном выполнении и получении ответа
        print(response.text) -- response.text - текст ответа. ещё есть response.status_code и response.headers
      end,
      function(err) -- вызовется при ошибке, err - текст ошибки. эту функцию можно не указывать
        print(err)
      end)
    local args = {}
      args.data = "ban=1"
      args.headers = {
        ['content-type']='application/x-www-form-urlencoded',
        ['Cookie']='PHPSESSID=!'
      }
    
      async_http_request('POST', 'http://admin.mysite.net/player&id=2560&punishment', args,
      function(response) -- вызовется при успешном выполнении и получении ответа
        print(response.text) -- response.text - текст ответа. ещё есть response.status_code и response.headers
            print(response.status_code)
            print(response.headers)
      end,
      function(err) -- вызовется при ошибке, err - текст ошибки. эту функцию можно не указывать
        print(err)
      end)

    Параметры тестил как в живую, так и пытался отловить php-скриптом. Постоянно пустой результат.
    Причем второй способ отлично передает заголовки, но параметры отказывается наотрез. Кто виноват и что делать?

    p.s. moonloader 0.26
     
  9. Patrickkk

    Patrickkk Знающий

    Регистрация:
    2 апр 2016
    Сообщения:
    209
    Симпатии:
    10
    lua - getchararmour | BlastHack — DEV_WIKI(https://blast.hk/wiki/lua:getchararmour)
    lua - sampgetplayerhealth | BlastHack — DEV_WIKI(https://blast.hk/wiki/lua:sampgetplayerhealth)
     
  10. randazzo

    randazzo не админ какой-то
    Команда форума Всефорумный модератор

    Регистрация:
    21 май 2014
    Сообщения:
    1.206
    Симпатии:
    660
    php код скинь
     
  11. Nishikinov

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

    Регистрация:
    13 июл 2017
    Сообщения:
    48
    Симпатии:
    13
    Не вижу смысла кидать PHP код, потому что параметры на страницу не приходят в любом случае, что на тестовую, что на вполне реальную. Тут дело в lua.
    Но все же вот он:
    <?php
    file_put_contents('log.txt', json_encode($_POST));
    echo $_POST;
     
  12. T1cK

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

    Регистрация:
    27 апр 2015
    Сообщения:
    122
    Симпатии:
    16
    Как if (Не равно) 0?
    Знак "Не равно", != ошибку даёт
     
  13. Nemo

    Nemo Новичок

    Регистрация:
    3 мар 2018
    Сообщения:
    1
    Симпатии:
    0
    Занимается тут кто переводом скриптов с lua на asi?
     
  14. randazzo

    randazzo не админ какой-то
    Команда форума Всефорумный модератор

    Регистрация:
    21 май 2014
    Сообщения:
    1.206
    Симпатии:
    660
    Web - Нужен PHP скрипт(https://blast.hk/threads/20613/#post-188068) аргументы так же указывай, а не как на твоем втором примере. С луа и муном в данном случае все в порядке.
     
  15. david1899

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

    Регистрация:
    10 окт 2017
    Сообщения:
    58
    Симпатии:
    0
    Помогите нубу
    Как сделать что бы диалоговое окно открылось на правой кнопки мыши на игрока + любая клавиша
    + к этому когда например выберу 1 (Голова) то пойдет отыгровка и в конце скрипт сам предложит игроку вылечится /medhelp id
     

    Вложения:

    • test.lua
      Размер файла:
      9,1 КБ
      Просмотров:
      4
  16. KolyaEpt

    KolyaEpt Участник

    Регистрация:
    20 янв 2017
    Сообщения:
    12
    Симпатии:
    0
    [ML] (warn) Memory test at address 775E64DB has failed. Value is 'E9 70 89 8F 8C', expected 'E9 E0 24 AD F4'.
    Кто шарит что это?
     
  17. Nishikinov

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

    Регистрация:
    13 июл 2017
    Сообщения:
    48
    Симпатии:
    13
    Переписал таким образом:
    local args = {}
      args.data = {
            'username=nick',
            'password=pass',
            'apassword=apass',
            'telegram=code' }
      args.headers = {
        ['content-type']='application/x-www-form-urlencoded',
            --['Cookie']=''
      }
    
      async_http_request('POST', 'http://admin.mysite.su/login', args,
      function(response) -- вызовется при успешном выполнении и получении ответа
        print(response.text) -- response.text - текст ответа. ещё есть response.status_code и response.headers
            print(response.status_code)
      end,
      function(err) -- вызовется при ошибке, err - текст ошибки. эту функцию можно не указывать
        print(err)
      end)
    end

    Результата особого не дало, параметры по прежнему не идут. Или я что-то не так сделал? ;d
     
    #4322 Nishikinov, 14 мар 2018
    Последнее редактирование: 14 мар 2018
  18. Cquint

    Cquint Знающий

    Регистрация:
    23 авг 2017
    Сообщения:
    250
    Симпатии:
    76
  19. randazzo

    randazzo не админ какой-то
    Команда форума Всефорумный модератор

    Регистрация:
    21 май 2014
    Сообщения:
    1.206
    Симпатии:
    660
    local args = {
        headers = {
            ['content-type']='application/x-www-form-urlencoded',
            --['Cookie']=''
        }
    }
    
    args.data = 'username=nick&password=pass&apassword=apass&telegram=code'
      async_http_request('POST', 'http://admin.mysite.su/login', args,
      function(response) -- вызовется при успешном выполнении и получении ответа
        print(response.text) -- response.text - текст ответа. ещё есть response.status_code и response.headers
            print(response.status_code)
            for i, v in ipairs(t) do
                print(response.headers[v])
          end
      end,
      function(err) -- вызовется при ошибке, err - текст ошибки. эту функцию можно не указывать
        print(err)
      end)
    end
     
  20. Nishikinov

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

    Регистрация:
    13 июл 2017
    Сообщения:
    48
    Симпатии:
    13
    Теперь встала задача вытянуть куки из респонса, но и тут магические силы помешали мне.
    Из описания либы на гитхабе следует делать так:
    print(inspect(response.headers))
    Однако же что это, что вывод с перебором вызывает подобный результат:
    [​IMG]
    nil вместо header`ов, как бы не пытался. Запрос GET, параметров нет. А получаю тело google.com/robots.txt, к слову.
     
  21. randazzo

    randazzo не админ какой-то
    Команда форума Всефорумный модератор

    Регистрация:
    21 май 2014
    Сообщения:
    1.206
    Симпатии:
    660
    local inspect = require 'inspect'
    Библиотеки(https://blast.hk/threads/16031/)
     
  22. Mc.Reptar

    Mc.Reptar Активный участник

    Регистрация:
    11 янв 2018
    Сообщения:
    28
    Симпатии:
    3
    Доброго времени суток.
    Есть такой скрипт. В принципе, рабочий, но текст, который я ищу, убирает полностью из чата. Как исправить данную проблему?
    
    require "lib.moonloader"
    local hook = require "lib.samp.events"
    
    function hook.onServerMessage(color, message)
        if message:find("предлагает тебе купить лекарство за") then
        sampSendChat("/accept meds")
        end
        if message:find("вступил в нашу фракцию.") then
        sampSendChat("/f Добро пожаловать)")
        end
        if message:find("избавься от неё") then
        sampSendChat("/dc")
        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)
        end
    end
    
     
  23. randazzo

    randazzo не админ какой-то
    Команда форума Всефорумный модератор

    Регистрация:
    21 май 2014
    Сообщения:
    1.206
    Симпатии:
    660
    require "lib.moonloader"
    local hook = require "lib.samp.events"
    
    function main()
        repeat wait(0) until isSampAvailable()
        wait(-1)
    end
    
    function hook.onServerMessage(color, message)
        if message:find("предлагает тебе купить лекарство за") then
            lua_thread.create(Say, '/accept meds')
        elseif message:find("вступил в нашу фракцию.") then
            lua_thread.create(Say, '/f Добро пожаловать)')
        elseif message:find("избавься от неё") then
            lua_thread.create(Say, '/dc')
        end
    end
    
    function Say(text)
        sampSendChat(text)
    end
    или в основной цикл выноси.
    Вопросы по Lua скриптингу(https://blast.hk/threads/13892/)
     
  24. strozh

    strozh Новичок

    Регистрация:
    14 мар 2018
    Сообщения:
    1
    Симпатии:
    0
    Доброго времени суток, коллеги. Мне нужен ваш совет. У меня есть задача по шифрованию небольших видео-файлов с помощью алгоритма AES. Библиотека aeslua-0.2 не подходит, так как у нее малая скорость (~400 кбит/с). На странице этой библиотеки советуют в случает недостаточной скорости использовать библиотеку на Си. Может из вас поведает мне какую-нибудь библиотеку и алгоритм ее использования в коде Lua. Спасибо за внимание.
     
  25. randazzo

    randazzo не админ какой-то
    Команда форума Всефорумный модератор

    Регистрация:
    21 май 2014
    Сообщения:
    1.206
    Симпатии:
    660
    поставь последнюю версию мунлоадера и все же проверь код, вдруг старый скрипт стоит.
     
  26. david1899

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

    Регистрация:
    10 окт 2017
    Сообщения:
    58
    Симпатии:
    0
    [14:14:31.718855] (system)    Installing post-load hooks...
    [14:14:31.719376] (system)    Hooks installed.
    [14:14:31.721348] (error)    Shpora: D:\Jocuri\GTA San Andreas MultiPlayer\moonloader\shpora.lua:17: attempt to index local 'f' (a nil value)
    stack traceback:
        D:\Jocuri\GTA San Andreas MultiPlayer\moonloader\shpora.lua: in function <D:\Jocuri\GTA San Andreas MultiPlayer\moonloader\shpora.lua:9>
    [14:14:31.721348] (error)    Shpora: Script died due to an error. (0CA9C1F4)
    
    Что это за ошибка?
     
  27. Nestelion

    Nestelion Новичок

    Регистрация:
    14 мар 2018
    Сообщения:
    2
    Симпатии:
    0
    Всем привет, помогите мне пожалуйста! Поставил я MoonLoader, и закинул в папку moonloader все файлы (скрипты), но когда игра запустилась, не один скрипт не пашет! Вот moonloader.log может кто поймет что там надо сделать, чтобы все заработало. Буду очень благодарен!
    upload_2018-3-14_19-41-26.png
     
  28. randazzo

    randazzo не админ какой-то
    Команда форума Всефорумный модератор

    Регистрация:
    21 май 2014
    Сообщения:
    1.206
    Симпатии:
    660
    сф установи Избранное - Софт - SAMPFUNCS(https://blast.hk/threads/17/)
     
  29. Nestelion

    Nestelion Новичок

    Регистрация:
    14 мар 2018
    Сообщения:
    2
    Симпатии:
    0
  30. #Northn

    #Northn Друг форума

    Регистрация:
    10 авг 2017
    Сообщения:
    524
    Симпатии:
    128
  31. imring

    imring колечконуп
    Команда форума Всефорумный модератор

    Регистрация:
    3 авг 2016
    Сообщения:
    1.482
    Симпатии:
    800
    Vehicle car = storeCarCharIsInNoSave(Ped ped)
    playerPed
     
  32. #Northn

    #Northn Друг форума

    Регистрация:
    10 авг 2017
    Сообщения:
    524
    Симпатии:
    128
    Почему не работает? Если убирать условие NOT то всё работает, а с ним нифига. Все хендлы верные, проверял не сидя в этих тачках и сидя в них.

    if not isCharInCar(playerPed, 6657) or not isCharInCar(playerPed, 6401) or not isCharInCar(playerPed, 6145) or not isCharInCar(playerPed, 5589) then
    
    --много лишней проверки на горячие клавиши
    
    end
     
  33. TheKontulup

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

    Регистрация:
    11 июл 2017
    Сообщения:
    136
    Симпатии:
    8
    Выше мне ответили на это, но не то написал - величина хп и брони. Мне нужны именно координаты месторасположения полоски хп и брони. Напишите пожалуйста как получить эти значения, а то не лажу со структурами и т.п
     
  34. Nishikinov

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

    Регистрация:
    13 июл 2017
    Сообщения:
    48
    Симпатии:
    13
    С детства не дружу с регулярками, нужно чтобы:

    /command arg1(int) arg2(int) arg3(text) в функции разбивал введенный после команды текст на три переменные, arg1, 2 и 3 соответственно. Типы указал.
    Нужно лишь выражение, помогите, знающие ;d
     
  35. imring

    imring колечконуп
    Команда форума Всефорумный модератор

    Регистрация:
    3 авг 2016
    Сообщения:
    1.482
    Симпатии:
    800
    if isCharInAnyCar(playerPed) and getCarModel( storeCarCharIsInNoSave(playerPed) ) ~= 520 then
        -- code
    end