как можно найти метку на карте

alexroq

Активный
Автор темы
149
26
Версия SA-MP
  1. 0.3.7-R3
изображение_2026-04-09_105514506.png
надо найти такую маленькую метку,
такая функция не находит
Lua:
function SearchMarker(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
            ret_posX = MarkerPosX
            ret_posY = MarkerPosY
            ret_posZ = MarkerPosZ
            isFind = true
        end
    end
    return isFind, ret_posX, ret_posY, ret_posZ
end
 

Gorskin

t.me/gorskintgk
Проверенный
1,407
1,255
Посмотреть вложение 290460надо найти такую маленькую метку,
такая функция не находит
Lua:
function SearchMarker(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
            ret_posX = MarkerPosX
            ret_posY = MarkerPosY
            ret_posZ = MarkerPosZ
            isFind = true
        end
    end
    return isFind, ret_posX, ret_posY, ret_posZ
end
не находит потому что ты заколхозил isRace
 

alexroq

Активный
Автор темы
149
26
не находит потому что ты заколхозил isRace
ой не то вставилось
function searchCheckpoint()
for i = 0, 31 do
local addr = 13103464 + i * 56
local x = representIntAsFloat(readMemory(addr, 4, false))
local y = representIntAsFloat(readMemory(addr + 4, 4, false))
local z = representIntAsFloat(readMemory(addr + 8, 4, false))

if x ~= 0 or y ~= 0 or z ~= 0 then
return true, x, y, z
end
end

return false, 0, 0, 0
end
 

undefineders

Участник
30
19
Lua:
function findAnyMarker()
    for i = 0, 1000 do -- Перебор возможных ID хендлов
        if doesBlipExist(i) then
            local blipType = getBlipType(i)
            -- Спрайт 1 - target/waypoint
            -- Спрайт 0 - standart
            if blipType == 1 or getBlipSprite(i) == 0 then
                local x, y, z = getBlipCoordinates(i)
                return true, x, y, z
            end
        end
    end
    return false, 0, 0, 0
end
это попробуй
 

alexroq

Активный
Автор темы
149
26
[ML] (error) Auto Elec & Elecstolb: E:\winston\moonloader\autoelec&stolb.lua:85: attempt to call global 'getBlipType' (a nil value)
stack traceback:
E:\winston\moonloader\autoelec&stolb.lua: in function 'findAnyMarker'
E:\winston\moonloader\autoelec&stolb.lua:318: in function <E:\winston\moonloader\autoelec&stolb.lua:311>
[ML] (error) Auto Elec & Elecstolb: Script died due to an error. (5C611A5C)

не находит потому что ты заколхозил isRace
а как надо?
 
Последнее редактирование:

undefineders

Участник
30
19
[ML] (error) Auto Elec & Elecstolb: E:\winston\moonloader\autoelec&stolb.lua:85: attempt to call global 'getBlipType' (a nil value)
stack traceback:
E:\winston\moonloader\autoelec&stolb.lua: in function 'findAnyMarker'
E:\winston\moonloader\autoelec&stolb.lua:318: in function <E:\winston\moonloader\autoelec&stolb.lua:311>
[ML] (error) Auto Elec & Elecstolb: Script died due to an error. (5C611A5C)
oops

Lua:
function findAnyMarker()
    for i = 0, 1000 do
        if doesBlipExist(i) then
            local sprite = getBlipIconType(i)
            if sprite == 0 or sprite == 1 then
                local x, y, z = getBlipCoordinates(i)
                if x ~= 0 or y ~= 0 then
                    return true, x, y, z
                end
            end
        end
    end
    return false, 0, 0, 0
end
это по метке на карте

Lua:
function findCylinderMarker()
    for i = 0, 31 do
        local structAddr = 0xC7DD88 + (i * 160)
       
        local x = representIntAsFloat(readMemory(structAddr + 0, 4, false))
        local y = representIntAsFloat(readMemory(structAddr + 4, 4, false))
        local z = representIntAsFloat(readMemory(structAddr + 8, 4, false))

        if x ~= 0 and y ~= 0 then
            local radius = representIntAsFloat(readMemory(structAddr + 48, 4, false))
           
            return true, x, y, z
        end
    end
    return false, 0, 0, 0
end
это именно по cylindr marker
 

alexroq

Активный
Автор темы
149
26
oops

Lua:
function findAnyMarker()
    for i = 0, 1000 do
        if doesBlipExist(i) then
            local sprite = getBlipIconType(i)
            if sprite == 0 or sprite == 1 then
                local x, y, z = getBlipCoordinates(i)
                if x ~= 0 or y ~= 0 then
                    return true, x, y, z
                end
            end
        end
    end
    return false, 0, 0, 0
end
это по метке на карте

Lua:
function findCylinderMarker()
    for i = 0, 31 do
        local structAddr = 0xC7DD88 + (i * 160)
      
        local x = representIntAsFloat(readMemory(structAddr + 0, 4, false))
        local y = representIntAsFloat(readMemory(structAddr + 4, 4, false))
        local z = representIntAsFloat(readMemory(structAddr + 8, 4, false))

        if x ~= 0 and y ~= 0 then
            local radius = representIntAsFloat(readMemory(structAddr + 48, 4, false))
          
            return true, x, y, z
        end
    end
    return false, 0, 0, 0
end
это именно по cylindr marker
я уже подобрал и нашел. но всеравно спасибо
 
  • Нравится
Реакции: undefineders