- 112
- 17
- Версия MoonLoader
- .026-beta
Здарова пацаны, в прошлой теме мне не помогли решил написать ещё одну, короче мне нужно найти хэндл автомобиля который самый ближайший к обыкновенному чекпоинту
Вот от такой метки нужно считать дистанцию и в данный момент самым близким транспортом является самолёт, нужно найти его handle и x, y, z координаты.
У меня заготовлен вот такой вот код:
Данный код ищет координаты маркера
А вот еще код который находит ближайший т/c
Но код работает наоборот и находит самый дальний т/с от чекпоинта, я пробовал менять <= в 9 строке на > но ничего не помогало, скрипт сначала не показывал хендл машины а затем крашил, просьба помочь!
up
Мне нужен handle транспорта на который указывает чекпоинт
Вот от такой метки нужно считать дистанцию и в данный момент самым близким транспортом является самолёт, нужно найти его handle и x, y, z координаты.
У меня заготовлен вот такой вот код:
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
А вот еще код который находит ближайший т/c
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
up
Мне нужен handle транспорта на который указывает чекпоинт
Последнее редактирование: