Как получить позицию текстдрава

Blasterrrrrrr

Активный
Автор темы
279
62
Версия MoonLoader
Другое
Помогите пажалуиста,как это сделать знаю что есть в lua int id,объясните пажалуиста нубло как он работает
string text = sampTextdrawGetString(int id)
 

Adrian G.

Известный
Проверенный
519
459
Эта фукнция получает текст текстдрава, а не позицию. int id это айди текстдрава, string text это текст текстдрава
Lua:
--где то в коде
text = sampTextDrawGetString(123)
print(text) --выведет текст текстдрава, ид которого указан в скобках
Чтобы получить позицию сделай так
Lua:
local sampev = require 'lib.samp.events'
function sampev.onShowTextDraw(id, data)
    if id == 123 then
    print(data.position.x, data.position.y)--выведет позицию текстдрава по X и Y
    end
end
 
  • Нравится
Реакции: Vintik

Blasterrrrrrr

Активный
Автор темы
279
62
Эта фукнция получает текст текстдрава, а не позицию. int id это айди текстдрава, string text это текст текстдрава
Lua:
--где то в коде
text = sampTextDrawGetString(123)
print(text) --выведет текст текстдрава, ид которого указан в скобках
Чтобы получить позицию сделай так
Lua:
local sampev = require 'lib.samp.events'
function sampev.onShowTextDraw(id, data)
    if id == 123 then
    print(data.position.x, data.position.y)--выведет позицию текстдрава по X и Y
    end
end
слушай а как активировать)
 

Blasterrrrrrr

Активный
Автор темы
279
62

Вложения

  • 1615198105588.png
    1615198105588.png
    51.1 KB · Просмотры: 149

Adrian G.

Известный
Проверенный
519
459
Я пытаюсь как это работает понять
Тут просто идет вычисление нужного текстдрава по его позиции и тексту, на который скрипт будет реагировать и нажимать нужную кнопку в зависимости от позиции
 

Vintik

Через тернии к звёздам
Проверенный
1,564
1,043
Код, который @Adrian G. тебе скинул, пишет в файл moonloader.log координаты текстдрава, когда текстдрав появляется.
Если же ты хочешь узнать координаты в любой момент, ты должен знать ID (уникальный номер) текстдрава:
Lua:
local posX, posY = sampTextdrawGetPos(int id) -- id - уникальный номер текстдрава
Другой вопрос - как его (этот номер) узнать? Тогда лучше написать такой код:
Lua:
local sampev = require 'lib.samp.events'

function sampev.onShowTextDraw(id, data) -- когда появился любой текстдрав
  sampAddChatMessage('textdraw id = ' id) -- будет писать уникальный номер
  sampAddChatMessage(data.text) -- будет отправлять текст (строку) текстдрава
end
И ты открываешь текстдрав, видишь нужную тебе строку и сверху в чате над ней ID текстдрава, запоминаешь его и потом можешь найти его позицию по этому ID.
Вот это необходимо установить, если у тебя его нету.
 

Valerii Kalashnikov

Известный
292
498
Помогите пажалуиста,как это сделать знаю что есть в lua int id,объясните пажалуиста нубло как он работает
string text = sampTextdrawGetString(int id)
Мне кажется нужно уточнит конкретнее. Ты id текстдрава уже получил или понятия не имеешь как получать?
 

Dedugung

Новичок
3
0
Помогите пажалуиста,как это сделать знаю что есть в lua int id,объясните пажалуиста нубло как он работает
string text = sampTextdrawGetString(int id)
Привет! От парней выше ничего не понял по этому попросил нейросеть сделать такой скрипт
TextDraw:
local sampev = require 'lib.samp.events'
local savedTextdraws = {}
local savedPlayerTextdraws = {}

function main()
    while not isSampAvailable() do wait(100) end

    sampRegisterChatCommand("tex", function(arg)
        if arg == '' then
            sampAddChatMessage("введи id текстдрава", -1)
            return
        end

        local id = tonumber(arg)
        if not id then
            sampAddChatMessage("введи корректный id", -1)
            return
        end

        local td = savedTextdraws[id]
        local ptd = savedPlayerTextdraws[id]

        if td then
            sampAddChatMessage(string.format("TextDraw %d: X = %.1f, Y = %.1f", id, td.position.x, td.position.y), -1)
        elseif ptd then
            sampAddChatMessage(string.format("PlayerTextDraw %d: X = %.1f, Y = %.1f", id, ptd.position.x, ptd.position.y), -1)
        else
            sampAddChatMessage("ошибка 404!! текстдрав не найден", -1)
        end
    end)

    wait(-1)
end

function sampev.onShowTextDraw(id, data)
    savedTextdraws[id] = data
end

function sampev.onShowPlayerTextDraw(id, data)
    savedPlayerTextdraws[id] = data
end

Активация /tex (id TextDraw)
 
  • Эм
Реакции: bfix