рендер масок lua

coderko61

Участник
Автор темы
55
0
здравствуйте, пишу рендер масок и столкнулся с проблемой. показывает не только окружающих в масках, но и себя самого. все перепробовал. я понимаю так, distance выводит дистанцию всех объектов, а не конкретного. нужна помощь профессионалов)

Lua:
font = renderCreateFont('Century Gothic', 8, 5)

function main()

while not isSampAvailable() do wait(0) end wait(1)

while true do

wait(0)

for _, v in pairs(getAllObjects()) do

local asd

if sampGetObjectSampIdByHandle(v) ~= -1 then

asd = sampGetObjectSampIdByHandle(v)

end

if isObjectOnScreen(v) then

local result, oX, oY, oZ = getObjectCoordinates(v)

local x1, y1 = convert3DCoordsToScreen(oX,oY,oZ)

local objmodel = getObjectModel(v)

local x2,y2,z2 = getCharCoordinates(PLAYER_PED)

local x10, y10 = convert3DCoordsToScreen(x2,y2,z2)

distance = string.format("%.0f", getDistanceBetweenCoords3d(oX,oY,oZ, x2, y2, z2))



if objmodel == 18974 or objmodel == 19036 or objmodel == 19037 or objmodel == 19038 or objmodel == 19801 then if distance == 1 then break else renderFontDrawText(font,"{ff0000}В маске!\nДистанция: "..distance, x1, y1, -1) end end       



end

end

end

end
 

Вложения

  • изображение_2022-04-12_001643138.png
    изображение_2022-04-12_001643138.png
    121.5 KB · Просмотры: 23
Последнее редактирование:

coderko61

Участник
Автор темы
55
0
В проверку на модель объекта введи
Lua:
if distance > 1 then
    --code
end

В проверку на модель объекта введи
Lua:
if distance > 1 then
    --code
end
результат тот же

Lua:
if distance > 1 then

if objmodel == 18974 or objmodel == 19036 or objmodel == 19037 or objmodel == 19038 or objmodel == 19801 then renderFontDrawText(font,"{ff0000}В маске!\nДистанция: "..distance, x1, y1, -1) end       

end
 

Вложения

  • изображение_2022-04-12_012100132.png
    изображение_2022-04-12_012100132.png
    50.6 KB · Просмотры: 8
Последнее редактирование:

coderko61

Участник
Автор темы
55
0
Возможно там больше 1 и меньше 2. Попробуй 2 поставить
пробовал, тоже самое. я думаю, проблема, возможно, в distance. судя по логам, он выводит данные всех объектов. которые - находятся дальше. и именно эти данные берутся в приоритет. это мои догадки, я не профи

Lua:
font = renderCreateFont('Century Gothic', 8, 5)
function main()
while not isSampAvailable() do wait(0) end wait(1)
while true do
wait(0)
for _, v in pairs(getAllObjects()) do
local asd
if sampGetObjectSampIdByHandle(v) ~= -1 then
asd = sampGetObjectSampIdByHandle(v)
end
if isObjectOnScreen(v) then
local result, oX, oY, oZ = getObjectCoordinates(v)
local x1, y1 = convert3DCoordsToScreen(oX,oY,oZ)
local objmodel = getObjectModel(v)
local x2,y2,z2 = getCharCoordinates(PLAYER_PED)
local x10, y10 = convert3DCoordsToScreen(x2,y2,z2)
distance = string.format("%.0f", getDistanceBetweenCoords3d(oX,oY,oZ, x2, y2, z2))

if distance > 100 then

if objmodel == 18974 or objmodel == 19036 or objmodel == 19037 or objmodel == 19038 or objmodel == 19801 then renderFontDrawText(font,"{ff0000}В маске!\nДистанция: "..distance, x1, y1, -1) end      

end

end
end
end  
end

distance > 100 выставил, безрезультатно
 

Вложения

  • изображение_2022-04-12_040057875.png
    изображение_2022-04-12_040057875.png
    88.9 KB · Просмотры: 7
Последнее редактирование: