проверить, игрок находится в гангзоне или нет

optimal user

Известный
Автор темы
107
6
Версия MoonLoader
Другое
Можно как-то получить ИД гангзоны, в которой находишься? (она не мигает)
Либо проверить впринципе, находится в гангзоне игрок или нет
 

chapo

tg/inst: @moujeek
Всефорумный модератор
9,097
12,130
если перезапустить скрипт, то он не будет работать, так как рпс о создании ганг зон приходят при подключении (и не только)
Lua:
local sampev = require('lib.samp.events')
local zones = {}

function sampev.onCreateGangZone(zoneId, squareStart, squareEnd, color)
    zones[zoneId] = {
        from = squareStart,
        to = squareEnd
    }
end

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('getgz', function()
        local zone = getPlayerGangZone(PLAYER_PED)
        sampAddChatMessage(zone and 'Ты находишься в ганг-зоне номер '..zone or 'Ты не находишься в ганг зоне', -1)
    end)
    wait(-1)
end

---@param ped any Player handle
---@return number | nil id
function getPlayerGangZone(ped)
    for id, data in pairs(zones) do
        if isCharInArea3d(ped, data.from.x, data.from.y, -100, data.to.x, data.to.y, 1000, false) then  -- 00A4
            return id
        end
    end
end