getDistanceBetweenCoords3d показывает неправильную дистанцию

suntelli

Новичок
Автор темы
23
1
Версия MoonLoader
.026-beta
Такая проблема, у меня должна высчитываться дистанция до конкретного объекта, код правильный, всё должно работать, но когда я стою в 10м от него мне пишет что я от него например в 3000м, 2900 и т.д.

function main()
sampAddChatMessage('Загружен', -1)
sampRegisterChatCommand('testnew', function()
poisk()
end)
while true do
wait(0)

end
end

function poisk()
for _, v in pairs(getAllObjects()) do
if doesObjectExist(v) then
local modelid = getObjectModel(v)
local x2, y2, z2 = getCharCoordinates(PLAYER_PED)
local x, y, z = getObjectCoordinates(v)
if modelid == 4640 then
local dist1 = getDistanceBetweenCoords3d(x, y, z, x2, y2, z2)
sampAddChatMessage('Вы далеко от объета. Дистанция до него: ' .. dist1, -1)
if dist1 <= 5 then
sampAddChatMessage('Вы близко к объекту', -1)
end
end
end
end
end
 

Masayuki

Участник
81
32
Такая проблема, у меня должна высчитываться дистанция до конкретного объекта, код правильный, всё должно работать, но когда я стою в 10м от него мне пишет что я от него например в 3000м, 2900 и т.д.

function main()
sampAddChatMessage('Загружен', -1)
sampRegisterChatCommand('testnew', function()
poisk()
end)
while true do
wait(0)

end
end

function poisk()
for _, v in pairs(getAllObjects()) do
if doesObjectExist(v) then
local modelid = getObjectModel(v)
local x2, y2, z2 = getCharCoordinates(PLAYER_PED)
local x, y, z = getObjectCoordinates(v)
if modelid == 4640 then
local dist1 = getDistanceBetweenCoords3d(x, y, z, x2, y2, z2)
sampAddChatMessage('Вы далеко от объета. Дистанция до него: ' .. dist1, -1)
if dist1 <= 5 then
sampAddChatMessage('Вы близко к объекту', -1)
end
end
end
end
end
function poisk()
for _, v in pairs(getAllObjects()) do
if doesObjectExist(v) then
local modelid = getObjectModel(v)
if modelid == 4640 then
local res, x, y, z = getObjectCoordinates(v)
local x2, y2, z2 = getCharCoordinates(PLAYER_PED)
if res then
local dist1 = getDistanceBetweenCoords3d(x, y, z, x2, y2, z2)
sampAddChatMessage('Вы далеко от объета. Дистанция до него: ' .. dist1, -1)
if dist1 <= 5 then
sampAddChatMessage('Вы близко к объекту', -1)
end
end
end
end
end
end

end
 
Последнее редактирование:
  • Нравится
Реакции: suntelli

Tectrex

Известный
133
162
ну так ты получаешь координаты объекта до того как проверяешь ID его модели. У тебя расстояние идет вообще на левый объект.
Над так:

Lua:
for _, v in pairs(getAllObjects()) do
        if doesObjectExist(v) then
            local modelid = getObjectModel(v)
            if modelid == 4640 then
                local x2, y2, z2 = getCharCoordinates(PLAYER_PED)
                local x, y, z = getObjectCoordinates(v)
 

suntelli

Новичок
Автор темы
23
1
ну так ты получаешь координаты объекта до того как проверяешь ID его модели. У тебя расстояние идет вообще на левый объект.
Над так:

Lua:
for _, v in pairs(getAllObjects()) do
        if doesObjectExist(v) then
            local modelid = getObjectModel(v)
            if modelid == 4640 then
                local x2, y2, z2 = getCharCoordinates(PLAYER_PED)
                local x, y, z = getObjectCoordinates(v)
сделал так как ты сказал, всё равно, ничего не меняется
 

suntelli

Новичок
Автор темы
23
1
function poisk()
for _, v in pairs(getAllObjects()) do
if doesObjectExist(v) then
local modelid = getObjectModel(v)
if modelid == 4640 then
local res, x, y, z = getObjectCoordinates(v)
local x2, y2, z2 = getCharCoordinates(PLAYER_PED)
if res then
local dist1 = getDistanceBetweenCoords3d(x, y, z, x2, y2, z2)
sampAddChatMessage('Вы далеко от объета. Дистанция до него: ' .. dist1, -1)
if dist1 <= 5 then
sampAddChatMessage('Вы близко к объекту', -1)
end
end
end
end
end
end

end
ооо заработало, спасибо

скинь весь код
уже нашлось решение