как найти координаты этого обьекта/маркера

exlplain

Участник
Автор темы
44
1
Версия SA-MP
  1. Любая
Мучаюсь уже 4 дня не могу найти координаты
этого маркера или что это

пробовал почти все способы включая этот;
jj.png
 
Решение
там же нету end xD


что именно там лишние


блять если не лень можешь скинуть рабочий пример на основе этого 'кода'
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()
   
    sampAddChatMessage('{696969}[Optimal-{00FFFF}tp]{FFFFFF}супер пупер пиздатый код загружен', -1)
    sampAddChatMessage('{696969}[Optimal-{00FFFF}tp]{FFFFFF}: /tp_bot', -1)
    sampAddChatMessage('{696969}[Optimal-{00FFFF}tp]{FFFFFF}ЫЫЫ ', -1)...

Z3roKwq

Известный
294
157
крч вот как то так, работать будет или нет хз(не тестил) мб говнокод потому что подзабыл луа немного

вот:
local bon = imgui.ImBool(false)

function main()
    --что то там
    while true do
        wait(0)
        if bon then
            local mco, x, y, z = SearchMarker(posX, posY, posZ, 999, false)
            --и бег к чеку
        end
    end
end

--где то в OnDrawFrame
imgui.Button('-ferma_all-', bon)

 --за пределами OnDrawFrame
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
 

exlplain

Участник
Автор темы
44
1
крч вот как то так, работать будет или нет хз(не тестил) мб говнокод потому что подзабыл луа немного

вот:
local bon = imgui.ImBool(false)

function main()
    --что то там
    while true do
        wait(0)
        if bon then
            local mco, x, y, z = SearchMarker(posX, posY, posZ, 999, false)
            --и бег к чеку
        end
    end
end

--где то в OnDrawFrame
imgui.Button('-ferma_all-', bon)

 --за пределами OnDrawFrame
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 bon = imgui.ImBool(false)

function main()
    --что то там
    while true do
        wait(0)
        if bon then
            local mco, x, y, z = SearchMarker(posX, posY, posZ, 999, false)
            --и бег к чеку
        end
    end
end

--где то в OnDrawFrame
imgui.Button('-ferma_all-', bon)

 --за пределами OnDrawFrame
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
все ровно не ишет.
 
Последнее редактирование:

YarikVL

Известный
Проверенный
4,797
1,813
сб


все ровно не ишет.
Попробуй искать 3D текст, как я вижу на картинке он расположен там же где и маркер. Погугли и найдёшь на бх кучу примеров как работать с 3Д текстом. И посмотри ролики на ютуб канале the champ guess
 

exlplain

Участник
Автор темы
44
1
Попробуй искать 3D текст, как я вижу на картинке он расположен там же где и маркер. Погугли и найдёшь на бх кучу примеров как работать с 3Д текстом. И посмотри ролики на ютуб канале the champ guess
а с такими пикапами что делать)
они в разных местах спавнятся
ll.png
 

EclipsedFlow

Известный
Проверенный
1,040
464

exlplain

Участник
Автор темы
44
1
....
Это один и тот-же маркер что был выше в теме, функция найдёт и этот маркер
может я тупой или нет.
Я пытался регистрировать команду чтобы она выводила координаты этого маркера но выдавало ошибку что они не чему не равны.
Какая переменная хранит в себе эти координаты?

Это один и тот-же маркер что был выше в теме, функция найдёт и этот маркер
я уже понел что способ правильный и я просто еблан
Просто скажите какая переменая хранит данные в себе.

Это один и тот-же маркер что был выше в теме, функция найдёт и этот маркер
или же простой пример вывода координат маркера в чат по команде.Дальше уже я сам
 
Последнее редактирование:

EclipsedFlow

Известный
Проверенный
1,040
464
....

может я тупой или нет.
Я пытался регистрировать команду чтобы она выводила координаты этого маркера но выдавало ошибку что они не чему не равны.
Какая переменная хранит в себе эти координаты?


я уже понел что способ правильный и я просто еблан
Просто скажите какая переменая хранит данные в себе.
Lua:
function main()
    repeat wait(0) until isSampAvailable()
  
    sampRegisterChatCommand('mark', function()
        local myX, myY, myZ = getCharCoordinates(PLAYER_PED)
        local res, x, y, z = SearchMarker(myX, myY, myZ, 9999, false)
      
        if res then
            sampAddChatMessage(string.format('X: %f Y: %f Z: %f', x, y, z), -1)
        end
    end)
  
    while true do wait(0)
  
    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
 

exlplain

Участник
Автор темы
44
1
Lua:
function main()
    repeat wait(0) until isSampAvailable()
 
    sampRegisterChatCommand('mark', function()
        local myX, myY, myZ = getCharCoordinates(PLAYER_PED)
        local res, x, y, z = SearchMarker(myX, myY, myZ, 9999, false)
     
        if res then
            sampAddChatMessage(string.format('X: %f Y: %f Z: %f', x, y, z), -1)
        end
    end)
 
    while true do wait(0)
 
    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
отдуши ебать
 
  • Нравится
Реакции: EclipsedFlow

EclipsedFlow

Известный
Проверенный
1,040
464
а что делать если персонаж телепортируется к маркеру и после появления нового он продолжает к старому телепортироваться.Помогает только ctrl + r
Значит ты не обновляешь координаты маркера, без кода нечем помочь больше не могу
 

exlplain

Участник
Автор темы
44
1
Значит ты не обновляешь координаты маркера, без кода нечем помочь больше не могу
таже проблема
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;

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_markt', -1)
    sampAddChatMessage('{696969}[Optimal-{00FFFF}tp]{FFFFFF}ЫЫЫ ', -1)
    sampAddChatMessage('{696969}[Optimala-{00FFFF}tp]{FFFFFF}', -1)

    sampRegisterChatCommand('tp_markt', function()
     
        local result, x, y, z =res, Ox, Oy, Oz
        if res then
            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}Bye,Say)-.', -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)
               wait(3000)
-- return myPosition сюда надо что то знаю
            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
 

EclipsedFlow

Известный
Проверенный
1,040
464
таже проблема
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;

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_markt', -1)
    sampAddChatMessage('{696969}[Optimal-{00FFFF}tp]{FFFFFF}ЫЫЫ ', -1)
    sampAddChatMessage('{696969}[Optimala-{00FFFF}tp]{FFFFFF}', -1)

    sampRegisterChatCommand('tp_markt', function()
    
        local result, x, y, z =res, Ox, Oy, Oz
        if res then
            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}Bye,Say)-.', -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)
               wait(3000)
-- return myPosition сюда надо что то знаю
            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
При загрузке скрипта ты получаешь координаты маркера один раз. Почему тебе не получать координаты после ввода команды в строчке 19?
 

Negr_Pushkin

Потрачен
80
15
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

exlplain

Участник
Автор темы
44
1
Найди через байпассер - https://www.blast.hk/threads/43760/ ид чекпоинта. и сделай телепорт или бег к чекпоинта

Найди через байпассер - https://www.blast.hk/threads/43760/ ид чекпоинта. и сделай телепорт или бег к чекпоинту.
не лучший выриант как по мне.Но все ровно запомню.

При загрузке скрипта ты получаешь координаты маркера один раз. Почему тебе не получать координаты после ввода команды в строчке 19а
При загрузке скрипта ты получаешь координаты маркера один раз. Почему тебе не получать координаты после ввода команды в строчке 19?
y
При загрузке скрипта ты получаешь координаты маркера один раз. Почему тебе не получать координаты после ввода команды в строчке 19?

При загрузке скрипта ты получаешь координаты маркера один раз. Почему тебе не получать координаты после ввода команды в строчке 19?
ДА НО НЕТ.Я хотел сделать чтобы он до бесконечности по маркерам тпхался пробовал в беск цикл засунуть не робит.
 
Последнее редактирование: