Как бороться с айдишниками текстдравов?

СгенерироватьНикнейм

Участник
Автор темы
85
18
Есть скрипт. нажимает на определенный текстдрав в интвентаре, но при добавлении новых предметов в в инвентарь - айди текст дравов смещаются на 2 единицы.
Возможно ли получить список всех текстдравов в определенной области экрана? какую функцию использовать?
моделей с одинаковым айди несколько, поиск по айди модели не совсем подходит.
больше склоняюсь к поиску айди текстдравов в определенной области экрана, но при этом чтобы не навредило работе в свернутом режиме как это может произойти при эмуляции клавиш, при котором работа в свернутом режиме не считается возможным
 
Последнее редактирование:

Rama66

Участник
36
5
Можно по модели находить, можно по тексту, пример:

Клик по текстдравам:
function Slots_Click_Inventory_TEXTDRAW_ByTextOrModelOrModel()

    -- Поиск по тексту
    for id = 2130, 2160 do
        if not status or Slots_Click then break end

        if sampTextdrawIsExists(id) then
            local text = sampTextdrawGetString(id) or ""
            if text:lower():find("items:item_sim_card") then
                return ClickTextDraw(id - 1)
            end
        end
    end

    -- Поиск по модели
    local modelId = FindByModel(2)
    if modelId then
        return ClickTextDraw(modelId)
    end

    return false
end

Можно по модели находить, можно по тексту, пример:

Клик по текстдравам:
function Slots_Click_Inventory_TEXTDRAW_ByTextOrModelOrModel()

    -- Поиск по тексту
    for id = 2130, 2160 do
        if not status or Slots_Click then break end

        if sampTextdrawIsExists(id) then
            local text = sampTextdrawGetString(id) or ""
            if text:lower():find("items:item_sim_card") then
                return ClickTextDraw(id - 1)
            end
        end
    end

    -- Поиск по модели
    local modelId = FindByModel(2)
    if modelId then
        return ClickTextDraw(modelId)
    end

    return false
end
Это просто часть кода для квест бота моего под лаунчер, это по старому инвентарю, у меня ещё есть функция клика по cef инвентарю bruh..
 
  • Эм
Реакции: pOLINYAR

СгенерироватьНикнейм

Участник
Автор темы
85
18
Можно по модели находить, можно по тексту, пример:

Клик по текстдравам:
function Slots_Click_Inventory_TEXTDRAW_ByTextOrModelOrModel()

    -- Поиск по тексту
    for id = 2130, 2160 do
        if not status or Slots_Click then break end

        if sampTextdrawIsExists(id) then
            local text = sampTextdrawGetString(id) or ""
            if text:lower():find("items:item_sim_card") then
                return ClickTextDraw(id - 1)
            end
        end
    end

    -- Поиск по модели
    local modelId = FindByModel(2)
    if modelId then
        return ClickTextDraw(modelId)
    end

    return false
end


Это просто часть кода для квест бота моего под лаунчер, это по старому инвентарю, у меня ещё есть функция клика по cef инвентарю bruh..
что делать в случае если модель одна и та же, в инвентаре текст отсутствует
 

Rama66

Участник
36
5
Вот целый код:
function Slots_Click_Inventory_TEXTDRAW_ByTextOrModelOrModel()

    -- Поиск по тексту
    for id = 2130, 2160 do
        if not status or Slots_Click then break end

        if sampTextdrawIsExists(id) then
            local text = sampTextdrawGetString(id) or ""
            if text:lower():find("items:item_sim_card") then
                return ClickTextDraw(id - 1)
            end
        end
    end

    -- Поиск по модели
    local modelId = FindByModel(2)
    if modelId then
        return ClickTextDraw(modelId)
    end

    return false
end

-- Функция клика по текстдраву с обработкой подтверждения
function ClickTextDraw(targetId)

    lua_thread.create(function()
        sampSendClickTextdraw(targetId)
        wait(3000)
        if sampTextdrawIsExists(2302) then
            sampSendClickTextdraw(2302)
        end
    end)

    return true
end

-- Поиск текстдрава по модели
function FindByModel(modelId)
    if not status then return nil end

    for id = 2130, 2160 do
        if not status then break end
        if sampTextdrawIsExists(id) then
            local model = select(1, sampTextdrawGetModelRotationZoomVehColor(id))
            if model == modelId then
                return id
            end
        end
    end
    return nil
end
 

СгенерироватьНикнейм

Участник
Автор темы
85
18
Вот целый код:
function Slots_Click_Inventory_TEXTDRAW_ByTextOrModelOrModel()

    -- Поиск по тексту
    for id = 2130, 2160 do
        if not status or Slots_Click then break end

        if sampTextdrawIsExists(id) then
            local text = sampTextdrawGetString(id) or ""
            if text:lower():find("items:item_sim_card") then
                return ClickTextDraw(id - 1)
            end
        end
    end

    -- Поиск по модели
    local modelId = FindByModel(2)
    if modelId then
        return ClickTextDraw(modelId)
    end

    return false
end

-- Функция клика по текстдраву с обработкой подтверждения
function ClickTextDraw(targetId)

    lua_thread.create(function()
        sampSendClickTextdraw(targetId)
        wait(3000)
        if sampTextdrawIsExists(2302) then
            sampSendClickTextdraw(2302)
        end
    end)

    return true
end

-- Поиск текстдрава по модели
function FindByModel(modelId)
    if not status then return nil end

    for id = 2130, 2160 do
        if not status then break end
        if sampTextdrawIsExists(id) then
            local model = select(1, sampTextdrawGetModelRotationZoomVehColor(id))
            if model == modelId then
                return id
            end
        end
    end
    return nil
end
Повторюсь: "что делать в случае если модель одна и та же, в инвентаре текст отсутствует"
Попросить написать скрипт у чат гпт я тоже могу чтобы он мне написал этот код, я создал тему для того чтобы получить ответ от живых людей которые работали с таким
 
  • Ха-ха
Реакции: Rama66

СгенерироватьНикнейм

Участник
Автор темы
85
18
Ну так значит ищи по модели :)


Чувак, живые люди чаще всего тебе не ответят тут, ищи ответ у гпт..
Не пользуйся чат гпт. От него тупеют.
Вроде дал внятно понять что элементов с одинаковыми айди моделями несколько, но ты мне втираешь этот метод.
Что непонятного в том что данный метод поиска айди текстдрава мне не подходит?
 
  • Ха-ха
Реакции: VanoKLR

Rama66

Участник
36
5
Не пользуйся чат гпт. От него тупеют.
Вроде дал внятно понять что элементов с одинаковыми айди моделями несколько, но ты мне втираешь этот метод.
Что непонятного в том что данный метод поиска айди текстдрава мне не подходит?
Хорошо, не буду😇
 

Tema05

Известный
1,614
533
Не пользуйся чат гпт. От него тупеют.
Вроде дал внятно понять что элементов с одинаковыми айди моделями несколько, но ты мне втираешь этот метод.
Что непонятного в том что данный метод поиска айди текстдрава мне не подходит?
От него тупеют только тупые, а умные набором умнеют

Повторюсь: "что делать в случае если модель одна и та же, в инвентаре текст отсутствует"
Попросить написать скрипт у чат гпт я тоже могу чтобы он мне написал этот код, я создал тему для того чтобы получить ответ от живых людей которые работали с таким
Работа с текстдравами это лютый дроч. Если тебе нужно определить ячейку конкретного предмета то делай это по всем возможным отличиям, а не только по модели. Размер модель, угол поворота, зум, цвет фона, последующий id текстдрава, который может содержать уникальную строку. На практике нет предметов, которые ну невозможно отличить.

Ты рассказывай конкретно, что тебе нужно сделать, с какими предметами, никто тут гадать решение не будет
 
Последнее редактирование:
  • Нравится
Реакции: Rama66 и VanoKLR

СгенерироватьНикнейм

Участник
Автор темы
85
18
От него тупеют только тупые, а умные набором умнеют


Работа с текстдравами это лютый дроч. Если тебе нужно определить ячейку конкретного предмета то делай это по всем возможным отличиям, а не только по модели. Размер модель, угол поворота, зум, цвет фона, последующий id текстдрава, который может содержать уникальную строку. На практике нет предметов, которые ну невозможно отличить.

Ты рассказывай конкретно, что тебе нужно сделать, с какими предметами, никто тут гадать решение не будет
Делаю автоматизированное складывание предметов в багажник для бота, проблема в следующем. При присутствии вещей в багажнике - айди основного инвентаря меняется. Предметы одинаковые. Покажу на примере телефона (скрины ниже)
Да, можно было бы использовать айди модели, но предметы одинаковые и айди предметов в том числе и приведёт это к тому что будут захватываться вещи с багажника обратно в инвентарь что мне не нужно
имитацию нажатия при помощи курсора и lua можно было бы использовать в данном случае, но возникает другая проблема связанная с тем что скрипт не сможет работать в состоянии свернутого режима, данному способу нужно будет постоянно держать игру открытой
1754837067952.png
1754837091039.png

 
Последнее редактирование:
  • Bug
Реакции: Tema05

Улиточка

Известный
584
188
там есть оч редко используемая фишка а именно работа с кординатами, тоесть перекликивание определенных координат и пускай юзает на этих координатах все текстдравы как пример, поищи на форуме или у аи спроси как с ними работать, я както пытался но так до ума не довёл.