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

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

  1. BlackGoblin

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

    Регистрация:
    13 май 2018
    Сообщения:
    122
    Симпатии:
    14
    Подскажите пожалуйста, кто знает, как работают у челика с другого борда софты? Я думаю вы знаете такие софты, как SWAP (Раньше использовался чтобы моментально менять цены на цр аризоны) и автозакуп в 24/7 для аризоны. Они работали просто моментально, как это устроено вообще? У него в автозакупе вообще пишешь, чтобы 200 итемов купило, игра подвисает и там в секунду выводит, что оно закупило их 200, да и закупает ведь реально. Там же задержки, много пропусков, как такое реализовать возможно? У него Luac, к сожалению, а открытый код он не даст, чтобы я пример посмотрел. Вот скрипт его, который закуп делает.
     

    Вложения:

    • zkp.luac
      Размер файла:
      1,1 КБ
      Просмотров:
      6
  2. Natami

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

    Регистрация:
    2 ноя 2018
    Сообщения:
    363
    Симпатии:
    21
    закрытый код
     
  3. BlackGoblin

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

    Регистрация:
    13 май 2018
    Сообщения:
    122
    Симпатии:
    14
    Ну тк был бы он открытый я бы и не спрашивал. Кто-то умеет читать декомпилированные скрипты, или если у себя вдруг запустит его увидит как оно работает и подскажет мне, я для этого его сюда кинул
     
  4. StarFresko1227

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

    Регистрация:
    27 май 2018
    Сообщения:
    46
    Симпатии:
    1
    function main()
        if not isSampLoaded() or not isSampfuncsLoaded() then return end
        while not isSampAvailable() do wait(100) end
        sampRegisterChatCommand("amp", cmd_mycmd)
        wait(-1)
    end
    
    function cmd_mycmd(mpid, amount)
        if mpid == '' or amount == '' then
            sampAddChatMessage('{33CCFF}[Ошибка] {FFFFFF}Используй: /amp [id мп] [приз]', 0X33CCFF)
        else
            sampAddChatMessage('{33CCFF}/amp '..mpid..' '..amount..'', 0X33CCFF)
        end
    end
    помогите плиз))

    не пашет.

    даже так не работает..

    require "lib.moonloader"
    
    function main()
        if not isSampLoaded() or not isSampfuncsLoaded() then return end
        while not isSampAvailable() do wait(100) end
        sampRegisterChatCommand("amp", cmd_mycmd)
        wait(-1)
    end
    
    function cmd_mycmd(arg)
        var1, var2 = sting.match(arg, "(.+) (.+)")
    
        if var1 == nil or var2 == "" then
            sampAddChatMessage('{33CCFF}[Ошибка] {FFFFFF}Используй: /amp [id мп] [приз]', 0X33CCFF)
        else
            sampAddChatMessage('{33CCFF}/amp '..var1..' '..var2..'', 0X33CCFF)
        end
    end
    [ML] (error) rockstar.lua: ...San Andreas + MultiPlayer [2019]\moonloader\rockstar.lua:11: attempt to index global 'sting' (a nil value)
    stack traceback:
    ...San Andreas + MultiPlayer [2019]\moonloader\rockstar.lua:11: in function <...San Andreas + MultiPlayer [2019]\moonloader\rockstar.lua:10>
    [ML] (error) rockstar.lua: Script died due to an error. (30E50A44)
     
  5. madrasso

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

    Регистрация:
    27 июл 2016
    Сообщения:
    497
    Симпатии:
    73
    Можно ли этим, отправить нажатия текстдрайва и display text ?


    require "lib.moonloader"
    
    function main()
        if not isSampLoaded() or not isSampfuncsLoaded() then return end
        while not isSampAvailable() do wait(100) end
        sampRegisterChatCommand("amp", cmd_mycmd)
        wait(-1)
    end
    
    function cmd_mycmd(arg)
        var1, var2 = string.match(arg, "(.+) (.+)")
       
    
        if var1 == nil or var2 == "" then
            sampAddChatMessage('{33CCFF}[Ошибка] {FFFFFF}Используй: /amp [id мп] [приз]', 0X33CCFF)
        else
            sampAddChatMessage('{33CCFF}/amp '..var1..' '..var2..'', 0X33CCFF)
        end
    end
     
  6. Ashot148

    Ashot148 Участник

    Регистрация:
    27 июл 2016
    Сообщения:
    18
    Симпатии:
    0
    подскажите функцию которая телепортирует к чекпоинту и на исходные координаты назад кидает

    и еще маленький вопрос, где брать функции самой игры для lua?
     
  7. Darkneon

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

    Регистрация:
    22 фев 2016
    Сообщения:
    57
    Симпатии:
    2
    https://blast.hk/wiki/

    https://blast.hk/wiki/lua:setcharcoordinates
     
  8. Ashot148

    Ashot148 Участник

    Регистрация:
    27 июл 2016
    Сообщения:
    18
    Симпатии:
    0
  9. Oreshka23

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

    Регистрация:
    10 май 2015
    Сообщения:
    182
    Симпатии:
    59
    Как правильно выражать свои мысли - упражнения. Мысли вслух. Записывать свои мысли(http://fb.ru/article/279843/kak-pravilno-vyirajat-svoi-myisli---uprajneniya-myisli-vsluh-zapisyivat-svoi-myisli)
    Как правильно и красиво выражать свои мысли(https://uspeshnick.ru/kak-pravilno-i-krasivo-vyrazhat-svoi-mysli/)
    Как научиться выражать свои мысли грамотно?(https://sunmag.me/sovety/28-02-2014-kak-nauchitsya-vyrazhat-svoi-mysli-gramotno.html)
     
    Petr_Sergeevich, Darkneon и mr.krabs нравится это.
  10. ufdhbi

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

    Регистрация:
    3 фев 2015
    Сообщения:
    801
    Симпатии:
    319
    не, это только отправка синхронизаций, хп, кнопки, координаты
     
  11. Darkneon

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

    Регистрация:
    22 фев 2016
    Сообщения:
    57
    Симпатии:
    2
    я тебе дал вики , там есть поиск функций.
     
  12. FYP

    FYP
    not-set

    Регистрация:
    9 мар 2013
    Сообщения:
    1.674
    Симпатии:
    4.569
    всмысле
     
  13. madrasso

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

    Регистрация:
    27 июл 2016
    Сообщения:
    497
    Симпатии:
    73
    Ну смотри, onSetPlayerAttachedObject INCOMING rpc, да?
    Например если я захочу return false определенный объект, то он уберется только у меня.., можно как то сделать шо бы и для всех убрался?

    типа как в
    onSendPlayerSync анимку return false и она не будет отображаться другим игрокам
     
  14. Darkneon

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

    Регистрация:
    22 фев 2016
    Сообщения:
    57
    Симпатии:
    2
    а как работает
    sampForceUnoccupiedSyncSeatId(int id, int seatId)
     
  15. Eugene Crabs

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

    Регистрация:
    31 мар 2018
    Сообщения:
    64
    Симпатии:
    2
    Ребят, есть ли в moonloader функция, которая делит точку на градусы?
     
  16. Ashot148

    Ashot148 Участник

    Регистрация:
    27 июл 2016
    Сообщения:
    18
    Симпатии:
    0
    sampev = require "samp.events"

    function main()
    while not isSampAvailable() do wait(100)end
    sampRegisterChatCommand('xuyandok',command)
    while true do wait(0) end end

    function command()
    local result, x, y, z = SearchMarker(posX, posY, posZ, radius, isRace)


    что добавить что убрать? нужно сделать так что бы перс на чекпоинт тпхался
     
  17. madrasso

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

    Регистрация:
    27 июл 2016
    Сообщения:
    497
    Симпатии:
    73
    Парни, если ли бесконечный кислород на lua?
     
  18. mr.krabs

    mr.krabs Местный житель

    Регистрация:
    22 фев 2017
    Сообщения:
    1.286
    Симпатии:
    259
    Как получить id игрока через sampGetPlayerPoolPtr()?
     
  19. Darkneon

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

    Регистрация:
    22 фев 2016
    Сообщения:
    57
    Симпатии:
    2
    вроде адрес 0x0096916E
     
  20. ShuffleBoy

    ShuffleBoy vk.com/shufflescripts
    Друг

    Регистрация:
    11 мар 2018
    Сообщения:
    734
    Симпатии:
    346
    ничего, это невозможно
     
  21. madrasso

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

    Регистрация:
    27 июл 2016
    Сообщения:
    497
    Симпатии:
    73
    Понял уже :D
     
  22. hhti

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

    Регистрация:
    27 авг 2018
    Сообщения:
    320
    Симпатии:
    28
    if imgui.Button('button') then
                lua_thread.create(function()
                  sampSendChat('/anim 25')
                  wait(1500)
                  sampSendChat('/invite id')
                end)
            end
    мне нужно чтобы в строке "/invite id" вместо id писался id человека которого я хочу принять. Узнать его ид без разницы как (желательно ПКМ + Х)
     
    #19762 hhti, 13 янв 2019
    Последнее редактирование: 13 янв 2019
  23. Natami

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

    Регистрация:
    2 ноя 2018
    Сообщения:
    363
    Симпатии:
    21
    Строка с чат лога:
    {E4EA3A}[ADM-CHAT][LVL:22{E4EA3A}] Mario_Drozd[23]: /ban 30 30 cheat

    Почему не видит?
    if msg:find("{E4EA3A}%[ADM-CHAT%]%[LVL:%d+{E4EA3A}%] .+_.+[%d+]: /ban %d+ %d+ .+") then
    -- код типа, не важно
    msg:match("{E4EA3A}%[ADM-CHAT%]%[LVL:(%d+){E4EA3A}%] (.+_.+)[(%d+)]: /ban (%d+) (%d+) (.+)")
     
  24. Eugene Crabs

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

    Регистрация:
    31 мар 2018
    Сообщения:
    64
    Симпатии:
    2
    Как сделать перпендикуляр на линии?
     
  25. Petr_Sergeevich

    Petr_Sergeevich Друг форума

    Регистрация:
    25 июн 2017
    Сообщения:
    511
    Симпатии:
    140
    
    if message:find("%{E4EA3A%}%[ADM%-CHAT%]%[LVL%:%d+%{E4EA3A%}%] .+%[%d+%]%: /ban %d+ %d+ .+") then
        local aNickname, aID, pID, pTime, reason = message:match(".+ (.+)%[(%d+)%]%: /ban (%d+) (%d+) (.+)")
    end
    
     
    Natami нравится это.
  26. utmpL

    utmpL Знающий

    Регистрация:
    20 апр 2018
    Сообщения:
    266
    Симпатии:
    55
    ид какого игрока? нормально сформулируй вопрос
     
  27. Darkneon

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

    Регистрация:
    22 фев 2016
    Сообщения:
    57
    Симпатии:
    2
    запоминаешь ид , потом через sendchat все делаешь
     
  28. hhti

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

    Регистрация:
    27 авг 2018
    Сообщения:
    320
    Симпатии:
    28
    блять я же написал, "ТОГО КОГО Я ХОЧУ ПРИНЯТЬ". чтобы узнать ид нужно прицелится на чела и нажать Х. мне нужен код
     
  29. StarFresko1227

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

    Регистрация:
    27 май 2018
    Сообщения:
    46
    Симпатии:
    1

    ну помогите, а)
     
  30. utmpL

    utmpL Знающий

    Регистрация:
    20 апр 2018
    Сообщения:
    266
    Симпатии:
    55
    local key = require "vkeys"
    
    function main()
        repeat wait(0) until isSampAvailable()
        while true do wait(0)
            if wasKeyPressed(key.VK_X) then
                bool, player = getCharPlayerIsTargeting(PLAYER_HANDLE)
                if bool then
                    _, id = sampGetPlayerIdByCharHandle(player)
                    sampSendChat('/invite '..id)
                end
            end
        end
    end
    
    function main()
        if not isSampLoaded() or not isSampfuncsLoaded() then return end
        while not isSampAvailable() do wait(100) end
        sampRegisterChatCommand("amp", cmd_mycmd)
        wait(-1)
    end
    
    function cmd_mycmd(param)
            mpid, amount = param:match('(.+)%s+(.+)')
        if mpid == '' or amount == '' then
            sampAddChatMessage('{33CCFF}[Ошибка] {FFFFFF}Используй: /amp [id мп] [приз]', 0X33CCFF)
        else
            sampAddChatMessage('{33CCFF}/amp '..mpid..' '..amount..'', 0X33CCFF)
        end
    end
    не проверял, но должно работать
    upd: и еще делай проверку на ~= nil
     
    #19770 utmpL, 13 янв 2019
    Последнее редактирование: 13 янв 2019
  31. hhti

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

    Регистрация:
    27 авг 2018
    Сообщения:
    320
    Симпатии:
    28
    не работает
     
  32. utmpL

    utmpL Знающий

    Регистрация:
    20 апр 2018
    Сообщения:
    266
    Симпатии:
    55
    лог скинь
     
  33. hhti

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

    Регистрация:
    27 авг 2018
    Сообщения:
    320
    Симпатии:
    28
    [16:00:17.023774] (error) test.lua: D:\ss\GTA San Andreas\moonloader\test.lua:80: attempt to index global 'key' (a nil value)
     
  34. FYP

    FYP
    not-set

    Регистрация:
    9 мар 2013
    Сообщения:
    1.674
    Симпатии:
    4.569
    нельзя
     
  35. hhti

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

    Регистрация:
    27 авг 2018
    Сообщения:
    320
    Симпатии:
    28
    if imgui.Button('button') then
               lua_thread.create(function()
                 sampSendChat('/anim 25')
                 wait(1500)
                 sampSendChat('/invite ')
               end)
           end
    мне нужно чтобы в строке "/invite " после /invite писался id человека которого я хочу принять. Узнать его ид без разницы как (желательно ПКМ + Х)