- Версия SA-MP
-
- Любая
Мучаюсь уже 4 дня не могу найти координаты
этого маркера или что это
пробовал почти все способы включая этот;
этого маркера или что это
пробовал почти все способы включая этот;
там же нету end xD
что именно там лишние
блять если не лень можешь скинуть рабочий пример на основе этого 'кода'
local vector3D = require 'vector3d'
local samp = require 'lib.samp.events'
local returnAgain = false
local xyz = { public = { x = 0, y = 0, z = 0 }, private = { x = 0, y = 0, z = 0 }, static = { x = 0, y = 0, z = 0 } }
local millisecond;
local active = false
function main()
repeat wait(0) until isSampAvailable()
sampAddChatMessage('{696969}[Optimal-{00FFFF}tp]{FFFFFF}супер пупер пиздатый код загружен', -1)
sampAddChatMessage('{696969}[Optimal-{00FFFF}tp]{FFFFFF}: /tp_bot', -1)
sampAddChatMessage('{696969}[Optimal-{00FFFF}tp]{FFFFFF}ЫЫЫ ', -1)...
1) Берешь создаешь глоб. переменнуюне лучший выриант как по мне.Но все ровно запомню.
ДА НО НЕТ.Я хотел сделать чтобы он до бесконечности по маркерам тпхался пробовал в беск цикл засунуть не робит.
Типо присвоить значения потом вызвать функцию? не очень понимаю.если честно я ничего не понел1) Берешь создаешь глоб. переменную
2) Через команду переменную переключаешь, если она активна то в бесконечном цикле получаешь координаты метки
3) Если координаты есть и result == true то начинаешь телепортироваться на метку.
4) Делаешь проверку на дистанцию от персонажа до метки, если она < 4 то функа находит снова позицию маркера и все
Что ты хочешь сделать?Типо присвоить значения потом вызвать функцию? не очень понимаю.если честно я ничего не понел
'Бот' телепорт к маркерам.дальше с имуляцией нажатий работатьЧто ты хочешь сделать?
res, x,y,z = ()-- типо возле скобочек надо поставить что тоТипо присвоить значения потом вызвать функцию? не очень понимаю.если честно я ничего не понел
Тепался постоянно или единожды?'Бот' телепорт к маркерам.дальше с имуляцией нажатий работать
res, x,y,z = ()-- типо возле скобочек надо поставить что то
if res then
-- типо если есть то сюда код
else
-- а тут если нет
end
так?
постоянно, но после повторного ввода команды выключался (это и так есть)Тепался постоянно или единожды?
постоянно, но после повторного ввода команды выключался (это и так есть)
local active = false
function main()
repeat wait(0) until isSampAvailable()
sampRegisterChatCommand('mark', function()
active = not active
end)
while true do wait(0)
if active then
local myX, myY, myZ = getCharCoordinates(PLAYER_PED)
local res, x, y, z = SearchMarker(myX, myY, myZ, 9999, false)
if res then
local distance = getDistanceBetween3d(myX, myY, myZ, x, y, z)
-- teleport
if distance < 4 then
-- code
end
end
end
end
end
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
attempt to compare nil with numberLua:local active = false function main() repeat wait(0) until isSampAvailable() sampRegisterChatCommand('mark', function() active = not active end) while true do wait(0) if active then local myX, myY, myZ = getCharCoordinates(PLAYER_PED) local res, x, y, z = SearchMarker(myX, myY, myZ, 9999, false) if res then local distance = getDistanceBetween3d(myX, myY, myZ, x, y, z) -- teleport if distance < 4 then -- code end end end end end 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
вроде как исправил появилась новаяLua:local active = false function main() repeat wait(0) until isSampAvailable() sampRegisterChatCommand('mark', function() active = not active end) while true do wait(0) if active then local myX, myY, myZ = getCharCoordinates(PLAYER_PED) local res, x, y, z = SearchMarker(myX, myY, myZ, 9999, false) if res then local distance = getDistanceBetween3d(myX, myY, myZ, x, y, z) -- teleport if distance < 4 then -- code end end end end end 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
Функу вставил?attempt to compare nil with number
stack traceback:
78 строка где distance <4
вроде как исправил появилась новая
3: attempt to call global 'SearchMarker' (a nil value)
stack traceback:
1>
[ML] (error) OptimizerChark.lua: Script died due to an error. (2DDBB434)
Да, если не работает, кинь полный кодкакую? SearchMarker?
Да, если не работает, кинь полный код
local vector3D = require 'vector3d'
local samp = require 'lib.samp.events'
local returnAgain = false
local xyz = { public = { x = 0, y = 0, z = 0 }, private = { x = 0, y = 0, z = 0 }, static = { x = 0, y = 0, z = 0 } }
local millisecond;
local active = false
function main()
repeat wait(0) until isSampAvailable()
local myX, myY, myZ = getCharCoordinates(PLAYER_PED)
local res, Ox, Oy, Oz = SearchMarker(myX, myY, myZ, 9999, false)
sampAddChatMessage('{696969}[Optimal-{00FFFF}tp]{FFFFFF}супер пупер пиздатый код загружен', -1)
sampAddChatMessage('{696969}[Optimal-{00FFFF}tp]{FFFFFF}: /tp_bot', -1)
sampAddChatMessage('{696969}[Optimal-{00FFFF}tp]{FFFFFF}ЫЫЫ ', -1)
sampAddChatMessage('{696969}[Optimal-{00FFFF}Stp]{FFFFFF}', -1)
sampRegisterChatCommand('tp_bot', function()
active = not active
end)
if active then
local myX, myY, myZ = getCharCoordinates(PLAYER_PED)
local res, x, y, z = SearchMarker(myX, myY, myZ, 9999, false)
if res then
local distance = getDistanceBetween3d(myX, myY, myZ, x, y, z)
xyz.private.x, xyz.private.y, xyz.private.z = x, y, z;
xyz.public.x, xyz.public.y, xyz.public.z = x, y, z;
teleport = not teleport
else
sampAddChatMessage('{696969}[Optimal-{00FFFF}tp]{FFFFFF}>!)-.', -1)
end
if not teleport then
freezeCharPosition(playerPed, false)
end
while true do wait(0)
if teleport and isCharOnFoot(playerPed) then
freezeCharPosition(playerPed, true)
local myPosition = {getOffsetFromCharInWorldCoords(playerPed, 0.0, 0.0, -1.5)}
xyz.static.x, xyz.static.y, xyz.static.z = xyz.private.x - myPosition[1], xyz.private.y - myPosition[2], xyz.private.z - myPosition[3];
xyz.public.x, xyz.public.y, xyz.public.z = xyz.public.x - myPosition[1], xyz.public.y - myPosition[2], xyz.public.z - myPosition[3];
local vectorPlayer = vector3D(xyz.static.x, xyz.static.y, xyz.static.z)
vectorPlayer:normalize()
local data = allocateMemory(68)
sampStorePlayerOnfootData(returnid(), data)
setStructFloatElement(data, 38, 0.0, true)
setStructFloatElement(data, 42, 0.0, true)
setStructFloatElement(data, 38, 0.02, true)
setStructFloatElement(data, 42, 0.02, true)
sampSendOnfootData(data)
freeMemory(data)
setCharCoordinates(playerPed, myPosition[1] + vectorPlayer.x * 1.3, myPosition[2] + vectorPlayer.y * 1.3, myPosition[3] + vectorPlayer.z * 1.3)
wait(20)
if getDistanceBetweenCoords3d(xyz.private.x, xyz.private.y, xyz.private.z, myPosition[1], myPosition[2], myPosition[3]) < 1 then
local lastPosition = {getCharCoordinates(playerPed)}
setCharCoordinates(playerPed, lastPosition[1], lastPosition[2], lastPosition[3] + 0.01)
freezeCharPosition(playerPed, false)
sampAddChatMessage('<<<Process...', -1)
wait(3000)
return myPosition
end
end
end
end
if distance < 4 then
--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
--end
function returnid()
local result, id = sampGetPlayerIdByCharHandle(playerPed)
if result then return id else error(">>>") end
end
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
end
в комент я шас занес до этого он без -- былДа, если не работает, кинь полный код
lua:local vector3D = require 'vector3d' local samp = require 'lib.samp.events' local returnAgain = false local xyz = { public = { x = 0, y = 0, z = 0 }, private = { x = 0, y = 0, z = 0 }, static = { x = 0, y = 0, z = 0 } } local millisecond; local active = false function main() repeat wait(0) until isSampAvailable() local myX, myY, myZ = getCharCoordinates(PLAYER_PED) local res, Ox, Oy, Oz = SearchMarker(myX, myY, myZ, 9999, false) sampAddChatMessage('{696969}[Optimal-{00FFFF}tp]{FFFFFF}супер пупер пиздатый код загружен', -1) sampAddChatMessage('{696969}[Optimal-{00FFFF}tp]{FFFFFF}: /tp_bot', -1) sampAddChatMessage('{696969}[Optimal-{00FFFF}tp]{FFFFFF}ЫЫЫ ', -1) sampAddChatMessage('{696969}[Optimal-{00FFFF}Stp]{FFFFFF}', -1) sampRegisterChatCommand('tp_bot', function() active = not active end) if active then local myX, myY, myZ = getCharCoordinates(PLAYER_PED) local res, x, y, z = SearchMarker(myX, myY, myZ, 9999, false) if res then local distance = getDistanceBetween3d(myX, myY, myZ, x, y, z) xyz.private.x, xyz.private.y, xyz.private.z = x, y, z; xyz.public.x, xyz.public.y, xyz.public.z = x, y, z; teleport = not teleport else sampAddChatMessage('{696969}[Optimal-{00FFFF}tp]{FFFFFF}>!)-.', -1) end if not teleport then freezeCharPosition(playerPed, false) end while true do wait(0) if teleport and isCharOnFoot(playerPed) then freezeCharPosition(playerPed, true) local myPosition = {getOffsetFromCharInWorldCoords(playerPed, 0.0, 0.0, -1.5)} xyz.static.x, xyz.static.y, xyz.static.z = xyz.private.x - myPosition[1], xyz.private.y - myPosition[2], xyz.private.z - myPosition[3]; xyz.public.x, xyz.public.y, xyz.public.z = xyz.public.x - myPosition[1], xyz.public.y - myPosition[2], xyz.public.z - myPosition[3]; local vectorPlayer = vector3D(xyz.static.x, xyz.static.y, xyz.static.z) vectorPlayer:normalize() local data = allocateMemory(68) sampStorePlayerOnfootData(returnid(), data) setStructFloatElement(data, 38, 0.0, true) setStructFloatElement(data, 42, 0.0, true) setStructFloatElement(data, 38, 0.02, true) setStructFloatElement(data, 42, 0.02, true) sampSendOnfootData(data) freeMemory(data) setCharCoordinates(playerPed, myPosition[1] + vectorPlayer.x * 1.3, myPosition[2] + vectorPlayer.y * 1.3, myPosition[3] + vectorPlayer.z * 1.3) wait(20) if getDistanceBetweenCoords3d(xyz.private.x, xyz.private.y, xyz.private.z, myPosition[1], myPosition[2], myPosition[3]) < 1 then local lastPosition = {getCharCoordinates(playerPed)} setCharCoordinates(playerPed, lastPosition[1], lastPosition[2], lastPosition[3] + 0.01) freezeCharPosition(playerPed, false) sampAddChatMessage('<<<Process...', -1) wait(3000) return myPosition end end end end if distance < 4 then --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 --end function returnid() local result, id = sampGetPlayerIdByCharHandle(playerPed) if result then return id else error(">>>") end end 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 end
в комент я шас занес до этого он без -- был
там же нету end xD
Много чего лишнего в твоем скрипте. Почисти свой скрипт от лишнего.
что именно там лишние
Много чего лишнего в твоем скрипте. Почисти свой скрипт от лишнего.
блять если не лень можешь скинуть рабочий пример на основе этого 'кода'
Много чего лишнего в твоем скрипте. Почисти свой скрипт от лишнего.
там же нету end xD
что именно там лишние
блять если не лень можешь скинуть рабочий пример на основе этого 'кода'
local vector3D = require 'vector3d'
local samp = require 'lib.samp.events'
local returnAgain = false
local xyz = { public = { x = 0, y = 0, z = 0 }, private = { x = 0, y = 0, z = 0 }, static = { x = 0, y = 0, z = 0 } }
local millisecond;
local active = false
function main()
repeat wait(0) until isSampAvailable()
sampAddChatMessage('{696969}[Optimal-{00FFFF}tp]{FFFFFF}супер пупер пиздатый код загружен', -1)
sampAddChatMessage('{696969}[Optimal-{00FFFF}tp]{FFFFFF}: /tp_bot', -1)
sampAddChatMessage('{696969}[Optimal-{00FFFF}tp]{FFFFFF}ЫЫЫ ', -1)
sampAddChatMessage('{696969}[Optimal-{00FFFF}Stp]{FFFFFF}', -1)
sampRegisterChatCommand('tp_bot', function()
active = not active
local myX, myY, myZ = getCharCoordinates(PLAYER_PED)
local res, x, y, z = SearchMarker(myX, myY, myZ, 9999, false)
if res then
local distance = getDistanceBetween3d(myX, myY, myZ, x, y, z)
xyz.private.x, xyz.private.y, xyz.private.z = x, y, z;
xyz.public.x, xyz.public.y, xyz.public.z = x, y, z;
teleport = not teleport
else
sampAddChatMessage('{696969}[Optimal-{00FFFF}tp]{FFFFFF}>!)-.', -1)
end
if not teleport then
freezeCharPosition(playerPed, false)
end
end)
while true do wait(0)
if teleport and isCharOnFoot(playerPed) then
freezeCharPosition(playerPed, true)
local myPosition = {getOffsetFromCharInWorldCoords(playerPed, 0.0, 0.0, -1.5)}
xyz.static.x, xyz.static.y, xyz.static.z = xyz.private.x - myPosition[1], xyz.private.y - myPosition[2], xyz.private.z - myPosition[3];
xyz.public.x, xyz.public.y, xyz.public.z = xyz.public.x - myPosition[1], xyz.public.y - myPosition[2], xyz.public.z - myPosition[3];
local vectorPlayer = vector3D(xyz.static.x, xyz.static.y, xyz.static.z)
vectorPlayer:normalize()
local data = allocateMemory(68)
sampStorePlayerOnfootData(returnid(), data)
setStructFloatElement(data, 38, 0.0, true)
setStructFloatElement(data, 42, 0.0, true)
setStructFloatElement(data, 38, 0.02, true)
setStructFloatElement(data, 42, 0.02, true)
sampSendOnfootData(data)
freeMemory(data)
setCharCoordinates(playerPed, myPosition[1] + vectorPlayer.x * 1.3, myPosition[2] + vectorPlayer.y * 1.3, myPosition[3] + vectorPlayer.z * 1.3)
wait(20)
if getDistanceBetweenCoords3d(xyz.private.x, xyz.private.y, xyz.private.z, myPosition[1], myPosition[2], myPosition[3]) < 1 then
local lastPosition = {getCharCoordinates(playerPed)}
setCharCoordinates(playerPed, lastPosition[1], lastPosition[2], lastPosition[3] + 0.01)
freezeCharPosition(playerPed, false)
sampAddChatMessage('<<<Process...', -1)
end
end
end
end
function returnid()
local result, id = sampGetPlayerIdByCharHandle(playerPed)
if result then return id else error(">>>") end
end
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