Помощь с поиском 3D Texta

oneLove-one

Участник
Автор темы
50
6
Версия MoonLoader
.027.0-preview
Добрый день дорогие все форумные люди, сегодня столкнулся с такой проблемой хотел сделать Render Линий и текста на текст, но есть одна загвостка.
Мне надо только чтобы рендарилось на эту ферму а на другую не надо, есть какое нибудь решение нижу приложу код.
1661076721507.png


lua:
local ev = require 'lib.samp.events'

function main()
    sampAddChatMessage('Fermer Bot | Успешно загружен!',-1)
    sampRegisterChatCommand('fermer',command_state)
    while true do wait(0)

        if state then
            for id = 0, 2048 do
                if sampIs3dTextDefined(id) then
                    local text, color, posX, posY, posZ, distance, ignoreWalls, player, vehicle = sampGet3dTextInfoById(id)
                    if text:find("можно собрать") then
                        if isPointOnScreen(posX, posY, posZ, 1) then
                            local x, y, z = getCharCoordinates(1)
                            local xx, yy = convert3DCoordsToScreen(x, y, z)
                            local px, py = convert3DCoordsToScreen(posX, posY, posZ)
                            renderDrawLine(xx, yy, px, py, 3, 0xff4343c9)
                        end
                    end
                end
            end
        end

    end
end

function command_state()
    state = not state

    if state then
        
    else

    end
end
 

ARMOR

011110000111100101101001
Модератор
4,969
6,890
Я бы сказал делать проверку на нужный объект ( куст ) И если модель объекта равна той которая тебе нужна - рендерить к ней линию, а проверку делать на нахождение в нужной точке через https://wiki.blast.hk/ru/moonloader/lua/isObjectInArea3d ( Не сильно шарю в ваших этих рендерах, но я бы пробывал сделать так )
 
  • Нравится
Реакции: whyega52

oneLove-one

Участник
Автор темы
50
6
Я бы сказал делать проверку на нужный объект ( куст ) И если модель объекта равна той которая тебе нужна - рендерить к ней линию, а проверку делать на нахождение в нужной точке через https://wiki.blast.hk/ru/moonloader/lua/isObjectInArea3d ( Не сильно шарю в ваших этих рендерах, но я бы пробывал сделать так )
Сори но мне надо только на текс проверку, потому-что там кусты каждый раз разные, help!!
 

:re

Участник
32
10
Я бы сказал делать проверку на нужный объект ( куст ) И если модель объекта равна той которая тебе нужна - рендерить к ней линию, а проверку делать на нахождение в нужной точке через https://wiki.blast.hk/ru/moonloader/lua/isObjectInArea3d ( Не сильно шарю в ваших этих рендерах, но я бы пробывал сделать так )
Можно сделать проще, проверку по координате текста, если она не превышает какое - то значение, то рисовать линию
 

oneLove-one

Участник
Автор темы
50
6
Можно сделать проще, проверку по координате текста, если она не превышает какое - то значение, то рисовать линию
Да хочу типо-такого но незнаю функция можешь скинуть сниппет?
 

:re

Участник
32
10
Да хочу типо-такого но незнаю функция можешь скинуть сниппет?
У тебя в коде есть эта строчка
Lua:
local text, color, posX, posY, posZ, distance, ignoreWalls, player, vehicle = sampGet3dTextInfoById(id)
Просто добавь проверку перед рисованием текста, к примеру можно использовать переменные posX или distance, координаты сам поставишь
Lua:
if posX < 1 then -- Вместо 1 поставишь свое значение
-- Тут рисуй линии
end

-- Или можно сделать так

if distance < 20 then -- Сам подбери цифру, экспериментируй
-- Аналогично
end

Координату для переменной posX можешь взять к примеру у забора, просто подойди к нему и используй функцию - getCharCoordinates
 

oneLove-one

Участник
Автор темы
50
6
У тебя в коде есть эта строчка
Lua:
local text, color, posX, posY, posZ, distance, ignoreWalls, player, vehicle = sampGet3dTextInfoById(id)
Просто добавь проверку перед рисованием текста, к примеру можно использовать переменные posX или distance, координаты сам поставишь
Lua:
if posX < 1 then -- Вместо 1 поставишь свое значение
-- Тут рисуй линии
end

-- Или можно сделать так

if distance < 20 then -- Сам подбери цифру, экспериментируй
-- Аналогично
end

Координату для переменной posX можешь взять к примеру у забора, просто подойди к нему и используй функцию - getCharCoordinates
Не работает, как можно эти кординаты приоброзовать в игровые?
 

whyega52

Гений, миллионер, плейбой, долбаеб
Модератор
2,798
2,659
Добрый день дорогие все форумные люди, сегодня столкнулся с такой проблемой хотел сделать Render Линий и текста на текст, но есть одна загвостка.
Мне надо только чтобы рендарилось на эту ферму а на другую не надо, есть какое нибудь решение нижу приложу код.
Посмотреть вложение 164075

lua:
local ev = require 'lib.samp.events'

function main()
    sampAddChatMessage('Fermer Bot | Успешно загружен!',-1)
    sampRegisterChatCommand('fermer',command_state)
    while true do wait(0)

        if state then
            for id = 0, 2048 do
                if sampIs3dTextDefined(id) then
                    local text, color, posX, posY, posZ, distance, ignoreWalls, player, vehicle = sampGet3dTextInfoById(id)
                    if text:find("можно собрать") then
                        if isPointOnScreen(posX, posY, posZ, 1) then
                            local x, y, z = getCharCoordinates(1)
                            local xx, yy = convert3DCoordsToScreen(x, y, z)
                            local px, py = convert3DCoordsToScreen(posX, posY, posZ)
                            renderDrawLine(xx, yy, px, py, 3, 0xff4343c9)
                        end
                    end
                end
            end
        end

    end
end

function command_state()
    state = not state

    if state then
       
    else

    end
end
Сделай проверку на нахождение перса в определенном 3d кубе, если перс находится на них (на определенной ферме), то рендерить что те нужно


У тебя в коде есть эта строчка
Lua:
local text, color, posX, posY, posZ, distance, ignoreWalls, player, vehicle = sampGet3dTextInfoById(id)
Просто добавь проверку перед рисованием текста, к примеру можно использовать переменные posX или distance, координаты сам поставишь
Lua:
if posX < 1 then -- Вместо 1 поставишь свое значение
-- Тут рисуй линии
end

-- Или можно сделать так

if distance < 20 then -- Сам подбери цифру, экспериментируй
-- Аналогично
end

Координату для переменной posX можешь взять к примеру у забора, просто подойди к нему и используй функцию - getCharCoordinates
Не играл особо на Аризоне, но разве 3д текст не будет одинаковый на обеих фермах?
 

oneLove-one

Участник
Автор темы
50
6
Сделай проверку на нахождение перса в определенном 3d кубе, если перс находится на них (на определенной ферме), то рендерить что те нужно



Не играл особо на Аризоне, но разве 3д текст не будет одинаковый на обеих фермах?
Я пытался что бы он пропускал те 3d тексты по ихнему id, но когда перезаходишь в стрим их id меняется каждый раз, и да тексты там одинаковые но мне надо чтобы только на этой ферме показывались, help!!!
 

oneLove-one

Участник
Автор темы
50
6
Сделай проверку на нахождение перса в определенном 3d кубе, если перс находится на них (на определенной ферме), то рендерить что те нужно



Не играл особо на Аризоне, но разве 3д текст не будет одинаковый на обеих фермах?
Так проверка бесполезная, я сделал куб, перс находится в этом куби но... Всё серовно рендарится, когда выхожу с куба нечего не рендарится, это не так работает...
 

:re

Участник
32
10
Сделай проверку на нахождение перса в определенном 3d кубе, если перс находится на них (на определенной ферме), то рендерить что те нужно



Не играл особо на Аризоне, но разве 3д текст не будет одинаковый на обеих фермах?
Текст одинаковый, а позиция нет