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

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

  1. Bogach

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

    Регистрация:
    9 ноя 2015
    Сообщения:
    460
    Симпатии:
    30
    script_name("test")
    script_author("R.Chelios")
    
    --[[ Подключение Библиотек ]]
    require "lib.moonloader"
    require "lib.sampfuncs"
    local inicfg = require "inicfg"
    local sampev = require("lib.samp.events")
    local key = require 'vkeys'
    local imgui = require 'imgui'
    local encoding = require 'encoding'
    encoding.default = 'CP1251'
    u8 = encoding.UTF8
    
    local main_window_state = imgui.ImBool(false)
    function imgui.OnDrawFrame()
        if main_window_state.v then
             imgui.SetNextWindowSize(imgui.ImVec2(250,300),imgui.Cond.FirstUseEver) -- Меняем размер
             imgui.Begin(u8'Тестовое окно',main_window_state)
             imgui.Text(u8'Привет Мир.')
             if imgui.InputText(u8'Вводить текст сюда ',test_text_buffer) then
                 imgui.Text(u8'Введенный текст: ' .. test_text_buffer.v)
             end
             if imgui.Button(u8'Нажми меня') then
                  sampAddChatMessage("Кнопка нажата", -1)
             end
             imgui.End()
        end
    end
    
    function main()
        while true do
        wait(0)
            if wasKeyPressed(VK_X) then
                 main_window_state.v = not main_window_state.v
            end
            imgui.Process = main_window_state.v
        end
    end
    
     
  2. Bogach

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

    Регистрация:
    9 ноя 2015
    Сообщения:
    460
    Симпатии:
    30
    Проглядел, извиняюсь.
     
  3. imring

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

    Регистрация:
    3 авг 2016
    Сообщения:
    1.287
    Симпатии:
    689
    local h, m, s, answers = string.match('Время online за текущий день - 8:10:51 (Без учета АФК) | Ответов: 270', '.+-.(%d+):(%d+):(%d+).+:.(%d+)')
     
    ufdhbi нравится это.
  4. Artur_iOS

    Artur_iOS Знающий

    Регистрация:
    18 мар 2017
    Сообщения:
    206
    Симпатии:
    84
    Я привык полностью экранировать все, не пропуская ни одного символа. Это уменьшает количество ложных срабатываний и легче воспринимается(ну лично мне как минимум).
     
  5. violance

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

    Регистрация:
    31 дек 2015
    Сообщения:
    87
    Симпатии:
    55
    Почему нельзя использовать несколько return в функциях? Почему возвращаемое значение всегда будет самым последним return в функции
     
  6. kewa opcode

    kewa opcode перерывпятьминут

    Регистрация:
    15 апр 2017
    Сообщения:
    569
    Симпатии:
    346
    создавай переменную с таким же типом который возвращает функция и возвращай эту переменную а в блоке функции просто меняй ее значение
     
    violance нравится это.
  7. k1sher

    k1sher Знающий

    Регистрация:
    25 июл 2015
    Сообщения:
    200
    Симпатии:
    6
    Как узнать сколько по мне нанесли урона и сколько я нанёс урона игроку? Как в дамаг информере, типа.
     
  8. imring

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

    Регистрация:
    3 авг 2016
    Сообщения:
    1.287
    Симпатии:
    689
    while true do wait(0)
        if health then
            if health > getCharHealth(playerPed) then
                local damage = health-getCharHealth(playerPed)
                health = getCharHealth(playerPed)
                -- Дальше свой код
            end
        else health = getCharHealth(playerPed) end
    end
     
    #2773 imring, 12 янв 2018
    Последнее редактирование: 12 янв 2018
  9. FYP

    FYP админ какой-то
    not-set

    Регистрация:
    9 мар 2013
    Сообщения:
    1.516
    Симпатии:
    3.835
    что за чепуха? как это нельзя?
     
  10. castlefamily

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

    Регистрация:
    22 май 2017
    Сообщения:
    61
    Симпатии:
    3
    Извините за самый тупой вопрос, который наверное много раз уже задавали, но можно ли узнать PAD игрока вне зона стрима? :( (и как если да)
     
  11. ufdhbi

    ufdhbi vk.me/gfrtgf

    Регистрация:
    3 фев 2015
    Сообщения:
    447
    Симпатии:
    169
    Нельзя
     
    violance и castlefamily нравится это.
  12. Mizukage

    Mizukage Участник

    Регистрация:
    30 авг 2017
    Сообщения:
    18
    Симпатии:
    4
    Что такое хук и как его использовать?
    P.s. не так давно изучаю Lua.
     
  13. ufdhbi

    ufdhbi vk.me/gfrtgf

    Регистрация:
    3 фев 2015
    Сообщения:
    447
    Симпатии:
    169
    Вопросы по Lua скриптингу
     
  14. Artur_iOS

    Artur_iOS Знающий

    Регистрация:
    18 мар 2017
    Сообщения:
    206
    Симпатии:
    84
    SAMP.Lua(https://blast.hk/threads/14624/)
     
  15. etoeto

    etoeto Участник

    Регистрация:
    24 дек 2017
    Сообщения:
    5
    Симпатии:
    0
  16. iTzKisn

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

    Регистрация:
    23 сен 2017
    Сообщения:
    171
    Симпатии:
    16
    Здравствуйте. новичОк в луа, как сделать так, чтобы после нажатии N-ой клавиши в чат отправлялся твой текущий ид?
     
    #2781 iTzKisn, 13 янв 2018
    Последнее редактирование: 13 янв 2018
  17. imring

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

    Регистрация:
    3 авг 2016
    Сообщения:
    1.287
    Симпатии:
    689
    if wasKeyPressed(0x4E) then -- Если нажал на N, то..
        local _, myid = sampGetPlayerIdByCharHandle(playerPed) -- Узнаёт свой ID
        sampAddChatMessage(tostring(myid), -1) -- Выводит свой ID в чат
    end
     
    violance и iTzKisn нравится это.
  18. Laine_prikol

    Laine_prikol #НТР
    Проверенный

    Регистрация:
    3 ноя 2015
    Сообщения:
    245
    Симпатии:
    180
    Слишком костыльно...
    DialogText = table.concat(array, "\n")
     
    DonHomka нравится это.
  19. Bogach

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

    Регистрация:
    9 ноя 2015
    Сообщения:
    460
    Симпатии:
    30
    getcharcoordinates
     
  20. imring

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

    Регистрация:
    3 авг 2016
    Сообщения:
    1.287
    Симпатии:
    689
    X, Y, Z = getCharCoordinates(playerPed)
     
    ufdhbi нравится это.
  21. DonHomka

    Всефорумный модератор

    Регистрация:
    8 ноя 2017
    Сообщения:
    1.772
    Симпатии:
    917
    твой пример тупо для списка. мой можно форматировать как угодно
     
  22. #Northn

    #Northn Свой человек

    Регистрация:
    10 авг 2017
    Сообщения:
    489
    Симпатии:
    118
    rpradar = false
    
    function radar(param)
    local number, speed = string.match(param, '(%d+) (%d+)')
    rpradar = not rpradar
    if number and speed then
    if rpradar then
    if number ~= nil and tonumber(speed) == 60 or tonumber(speed) == 90 then
    sampSendChat("/me сняв рюкзак с плеч, бросил его на землю, потянул за замочек и засунув руку внутрь рюкзака, нащупал ножки радара..")
    sampSendChat("/do .. потянул на ружу, после чего раскрыл ножки радара и поставил его на землю.")
    sampSendChat('/radar '..number..' '..speed)
    else
    sampAddChatMessage("{0088ff}[ PHELP ]{ffffff}: Радар можно ставить только на ограничении скорости 60 км/ч [Город] и 90 км/ч [За городом]", 0xC1C1C1) end end
    if not rpradar then
    sampSendChat("/radar 4 60") end
    else sampAddChatMessage("{0088ff}[ PHELP ]{ffffff}: Установить радар [ {0088ff}/radar Номер Ограничение{ffffff} ]", 0xC1C1C1) end
    end
    Здравствуйте. я пишу /radar 5 30, отправляется else sampAddChatMessage("{0088ff}[ PHELP ]{ffffff}: Радар можно ставить только на ограничении скорости 60 км/ч [Город] и 90 км/ч [За городом]", 0xC1C1C1) end end
    и когда я сново пишу /radar 5 30, отправляется if not rpradar then
    sampSendChat("/radar 4 60") end
    как это пофиксить? что-бы после sampAddChatMessage("{0088ff}[ PHELP ]{ffffff}: Радар можно ставить только на ограничении скорости 60 км/ч [Город] и 90 км/ч [За городом]", 0xC1C1C1) end end ничего не менялось?
     
  23. Rekt00

    Rekt00 Новичок

    Регистрация:
    9 янв 2018
    Сообщения:
    1
    Симпатии:
    0
    Theres any lua script to bypass flood spam chat protector on samp server ?
     
  24. DonHomka

    Всефорумный модератор

    Регистрация:
    8 ноя 2017
    Сообщения:
    1.772
    Симпатии:
    917
    Ни слова не понял.


    wait(1000) ?
     
  25. #Northn

    #Northn Свой человек

    Регистрация:
    10 авг 2017
    Сообщения:
    489
    Симпатии:
    118
    Смотри.
    Что-бы поставить радар нужно писать /radar *номер радара* *ограничение скорости, 60 или 90*, дак вот
    Когда я пишу /radar *номер радара* *ЧТО-ТО другое*, у меня в первый раз отправляет sampAddChatMessage("{0088ff}[ PHELP ]{ffffff}: Радар можно ставить только на ограничении скорости 60 км/ч [Город] и 90 км/ч [За городом]", 0xC1C1C1) end end, это нормально.
    Но, когда я второй раз пишу /radar *номер радара* *ЧТО-ТО другое*, то у меня вместо sampAddChatMessage("{0088ff}[ PHELP ]{ffffff}: Радар можно ставить только на ограничении скорости 60 км/ч [Город] и 90 км/ч [За городом]", 0xC1C1C1) end end отправляет условие
    if not rpradar then
    sampSendChat("/radar 4 60") end, а мне нужно что-бы оно опять повторило sampAddChatMessage("{0088ff}[ PHELP ]{ffffff}: Радар можно ставить только на ограничении скорости 60 км/ч [Город] и 90 км/ч [За городом]", 0xC1C1C1) end end, как это сделать?

    если что, условие if not rpradar then нужно что-бы потом убирать радар, а что-бы убирать радар нужно /radar и что угодно написать
     
    #2790 #Northn, 13 янв 2018
    Последнее редактирование: 13 янв 2018
    violance нравится это.
  26. DonHomka

    Всефорумный модератор

    Регистрация:
    8 ноя 2017
    Сообщения:
    1.772
    Симпатии:
    917
    rpradar = not rpradar
    срабатывает каждый раз и меняет значение на противоположное. попробуй задавать вручную трай или фолс
     
  27. memir

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

    Регистрация:
    21 авг 2015
    Сообщения:
    118
    Симпатии:
    62
    sampSendEnterVehicle(sampCarId, passengerSeat)
     
  28. #Northn

    #Northn Свой человек

    Регистрация:
    10 авг 2017
    Сообщения:
    489
    Симпатии:
    118
    как? :D
     
  29. DonHomka

    Всефорумный модератор

    Регистрация:
    8 ноя 2017
    Сообщения:
    1.772
    Симпатии:
    917
    Зашел с ПК. Еще раз глянуть код и не понял зачем вообще нужна эта переменная?)
     
  30. #Northn

    #Northn Свой человек

    Регистрация:
    10 авг 2017
    Сообщения:
    489
    Симпатии:
    118
    в первый раз радар ставить, а во второй раз - убирать радар (и всё по рп)
     
  31. Laine_prikol

    Laine_prikol #НТР
    Проверенный

    Регистрация:
    3 ноя 2015
    Сообщения:
    245
    Симпатии:
    180
    Если данная либа не использует специфические функции и работает в ванильном Lua, то и в сампе заработает
     
  32. iTzKisn

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

    Регистрация:
    23 сен 2017
    Сообщения:
    171
    Симпатии:
    16
    Нужен код "если я сижу в машине (любой, хоть байк) то - (код), если нет - то (код)"
     
  33. DonHomka

    Всефорумный модератор

    Регистрация:
    8 ноя 2017
    Сообщения:
    1.772
    Симпатии:
    917
    rpradar = false
    function radar(param)
       local number, speed = string.match(param, '(%d+) (%d+)')
       if number == nil or speed == nil then
          sampAddChatMessage("{0088ff}[ PHELP ]{ffffff}: Установить радар [ {0088ff}/radar Номер Ограничение{ffffff} ]", 0xC1C1C1)
       end
       if tonumber(speed) == 60 or tonumber(speed) == 90 then
          rpradar = not rpradar
          if rpradar then
             sampSendChat("/me сняв рюкзак с плеч, бросил его на землю, потянул за замочек и засунув руку внутрь рюкзака, нащупал ножки радара..")
             sampSendChat("/do .. потянул на ружу, после чего раскрыл ножки радара и поставил его на землю.")
             sampSendChat('/radar '..number..' '..speed)
          else
             sampSendChat("/radar 4 60")
          end
       else
          sampAddChatMessage("{0088ff}[ PHELP ]{ffffff}: Радар можно ставить только на ограничении скорости 60 км/ч [Город] и 90 км/ч [За городом]", 0xC1C1C1)
       end
    end
    ЗЫ: Примерно.
    ЗЗЫ: А почему нет Wait? На сервере нет антифлуда?)
     
    #Northn нравится это.
  34. imring

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

    Регистрация:
    3 авг 2016
    Сообщения:
    1.287
    Симпатии:
    689
    if isCharInAnyCar(playerPed) then
    -- code
    else
    -- code
    end
     
    ufdhbi и iTzKisn нравится это.
  35. #Northn

    #Northn Свой человек

    Регистрация:
    10 авг 2017
    Сообщения:
    489
    Симпатии:
    118
    нет его.
     
    DonHomka нравится это.