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

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

  1. DeniskaaaXDD

    DeniskaaaXDD Знающий

    Регистрация:
    10 авг 2016
    Сообщения:
    209
    Симпатии:
    53
    Сделал, по нажатию теперь пишет первые строки, но ": attempt to yield across C-call boundary" не ебу шо это
     
  2. Di3

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

    Регистрация:
    8 сен 2017
    Сообщения:
    375
    Симпатии:
    19
    Актуально
     
  3. WebDim

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

    Регистрация:
    7 мар 2018
    Сообщения:
    43
    Симпатии:
    2
    Снова в тупике с таблицами
    Есть такая табличка:
    local tUsers = {
    {
        id = 62341,
        name = "Smit",
        slot = {10,0,6,78}
    },
    {
        id = 548799,
        name = "Lover",
        slot = {0,8,1,44}
    }
    }
    Нужно найти по ID и пропарсить SLOT, голову уже сломал. Пните в нужном направлении.
     
  4. trefa

    trefa ДРУК
    Друг

    Регистрация:
    5 фев 2015
    Сообщения:
    1.115
    Симпатии:
    442
    function find_id(tabl,id)
        for i, val in ipairs(tabl) do
            if val.id == id then
                return i
            end
        end
        return nil
    end
     
    WebDim нравится это.
  5. WebDim

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

    Регистрация:
    7 мар 2018
    Сообщения:
    43
    Симпатии:
    2
    Это понятно. Вторая часть "и пропарсить SLOT"

    PS Все спасибо дошло.

    for i, val in ipairs(tUsers[find_id(tUsers,62341)].slot) do
        print(val)
       
    end
     
    #25485 WebDim, 18 апр 2019
    Последнее редактирование: 18 апр 2019
  6. trefa

    trefa ДРУК
    Друг

    Регистрация:
    5 фев 2015
    Сообщения:
    1.115
    Симпатии:
    442
    Там возврат индекса таблицы, дальше сам.
     
    WebDim нравится это.
  7. astynk

    astynk Знающий

    Регистрация:
    21 окт 2018
    Сообщения:
    240
    Симпатии:
    109
    if getDistanceBetweenCoords3d(getCharCoordinates(PLAYER_PED), x, y, z) < 50 then
     -- ...
    end
    x,y,z - координаты
    50 - радиус
     
    The Spark, laz3r228 и Di3 нравится это.
  8. dmitri4

    dmitri4 Знающий

    Регистрация:
    8 май 2017
    Сообщения:
    263
    Симпатии:
    29
    Чем можно заменить sampAddChatMessage, при большом количестве символов оно выводит только часть текста
    
    Пример sampAddChatMessage('{FFFFFF} Да {FF0000} Нет {FFFFFF} Да {FF0000} Нет {FFFFFF} Да {FF0000} Нет',-1)
     
    #25488 dmitri4, 18 апр 2019
    Последнее редактирование: 18 апр 2019
  9. WebDim

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

    Регистрация:
    7 мар 2018
    Сообщения:
    43
    Симпатии:
    2
    Я думаю тока делить строку или выводить в диалог. (это же только для себя)
    Или вывод через imgui (с прозрачным фоном)
     
  10. crybaby

    crybaby хочу японок но ебу китаянок
    Проверенный

    Регистрация:
    29 июл 2017
    Сообщения:
    785
    Симпатии:
    269
    занести мусор типа цветов в переменные, занести весь текст в переменную
    дохуя способов избежать этого хз че вы тупите
     
  11. trefa

    trefa ДРУК
    Друг

    Регистрация:
    5 фев 2015
    Сообщения:
    1.115
    Симпатии:
    442
    Ограничение сампа, максимум 128 символов.
     
  12. Pakulichev

    Pakulichev кошачий сквад
    Проверенный

    Регистрация:
    28 окт 2017
    Сообщения:
    632
    Симпатии:
    229
    И чем это поможет? Любая строка, что превышает 128 символов, просто будет уничтожена SAMP'ом.
    https://wiki.sa-mp.com/wiki/Limits
     
  13. crybaby

    crybaby хочу японок но ебу китаянок
    Проверенный

    Регистрация:
    29 июл 2017
    Сообщения:
    785
    Симпатии:
    269
    да, я еблан забудьте не совсем про то начал
     
  14. Pakulichev

    Pakulichev кошачий сквад
    Проверенный

    Регистрация:
    28 окт 2017
    Сообщения:
    632
    Симпатии:
    229
    Смотри, ты никак не сможешь обойти лимиты SAMP, если только не будешь использовать какие-нибудь CharHelpers, которые имеют свои буфера.
    Самый просто вариант - написать систему "от дурака", которая сама будет переносить строку, если она слишком длинная. Да и вообще часто вижу, что многие строки, которые начинаются одинаково (тег там, либо что-то ещё) прописывают по сто миллионов раз, хотя можно создать функцию. Так вот, сделай именно так. Подсчитывай длину строки, исключая длину цветовых тегов, и если длина превышает 128 символов, то переноси все остальное на следующую строку. Можно вообще сделать с циклом, чтобы строка переносилась до тех пор, пока он существует - самый лучший вариант, кстати.
     
  15. Sacrificer

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

    Регистрация:
    30 июл 2015
    Сообщения:
    42
    Симпатии:
    14
    Как отправить нажатие кнопок такого типа?
     

    Вложения:

    • sa-mp-154.png
      sa-mp-154.png
      Размер файла:
      4,2 КБ
      Просмотров:
      54
    #25495 Sacrificer, 18 апр 2019
    Последнее редактирование: 18 апр 2019
  16. Petr_Sergeevich

    Проверенный

    Регистрация:
    25 июн 2017
    Сообщения:
    564
    Симпатии:
    170
    Можно как-нибудь изменить ключ значений таблицы в imgui.PlotLines? Если да, то как?

    [​IMG]
     
  17. Infernus

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

    Регистрация:
    25 ноя 2017
    Сообщения:
    77
    Симпатии:
    9
    Как с помощью ffi узнать общий объем ОЗУ?
     
  18. Mahonya

    Mahonya Участник

    Регистрация:
    22 май 2017
    Сообщения:
    9
    Симпатии:
    2
    Как вывести текст imgui.Text() поверх изображения imgui.Image() ?
     
  19. Belo4ka_belka

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

    Регистрация:
    28 июл 2015
    Сообщения:
    97
    Симпатии:
    1
    Здравствуйте товарищи. Есть две задачи:
    1) Необходимо получить массив всех игроков в прорисовке (какой-нибудь идентификатор игрока: хенлы, иды)
    2) Необходимо прикрепить текст к игроку, желательно чтобы текст был над его ником.

    Всего этого желательно достичь без использования СФ. Есть такой вариант? Рассчитываю на вашу помощь.
     
    #25499 Belo4ka_belka, 19 апр 2019
    Последнее редактирование: 19 апр 2019
  20. Natami

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

    Регистрация:
    2 ноя 2018
    Сообщения:
    364
    Симпатии:
    22
    хелп с регуляторками
    — [R] {FFFFFF}Рядовой{FFFFFF} Leader_Da: text
    text:match('— %[R%] {z+}(.+){z+} .+ (.+): (.+)')
     
  21. Belo4ka_belka

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

    Регистрация:
    28 июл 2015
    Сообщения:
    97
    Симпатии:
    1
    Первый вопрос я уже решил. Сейчас меня интересует возможность прикрепить текст к игроку, как это делается?
     
  22. Aniki

    Друг

    Регистрация:
    3 сен 2017
    Сообщения:
    602
    Симпатии:
    538
    local rank, nick, text = text:match('^— %[R%] {%x-}(.-){%x-} (.-): (.*)')
     
    Natami нравится это.
  23. MrPlayerYT

    MrPlayerYT Новичок

    Регистрация:
    19 апр 2019
    Сообщения:
    4
    Симпатии:
    1
    Не вводи народ в заблуждение. Задержки можно использовать где угодно, кроме функций-обработчиков событий игры
     
  24. Ken Block

    Ken Block Свой человек

    Регистрация:
    22 май 2015
    Сообщения:
    421
    Симпатии:
    25
    Что кидать вторым аргументом в imgui.Selectable()?
     
  25. Petr_Sergeevich

    Проверенный

    Регистрация:
    25 июн 2017
    Сообщения:
    564
    Симпатии:
    170
    imgui.ImInt(n), n - текущий элемент
     
  26. Ken Block

    Ken Block Свой человек

    Регистрация:
    22 май 2015
    Сообщения:
    421
    Симпатии:
    25
    function SE.onServerMessage(color, text)
        if text:find('%[Secret%]') then
            textsms = text:match('%[Secret%] (.+) |')
            decrypted = crypto.base64_decode(textsms)
            gotovo = text:gsub(textsms, decrypted)
            text = gotovo
            return {color, text}
        end
    end
    Почему не меняется текст?
     
  27. TopKitten

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

    Регистрация:
    5 дек 2017
    Сообщения:
    64
    Симпатии:
    3
    как изменить скорость и ускорение своему кару?
     
  28. Mahonya

    Mahonya Участник

    Регистрация:
    22 май 2017
    Сообщения:
    9
    Симпатии:
    2
    Как сделать разделение типа imgui.Columns() только горизонтально?

    Ты хочешь изменить текст в окне чата?

    попробуй так:
    function SE.onServerMessage(color, text)
        if text:find('%[Secret%]') then
            textsms = text:match('%[Secret%] (.+) |')
            decrypted = crypto.base64_decode(textsms)
            gotovo = text:gsub(textsms, decrypted)
            text = gotovo
            sampAddChatMessage(text,color)
            return false
        end
    end
    Как вывести текст imgui.Text() поверх изображения imgui.Image() ?
    +
    Как сделать разделение типа imgui.Columns() только горизонтально?
     
  29. TopKitten

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

    Регистрация:
    5 дек 2017
    Сообщения:
    64
    Симпатии:
    3
    help
     
  30. Buran Garage54

    Buran Garage54 Новичок

    Регистрация:
    19 апр 2019
    Сообщения:
    3
    Симпатии:
    0
    Народ, подскажите. А как вообще сделать что бы рп отыгровку можно было менять и добавлять или убирать строчки в текстовом документе?
     
  31. subtilize!

    subtilize! Знающий

    Регистрация:
    31 май 2017
    Сообщения:
    259
    Симпатии:
    20
    upload_2019-4-19_17-33-29.png

    как найти эту красную метку?
     
  32. astynk

    astynk Знающий

    Регистрация:
    21 окт 2018
    Сообщения:
    240
    Симпатии:
    109
    Нужно еще проверку сидит ли пед в машине, вызов getCarModel с невалидным хендлом крашит игру.
    if isCharInAnyCar(PLAYER_PED) and getCarModel(storeCarCharIsInNoSave(PLAYER_PED)) == 599 then
    https://blast.hk/threads/13380/#post-119165

    applyForceToCar(Vehicle car, float vecX, float vecY, float vecZ, float rotationX, float rotationY, float rotationZ)
     
  33. Buran Garage54

    Buran Garage54 Новичок

    Регистрация:
    19 апр 2019
    Сообщения:
    3
    Симпатии:
    0
    помогите, как вот из текстового документа test.ini выташить эти слова и добавить к каждой строке команду /goska [trg] а далее первоя строка из документа, потом опять команда /goska [trg] вторая строка из документа и т.д

    Привет,как дела
    Что делаешь
    блаблабла
    нононо
    огогого
    кекекек
    кукукуу
    и т.д
    помогите сделать код пж
     
  34. Belo4ka_belka

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

    Регистрация:
    28 июл 2015
    Сообщения:
    97
    Симпатии:
    1
    Товарищи, возникла необходимость прикрепить ко всем персонажам (над ником) определенный текст. Подскажите что нужно для этого и если есть возможность, то как указать конкретные координаты пространства над головой (или как их высчитать хотя бы). Рассчитываю на вашу помощь!
     
  35. Treedes

    Treedes Участник

    Регистрация:
    7 янв 2018
    Сообщения:
    17
    Симпатии:
    0
    vk.com/petrovpidr скриптеры пишите, мне нужно сделать проэкт для рак бота. Оплачу