если у тебя уже есть код для получения ближайшего тс от себя, то просто перенести в него координаты чекпоинтане от меня а от метки думаю вы поняли
Посмотреть вложение 213839
Я не могу найти координаты метки, были бы они я все сделал быесли у тебя уже есть код для получения ближайшего тс от себя, то просто перенести в него координаты чекпоинта
Я не могу найти координаты метки, были бы они я все сделал бы
function SearchMarker(posX, posY, posZ, radius, isRace)
local ret_posX = 0.0
local ret_posY = 0.0
local ret_posZ = 0.0
local isFind = false
for id = 0, 31 do
local MarkerStruct = 0
if isRace then MarkerStruct = 0xC7F168 + id * 56
else MarkerStruct = 0xC7DD88 + id * 160 end
local MarkerPosX = representIntAsFloat(readMemory(MarkerStruct + 0, 4, false))
local MarkerPosY = representIntAsFloat(readMemory(MarkerStruct + 4, 4, false))
local MarkerPosZ = representIntAsFloat(readMemory(MarkerStruct + 8, 4, false))
if MarkerPosX ~= 0.0 or MarkerPosY ~= 0.0 or MarkerPosZ ~= 0.0 then
if getDistanceBetweenCoords3d(MarkerPosX, MarkerPosY, MarkerPosZ, posX, posY, posZ) < radius then
ret_posX = MarkerPosX
ret_posY = MarkerPosY
ret_posZ = MarkerPosZ
isFind = true
radius = getDistanceBetweenCoords3d(MarkerPosX, MarkerPosY, MarkerPosZ, posX, posY, posZ)
end
end
end
return isFind, ret_posX, ret_posY, ret_posZ
end
там где в функции posX, posY, posZ нужно вписывать свои координаты?Lua:function SearchMarker(posX, posY, posZ, radius, isRace) local ret_posX = 0.0 local ret_posY = 0.0 local ret_posZ = 0.0 local isFind = false for id = 0, 31 do local MarkerStruct = 0 if isRace then MarkerStruct = 0xC7F168 + id * 56 else MarkerStruct = 0xC7DD88 + id * 160 end local MarkerPosX = representIntAsFloat(readMemory(MarkerStruct + 0, 4, false)) local MarkerPosY = representIntAsFloat(readMemory(MarkerStruct + 4, 4, false)) local MarkerPosZ = representIntAsFloat(readMemory(MarkerStruct + 8, 4, false)) if MarkerPosX ~= 0.0 or MarkerPosY ~= 0.0 or MarkerPosZ ~= 0.0 then if getDistanceBetweenCoords3d(MarkerPosX, MarkerPosY, MarkerPosZ, posX, posY, posZ) < radius then ret_posX = MarkerPosX ret_posY = MarkerPosY ret_posZ = MarkerPosZ isFind = true radius = getDistanceBetweenCoords3d(MarkerPosX, MarkerPosY, MarkerPosZ, posX, posY, posZ) end end end return isFind, ret_posX, ret_posY, ret_posZ end
в самом коде:
local res, x, y, z = SearchMarker(posX, posY, posZ, 100.0, false)
if res then
— code
хоть какие, функция находит маркер в заданном радиусе от posx posy posz, укажешь свои - будет искать в радиусе от тебя, ты код читал вообще?там где в функции posX, posY, posZ нужно вписывать свои координаты?
Да я так и сделал, просто не работаетхоть какие, функция находит маркер в заданном радиусе от posx posy posz, укажешь свои - будет искать в радиусе от тебя, ты код читал вообще?
как ты нужную машину вычисляешьДа я так и сделал, просто не работает
Находит самую дальнюю машину от чекпоинта
function getClosestVehInCamera()
local x, y, z = getCharCoordinates(PLAYER_PED)
local pX, pY, pZ = SearchMarker(x, y, z, 100.0, false)
local minDist = 999
local veh
for k, v in ipairs(getAllVehicles()) do
local cX, cY, cZ = getCarCoordinates(v)
if isPointOnScreen(cX, cY, cZ, minDist) then
if minDist <= getDistanceBetweenCoords3d(pX, pY, pZ, cX, cY, cZ) then
minDist = getDistanceBetweenCoords3d(pX, pY, pZ, cX, cY, cZ)
veh = v
end
end
end
return veh, minDist
end
знак сравнения в обратную сторонуLua:function getClosestVehInCamera() local x, y, z = getCharCoordinates(PLAYER_PED) local pX, pY, pZ = SearchMarker(x, y, z, 100.0, false) local minDist = 999 local veh for k, v in ipairs(getAllVehicles()) do local cX, cY, cZ = getCarCoordinates(v) if isPointOnScreen(cX, cY, cZ, minDist) then if minDist <= getDistanceBetweenCoords3d(pX, pY, pZ, cX, cY, cZ) then minDist = getDistanceBetweenCoords3d(pX, pY, pZ, cX, cY, cZ) veh = v end end end return veh, minDist end
function getClosestVehInCamera()
local x, y, z = getCharCoordinates(PLAYER_PED)
local pX, pY, pZ = SearchMarker(x, y, z, 100.0, false)
local minDist = 999
local veh
for k, v in ipairs(getAllVehicles()) do
local cX, cY, cZ = getCarCoordinates(v)
if isPointOnScreen(cX, cY, cZ, minDist) then
if minDist >= getDistanceBetweenCoords3d(pX, pY, pZ, cX, cY, cZ) then
minDist = getDistanceBetweenCoords3d(pX, pY, pZ, cX, cY, cZ)
veh = v
end
end
end
return veh, minDist
end
=>Lua:function getClosestVehInCamera() local x, y, z = getCharCoordinates(PLAYER_PED) local pX, pY, pZ = SearchMarker(x, y, z, 100.0, false) local minDist = 999 local veh for k, v in ipairs(getAllVehicles()) do local cX, cY, cZ = getCarCoordinates(v) if isPointOnScreen(cX, cY, cZ, minDist) then if minDist >= getDistanceBetweenCoords3d(pX, pY, pZ, cX, cY, cZ) then minDist = getDistanceBetweenCoords3d(pX, pY, pZ, cX, cY, cZ) veh = v end end end return veh, minDist end
function getClosestVehInCamera()
local x, y, z = getCharCoordinates(PLAYER_PED)
local pX, pY, pZ = SearchMarker(x, y, z, 100.0, false)
local minDist = 999
local veh
for k, v in ipairs(getAllVehicles()) do
local cX, cY, cZ = getCarCoordinates(v)
if isPointOnScreen(cX, cY, cZ, minDist) then
if minDist => getDistanceBetweenCoords3d(pX, pY, pZ, cX, cY, cZ) then
minDist = getDistanceBetweenCoords3d(pX, pY, pZ, cX, cY, cZ)
veh = v
end
end
end
return veh, minDist
end