Lua [arz] удаление окна с акцией авто

ARMOR

kjor32 is legend
Модератор
4,852
6,081
теперь понял как можно было сделать получше и более оптимизированным.


кстати, возможно ли получение координат текстдрава сразу в локалку, а затем уже использовать проверку на появление текстдрава в определённых координатах? правильнее будет - возможно ли поставить
Lua:
return false
после
Lua:
function ev.onShowTextDraw(id, data)
    if id == 2107 then
      local x, y = data.position.x, data.position.y
    end
end
?
Если ты отправишь return false то ты отменишь получение всего лишь одного декстдрава, а именно 2107, а тебе нужно отправить серверу клик по нему, чтобы закрыть всё текстдравы связаные с этим ивентом
 

abbv

Потрачен
Автор темы
120
40
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Если ты отправишь return false то ты отменишь получение всего лишь одного декстдрава, а именно 2107, а тебе нужно отправить серверу клик по нему, чтобы закрыть всё текстдравы связаные с этим ивентом
то есть я могу сначала отправить клик по текстдраву, а уже потом могу ставить
Lua:
return false
? или как
 

abbv

Потрачен
Автор темы
120
40
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Вообще не нужно ставить return false
хорошо, тогда скажи пожалуйста, как мне отключить функцию onShowTextDraw после хука координат x,y, и клика по текстдраву, я просто немного недопонял это
 

ARMOR

kjor32 is legend
Модератор
4,852
6,081
хорошо, тогда скажи пожалуйста, как мне отключить функцию onShowTextDraw после хука координат x,y, и клика по текстдраву, я просто немного недопонял это
Функция работает только когда появляется любой текстдрав. Отключать её не недо, просто отправляй нажатие по текстдраву и всё
 

abbv

Потрачен
Автор темы
120
40
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Функция работает только когда появляется любой текстдрав. Отключать её не недо, просто отправляй нажатие по текстдраву и всё
ну смотри, у меня есть такой код
Lua:
function event.onShowTextDraw(id, data)
    if id == 2107 then
        local x, y = data.position.x, data.position.y
    end
    if id == 2107 and x, y then
        sampSendClickTextdraw(id)
    end
end
после клика по текстдраву и появлению нового текстдрава с тем же идом, оно будет принимать значение x,y уже нового текстдрава или нет?
 

ARMOR

kjor32 is legend
Модератор
4,852
6,081
ну смотри, у меня есть такой код
Lua:
function event.onShowTextDraw(id, data)
    if id == 2107 then
        local x, y = data.position.x, data.position.y
    end
    if id == 2107 and x, y then
        sampSendClickTextdraw(id)
    end
end
после клика по текстдраву и появлению нового текстдрава с тем же идом, оно будет принимать значение x,y уже нового текстдрава или нет?
Да. Так что нужно сперва сделать вот такой код:
Lua:
local ev = require 'lib.samp.events'

function ev.onShowTextDraw(id, data)
    if id == 2107 then
        sampAddChatMessage("X: " .. data.position.x .. " | Y: " .. data.position.y, -1)
    end
end
И когда тебе выдаст коордтнаты x и y ты из переписываешь и делаешь так
Lua:
local ev = require 'lib.samp.events'

function ev.onShowTextDraw(id, data)
    if data.position.x == "Те координаты X которые ты получил с помощью кода выше" and data.position.y == "Те координаты Y которве ты получил с помощью кода выше" then
        sampSendClickTextdraw(id)
    end
end
Тебе просто надо узнать координаты текстдрава и втавить их туда куда я указал в коде, и всё код будет работать
 

abbv

Потрачен
Автор темы
120
40
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Да. Так что нужно сперва сделать вот такой код:
Lua:
local ev = require 'lib.samp.events'

function ev.onShowTextDraw(id, data)
    if id == 2107 then
        sampAddChatMessage("X: " .. data.position.x .. " | Y: " .. data.position.y, -1)
    end
end
И когда тебе выдаст коордтнаты x и y ты из переписываешь и делаешь так
Lua:
local ev = require 'lib.samp.events'

function ev.onShowTextDraw(id, data)
    if data.position.x == "Те координаты X которые ты получил с помощью кода выше" and data.position.y == "Те координаты Y которве ты получил с помощью кода выше" then
        sampSendClickTextdraw(id)
    end
end
Тебе просто надо узнать координаты текстдрава и втавить их туда куда я указал в коде, и всё код будет работать
не, тот тип когда что ты сказал я понял, я просто хочу понять, можно ли сделать по-другому, чтобы эти координаты сразу были в локалке, без их вывода в чат, и сразу сделать клик по текстдраву
 

ARMOR

kjor32 is legend
Модератор
4,852
6,081
не, тот тип когда что ты сказал я понял, я просто хочу понять, можно ли сделать по-другому, чтобы эти координаты сразу были в локалке, без их вывода в чат, и сразу сделать клик по текстдраву
Напиши мне сюда координаты этого текстдрава, я всё сделаю и объясню
 

ARMOR

kjor32 is legend
Модератор
4,852
6,081
Lua:
local ev = require 'lib.samp.events'

function ev.onShowTextDraw(id, data)
    if data.position.x == "434.23330688477" and data.position.y == "148.38890075684" then
        sampSendClickTextdraw(id)
    end
end

Должно работать
 

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Друг
8,771
11,214
ид текстдрава всегда меняется.
вот скрипт, писал для себя, в нем много мусора (такого как закрытие текстдрав-меню отправкой рпс)
 

Вложения

  • noTimeCars.lua
    2.6 KB · Просмотры: 13
  • Нравится
Реакции: ARMOR